Ru-Board.club
← Вернуться в раздел «Системы управления сайтами»

» Портал Joomla (часть 2)

Автор: spajwan
Дата сообщения: 09.01.2013 14:19
wdx


Цитата:
капчу врубить для всех сообщений, и троллям станет лень ее вводить каждый раз


Дело в том, что есть интересный пост обьясняющий что-то конкретно, но он затирается либо словесной перепалкой либо другим вопросом и т.д., и как результат информация теряется в куче флуда, а потому здесь капча непоможет, но шапка с посылами на конкретный пост была бы в самый раз как это придумали здесь на

Да и если ставить капчу на вход форума - то какую лучше выбирать?
Автор: wdx
Дата сообщения: 09.01.2013 18:48
spajwan
для нормального общения нужна кучка модераторов на общественных началах, иначе никак
Автор: muhno
Дата сообщения: 17.01.2013 09:09

Цитата:
Как видно добавляется префикс родительского элемента. Ну и как следствие дубли страниц. Может кто нибудь посоветовать как можно это изменить?

Через дополнительное, скрытое меню.
Вы уверены, что у вас есть дубли ? Просто адреса страниц изменились. Index.php можно из адреса убрать.
Много ссылок на ваш сайт? Внешние ссылки на несуществующие страницы теперь есть?


Добавлено:
spajwan

Цитата:
не просто хотелось проверить сайт, рухнет он или нет, и если рухнет то тогда его защитить, ну по крайней мере зделать для этого всё возможное.

За ваши деньги - любой каприз. 10 копеек за одного посетителя будет достаточно.
Автор: Itto
Дата сообщения: 17.01.2013 11:43
muhno

Цитата:
а ваши деньги - любой каприз. 10 копеек за одного посетителя будет достаточно.

Грешно продавать surf-ы
Автор: Amadeys
Дата сообщения: 19.01.2013 13:30
Доброго дня уважаемые форумчане!)))
Встал вопрос, как реализовать проще стартовую страницу сайта, чтобы на ней просто была функция выбора языка самого сайта. Т.е жмешь кнопочку русский язык к примеру, и открывается главная страница сайта, английский нажимаешь открывается главная страница сайта на английском языке. Подскажите как и при помощи чего это возможно реализовать. Заранее признательна за ваши советы )
Автор: Itto
Дата сообщения: 20.01.2013 07:30
Amadeys
Ну самое простое - пишите 2 слова
"English" и "Русский", делаете их ссылками на Английский и Русский вариант СДЕЛАННОГО Вами сайта, соответственно.
Автор: SmokArmanych
Дата сообщения: 21.01.2013 15:41

Цитата:
капчу врубить для всех сообщений, и троллям станет лень ее вводить каждый раз

тролли лени не знают, капча может только ботам деятельность осложнить
Автор: element_storm
Дата сообщения: 22.01.2013 15:38
404 - Элемент не найден

Вы не можете посетить эту страницу из-за:
устаревшие закладки в избранном
поисковый сервер имеет устаревшие данные сайта
некорректный адрес
Вы не имеете доступа к этой странице
Запрашиваемый ресурс не найден.
Произошла ошибка при обработке вашего запроса!

Пожалуйста, выберите одну из следующих страниц:

Главная страница


Если у вас возникли сложности, пожалуйста, свяжитесь с администрацией этого сайта.


Сайт был уже создан! нужно было поменять, адреса и номер телефона! нашел где поменять, поменял!!! и стало показывать ошибку 404!! хелп
Автор: Itto
Дата сообщения: 22.01.2013 16:44
element_storm

Цитата:
Сайт был уже создан! нужно было поменять, адреса и номер телефона! нашел где поменять, поменял!!! и стало показывать ошибку 404!! хелп

Это не форум экстрасенсов !
Если сайт в интеренете - давайте доступ - починю (с большой долей вероятности) .
А так - слишком мало информации что-бы помочь Вам.
Автор: element_storm
Дата сообщения: 22.01.2013 17:23
чудишь?)
Автор: Itto
Дата сообщения: 22.01.2013 17:58
element_storm
Нет - на идиотский вопрос - соответсnвующий ответ ...
Автор: Kaylang
Дата сообщения: 22.01.2013 19:04
element_storm

Цитата:
нашел где поменять, поменял!!!

видать не там поменял. или не то поменял.

Itto совершенно прав.
Нафиг было копипастить сообщение о 404 ошибке? Лучше бы более подробно описАл, что именно и где именно ты сделал. И ссылку на сайт.
Автор: element_storm
Дата сообщения: 22.01.2013 19:24
ссылка http://mebel-adelia.ru/
Автор: Itto
Дата сообщения: 23.01.2013 05:33
element_storm

Цитата:
ссылка http://mebel-adelia.ru/

500 - JDatabaseMySQL::query: 145 - Table './cl37066_db/jos_k2_items' is marked as crashed and should be repaired SQL=SELECT * FROM jos_k2_items WHERE id=412 LIMIT 0, 1


Для начала - идем в PHPmyadmin и делаем repair для таблицы jos_k2_items в бд cl37066_db
Автор: natalypovar
Дата сообщения: 26.01.2013 02:18
Joomla просто отличная CMS.
Даже мне с ней не сложно ))))
Автор: Diman19
Дата сообщения: 30.01.2013 13:08
Всем привет! Имеется шаблон сверстанный на HTML и CSS,данный шаблон хочу перенести на CMS joomla.При переносе возникла небольшая проблема с верхним меню в шаблоне.Оригинал выглядит вот таким образом.



У меня получилось вот такое



Таблица стилей из шаблона Joomla


Код:
ul#mainlevel-nav {
/* list-style : none;
padding : 0;
margin : 0;
font-size : 11px;
padding-left: 10px;
margin-right: 10px; */
margin: 0;
padding: 0;
float: left;
font:11px Tahoma;
border: 0px;
height: 31px;
border:5px solid White;
}
ul#mainlevel-nav li {
/* text-align:center;
background-image:none;
font-weight : bold;
float : right;
margin : 0 auto;
padding : 0;
font-size : 11px;
height : 26px;
line-height : 26px;
white-space : nowrap;
background-color: transparent; */
display: inline;
}
ul#mainlevel-nav li a {
text-align : center;
font-weight:normal;
font-size : 11px;
display : block;
padding-left : 7px;
padding-right : 7px;
text-decoration:none;
text-transform:uppercase;
border-left: 1px solid #222;
letter-spacing: 2px;
background-image : url(../images/nav.gif);
background-repeat:repeat-x;

}
#buttons > ul#mainlevel-nav li a {
/* width : auto; */
float: left;
color: #bbbbbb;
text-shadow: 0.1em 0.1em 0.05em #000000;
padding: 9px 11px;
text-decoration: none;
}
ul#mainlevel-nav li a:hover {
text-decoration:none;
background-image : url(../images/nav_hover.gif);
background-repeat:repeat-x;
}
ul#mainlevel-nav li a#active_menu-nav {
/* font-size: 12px; */
background-image : url(../images/hovo40k.png);
/* background-repeat:repeat-x; */
color: #a0a0a0;
}
ul#mainlevel-nav li a#active_menu-nav:hover {
text-decoration : line-through;
}
Автор: Itto
Дата сообщения: 30.01.2013 18:42
Diman19
1. Для чего был создан - как Вы говорите Ваш шаблон и как Вы его переносите под Joomla ?
2. В указанных вами CSS стилях - половина закомментирована - скорее всего в этом причина того что меню все сьехало в одну строчку.
в CSS все что находится между /* */ не обрабатывается
3. Точную ошибку по вашим данным установить невозможно - дайте ссылку на сайт в интернете ..
Автор: Diman19
Дата сообщения: 30.01.2013 20:26
Шаблон писался для системы Ucoz.Переношу под Joomla переписывая похожий шаблон Joomla под тот шаблон который был написан под Ucoz.Закоментированны стандартные стили.Если их раскоментировать ничего не изменится вероятнее всего ошибка где-то в самих стилях шаблона..В интернете сайта нету.Сайт установлен на локалке.

