Запрет вывода определённой категории на главной странице

Запрет вывода определённой категории на главной странице


Хак запрещает вывод определённой категории на главной странице сайта.
Заходим в файл по адресу /engine/engine.php

Находим блок

// ################ Новости на главной #################

Ищем строчку в этом блоке вида


$sql_select = "SELECT id, autor, date, short_story, SUBSTRING(full_story, 1, 15) as full_story, xfields, title, im, category, alt_name, comm_num, allow_comm, allow_rate, fixed, rating, vote_num, news_read, votes, flag, editdate, editor, reason, view_edit, tags FROM " . PREFIX . "_post WHERE {$stop_list}approve AND allow_main" . $where_date . " ORDER BY " . $fixed . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];


И заменяем на


//замените в переменной $IDcategory=3;  тройку на id категории

$IDcategory=3;

$sql_select = "SELECT id, autor, date, short_story, SUBSTRING(full_story, 1, 15) as full_story, xfields, title, im, category, alt_name, comm_num, allow_comm, allow_rate, fixed, rating, vote_num, news_read, votes, flag, editdate, editor, reason, view_edit, tags FROM " . PREFIX . "_post WHERE {$stop_list}approve AND allow_main AND category<$IDcategory or category>$IDcategory " . $where_date . " ORDER BY " . $fixed . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];


Заменить в переменной $IDcategory=3; тройку на id категории

При таком раскладе категория со значением id равным 3 не будет выводится на главной странице сайта.

Автор: lex-film
Тестил на Dle 9.2

Исправлен баг вывода полной новости, теперь всё работает норм.
Другие новости по теме:

Категория: Хаки ----- Просмотров: 2876 ----- Комментариев: 18

Вернуться

  • Группа: User
  • ICQ: --
  • Регистрация: 25.06.2010
  • Комментариев: 1
  • Публикаций: 1
^
Откорректированный вариант (рабочий вариант)


$IDcategory=3;

$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, fixed, rating, vote_num, news_read, votes, flag, editdate, editor, reason, view_edit, tags FROM " . PREFIX . "_post WHERE {$stop_list}approve AND allow_main AND category<".$IDcategory." or category>".$IDcategory." " . $where_date . " ORDER BY " . $fixed . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
  • Ej

  • 12 февраля 2011 05:48
  • Группа: User
  • ICQ: --
  • Регистрация: 5.02.2011
  • Комментариев: 3
  • Публикаций: 0
^
Не работает sad
  • Группа: User
  • ICQ: --
  • Регистрация: 30.08.2008
  • Комментариев: 52
  • Публикаций: 3
^
МУСОР!
Зачем изобретать велосипед?
В DLE есть специальные функции, например, "Снять публикацию на главной" или убрать флажок возле "Публиковать на главной"

P.S. Зачем Вы 'писали' 'хак'?
  • NeedlE

  • 13 февраля 2011 21:56
  • Группа: User
  • ICQ: 406319618
  • Регистрация: 5.01.2010
  • Комментариев: 20
  • Публикаций: 1
^
Цитата: oleksdanderm
МУСОР!
Зачем изобретать велосипед?
В DLE есть специальные функции, например, "Снять публикацию на главной" или убрать флажок возле "Публиковать на главной"

P.S. Зачем Вы 'писали' 'хак'?


При добавлении новости в определенную категорию надо было снимать флажок с Запостить на главной в ручную. Многие забывают снимать флажок, а этот хак сам снимает флажок с запостить на главной при добавлении новости в определенную категорию!
  • rashpil

  • 14 февраля 2011 05:12
  • Группа: User
  • ICQ: --
  • Регистрация: 24.11.2009
  • Комментариев: 26
  • Публикаций: 2
^
NeedlE, Этот хак фильтрует запрос на вывод :) Галочки тут непричём.
  • NeedlE

  • 14 февраля 2011 20:32
  • Группа: User
  • ICQ: 406319618
  • Регистрация: 5.01.2010
  • Комментариев: 20
  • Публикаций: 1
^
Цитата: rashpil
NeedlE, Этот хак фильтрует запрос на вывод :) Галочки тут непричём.


Ну я это имел ввиду, ни силен я в этом :)
  • Группа: User
  • ICQ: --
  • Регистрация: 30.08.2008
  • Комментариев: 52
  • Публикаций: 3
^
Цитата: NeedlE
При добавлении новости в определенную категорию надо было снимать флажок с Запостить на главной в ручную. Многие забывают снимать флажок, а этот хак сам снимает флажок с запостить на главной при добавлении новости в определенную категорию!

Забывают снимать, только растяпы. ИМХО.
  • Diezzza

  • 16 февраля 2011 10:13
  • Группа: User
  • ICQ: --
  • Регистрация: 25.01.2009
  • Комментариев: 28
  • Публикаций: 0
^
лучше уж сделать хак по выводу определенной категории или категорий на главную
  • AlexBen

  • 16 февраля 2011 12:02
  • Группа: User
  • ICQ: 1739390
  • Регистрация: 29.01.2010
  • Комментариев: 274
  • Публикаций: 44
