heaDodger 0 Опубликовано: 28 марта 2008 Рассказать Опубликовано: 28 марта 2008 Описание: Хак позволяет сортировать посты по: РЕЙТИНГУ / ПОСЕЩАИМОСТИ / САМЫЕ КОММЕНТИРУЕМЫЕ Возможности: Пролистывание, просмотр любой страници в отсортированном порядке. Установка Oткрываем файл engine/engine.php Ищем: $sql_select = "SELECT id, autor, date, short_story, SUBSTRING(full_story, 1, 15) as full_story, xfields, title, category, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read, flag FROM " . PREFIX . "_post WHERE {$stop_list}approve = '1' AND allow_main = '1'".$where_date." ORDER BY fixed desc, ".$config['news_sort']." ".$config['news_msort']." LIMIT ".$cstart.",".$config['news_number']; $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$stop_list}approve = '1' AND allow_main = '1'".$where_date; Вместо этого вставляем : if (isset($_GET['rating']) && $_GET['rating'] != "") { $config['allow_cache'] = false; $addsql = "ORDER BY rating DESC, ".$config['news_sort']." ".$config['news_msort'].""; $url_page = $config['http_home_url']."ratingorder"; } else if (isset($_GET['mostcomment']) && $_GET['mostcomment'] != "") { $config['allow_cache'] = false; $addsql = "ORDER BY comm_num DESC, ".$config['news_sort']." ".$config['news_msort'].""; $url_page = $config['http_home_url']."commorder"; } else if (isset($_GET['mostread']) && $_GET['mostread'] != "") { $config['allow_cache'] = false; $addsql = "ORDER BY news_read DESC, ".$config['news_sort']." ".$config['news_msort'].""; $url_page = $config['http_home_url']."readorder"; } else if(!isset($_GET['rating']) and !isset($_GET['mostcomment']) and !isset($_GET['mostread'])) $addsql = "ORDER BY fixed desc, ".$config['news_sort']." ".$config['news_msort'].""; $sql_select = "SELECT id, autor, date, short_story, SUBSTRING(full_story, 1, 15) as full_story, xfields, title, category, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read, flag FROM " . PREFIX . "_post WHERE {$stop_list}approve = '1' AND allow_main = '1'".$where_date." ".$addsql." LIMIT ".$cstart.",".$config['news_number']; $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$stop_list}approve = '1' AND allow_main = '1'".$where_date; откройте файл .htaccess в корне сайта и после строки RewriteEngine On, добавьте следующие строки: # order by RewriteRule ^ratingorder(/?)+$ index.php?rating=1 [L] RewriteRule ^ratingorder/page/([0-9]+)(/?)+$ index.php?rating=1&cstart=$1 [L] RewriteRule ^commorder(/?)+$ index.php?mostcomment=1 [L] RewriteRule ^commorder/page/([0-9]+)(/?)+$ index.php?mostcomment=1&cstart=$1 [L] RewriteRule ^readorder(/?)+$ index.php?mostread=1 [L] RewriteRule ^readorder/page/([0-9]+)(/?)+$ index.php?mostread=1&cstart=$1 [L] Oткрываем файл templates/default/main.tpl Ищем: {speedbar} После вставляем : [aviable=main]<div style=" padding-right:10px; float:right;"> сортировать посты по: <a href="/ratingorder/">РЕЙТИНГУ</a> | <a href="/readorder/">ПОСЕЩАИМОСТИ</a> | <a href="/commorder/">САМЫЕ КОММЕНТИРУЕМЫЕ</a> </div> <br />[/aviable] Салют! Цитата Ссылка на сообщение Поделиться на других сайтах
mitriy 5 Опубликовано: 28 марта 2008 Рассказать Опубликовано: 28 марта 2008 ПОСЕЩАеМОСТИ посты -это новости имелись ввиду? Цитата Ссылка на сообщение Поделиться на других сайтах
empirator 0 Опубликовано: 31 марта 2008 Рассказать Опубликовано: 31 марта 2008 heaDodger, а как сделать БЕЗ ЧПУ? Цитата Ссылка на сообщение Поделиться на других сайтах
cernos 0 Опубликовано: 9 апреля 2008 Рассказать Опубликовано: 9 апреля 2008 Минус данного хака, не работают эти все примочки в категориях + не работают при просмотре всех публикаций пользователя, а ведь хотелось бы Цитата Ссылка на сообщение Поделиться на других сайтах
yurinov 0 Опубликовано: 16 апреля 2008 Рассказать Опубликовано: 16 апреля 2008 От того, что автор неграмотен, отпадает всякое желание использовать модуль. Тем более, если он нерабочий. Цитата Ссылка на сообщение Поделиться на других сайтах
kaliostro_den 2 Опубликовано: 18 апреля 2008 Рассказать Опубликовано: 18 апреля 2008 Минус данного хака, не работают эти все примочки в категориях + не работают при просмотре всех публикаций пользователя, а ведь хотелось бы Всё гораздопроще, достаточно изменить запрос, который отвечает за вывод новостей в том случае который нам нужен. Эти запросы легко найти по коментам. Вот пример для того ка сделать сортировку в категории, по такому принципу можно будет сделать запрос и в других случаях. Поехали: Ищем по коментам формирование запроса для категории, гнаходим такое: if (isset($view_template) AND $view_template == "rss") { $sql_select = "SELECT id, autor, date, short_story, full_story, xfields, title, category, alt_name, flag FROM " . PREFIX . "_post WHERE {$where_category} AND approve = '1'".$where_date." ORDER BY fixed desc, ".$config['news_sort']." ".$config['news_msort']." LIMIT 0,".$config['rss_number']; } else { $sql_select = "SELECT id, autor, date, short_story, SUBSTRING(full_story, 1, 15) as full_story, xfields, title, category, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read, flag FROM " . PREFIX . "_post WHERE {$where_category} AND approve = '1'".$where_date." ORDER BY fixed desc, ".$config['news_sort']." ".$config['news_msort']." LIMIT ".$cstart.",".$config['news_number']; $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$where_category} AND approve = '1'".$where_date; } Первый запрос нас не интересует, он формируеться при RSS импорте, а там сортировка не нужна. Значит изменяем второй вот так: В самом запросе вот это ORDER BY fixed desc, ".$config['news_sort']." ".$config['news_msort']." ЗАменяем на $addsql В итоге получим: if (isset($view_template) AND $view_template == "rss") { $sql_select = "SELECT id, autor, date, short_story, full_story, xfields, title, category, alt_name, flag FROM " . PREFIX . "_post WHERE {$where_category} AND approve = '1'".$where_date." ORDER BY fixed desc, ".$config['news_sort']." ".$config['news_msort']." LIMIT 0,".$config['rss_number']; } else { $sql_select = "SELECT id, autor, date, short_story, SUBSTRING(full_story, 1, 15) as full_story, xfields, title, category, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read, flag FROM " . PREFIX . "_post WHERE {$where_category} AND approve = '1'".$where_date." $addsql LIMIT ".$cstart.",".$config['news_number']; $sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$where_category} AND approve = '1'".$where_date; } Как видим первый запрос мы не изменили, а во втором сделали подстановку сортироки, которая формируеться выше. ВНИМАНИЕ!!! это не сам хак, а только дополнение к хаку описанному в посте №1. Цитата Ссылка на сообщение Поделиться на других сайтах
PymC 0 Опубликовано: 6 мая 2008 Рассказать Опубликовано: 6 мая 2008 (изменено) Такой вопрос: каким образом можно сделать вывод новостей на главной по дате добавления, когда в настройках скрипта и в категориях стоит "По рейтингу"? Т.е. кое-где(?) поставить проверку: если main, то content = 5 самых свежих новостей, без pages? Похоже нашел что-то нужное// ################ Новости на главной ################# if ($year == '' AND $month == '' AND $day == '') { if ($cstart){ $cstart = $cstart - 1; $cstart = $cstart * $config['news_number']; } $url_page = substr($config['http_home_url'], 0, strlen ($config['http_home_url'])-1); if (isset($view_template) AND $view_template == "rss") { $sql_select = "SELECT id, autor, date, short_story, full_story, xfields, title, category, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read, flag FROM " . PREFIX . "_post WHERE {$stop_list}approve = '1'"; if ($config['rss_mtype']) { $sql_select .= " AND allow_main = '1'"; } $sql_select .= $where_date." ORDER BY ".$config['news_sort']." ".$config['news_msort']." LIMIT 0,".$config['rss_number']; } else { $sql_select = "SELECT SQL_CALC_FOUND_ROWS id, autor, date, short_story, SUBSTRING(full_story, 1, 15) as full_story, xfields, title, category, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read, flag FROM " . PREFIX . "_post WHERE {$stop_list}approve = '1' AND allow_main = '1'".$where_date." ORDER BY fixed desc, ".$config['news_sort']." ".$config['news_msort']." LIMIT ".$cstart.",".$config['news_number']; $sql_count = "SELECT FOUND_ROWS() as count"; } } Подскажите пожалуйста что нужно менять чтоб выводились 5 последних новостей(желательно с шаблоном name.tpl) без блока страниц? И будут ли эти изменения достаточными, чтоб в категориях все оставалось с настройками... Заранее спасибо... Изменено 6 мая 2008 пользователем PymC Цитата Ссылка на сообщение Поделиться на других сайтах
PymC 0 Опубликовано: 7 мая 2008 Рассказать Опубликовано: 7 мая 2008 Есть нашел, как вывести 5 новостей последних, и последний вопрос как убрать pages с главной Цитата Ссылка на сообщение Поделиться на других сайтах
ext 0 Опубликовано: 23 мая 2008 Рассказать Опубликовано: 23 мая 2008 подскажите, почему может не работать данный хак? сделал всё, как написано в первом сообщении.. у меня dle 6.5 не хочет сортировать.. как выводило по дате, так и выводит Цитата Ссылка на сообщение Поделиться на других сайтах
ext 0 Опубликовано: 24 мая 2008 Рассказать Опубликовано: 24 мая 2008 тему уже никто не просматривает? мне создать новую? Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 24 мая 2008 Рассказать Опубликовано: 24 мая 2008 подскажите, почему может не работать данный хак?потому что таких запросов в engine/engine.php два Цитата Ссылка на сообщение Поделиться на других сайтах
ext 0 Опубликовано: 25 мая 2008 Рассказать Опубликовано: 25 мая 2008 точно ! благодарю Цитата Ссылка на сообщение Поделиться на других сайтах
МASTER 11 Опубликовано: 11 июня 2008 Рассказать Опубликовано: 11 июня 2008 А на 7.0 кто нибудь сделал? Цитата Ссылка на сообщение Поделиться на других сайтах
n0wheremany 0 Опубликовано: 14 июня 2008 Рассказать Опубликовано: 14 июня 2008 Ага делал Цитата Ссылка на сообщение Поделиться на других сайтах
Alex112 0 Опубликовано: 14 августа 2008 Рассказать Опубликовано: 14 августа 2008 на 7,0 не работает не могу, понять в чем проблема помогите пожалуйста! Цитата Ссылка на сообщение Поделиться на других сайтах
Akela 9 Опубликовано: 14 августа 2008 Рассказать Опубликовано: 14 августа 2008 Стоит перейти на версию 7.2, там это реализовано : 18. Добавлена возможность предоставления посетителю сайта самостоятельно изменять порядок сортировки новостей на сайте, для этого добавлены новые теги [sоrt]{sort}[/sort] для шаблона main.tpl. Допустима сортировка по дате, популярности, посещаемости, комментариям, алфавиту. Сортировка выбирается как по возрастанию, так и по убыванию. Для каждого из разделов сайта пользователь может назначить свою собсвенную сортировку, например для главной отдельно, для категорий отдельно, при просмотре новостей за определенную дату также отдельно. Скрипт сохраняет порядок сортировки за пользователем на время всей сессии до закрытия им браузера. Поддержка этих тегов включается в настройках скрипта в разделе оптимизации. Включение навигации при помощи AJAX, автоматически отключает поддержку данных тегов, т.к. невозможно поддерживать назначение сортировки для различных разделов, т.к. страница браузера не перегружается при навигации по страницам через AJAX. Цитата Ссылка на сообщение Поделиться на других сайтах
Alex112 0 Опубликовано: 14 августа 2008 Рассказать Опубликовано: 14 августа 2008 Стоит перейти на версию 7.2, там это реализовано : Увы перейти на новую версию не выйдет стоит очень много хаков и модов! Цитата Ссылка на сообщение Поделиться на других сайтах
antweb 0 Опубликовано: 18 августа 2008 Рассказать Опубликовано: 18 августа 2008 парни помогите сделать на 7.0 тоже очень много модов и не перейти так просто Цитата Ссылка на сообщение Поделиться на других сайтах
Alex112 0 Опубликовано: 21 августа 2008 Рассказать Опубликовано: 21 августа 2008 (изменено) кто поможет? дам пару баксов за помощь срочно нужно! Изменено 21 августа 2008 пользователем Alex112 Цитата Ссылка на сообщение Поделиться на других сайтах
antweb 0 Опубликовано: 22 августа 2008 Рассказать Опубликовано: 22 августа 2008 готов вложиться еще +2$ - очень надо Цитата Ссылка на сообщение Поделиться на других сайтах
Dan 0 Опубликовано: 24 августа 2008 Рассказать Опубликовано: 24 августа 2008 сделал сортировку для 7.0 (полная копия той, что в 7.2). работоспособность проверил. как напишу мануал по установке, выложу. Цитата Ссылка на сообщение Поделиться на других сайтах
Dan 0 Опубликовано: 24 августа 2008 Рассказать Опубликовано: 24 августа 2008 (изменено) Инструкция по установке функции сортировки новостей для DLE 7.0 хак закрыт на доработку. Изменено 24 августа 2008 пользователем Dan Цитата Ссылка на сообщение Поделиться на других сайтах
Dan 0 Опубликовано: 24 августа 2008 Рассказать Опубликовано: 24 августа 2008 (изменено) Инструкция по добавлению функции сортировки новостей по дате добавления, посещаемости и т.д. для DLE 7.0 Примечания: Внимательно смотрите на то, что нужно найти и не пропускайте фигурные скобки, если они есть в конце участка кода. И если сказано "вставляем ниже строки", то вставляем в пустой строке между указанным фрагментом и тем, что было под ним. Случайно не вставьте в начале следующей, уже занятой кодом, строки! Потому что участки копируемого кода в большинстве случаев выделены комментариями по краям (чтобы удобнее было удалять хак, если что) и если нижняя строка вставленного кода будет на уже занятой строке, то она уже выполняться не будет и приведет к ошибкам. Стоит заметить, что в оригинальной версии движка, если не ошибаюсь, эта функция отключается при включении AJAX. Но я не понял почему, поэтому в моей версии она работает и при нем. Если хотите этого избежать, то после всех редактирований замените в index.php if ($allow_active_news AND $config['allow_change_sort']) { на if ($allow_active_news AND $config['allow_change_sort'] AND !$config['ajax']) { Хак успешно проверялся на чистой версии движка c включенными и отключенными AJAX и кэшированием. Шаг 1: Находим в templates/[название_шаблона]/main.tpl {info} вставляем выше нее [sort]{sort}<br />[/sort] Шаг 2: Находим в index.php elseif ($do=="") $do = $subaction; вставляем ниже нее //////////// сортировка if ($allow_active_news AND $config['allow_change_sort']) { $tpl->set('[sort]', "" ); $tpl->set('{sort}', news_sort( $do ) ); $tpl->set('[/sort]', "" ); } else { $tpl->set_block("'\\[sort\\](.*?)\\[/sort\\]'si",""); } //////////// Шаг 3: Находим в engine/data/config.php ); выше нее вставляем 'allow_change_sort' => "1", Шаг 4: Находим в engine/inc/options.php showRow($lang['opt_sys_inform'], $lang['opt_sys_informd'], makeDropDown(array("1"=>$lang['opt_sys_yes'],"0"=>$lang['opt_sys_no']), "save_con[rss_informer]", "{$config['rss_informer']}")); ниже нее вставляем //////////////// сортировка showRow($lang['opt_sys_change_s'], $lang['opt_sys_change_sd'], makeDropDown(array("1"=>$lang['opt_sys_yes'],"0"=>$lang['opt_sys_no']), "save_con[allow_change_sort]", "{$config['allow_change_sort']}")); //////////////// Шаг 5: Находим в engine/ajax/pages.php define('TEMPLATE_DIR', $tpl->dir); ниже нее вставляем //////////////// сортировка $allowed_sort = array('date', 'rating', 'news_read', 'comm_num', 'title'); //////////////// Шаг 6 (самый сложный): Находим в engine/engine.php if ($config['news_sort'] == "") $config['news_sort'] = "date"; if ($config['news_msort'] == "") $config['news_msort'] = "DESC"; заменяем эти строки на ///////////////// сортировка $news_sort_by = ($config['news_sort']) ? $config['news_sort'] : "date"; $news_direction_by = ($config['news_msort']) ? $config['news_msort'] : "DESC"; ///////////////// находим $sql_select .= $where_date." ORDER BY ".$config['news_sort']." ".$config['news_msort']." LIMIT 0,".$config['rss_number']; заменяем ее на $sql_select .= $where_date." ORDER BY ".$config['newssort']." ".$config['newsmsort']." LIMIT 0,".$config['rss_number']; далее заменяем все упоминания ".$config['news_sort']." ".$config['news_msort']." на ".$news_sort_by." ".$news_direction_by." находим if ($cat_info[$category_id]['news_sort'] != "") $cat_order = $cat_info[$category_id]['news_sort']; else $cat_order = $config['news_sort']; if ($cat_info[$category_id]['news_msort'] != "") $cat_sort = $cat_info[$category_id]['news_msort']; else $cat_sort = $config['news_msort']; заменяем на //////////////////// сортировка if ($cat_info[$category_id]['news_sort'] != "") $news_sort_by = $cat_info[$category_id]['news_sort']; if ($cat_info[$category_id]['news_msort'] != "") $news_direction_by = $cat_info[$category_id]['news_msort']; //////////////////// далее заменяем все упоминания ".$cat_order." ".$cat_sort." на ".$news_sort_by." ".$news_direction_by." находим первое упоминание $config['rss_number']; } else { ниже вставляем ////////////// сортировка if (isset($_SESSION['dle_sort_cat'])) $news_sort_by = $_SESSION['dle_sort_cat']; if (isset($_SESSION['dle_direction_cat'])) $news_direction_by = $_SESSION['dle_direction_cat']; ////////////// находим $url_page = $config['http_home_url']."lastnews"; ниже вставляем ////////////////// сортировка if (isset($_SESSION['dle_sort_lastnews'])) $news_sort_by = $_SESSION['dle_sort_lastnews']; if (isset($_SESSION['dle_direction_lastnews'])) $news_direction_by = $_SESSION['dle_direction_lastnews']; ////////////////// находим if ($member_id['name'] == $user OR $user_group[$member_id['user_group']]['allow_all_edit']) { ниже вставляем /////////////////// сортировка if (isset($_SESSION['dle_sort_userinfo'])) $news_sort_by = $_SESSION['dle_sort_userinfo']; if (isset($_SESSION['dle_direction_userinfo'])) $news_direction_by = $_SESSION['dle_direction_userinfo']; /////////////////// находим $url_page = $config['http_home_url']."user/".urlencode ($user). "/news"; ниже вставляем ///////////////////////сортировка if (isset($_SESSION['dle_sort_allnews'])) $news_sort_by = $_SESSION['dle_sort_allnews']; if (isset($_SESSION['dle_direction_allnews'])) $news_direction_by = $_SESSION['dle_direction_allnews']; /////////////////////// находим else { $lasttime = date ("Y-m-d H:i:s", (time()+ ($config['date_adjust']*60) - (3600*4))); } ниже вставляем ///////////////////сортировка if (isset($_SESSION['dle_sort_newposts'])) $news_sort_by = $_SESSION['dle_sort_newposts']; if (isset($_SESSION['dle_direction_newposts'])) $news_direction_by = $_SESSION['dle_direction_newposts']; /////////////////// находим $url_page = $config['http_home_url']."catalog/".urlencode ($catalog); ниже вставляем //////////////////сортировка $news_sort_by = ($config['catalog_sort']) ? $config['catalog_sort'] : "date"; $news_direction_by = ($config['catalog_msort']) ? $config['catalog_msort'] : "DESC"; if (isset($_SESSION['dle_sort_catalog'])) $news_sort_by = $_SESSION['dle_sort_catalog']; if (isset($_SESSION['dle_direction_catalog'])) $news_direction_by = $_SESSION['dle_direction_catalog']; ///////////////// далее заменяем ".$config['catalog_sort']." ".$config['catalog_msort']." на ".$news_sort_by." ".$news_direction_by." находим $sql_select .= $where_date." ORDER BY ".$config['newssort']." ".$config['newsmsort']." LIMIT 0,".$config['rss_number']; } else { ниже вставляем /////////////////////////сортировка if (isset($_SESSION['dle_sort_main'])) $news_sort_by = $_SESSION['dle_sort_main']; if (isset($_SESSION['dle_direction_main'])) $news_direction_by = $_SESSION['dle_direction_main']; ///////////////////////// находим $url_page = $config['http_home_url'].$year; ниже вставляем ///////////////////////////////// сортировка if (isset($_SESSION['dle_sort_date'])) $news_sort_by = $_SESSION['dle_sort_date']; if (isset($_SESSION['dle_direction_date'])) $news_direction_by = $_SESSION['dle_direction_date']; ///////////////////////////////// находим $url_page = $config['http_home_url'].$year."/".$month; ниже вставляем ///////////////////////////////// сортировка if (isset($_SESSION['dle_sort_date'])) $news_sort_by = $_SESSION['dle_sort_date']; if (isset($_SESSION['dle_direction_date'])) $news_direction_by = $_SESSION['dle_direction_date']; ///////////////////////////////// находим $url_page = $config['http_home_url'].$year."/".$month."/".$day; ниже вставляем ///////////////////////////////// сортировка if (isset($_SESSION['dle_sort_date'])) $news_sort_by = $_SESSION['dle_sort_date']; if (isset($_SESSION['dle_direction_date'])) $news_direction_by = $_SESSION['dle_direction_date']; ///////////////////////////////// находим $sql_select .= $where_date." ORDER BY ".$config['newssort']." ".$config['newsmsort']." LIMIT 0,".$config['rss_number']; заменяем ее на $sql_select .= $where_date." ORDER BY ".$config['news_sort']." ".$config['news_msort']." LIMIT 0,".$config['rss_number']; находим if ($is_logged AND ($user_group[$member_id['user_group']]['allow_edit'] AND !$user_group[$member_id['user_group']]['allow_all_edit'])) $config['allow_cache'] = false; ниже вставляем if ($_SESSION['dle_no_cache']) $config['allow_cache'] = false; С самым громоздким мы покончили! Шаг 7: Находим в engine/init.php define('TEMPLATE_DIR', $tpl->dir); ниже вставляем //////////////////////// сортировка if (isset($_POST['set_new_sort']) AND $config['allow_change_sort']) { $allowed_sort = array('date', 'rating', 'news_read', 'comm_num', 'title'); $find_sort = str_replace(".", "", totranslit($_POST['set_new_sort'])); $direction_sort = str_replace(".", "", totranslit($_POST['set_direction_sort'])); if (in_array($_POST['dlenewssortby'], $allowed_sort)) { if ($_POST['dledirection'] == "desc" OR $_POST['dledirection'] == "asc") { @session_register($find_sort); @session_register($direction_sort); @session_register('dle_no_cache'); $_SESSION[$find_sort] = $_POST['dlenewssortby']; $_SESSION[$direction_sort] = $_POST['dledirection']; $_SESSION['dle_no_cache'] = "1"; } } } /////////////////////// Шаг 8: Находим в engine/modules/functions.php ?> над ней вставляем ////////////////////////////сортировка function news_sort ( $do ){ global $config, $lang; if (!$do) $do = "main"; $find_sort = "dle_sort_".$do; $direction_sort = "dle_direction_".$do; $find_sort = str_replace(".", "", $find_sort); $direction_sort = str_replace(".", "", $direction_sort); $sort = array(); $allowed_sort = array('date', 'rating', 'news_read', 'comm_num', 'title'); $soft_by_array = array ( 'date' => array( 'name' => $lang['sort_by_date'], 'value' => "date", 'direction' => "desc", 'image' => "", ), 'rating' => array( 'name' => $lang['sort_by_rating'], 'value' => "rating", 'direction' => "desc", 'image' => "", ), 'news_read' => array( 'name' => $lang['sort_by_read'], 'value' => "news_read", 'direction' => "desc", 'image' => "", ), 'comm_num' => array( 'name' => $lang['sort_by_comm'], 'value' => "comm_num", 'direction' => "desc", 'image' => "", ), 'title' => array( 'name' => $lang['sort_by_title'], 'value' => "title", 'direction' => "desc", 'image' => "", ), ); if ($_SESSION[$direction_sort] == "desc" OR $_SESSION[$direction_sort] == "asc") $direction = $_SESSION[$direction_sort]; else $direction = $config['news_msort']; if ($_SESSION[$find_sort] AND in_array($_SESSION[$find_sort], $allowed_sort)) $soft_by = $_SESSION[$find_sort]; else $soft_by = $config['news_sort']; if ( strtolower($direction) == "asc" ) { $soft_by_array[$soft_by]['image'] = "<img src=\"{THEME}/dleimages/asc.gif\" />"; $soft_by_array[$soft_by]['direction'] = "desc"; } else { $soft_by_array[$soft_by]['image'] = "<img src=\"{THEME}/dleimages/desc.gif\" />"; $soft_by_array[$soft_by]['direction'] = "asc"; } foreach($soft_by_array as $value) { $sort[] = $value['image']."<a href=\"#\" onclick=\"dle_change_sort('{$value['value']}','{$value['direction']}'); return false;\">".$value['name']."</a>"; } $sort = "<form name=\"news_set_sort\" id=\"news_set_sort\" method=\"post\">".$lang['sort_main']." ".implode(" | ", $sort); $sort .= <<<HTML <input type="hidden" name="dlenewssortby" id="dlenewssortby" value="{$config['news_sort']}" /> <input type="hidden" name="dledirection" id="dledirection" value="{$config['news_msort']}" /> <input type="hidden" name="set_new_sort" id="set_new_sort" value="{$find_sort}" /> <input type="hidden" name="set_direction_sort" id="set_direction_sort" value="{$direction_sort}" /> <script type="text/javascript" language="javascript"> <!-- begin function dle_change_sort(sort, direction){ var frm = document.getElementById('news_set_sort'); frm.dlenewssortby.value=sort; frm.dledirection.value=direction; frm.submit(); return false; }; // end --> </script></form> HTML; return $sort; } /////////////////////// Шаг 9: Копируем картинки (Картинка 1 и Картинка 2) в папку templates/[название_шаблона]/dleimages/ с именами asc.gif и desc.gif соответственно. Шаг 10: Находим в language/Russian/website.lng $lang = array ( ниже вставляем // сортировка 'sort_main' => "Сортировать новости по:", 'sort_by_date' => "дате новости", 'sort_by_rating' => "популярности", 'sort_by_read' => "посещаемости", 'sort_by_title' => "алфавиту", 'sort_by_comm' => "комментариям", // сортировка Находим в language/Russian/adminpanel.lng $lang = array ( вставляем ниже 'opt_sys_change_s' => "Разрешить пользователям менять порядок сортировки новостей на сайте", 'opt_sys_change_sd' => "Если 'Да', то при смене порядка сортировки, отключается автоматическое кеширование новостей на сайте для кратких новостей, что увеличивает нагрузку на сайт.", Ну, и если хак будет работать, благодарности можно присылать на Z133242423932 Изменено 24 августа 2008 пользователем Dan Цитата Ссылка на сообщение Поделиться на других сайтах
PymC 0 Опубликовано: 7 апреля 2009 Рассказать Опубликовано: 7 апреля 2009 Кто-нибудь ставил? Не портачит? А то страшновато что-то этот маленький кусочек кода вставлять) Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.