Вот оригинальный файл стилей шаблона Joomla
[more]
Код:
@charset "utf-8";

html {
    height : 101%;
}
body {
    font-family: Arial, Helvetica, Sans-Serif;
    font-size: 11px;
    color: #fff;
    background-color: #000;
    background-image:url('../images/bg.jpg');
    background-position:center top;}
#wrapper {
    max-width: 1200px;
    min-width: 998px;
    margin: 0 auto;
    background-color: transparent;
    background-color:#292929;
    border-left: 1px solid #555;
    border-right: 1px solid #555;
}
#masthead {
height: 220px;
    margin:auto;
    background-image:url('../images/header.jpg');
    background-position: center top;
    background-repeat:no-repeat;
    background-color: transparent;    
}
#sitetitle {
    font-size: 24px;
    text-align: left;
    color: #c4f400;
    padding: 125px 0 0 100px;
    text-transform:uppercase;
}
/* Im Container stellt man die Breite ein */
#container {
    text-align:left;
    padding: 0;
    margin:auto;
    background-image : url(../images/container.jpg);
    background-position:center top;    
}
#container2 {
    text-align:left;
    background-color: transparent;
    margin:auto;
}
/* Suche */
#search {
    float: right;
    background-image: url(../images/search.gif);
    background-repeat: no-repeat;
    width: 197px;
    height: 20px;
}
#search_inner {
    margin: 5px 0 7px 45px;
}
#search_inner input,
#search_inner .inputbox {
    float: left;
    margin: 0;
    border: none;
    padding: 0;
    border: 1px solid #444;
    border-top: 1px solid #222;
}
#search_inner .inputbox:hover {
    color: #DFFA70;
}
/* Navigation oben quer */
#navigation {
    background-image:url('../images/navigation.gif');
    overflow: hidden;
    height: 30px;
margin:auto;
    text-align:center;
    padding:0;
    margin: 10px 0 10px 0;
}
#user_modules1 {
    width: 100%;
    float:left;
    margin: 0;
    padding:0;
    height: auto;
    background-color: transparent;
    border:none;
    margin-top: 10px;
    margin-bottom: 10px;
}
#user1 {
    width: 45%;
    float:left;
    min-height: 100px;
    overflow:hidden;
    background-image:url('../images/user_bg.jpg');
    background-position: center top;
    background-repeat: no-repeat;
    margin: 0 10px 0 10px;
    background-color: #292929;
    border-left: 1px solid #444;
    border-right: 1px solid #444;
    border-bottom: 1px solid #444;
}
#user2 {
    width: 45%;
    float:right;
    min-height: 100px;
    overflow:hidden;
    background-image:url('../images/user_bg.jpg');
    background-position: center top;
    background-repeat: no-repeat;
    margin: 0 10px 0 10px;
    background-color: #292929;
    border-left: 1px solid #444;
    border-right: 1px solid #444;
    border-bottom: 1px solid #444;
}
#top {
    width: auto;
    float:left;
    padding: 0;
    margin-bottom: 5px;
    background-image:url('../images/user_bg.jpg');
    background-position: center top;
    background-repeat: no-repeat;
    margin: 10px 10px 0 10px;
    background-color: #292929;
    border-left: 1px solid #444;
    border-right: 1px solid #444;
    border-bottom: 1px solid #444;
}
#content_outer {
    background: #333;
    border-left: 1px solid #222;    
    border-right: 1px solid #222;
}
#page_content {
    padding: 0px;
    margin: 3px 0 0 0;
    width: 100%;
}

#left_outer {
    float : left;
    width : 160px;
    margin : 0;
    padding : 0;
}
#left_top {
    background-image : url(../images/left_top.gif);
    background-repeat : no-repeat;
    float : left;
    width : 160px;
    height : 25px;
    padding : 0;
    margin : 0;
    background-color:#292929;
}
#left_inner {
    float : none;
    font-size : 11px;
    padding: 2px 8px 2px 2px;
    width : 150px;
}
#left_inner_float {
    width : 160px;
    float : left;
    background-image : url(../images/left.gif);
    background-repeat : repeat-y;
    background-position:right top;
    background-color:#333;
}
#left_bottom {
    background-image : url(../images/left_bottom.gif);
    background-repeat : no-repeat;
    float : left;
    width : 160px;
    height : 25px;
    background-color:#292929;
}
#right_outer {
    float : right;
    width : 160px;
    padding : 0;
    margin : 0;
}
#right_top {
    background-image : url(../images/right_top.gif);
    background-repeat : no-repeat;
    float : left;
    width : 160px;
    height : 25px;
    background-color:#292929;
}
#right_inner {
    float : none;
    font-size : 11px;
    padding: 2px 2px 2px 8px;
    width : 150px;
}
#right_inner_float {
    width : 160px;
    float : left;
    background-image : url(../images/right.gif);
    background-repeat : repeat-y;
    background-color:#333;
}
#right_bottom {
    background-image : url(../images/right_bottom.gif);
    background-repeat : no-repeat;
    float : left;
    width : 160px;
    height : 25px;
    background-color:#292929;
}
/* content_outleft + content_outleft + content_outleft steuern das margin left und right via phpscript in der index.php */
#content_outleft {
    margin: 0 0 0 170px;
}
#content_outmiddle {
    margin: 0 170px;
}
#content_outright {
    margin: 0 170px 0 0;
}
#content {
    float:left;
    padding: 10px;
    padding-bottom: 30px;
    min-height: 400px;
    background-image : url(../images/content.jpg);
    background-position:center top;
    width: 98%;
}
#content_up {
    width: 100%;
    height: 25px;
    padding:0;
    margin:0;
    background:#292929;
}
#content_up_left {
    float: left;
    background-color: transparent;
    background-image:url('../images/content_up_left.gif');
    background-repeat: repeat-x;
    width: 100%;
    height: 25px;
    padding:0;
    margin:0;
}
#content_up_right {
    background-color: transparent;
    background-image:url('../images/content_up_right.gif');
    background-position: right top;
    background-repeat:no-repeat;
    float:right;
    width: 200px;
    height: 25px;
    padding:0;
    margin:0;
}
#content_down {
    width: 100%;
    height: 25px;
    margin:0;
    padding:0;
    background:#292929;
}
#content_down_left {
    float: left;
    background-color: transparent;
    background-image:url('../images/content_down_left.gif');
    background-repeat: repeat-x;
    width: 100%;
    height: 25px;
    padding:0;
    margin:0;
}
#content_down_right {
    background-color: transparent;
    background-image:url('../images/content_down_right.gif');
    background-position: right top;
    background-repeat:no-repeat;
    float:right;
    width: 100px;
    height: 25px;
    padding:0;
    margin:0;
}

#breadcrumbs {
    float:left;
    height: 25px;
    line-height:25px;
    width: auto;
    max-width: 700px;
    overflow : hidden;
    font-weight : normal;
    font-variant : small-caps;
    margin: 2px 0 0 10px;
    padding-left: 20px;
}
#breadcrumbs span {
    padding:0;
}

#breadcrumbs a {
    text-decoration : none;
}
#breadcrumbs a:hover {
    text-decoration : none;
}

.clr {
    clear:both;
}