^
Diezzza,
так и есть на самом деле)

--------------------
  • baksd

  • 5 марта 2011 21:23
  • Группа: User
  • ICQ: --
  • Регистрация: 17.11.2010
  • Комментариев: 1
  • Публикаций: 0
^
не подскажете как сделать на главной вывод определенных категорий?
  • dns_ua

  • 6 марта 2011 03:28
  • Группа: User
  • ICQ: 628759137
  • Регистрация: 20.06.2010
  • Комментариев: 73
  • Публикаций: 2
^
NeedlE,

При добавлении новости в определенную категорию надо было снимать флажок с Запостить на главной в ручную. Многие забывают снимать флажок, а этот хак сам снимает флажок с запостить на главной при добавлении новости в определенную категорию!


Текстовый редактор тебе в помощь. идшь по путям

engine/inc/addnews.php и editnews.php


ищешь

if( $user_group[$member_id['user_group']]['allow_main'] ) $main_input = "<input type=\"checkbox\" name=\"allow_main\" value=\"1\" checked> {$lang['addnews_main']}";

меняешь на это

if( $user_group[$member_id['user_group']]['allow_main'] ) $main_input = "<input type=\"checkbox\" name=\"allow_main\" value=\"1\"> {$lang['addnews_main']}";

дальше шуруешь в engine/modules/addnews.php

ищешь

if( $user_group[$member_id['user_group']]['allow_main'] ) $admintag .= "    <input type=\"checkbox\" name=\"allow_main\" value=\"1\" checked=\"checked\" />" . $lang['add_al_m'];

меняешь на это

if( $user_group[$member_id['user_group']]['allow_main'] ) $admintag .= "    <input type=\"checkbox\" name=\"allow_main\" value=\"1\" >" . $lang['add_al_m'];

Теперь флажок постояно будет снят wink
  • Группа: User
  • ICQ: 305405000
  • Регистрация: 9.03.2011
  • Комментариев: 3
  • Публикаций: 0
^
Хак заработал, DLE 7.3
вот этот код работает
$IDcategory=21; 21 это категория которую не выводим на главной
$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, fixed, rating, vote_num, news_read, votes, flag, editdate, editor, reason, view_edit, tags FROM " . PREFIX . "_post WHERE {$stop_list}approve AND allow_main AND category<".$IDcategory." or category>".$IDcategory." " . $where_date . " ORDER BY " . $fixed . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];

dns_ua
Не совсем понял насчет категорий? Для категории новостей или категории пользователей будет чекбокс снят? Если для пользователей то это не к чему.
  • dns_ua

  • 9 марта 2011 13:45
  • Группа: User
  • ICQ: 628759137
  • Регистрация: 20.06.2010
  • Комментариев: 73
  • Публикаций: 2
^
admydoor,

Для категории новостей или категории пользователей будет чекбокс снят?


Причем тут это всё?. И где ты такое в dle видал.
wink

Чебокс будет снят для всех при добалении новости независимо откуда они добавляются. bs
  • Группа: User
  • ICQ: 305405000
  • Регистрация: 9.03.2011
  • Комментариев: 3
  • Публикаций: 0
^
И что меняется? Снять чекбокс с порнухи или поставить на все остальные в чем смысл? Я думаю что более красиво и правильно будет доработать движок что бы в админке была возможность поставить или снятьчекбокс на категорию которую не нужно публикать на главной. А хак автора только запрещает выводить новости из определенной категории, при редактировании новости через админку, чекбокс стоит но новость всеравно не выводится
  • Группа: User
  • ICQ: 305405000
  • Регистрация: 9.03.2011
  • Комментариев: 3
  • Публикаций: 0
^
рано радовался, тот код не совсем рабочий, пагинатор(листалка страниц) перестал отображаться, а вот этот работает так как надо, в engine.php примерно на 415 строке добавляем то что выделено красным
$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, editdate, editor, reason, view_edit, tags FROM " . PREFIX . "_post WHERE {$stop_list}approve AND allow_main AND category!=20 AND category!=21 ".$where_date." ORDER BY ".$fixed.$news_sort_by." ".$news_direction_by." LIMIT ".$cstart.",".$config['news_number'];

20 и 21 это айди категорий которые не нужно выводить на главной, можете сами убедиться на сайте http://admydoor.ru
  • Группа: User
  • ICQ: --
  • Регистрация: 2.03.2011
  • Комментариев: 7
  • Публикаций: 0
^
admydoor,
Спасибо, твой вариант действительно робочий
  • vov41k

  • 29 июня 2011 02:27
  • Группа: User
  • ICQ: --
  • Регистрация: 23.02.2011
  • Комментариев: 1
  • Публикаций: 0
^
Все работает, ДЛЕ 9.2
только там для одной категории написано, там если добавлять еще категории нужно создавать новые переменые
  • Группа: User
  • ICQ: --
  • Регистрация: 2.03.2011
  • Комментариев: 7
  • Публикаций: 0
^
Очень плохая штука. Лучше жать "не выводить на главной" так как, появляются пустые страницы <_<