[help] Реализация вывода новостей на 6.7

Тема в разделе "DLE", создана пользователем Хортица, 13 апр 2008.

Информация :
Актуальная версия DataLife Engine 11.2
( Final Release v.11.2 | Скачать DataLife Engine | Скачать 11.2 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.1 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. Хортица

    Хортица Прохожие

    [​IMG]

    Подскажите пожалуйста как реализовать такой вывод новостей?

    Чтобы на главной была возможность выбора вывода новостей по дате добавления, по популярности (просмотрам), по комментируемости.
     

    Вложения:

    • 14.jpg
      14.jpg
      Размер файла:
      73,5 КБ
      Просмотров:
      151
  2. Barthez

    Barthez

    Регистр.:
    28 мар 2007
    Сообщения:
    265
    Симпатии:
    169
    Тебе делать на ajax ? А так модуль простенький. Завтра прийду с бильярда обезательно зделаю по просбе Хортыця :)
     
  3. JC

    JC Бог пикселей

    Регистр.:
    4 янв 2008
    Сообщения:
    303
    Симпатии:
    401
    Так такой модуль уже есть, точно видел...ща гляну потом кину ссылку
     
  4. Хортица

    Хортица Прохожие

    Если будет на ajax будет супер...
     
  5. Janine

    Janine

    Регистр.:
    17 дек 2007
    Сообщения:
    341
    Симпатии:
    96
    Такое решение было предложено на 4дле:

    Если это не совсем то, что нужно, тогда сорри.:ah:

    Оригинальная ссылка:
    _http://www.4dle.ru/hacks/1147155533-sortivovka-postov-s-prolistyvaniem.html
     
  6. Хортица

    Хортица Прохожие

    Это хорошо...Только не работает в категориях...
     
  7. Соучастник

    Соучастник Постоялец

    Регистр.:
    1 фев 2008
    Сообщения:
    90
    Симпатии:
    25
    Вот тут посмотри. PoMaH там написал, как это можно сделать, только я его мало понимаю (транслит+никаких, толком, объяснений). Может пригодится.

    P.S. А вот если кто сделает на ajax - действительно будет супер.
     
  8. Janine

    Janine

    Регистр.:
    17 дек 2007
    Сообщения:
    341
    Симпатии:
    96
    Жаль.:confused:
    Я не специалист в пхп. А с выключенным чпу тоже не работает?
     
  9. Хортица

    Хортица Прохожие

    Готов заплатить за доработку этого хака, чтобы такой вывод можно было реализовать и во всех категориях сайта.
     
  10. kaliostro

    kaliostro

    Регистр.:
    6 апр 2007
    Сообщения:
    201
    Симпатии:
    33
    Ну это хорошо, а вообще всё гораздопроще, достаточно изменить запрос, который отвечает за вывод новостей в том случае который нам нужен. Эти запросы легко найти по коментам.
    Вот пример для того ка сделать сортировку в категории, по такому принципу можно будет сделать запрос и в других случаях.
    Поехали:
    Ищем по коментам формирование запроса для категории, гнаходим такое:
    Код:
    		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;
    
    		}
    
    Как видим первый запрос мы не изменили, а во втором сделали подстановку сортироки, которая формируеться выше.

    ВНИМАНИЕ!!! это не сам хак, а только дополнение к хаку описанному в посте от Janine.
     
Статус темы:
Закрыта.