#footer {
    clear: both;
    width: 100%;
    min-height: 80px;
    overflow: hidden;
    padding: 7px 0 7px 0;
    margin: 10px 0 0 0;
    text-align:center;
    overflow:hidden;
    background-image:url('../images/footer.gif');
    background-position: center top;    
    background-repeat:no-repeat;
}
#footer p {
    font-size: x-small;
}
#footer a {
    border:none;
    color: #888;
    text-decoration: underline;
}
#footer a:hover {
    text-decoration: none;
}
#copyright_info {
    clear: both;
    font-size: 10px;
    padding:0;
    margin:0;
    text-align:center;
    overflow:hidden;
}
#copyright_info p {
    color:#fff;
    font-size: 10px;
    padding: 5px 20px 5px 20px;
    margin:0;
    text-align:center;
}
#designed_by {
    color: #555;
    clear: both;
    padding:0;
    margin:0;
    text-align:center;
    background-image:url('../images/designed_by.jpg');
    background-position: center;
    background-repeat:no-repeat;
}
#designed_by p {
    font-size: 9px;
    margin:0;
    text-align:center;
}    
#designed_by a {
    color: #555;
    text-decoration:none;
}
#designed_by a:hover {
    color: #c4f400;
}
#date {
    text-align: center;
    font-size:11px;
    width: auto;
    background-color: transparent;
    height: 20px;
    line-height:20px;
    overflow:hidden;
}
#date p {
    color: #DFFA70;
    font-size:11px;
    width: 180px;
    height: 15px;
    line-height: 15px;
    margin: 0 auto;
    margin-top:5px;
}
h1,h2,h3,h4,h5,h6 {
    text-decoration:underline;
    font-family: Arial, Helvetica, Sans-Serif;
}
ul, ol, li {
    margin : 0;
    padding : 0;
}
ul, ol {
    margin : 10px 0;
    padding-left : 10px;
}
ol li {
    list-style-type : decimal;
    line-height : 14px;
}
ul {
    margin : 5px;
    padding : 2px;
    list-style : none;
}
li {
    text-align : left;
    line-height : 14px;
    list-style-type : none;
}
li:hover {
    text-align : left;
    line-height : 14px;
}
td {
    text-align : left;
    margin : 0;
    padding : 0;
}
a, a:link, a:visited, a:active, a:focus {
    color: #efefef;
    outline : none;
    text-decoration : underline;
}
a:hover {
    color: #c4f400;
    text-decoration : none;
}
table.contentpaneopen {
    width : 98%;
}
table.contentpane {
    width : 98%;
    padding : 6px;
    margin : 6px;
}
table.searchinto {
    width : 100%;
}
table.moduletable {
    width : 100%;
    margin : 0;
    padding : 0;
}
/* sitetitle, menu_oben, top, rechts menü */
div.moduletable {
    margin-bottom: 10px;
    padding-bottom : 10px;
    overflow: hidden;
}
div.moduletable_text {
    margin-bottom: 10px;
    padding-bottom : 10px;
    overflow: hidden;
}
#left_inner div.moduletable_text, #left_inner div.moduletable, #right_inner div.moduletable_text, #right_inner div.moduletable {
    margin-bottom: 10px;
    padding-bottom : 10px;
    overflow: hidden;
    background-image : url(../images/module_bg.gif);
    background-repeat:no-repeat;
    background-position:center bottom;
}
div.banneritem_text {
    padding: 0 3px 0 3px;
    margin: 0;
    overflow: hidden;
}

.style_bold {
    font-weight: bold;
}
.style_italic {
    font-style: italic;
}
#top div.moduletable h3, #user1 div.moduletable h3, #user2 div.moduletable h3, #user5 div.moduletable h3, #user6 div.moduletable h3 {
    background-image : url(../images/user_h3.gif);
    background-repeat : repeat-x;
    text-align : left;
    height : 30px;
    line-height : 30px;
    padding:0;
    margin :0;
    overflow : hidden;
    font-weight:normal;
    border:none;
    font-size : 13px;
    font-variant:normal;
    text-decoration: none;
    background-color: #292929;
    padding-left: 25px;
}
/* z.b. modul werbung*/
table.moduletable th, .moduletable_text h3 {
    text-align : left;
    font-weight : normal;
    height : 30px;
    line-height : 30px;
    font-size : 13px;
    margin :0;
    overflow : hidden;
    padding:0;
    margin-bottom: 10px;
    font-variant:small-caps;
    text-decoration: none;
    background-image : url(../images/module_h3.gif);
    background-repeat:no-repeat;
    background-color: #292929;
    padding-left: 25px;
}
div.moduletable h3{
    text-align : left;
    font-weight : normal;
    height : 30px;
    line-height : 30px;
    font-size : 13px;
    padding:0;
    margin :0;
    margin-bottom: 10px;
    overflow : hidden;
    font-variant:small-caps;
    text-decoration: none;
    background-image : url(../images/module_h3.gif);
    background-repeat:no-repeat;
    background-color: #292929;
    padding-left: 25px;
}
/* z.b. modul umfrage, template chooser, wer ist online..*/
#left_inner div.moduletable h3, #right_inner div.moduletable h3 {
    text-align : left;
    font-weight : normal;
    height : 30px;
    line-height : 30px;
    font-size : 13px;
    padding:0;
    margin :0;
    margin-bottom: 10px;
    overflow : hidden;
    font-variant:small-caps;
    text-decoration: none;
    background-image : url(../images/module_h3.gif);
    background-repeat:no-repeat;
    background-color: #292929;
    padding-left: 25px;
}
/* breite des hauptmenüs h3 */
.moduletable_menu h3 {
    text-align : left;
    font-weight : normal;
    height : 30px;
    line-height : 30px;
    font-size : 13px;
    padding:0;
    margin :0;
    overflow : hidden;
    font-variant:small-caps;
    text-decoration: none;
    background-image : url(../images/module_h3.gif);
    background-repeat:no-repeat;
    background-color: #292929;
    padding-left: 25px;
}

/* breite des hauptmenüs */
.moduletable_menu {
    overflow:hidden;
    margin-bottom: 10px;
    background-image : url(../images/module_bg.gif);
    background-repeat:no-repeat;
    background-position:center bottom;
    padding-bottom : 10px;
}
.moduletable_menu ul.menu {
    list-style : none;
    background : none;
    margin: 0;
}
.moduletable_menu ul.menu li {
    margin : 0;
    padding : 0;
    list-style : none;
    background : none;
}
.moduletable_menu ul.menu li a {
    display : block;
    vertical-align : middle;
    font-size : 11px;
    text-align : left;
    height : 22px;
    line-height : 22px;
    text-decoration : none;
    padding:0;
    margin: 0;
    background-image : url(../images/menu.jpg);
    background-repeat : no-repeat;
    border-bottom: 1px solid #222;
    padding-left: 10px;
}
.moduletable_menu ul.menu li a span {
    background : none;
}
.moduletable_menu ul.menu li a:hover, .moduletable_menu ul.menu li a:active, .moduletable_menu ul.menu li a:focus {
    text-decoration : none;
    color: #c4f400;
    text-align : left;
    background-image : url(../images/menu_hover.jpg);
    background-repeat : no-repeat;
}
.moduletable_menu ul.menu li.active a {
    background-image : url(../images/menu_hover.jpg);
    background-repeat : no-repeat;
    text-decoration : none;
    color: #c4f400;
    text-align : left;
}
.moduletable_menu ul.menu li.active a:hover {
    text-decoration: none;
}
.moduletable_menu ul.menu li.active a span {
}
.moduletable_menu ul.menu li li a span {
    list-style : none;
}
.moduletable_menu ul.menu li ul {
    margin : 0;
    padding : 0;
    list-style : none;
}
.moduletable_menu ul.menu li li {
    list-style : none;
}
.moduletable_menu ul.menu li li a {
    list-style : none;
    vertical-align : middle;
    text-align : left;
    text-decoration : none;
    height : 22px;
    padding-left: 28px;
    overflow:hidden;
}
.moduletable_menu ul.menu li li a:hover, .moduletable_menu ul.menu li li a:active, .moduletable_menu ul.menu li li a:focus {
    list-style : none;
    background : none;
    text-decoration : none;
}
.moduletable_menu ul.menu li li.active a {
    list-style : none;
    background : none;
    text-decoration : none;
}
.moduletable_menu ul.menu li li a span {
    list-style : none;
    background : none;
}
.moduletable_menu ul.menu li li li a span {
    padding-left: 10px;
}
.componentheading {
    background-image : url(../images/sep.gif);
    background-repeat:repeat-x;
    background-position:left bottom;
    height : 30px;
    line-height : 30px;
    overflow: hidden;
    color: #c4f400;
    font-size : 13px;
    text-transform:uppercase;
    font-weight:normal;
    text-align:center;
}
.contentheading {
    font-size : 13px;
    height : 16px;
    line-height : 16px;
    font-variant : small-caps;
    color: #5DE000;
    padding-left: 30px;
    background-image : url(../images/contentheading.jpg);
    background-repeat: no-repeat;
    background-position:left top;    
}
.pagenav {
    text-transform:uppercase;
    text-align : center;
    font-size : 12px;
    padding : 3px 5px 2px 5px;
    margin : 5px 1px 5px 1px;
    color: #fff;
    border : 1px solid #222;
    background-image : url(../images/button_bg.gif);
    background-repeat:repeat-x;
    background-position:center top;
}
a.pagenav {
    color: #fff;
}
.pagenav a:hover {
    color: #000;
    text-decoration : none;
}
.pagenav_next {
    text-decoration : none;
}
.pagenav_next a:hover {
    color: #b5d72b;
    text-decoration : none;
}
.pagenav_prev {
    text-decoration : none;
}
.pagenav_prev a:hover {
    color: #b5d72b;
    text-decoration : none;
}
.blog {
    width : 100%;
}
.blog_more {
    margin : 10px 5px 20px 5px;
}
.blog_more strong {
    margin : 2px;
    display : block;
    font-size : 14px;
    font-weight : bold;
    text-decoration:underline;
    padding-left: 3px;
    text-transform:uppercase;
}
.blog_more ul {
    margin : 5px;
    padding : 0;
}
.blog_more ul li {
    text-align : left;
    line-height : 14px;
    padding-left : 18px;
}
.article_separator {
    clear : both;
    display : block;
    height : 10px;
    margin-bottom : 30px;
    background-image : url(../images/sep.gif);
    background-repeat:repeat-x;
    background-position:left bottom;
}
.article_column {
    padding : 10px;
    margin : 5px;
}
.article_column column_separator {
    padding : 10px;
    margin : 5px;
}
.article-tools {
    width : 100%;
    float : left;
    clear : both;
    margin-bottom : 15px;
    display : block;
    background-color: #fbfcf8;
}
.article-meta {
    padding : 5px;
    width : 80%;
    float : left;
}
.button {
    color: #fff;
    background-image : url(../images/button_bg.gif);
    background-position:center top;
    text-align : center;
    font-size : 10px;
    border : 1px solid #222;
    padding : 2px 3px 2px 3px;
    margin : 2px 3px 2px 3px;
    background-color: #222;
}
.button:hover {
    color: #c4f400;
    border : 1px solid #222;
}
.validate {
    height: 20px;
    line-height: 20px;
    color: #fff;
    background-image : url(../images/button_bg.gif);
    background-position:center top;
    text-align : center;
    font-size : 10px;
    border : 1px solid #222;
}
.validate:hover {
    color: #c4f400;
    border : 1px solid #222;
}
.invalid {
    border-color: #666;
}
label.invalid {
    color: #ff0000;
    text-decoration:blink;
}
.back_button {
    height: 22px;
    line-height: 22px;
    background-image : url(../images/button_bg.gif);
    background-position:center top;
    text-align : center;
    font-size : 11px;
    color: #fff;
    border : 1px solid #222;
}
.back_button:hover {
    color: #c4f400;
    border : 1px solid #222;
}
.back_button a:link {
    text-decoration : none;
}
.back_button a:visited {
    text-decoration : none;
}
.back_button a:hover {
    text-decoration : none;
}
#form-login .input {
    padding : 2px;
    margin : 2px;
    background : none;
    border : none;
    font-size : 11px;
}
form {
    margin : 0;
    padding : 0;
    border : none;
}
#form-login {
    border : none;
    padding: 5px;
}
#form-login ul {
    padding : 0;
    margin : 0;
    list-style : none;
}
#form-login li {
    margin : 0;
    padding:0;
    background : none;
    list-style : none;
}
#form-login li a {
    font-size : 11px;
}
#form-login li a:hover {
    font-size : 11px;
}
#form-login .input {
    margin:0;
    padding:0;
}
.inputbox {
    color: #fff;
    border : 1px solid #444;
    border-top: 1px solid #222;
    background-color: #222;
    font-size : 11px;
}
.inputbox:hover {
    border : 1px solid #444;
    border-top: 1px solid #222;    
    background-color: #333;
}
input {
    border : 1px solid #222;
    font-size : 11px;
}
input:hover {
    border : 1px solid #333;
}
.sectiontableheader {
    border : 1px solid #333;
    background-color: #222;
    text-align : left;
    text-transform : none;
    margin : 0;
    padding : 2px;
    height : 30px;
}
.sectiontablefooter {
    padding : 2px;
    margin : 0;
    text-align : left;
    text-transform : none;
    background-color: #0a0f15;
}
.sectiontableentry0 {
    border-bottom : 1px solid #fff;
    background-color: #292929;
    text-align : left;
}
.sectiontableentry1 {
    border-bottom : 1px solid #fff;
    background-color: #222;
    text-align : left;
}
.sectiontableentry2 {
    border-bottom : 1px solid #fff;
    background-color: #292929;
    text-align : left;
}
.sectiontableentry1 td {
    padding : 2px 5px 2px 5px;
    margin : 1px;
}
.sectiontableentry2 td {
    padding : 2px 5px 2px 5px;
    margin : 1px;
}
.sectiontableentry0 td {
    padding : 2px 5px 2px 5px;
    margin : 1px;
}
h1 {
    font-weight : bold;
    font-size : 24px;
    line-height : 26px;
    font-weight : normal;
}
h2 {
    font-size : 20px;
    line-height : 22px;
    font-weight : normal;
}
h3 {
    font-size : 18px;
    line-height : 20px;
    font-weight : normal;
}
h4 {
    font-size : 16px;
    line-height : 18px;
    font-weight : bold;
}
h5 {
    font-size : 14px;
    line-height : 16px;
    font-weight : bold;
}
h6 {
    font-size : 12px;
    line-height : 14px;
    font-weight : bold;
}
.contact_email {
    padding : 5px;
    margin : 5px;
}
#component-contact {
    margin-top : 10px;
}
.hasTip {
    margin: 5px;
    background-color: transparent;
    border: none;
}
.tool-tip {
    float : left;
    background : #202020;
    padding : 5px;
    max-width : 200px;
}
.tool-title {
    padding : 0;
    margin : 0;
    font-size : 100%;
    font-weight : bold;
    margin-top : -15px;
    padding-top : 15px;
    padding-bottom : 5px;
    background-repeat : no-repeat;
}
.tool-text {
    font-size : 100%;
    margin : 0;
}
table.paramlist {
    margin-top : 5px;
}
table.paramlist td.paramlist_key {
    width : 128px;
    text-align : left;
    height : 30px;
}
div.message {
    font-weight : bold;
    font-size : 14px;
    text-align : center;
    width : auto;
    background-color: #202020;
    margin : 3px 0 10px;
    padding : 3px 20px;
}
.pagination span {
    padding : 2px;
}
.pagination a {
    padding : 2px;
}
img {
    border : none;
    padding: 2px 5px 2px 5px;
}
div.mosimage {
    border : 2px solid #fff;
    background-color: #cdab71;
}
.mosimage {
    margin : 0;
    background-color: #cdab71;
}
.mosimage_caption {
    margin-top : 0;
    background-color: #cdab71;
    padding : 0;
    font-size : 10px;
}
a img.calendar {
    width: 16px;
    height: 16px;
    margin-left: 3px;
    cursor: pointer;
    vertical-align: middle;
}
.error {
    font-style : italic;
    text-transform : uppercase;
    padding : 5px;
    color: #ff0000;
    font-size : 12px;
}
#system-message {
    margin : 10px;
}
#system-message dd.message ul {
    border-top : 2px solid #fff;
    border-bottom : 2px solid #fff;
    margin : 5px;
    padding-left : 40px;
    text-indent : 0;
}
#system-message dd.error ul {
    border-top : 2px solid #fff;
    border-bottom : 2px solid #fff;
    margin : 5px;
    padding-left : 40px;
    text-indent : 0;
}
#system-message dd.notice ul {
    border-top : 2px solid #fff;
    border-bottom : 2px solid #fff;
    margin : 5px;
    padding-left : 40px;
    text-indent : 0;
}
.small {
    font-family : Arial, Helvetica, sans-serif;
    color: #DFFA70;
    font-size : 9px;
}
.createdate {
    font-family : Arial, Helvetica, sans-serif;
    font-size : 9px;
    color: #DFFA70;
}
.modifydate {
    font-family : Arial, Helvetica, sans-serif;
    color: #DFFA70;
    font-size : 9px;
}
.highlight {
    background-color: #222;
    color: #ff0000;
    padding : 0;
}
.code {
    background-color: #DFFA70;
    border : 1px solid #bbb;
}
fieldset {
    margin : 10px;
    padding : 10px;
    border : 1px solid #fff;
}
/* Formatvorlagen für die Navigation-Oben */
ul#mainlevel-nav {
    list-style : none;
    padding : 0;
    margin : 0 auto;
    font-size : 11px;
    padding-left: 10px;
    margin-right: 10px;
}
ul#mainlevel-nav li {
text-align:center;
    background-image:none;
    font-weight : bold;
    float : right;
    margin : 0 auto;
    padding : 0;
    font-size : 11px;
    height : 26px;
    line-height : 26px;
    white-space : nowrap;
    background-color: transparent;
}
ul#mainlevel-nav li a {
    text-align : center;
    font-weight:normal;
    font-size : 11px;
    display : block;
    padding-left : 7px;
    padding-right : 7px;
    text-decoration:none;
    text-transform:uppercase;
    border-left: 1px solid #222;
    letter-spacing: 2px;
    background-image : url(../images/nav.gif);
    background-repeat:repeat-x;
}
#buttons > ul#mainlevel-nav li a {
    width : auto;
}
ul#mainlevel-nav li a:hover {
    text-decoration:none;
    background-image : url(../images/nav_hover.gif);
    background-repeat:repeat-x;
}
ul#mainlevel-nav li a#active_menu-nav {
    font-size: 12px;
    background-image : url(../images/nav_hover.gif);
    background-repeat:repeat-x;
}
ul#mainlevel-nav li a#active_menu-nav:hover {
    text-decoration : line-through;
}

table.poll {
    padding : 0;
    width : 100%;
    border-collapse : collapse;
}
table.pollstableborder {
    padding : 0;
    width : 100%;
    border : 1px solid #333;
    text-align : left;
}
table.pollstableborder img {
    vertical-align : baseline;
    padding-left : 10px;
}
table.pollstableborder td {
    padding : 2px;
    border-collapse : collapse;
    border-spacing : 0;
}
table.pollstableborder tr.sectiontableentry1 td {
    margin : 1px;
    padding : 2px 5px 2px 5px;
}
table.pollstableborder tr.sectiontableentry2 td {
    margin : 1px;
    padding : 2px 5px 2px 5px;
}
table.pollstableborder tr.sectiontableentry0 td {
    margin : 1px;
    padding : 2px 5px 2px 5px;
}
object {
    outline:none;
}
.button2-left {
    float:left;
    padding: 10px;
}
Автор: Itto
Дата сообщения: 30.01.2013 22:14
Diman19

Цитата:
В интернете сайта нету. Сайт установлен на локалке.

тогда я пасс - я Вам не веб сервер чтоб читать все это и говорить где ошибка
На локальной машине - разбирайтесь сами.
Автор: abvrn
Дата сообщения: 31.01.2013 22:16
[more] Здравствуйте. Пытаюсь написать модуль для вывода материалов с максимальным рейтингом из каждой категории. Есть таблица table. В этой таблице есть столбцы: id, title (название статьи), votes (количество голосов за статью), description, foto и т.д.
Пишу всё для joomla 2.5.
Создал файл helper.php:

Код: <?php
defined('_JEXEC') or die('(@)|(@)');

class modmax
{
public static function getList(&$params)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('title');
$query->from('table');

$db->setQuery($query, 0, 1);
$list = $db->loadObjectList();

return $list;
}

}
?>

Есть файл mod_max.php:
<?php

defined('_JEXEC') or die('(@)|(@)');


require_once dirname(__FILE__).'/helper.php';

$list = modmax::getList($params);

require JModulemax::getLayoutPath('mod_max', $params->get('layout', 'default'));

echo ' ';
?> [/more]
Автор: ruslanprono
Дата сообщения: 04.02.2013 20:45
[more] Доброго времени суток, товарищи! Обогнул практичесски весь руГугл в поиске ответа на данный вопрос, но так и не нашел толком ничего (((, а с английским у меня плоховато.
Помогите кто чем может. Есть Джумла 2.5 и (сторонний) плагин jQuery File Upload. В плагине есть файл uploadheader.php:
[more]
Код: <?php
/*
* jQuery File Upload Plugin PHP Class 6.1.2
* https://github.com/blueimp/jQuery-File-Upload
*
* Copyright 2010, Sebastian Tschan
* https://blueimp.net
*
* Licensed under the MIT license:
* http://www.opensource.org/licenses/MIT
*/

class UploadHandler
{
protected $options;
// PHP File Upload error message codes:
// http://php.net/manual/en/features.file-upload.errors.php
protected $error_messages = array(
1 => 'The uploaded file exceeds the upload_max_filesize directive in php.ini',
2 => 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form',
3 => 'The uploaded file was only partially uploaded',
4 => 'No file was uploaded',
6 => 'Missing a temporary folder',
7 => 'Failed to write file to disk',
8 => 'A PHP extension stopped the file upload',
'post_max_size' => 'The uploaded file exceeds the post_max_size directive in php.ini',
'max_file_size' => 'File is too big',
'min_file_size' => 'File is too small',
'accept_file_types' => 'Filetype not allowed',
'max_number_of_files' => 'Maximum number of files exceeded',
'max_width' => 'Image exceeds maximum width',
'min_width' => 'Image requires a minimum width',
'max_height' => 'Image exceeds maximum height',
'min_height' => 'Image requires a minimum height'
);

function __construct($options = null, $initialize = true) {
$this->options = array(
'script_url' => $this->get_full_url().'/',
'upload_dir' => dirname($_SERVER['SCRIPT_FILENAME']).'/files/'.date('Y-n-j').'/',
'upload_url' => $this->get_full_url().'/files/'.date('Y-n-j').'/',
'user_dirs' => true,
'mkdir_mode' => 0755,
'param_name' => 'files',
// Set the following option to 'POST', if your server does not support
// DELETE requests. This is a parameter sent to the client:
'delete_type' => 'DELETE',
'access_control_allow_origin' => '*',
'access_control_allow_credentials' => false,
'access_control_allow_methods' => array(
'OPTIONS',
'HEAD',
'GET',
'POST',
'PUT',
'PATCH',
'DELETE'
),
'access_control_allow_headers' => array(
'Content-Type',
'Content-Range',
'Content-Disposition'
),
// Enable to provide file downloads via GET requests to the PHP script:
'download_via_php' => false,
// Defines which files can be displayed inline when downloaded:
'inline_file_types' => '/\.(gif|jpe?g|png)$/i',
// Defines which files (based on their names) are accepted for upload:
'accept_file_types' => '/.+$/i',
// The php.ini settings upload_max_filesize and post_max_size
// take precedence over the following max_file_size setting:
'max_file_size' => null,
'min_file_size' => 1,
// The maximum number of files for the upload directory:
'max_number_of_files' => null,
// Image resolution restrictions:
'max_width' => null,
'max_height' => null,
'min_width' => 1,
'min_height' => 1,
// Set the following option to false to enable resumable uploads:
'discard_aborted_uploads' => true,
// Set to true to rotate images based on EXIF meta data, if available:
'orient_image' => false,
'image_versions' => array(
// Uncomment the following version to restrict the size of
// uploaded images:
/*
'' => array(
'max_width' => 1920,
'max_height' => 1200,
'jpeg_quality' => 95
),
*/
// Uncomment the following to create medium sized images:
/*
'medium' => array(
'max_width' => 800,
'max_height' => 600,
'jpeg_quality' => 80
),
*/
'thumbnail' => array(
'max_width' => 80,
'max_height' => 80
)
)
);
if ($options) {
$this->options = array_merge($this->options, $options);
}
if ($initialize) {
$this->initialize();
}
}

protected function initialize() {
switch ($_SERVER['REQUEST_METHOD']) {
case 'OPTIONS':
case 'HEAD':
$this->head();
break;
case 'GET':
$this->get();
break;
case 'PATCH':
case 'PUT':
case 'POST':
$this->post();
break;
case 'DELETE':
$this->delete();
break;
default:
$this->header('HTTP/1.1 405 Method Not Allowed');
}
}

protected function get_full_url() {
$https = !empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off';
return
($https ? 'https://' : 'http://').
(!empty($_SERVER['REMOTE_USER']) ? $_SERVER['REMOTE_USER'].'@' : '').
(isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ($_SERVER['SERVER_NAME'].
($https && $_SERVER['SERVER_PORT'] === 443 ||
$_SERVER['SERVER_PORT'] === 80 ? '' : ':'.$_SERVER['SERVER_PORT']))).
substr($_SERVER['SCRIPT_NAME'],0, strrpos($_SERVER['SCRIPT_NAME'], '/'));
}

protected function get_user_id() {
@session_start();
return session_id();
}

protected function get_user_path() {
if ($this->options['user_dirs']) {
return $this->get_user_id().'/';
}
return '';
}

protected function get_upload_path($file_name = null, $version = null) {
$file_name = $file_name ? $file_name : '';
$version_path = empty($version) ? '' : $version.'/';
return $this->options['upload_dir'].$this->get_user_path()
.$version_path.$file_name;
}

protected function get_query_separator($url) {
return strpos($url, '?') === false ? '?' : '&';
}

protected function get_download_url($file_name, $version = null) {
if ($this->options['download_via_php']) {
$url = $this->options['script_url']
.$this->get_query_separator($this->options['script_url'])
.'file='.rawurlencode($file_name);
if ($version) {
$url .= '&version='.rawurlencode($version);
}
return $url.'&download=1';
}
$version_path = empty($version) ? '' : rawurlencode($version).'/';
return $this->options['upload_url'].$this->get_user_path()
.$version_path.rawurlencode($file_name);
}

protected function set_file_delete_properties($file) {
$file->delete_url = $this->options['script_url']
.$this->get_query_separator($this->options['script_url'])
.'file='.rawurlencode($file->name);
$file->delete_type = $this->options['delete_type'];
if ($file->delete_type !== 'DELETE') {
$file->delete_url .= '&_method=DELETE';
}
if ($this->options['access_control_allow_credentials']) {
$file->delete_with_credentials = true;
}
}

// Fix for overflowing signed 32 bit integers,
// works for sizes up to 2^32-1 bytes (4 GiB - 1):
protected function fix_integer_overflow($size) {
if ($size < 0) {
$size += 2.0 * (PHP_INT_MAX + 1);
}
return $size;
}

protected function get_file_size($file_path, $clear_stat_cache = false) {
if ($clear_stat_cache) {
clearstatcache(true, $file_path);
}
return $this->fix_integer_overflow(filesize($file_path));

}

protected function is_valid_file_object($file_name) {
$file_path = $this->get_upload_path($file_name);
if (is_file($file_path) && $file_name[0] !== '.') {
return true;
}
return false;
}

protected function get_file_object($file_name) {
if ($this->is_valid_file_object($file_name)) {
$file = new stdClass();
$file->name = $file_name;
$file->size = $this->get_file_size(
$this->get_upload_path($file_name)
);
$file->url = $this->get_download_url($file->name);
foreach($this->options['image_versions'] as $version => $options) {
if (!empty($version)) {
if (is_file($this->get_upload_path($file_name, $version))) {
$file->{$version.'_url'} = $this->get_download_url(
$file->name,
$version
);
}
}
}
$this->set_file_delete_properties($file);
return $file;
}
return null;
}

protected function get_file_objects($iteration_method = 'get_file_object') {
$upload_dir = $this->get_upload_path();
if (!is_dir($upload_dir)) {
return array();
}
return array_values(array_filter(array_map(
array($this, $iteration_method),
scandir($upload_dir)
)));
}

protected function count_file_objects() {
return count($this->get_file_objects('is_valid_file_object'));
}

protected function create_scaled_image($file_name, $version, $options) {
$file_path = $this->get_upload_path($file_name);
if (!empty($version)) {
$version_dir = $this->get_upload_path(null, $version);
if (!is_dir($version_dir)) {
mkdir($version_dir, $this->options['mkdir_mode'], true);
}
$new_file_path = $version_dir.'/'.$file_name;
} else {
$new_file_path = $file_path;
}
list($img_width, $img_height) = @getimagesize($file_path);
if (!$img_width || !$img_height) {
return false;
}
$scale = min(
$options['max_width'] / $img_width,
$options['max_height'] / $img_height
);
if ($scale >= 1) {
if ($file_path !== $new_file_path) {
return copy($file_path, $new_file_path);
}
return true;
}
$new_width = $img_width * $scale;
$new_height = $img_height * $scale;
$new_img = @imagecreatetruecolor($new_width, $new_height);
switch (strtolower(substr(strrchr($file_name, '.'), 1))) {
case 'jpg':
case 'jpeg':
$src_img = @imagecreatefromjpeg($file_path);
$write_image = 'imagejpeg';
$image_quality = isset($options['jpeg_quality']) ?
$options['jpeg_quality'] : 75;
break;
case 'gif':
@imagecolortransparent($new_img, @imagecolorallocate($new_img, 0, 0, 0));
$src_img = @imagecreatefromgif($file_path);
$write_image = 'imagegif';
$image_quality = null;
break;
case 'png':
@imagecolortransparent($new_img, @imagecolorallocate($new_img, 0, 0, 0));
@imagealphablending($new_img, false);
@imagesavealpha($new_img, true);
$src_img = @imagecreatefrompng($file_path);
$write_image = 'imagepng';
$image_quality = isset($options['png_quality']) ?
$options['png_quality'] : 9;
break;
default:
$src_img = null;
}
$success = $src_img && @imagecopyresampled(
$new_img,
$src_img,
0, 0, 0, 0,
$new_width,
$new_height,
$img_width,
$img_height
) && $write_image($new_img, $new_file_path, $image_quality);
// Free up memory (imagedestroy does not delete files):
@imagedestroy($src_img);
@imagedestroy($new_img);
return $success;
}

protected function get_error_message($error) {
return array_key_exists($error, $this->error_messages) ?
$this->error_messages[$error] : $error;
}

function get_config_bytes($val) {
$val = trim($val);
$last = strtolower($val[strlen($val)-1]);
switch($last) {
case 'g':
$val *= 1024;
case 'm':
$val *= 1024;
case 'k':
$val *= 1024;
}
return $this->fix_integer_overflow($val);
}

protected function validate($uploaded_file, $file, $error, $index) {
if ($error) {
$file->error = $this->get_error_message($error);
return false;
}
$content_length = $this->fix_integer_overflow(intval($_SERVER['CONTENT_LENGTH']));
$post_max_size = $this->get_config_bytes(ini_get('post_max_size'));
if ($post_max_size && ($content_length > $post_max_size)) {
$file->error = $this->get_error_message('post_max_size');
return false;
}
if (!preg_match($this->options['accept_file_types'], $file->name)) {
$file->error = $this->get_error_message('accept_file_types');
return false;
}
if ($uploaded_file && is_uploaded_file($uploaded_file)) {
$file_size = $this->get_file_size($uploaded_file);
} else {
$file_size = $content_length;
}
if ($this->options['max_file_size'] && (
$file_size > $this->options['max_file_size'] ||
$file->size > $this->options['max_file_size'])
) {
$file->error = $this->get_error_message('max_file_size');
return false;
}
if ($this->options['min_file_size'] &&
$file_size < $this->options['min_file_size']) {
$file->error = $this->get_error_message('min_file_size');
return false;
}
if (is_int($this->options['max_number_of_files']) && (
$this->count_file_objects() >= $this->options['max_number_of_files'])
) {
$file->error = $this->get_error_message('max_number_of_files');
return false;
}
list($img_width, $img_height) = @getimagesize($uploaded_file);
if (is_int($img_width)) {
if ($this->options['max_width'] && $img_width > $this->options['max_width']) {
$file->error = $this->get_error_message('max_width');
return false;
}
if ($this->options['max_height'] && $img_height > $this->options['max_height']) {
$file->error = $this->get_error_message('max_height');
return false;
}
if ($this->options['min_width'] && $img_width < $this->options['min_width']) {
$file->error = $this->get_error_message('min_width');
return false;
}
if ($this->options['min_height'] && $img_height < $this->options['min_height']) {
$file->error = $this->get_error_message('min_height');
return false;
}
}
return true;
}

protected function upcount_name_callback($matches) {
$index = isset($matches[1]) ? intval($matches[1]) + 1 : 1;
$ext = isset($matches[2]) ? $matches[2] : '';
return ' ('.$index.')'.$ext;
}

protected function upcount_name($name) {
return preg_replace_callback(
'/(??: \(([\d]+)\))?(\.[^.]+))?$/',
array($this, 'upcount_name_callback'),
$name,
1
);
}

protected function get_unique_filename($name, $type, $index, $content_range) {
while(is_dir($this->get_upload_path($name))) {
$name = $this->upcount_name($name);
}
// Keep an existing filename if this is part of a chunked upload:
$uploaded_bytes = $this->fix_integer_overflow(intval($content_range[1]));
while(is_file($this->get_upload_path($name))) {
if ($uploaded_bytes === $this->get_file_size(
$this->get_upload_path($name))) {
break;
}
$name = $this->upcount_name($name);
}
return $name;
}

protected function trim_file_name($name, $type, $index, $content_range) {
// Remove path information and dots around the filename, to prevent uploading
// into different directories or replacing hidden system files.
// Also remove control characters and spaces (\x00..\x20) around the filename:
$name = trim(basename(stripslashes($name)), ".\x00..\x20");
// Use a timestamp for empty filenames:
if (!$name) {
$name = str_replace('.', '-', microtime(true));
}
// Add missing file extension for known image types:
if (strpos($name, '.') === false &&
preg_match('/^image\/(gif|jpe?g|png)/', $type, $matches)) {
$name .= '.'.$matches[1];
}
return $name;
}

protected function get_file_name($name, $type, $index, $content_range) {
return $this->get_unique_filename(
$this->trim_file_name($name, $type, $index, $content_range),
$type,
$index,
$content_range
);
}

protected function handle_form_data($file, $index) {
// Handle form data, e.g. $_REQUEST['description'][$index]
}

protected function orient_image($file_path) {
if (!function_exists('exif_read_data')) {
return false;
}
$exif = @exif_read_data($file_path);
if ($exif === false) {
return false;
}
$orientation = intval(@$exif['Orientation']);
if (!in_array($orientation, array(3, 6, 8))) {
return false;
}
$image = @imagecreatefromjpeg($file_path);
switch ($orientation) {
case 3:
$image = @imagerotate($image, 180, 0);
break;
case 6:
$image = @imagerotate($image, 270, 0);
break;
case 8:
$image = @imagerotate($image, 90, 0);
break;
default:
return false;
}
$success = imagejpeg($image, $file_path);
// Free up memory (imagedestroy does not delete files):
@imagedestroy($image);
return $success;
}

protected function handle_file_upload($uploaded_file, $name, $size, $type, $error,
$index = null, $content_range = null) {
$file = new stdClass();
$file->name = $this->get_file_name($name, $type, $index, $content_range);
$file->size = $this->fix_integer_overflow(intval($size));
$file->type = $type;
if ($this->validate($uploaded_file, $file, $error, $index)) {
$this->handle_form_data($file, $index);
$upload_dir = $this->get_upload_path();
if (!is_dir($upload_dir)) {
mkdir($upload_dir, $this->options['mkdir_mode'], true);
}
$file_path = $this->get_upload_path($file->name);
$append_file = $content_range && is_file($file_path) &&
$file->size > $this->get_file_size($file_path);
if ($uploaded_file && is_uploaded_file($uploaded_file)) {
// multipart/formdata uploads (POST method uploads)
if ($append_file) {
file_put_contents(
$file_path,
fopen($uploaded_file, 'r'),
FILE_APPEND
);
} else {
move_uploaded_file($uploaded_file, $file_path);
}
} else {
// Non-multipart uploads (PUT method support)
file_put_contents(
$file_path,
fopen('php://input', 'r'),
$append_file ? FILE_APPEND : 0
);
}
$file_size = $this->get_file_size($file_path, $append_file);
if ($file_size === $file->size) {
if ($this->options['orient_image']) {
$this->orient_image($file_path);
}
$file->url = $this->get_download_url($file->name);
foreach($this->options['image_versions'] as $version => $options) {
if ($this->create_scaled_image($file->name, $version, $options)) {
if (!empty($version)) {
$file->{$version.'_url'} = $this->get_download_url(
$file->name,
$version
);
} else {
$file_size = $this->get_file_size($file_path, true);
}
}
}
} else if (!$content_range && $this->options['discard_aborted_uploads']) {
unlink($file_path);
$file->error = 'abort';
}
$file->size = $file_size;
$this->set_file_delete_properties($file);
}
return $file;
}

protected function readfile($file_path) {
return readfile($file_path);
}

protected function body($str) {
echo $str;
}

protected function header($str) {
header($str);
}

protected function generate_response($content, $print_response = true) {
if ($print_response) {
$json = json_encode($content);
$redirect = isset($_REQUEST['redirect']) ?
stripslashes($_REQUEST['redirect']) : null;
if ($redirect) {
$this->header('Location: '.sprintf($redirect, rawurlencode($json)));
return;
}
$this->head();
if (isset($_SERVER['HTTP_CONTENT_RANGE'])) {
$files = isset($content[$this->options['param_name']]) ?
$content[$this->options['param_name']] : null;
if ($files && is_array($files) && is_object($files[0]) && $files[0]->size) {
$this->header('Range: 0-'.($this->fix_integer_overflow(intval($files[0]->size)) - 1));
}
}
$this->body($json);
}
return $content;
}

protected function get_version_param() {
return isset($_GET['version']) ? basename(stripslashes($_GET['version'])) : null;
}

protected function get_file_name_param() {
return isset($_GET['file']) ? basename(stripslashes($_GET['file'])) : null;
}

protected function get_file_type($file_path) {
switch (strtolower(pathinfo($file_path, PATHINFO_EXTENSION))) {
case 'jpeg':
case 'jpg':
return 'image/jpeg';
case 'png':
return 'image/png';
case 'gif':
return 'image/gif';
default:
return '';
}
}

protected function download() {
if (!$this->options['download_via_php']) {
$this->header('HTTP/1.1 403 Forbidden');
return;
}
$file_name = $this->get_file_name_param();
if ($this->is_valid_file_object($file_name)) {
$file_path = $this->get_upload_path($file_name, $this->get_version_param());
if (is_file($file_path)) {
if (!preg_match($this->options['inline_file_types'], $file_name)) {
$this->header('Content-Description: File Transfer');
$this->header('Content-Type: application/octet-stream');
$this->header('Content-Disposition: attachment; filename="'.$file_name.'"');
$this->header('Content-Transfer-Encoding: binary');
} else {
// Prevent Internet Explorer from MIME-sniffing the content-type:
$this->header('X-Content-Type-Options: nosniff');
$this->header('Content-Type: '.$this->get_file_type($file_path));
$this->header('Content-Disposition: inline; filename="'.$file_name.'"');
}
$this->header('Content-Length: '.$this->get_file_size($file_path));
$this->header('Last-Modified: '.gmdate('D, d M Y H:i:s T', filemtime($file_path)));
$this->readfile($file_path);
}
}
}

protected function send_content_type_header() {
$this->header('Vary: Accept');
if (isset($_SERVER['HTTP_ACCEPT']) &&
(strpos($_SERVER['HTTP_ACCEPT'], 'application/json') !== false)) {
$this->header('Content-type: application/json');
} else {
$this->header('Content-type: text/plain');
}
}

protected function send_access_control_headers() {
$this->header('Access-Control-Allow-Origin: '.$this->options['access_control_allow_origin']);
$this->header('Access-Control-Allow-Credentials: '
.($this->options['access_control_allow_credentials'] ? 'true' : 'false'));
$this->header('Access-Control-Allow-Methods: '
.implode(', ', $this->options['access_control_allow_methods']));
$this->header('Access-Control-Allow-Headers: '
.implode(', ', $this->options['access_control_allow_headers']));
}

public function head() {
$this->header('Pragma: no-cache');
$this->header('Cache-Control: no-store, no-cache, must-revalidate');
$this->header('Content-Disposition: inline; filename="files.json"');
// Prevent Internet Explorer from MIME-sniffing the content-type:
$this->header('X-Content-Type-Options: nosniff');
if ($this->options['access_control_allow_origin']) {
$this->send_access_control_headers();
}
$this->send_content_type_header();
}

public function get($print_response = true) {
if ($print_response && isset($_GET['download'])) {
return $this->download();
}
$file_name = $this->get_file_name_param();
if ($file_name) {
$response = array(
substr($this->options['param_name'], 0, -1) => $this->get_file_object($file_name)
);
} else {
$response = array(
$this->options['param_name'] => $this->get_file_objects()
);
}
return $this->generate_response($response, $print_response);
}

public function post($print_response = true) {
if (isset($_REQUEST['_method']) && $_REQUEST['_method'] === 'DELETE') {
return $this->delete($print_response);
}
$upload = isset($_FILES[$this->options['param_name']]) ?
$_FILES[$this->options['param_name']] : null;
// Parse the Content-Disposition header, if available:
$file_name = isset($_SERVER['HTTP_CONTENT_DISPOSITION']) ?
rawurldecode(preg_replace(
'/(^[^"]+")|("$)/',
'',
$_SERVER['HTTP_CONTENT_DISPOSITION']
)) : null;
// Parse the Content-Range header, which has the following form:
// Content-Range: bytes 0-524287/2000000
$content_range = isset($_SERVER['HTTP_CONTENT_RANGE']) ?
preg_split('/[^0-9]+/', $_SERVER['HTTP_CONTENT_RANGE']) : null;
$size = $content_range ? $content_range[3] : null;
$files = array();
if ($upload && is_array($upload['tmp_name'])) {
// param_name is an array identifier like "files[]",
// $_FILES is a multi-dimensional array:
foreach ($upload['tmp_name'] as $index => $value) {
$files[] = $this->handle_file_upload(
$upload['tmp_name'][$index],
$file_name ? $file_name : $upload['name'][$index],
$size ? $size : $upload['size'][$index],
$upload['type'][$index],
$upload['error'][$index],
$index,
$content_range
);
}
} else {
// param_name is a single object identifier like "file",
// $_FILES is a one-dimensional array:
$files[] = $this->handle_file_upload(
isset($upload['tmp_name']) ? $upload['tmp_name'] : null,
$file_name ? $file_name : (isset($upload['name']) ?
$upload['name'] : null),
$size ? $size : (isset($upload['size']) ?
$upload['size'] : $_SERVER['CONTENT_LENGTH']),
isset($upload['type']) ?
$upload['type'] : $_SERVER['CONTENT_TYPE'],
isset($upload['error']) ? $upload['error'] : null,
null,
$content_range
);
}
return $this->generate_response(
array($this->options['param_name'] => $files),
$print_response
);
}

public function delete($print_response = true) {
$file_name = $this->get_file_name_param();
$file_path = $this->get_upload_path($file_name);
$success = is_file($file_path) && $file_name[0] !== '.' && unlink($file_path);
if ($success) {
foreach($this->options['image_versions'] as $version => $options) {
if (!empty($version)) {
$file = $this->get_upload_path($file_name, $version);
if (is_file($file)) {
unlink($file);
}
}
}
}
return $this->generate_response(array('success' => $success), $print_response);
}

}
Автор: big_big
Дата сообщения: 08.02.2013 22:32
Доброго времени суток. Столкнулся с неизвестной мне проблемой при попытке опубликовать модуль.
Есть три различных модуля показа фотографий. Все три работали. А сегодня, из трех публикуется только один, при попытке опубликовать остальные два в состоянии вместо зеленой "галочки" горит желтый восклицательный знак. В чем может быть проблема?
Позиции публикации менял, дату публикации модуля убирал и менял, ничего не помогает.
Спасибо.
Автор: big_big
Дата сообщения: 09.02.2013 11:48
Вопрос снимаю.
Я в управлении расширениями отключил модули, а потом удивляюсь почему они не публикуются.
Автор: MA8
Дата сообщения: 27.02.2013 06:53
Установлен Xmap, карта сайта замечательно генерируется и автоматически обновляется. Но в ней выводятся только основные категории. Ссылок на материалы в ней нет. Как заставить плагин выводить не только категории, но и материалы, которые в них входят?
Автор: Andsan74
Дата сообщения: 04.03.2013 13:26
Подскажите по joomla 1.5 есть ли компонент, расширение или возможность реализовать следующее:
При нажатии на некий элемент меню открывалась в новом окне форма заполненная статической информацией (картинка + текст), но номер каждый раз был новый (прибавление на 1) при каждом открытии данной формы...

---------------------------------
Квитанция № 000001

Тема письма
---------------------------------
Квитанция № 000002

Тема письма
---------------------------------
.
.
.

Заранее благодарен.


P.S. Уже не надо. Сам сделал.
Автор: djkey
Дата сообщения: 04.03.2013 17:23
Добрый вечер. есть сайт www.компания.ru при заходе на главной есть галерея с фотографиями, которые автоматически прокручиваются. Если зайти на эту же главную, но с алиасом www.компания.ru/home, то высота фотографий в галерее увеличивается. и некторые кнопки съезжают. Не профи с вэб программировании и потому сам не могу понять почему такое происходит.
Автор: utah
Дата сообщения: 05.03.2013 07:34
djkey

На сайт можно взглянуть?
Автор: MAPC
Дата сообщения: 09.03.2013 03:00
Подбросьте плиз несколько студий с free шаблонами если не затруднит, только не отстойники где добрые дяди шаблоны дерьмом набивают, а именно студийные оригиналы в свободной раздаче, вроде этих

_http://a4joomla.com/free-joomla-templates.html
_http://www.joomlapraise.com/joomla-templates/free-joomla-templates
_http://www.gavick.com/joomla-templates/tag,free-template.html
_http://www.icetheme.com/Downloads/Joomla-Templates/Free-Joomla-Templates/View-Category
Автор: utah
Дата сообщения: 09.03.2013 08:35
MAPC

_http://demo.rockettheme.com/free/grunge/
_http://demo.rockettheme.com/free/quasar/
_http://demo.rockettheme.com/free/afterburner/

А чем варез не устраивает?
Автор: wdx
Дата сообщения: 09.03.2013 10:59

Цитата:
А чем варез не устраивает?

Как же вы уже задолбали с вашим варезом.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576

Предыдущая тема: B2evolution


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.