Перейти к публикации

Убрать вывод новостей из корневого раздела.


Рекомендованные сообщения

В 22.01.2018 в 13:38, Gameer сказал:

Держите

Выполнить SQL запрос


ALTER TABLE `dle_category` ADD `show_parent` TINYINT(1) NOT NULL DEFAULT '1' AFTER `show_sub`;

Открыть /engine/inc/category.php найти (2 раза)


$show_sub = intval($_POST['show_sub']);

Ниже вставить (2 раза)


$show_parent = intval($_POST['show_parent']);

Далее найти


show_sub, allow_rss,

Заменить на


show_sub, show_parent, allow_rss,

Далее найти


'$show_sub', '$allow_rss',

Заменить на


'$show_sub', '$show_parent', '$allow_rss',

Далее найти


$row['show_sub'] = makeDropDown( array ("0" => $lang['sys_global'], "1" => $lang['opt_sys_yes'], "2" => $lang['opt_sys_no'] ), "show_sub", $row['show_sub'] );

Ниже вставить


$row['show_parent'] = makeDropDown( array ("1" => $lang['opt_sys_yes'], "0" => $lang['opt_sys_no']), "show_parent", $row['show_parent'] );

Далее найти


<div class="form-group">
<label class="control-label col-md-2 col-sm-3">{$lang['opt_sys_sub']}</label>
<div class="col-md-10 col-sm-9">
{$row['show_sub']}
</div>
</div>

Ниже вставить


<div class="form-group">
<label class="control-label col-md-2 col-sm-3">Показывать новости в родительской категории</label>
<div class="col-md-10 col-sm-9">
{$row['show_parent']}
</div>
</div>

Далее найти


show_sub='$show_sub',

Заменить на


show_sub='$show_sub', show_parent='$show_parent',

Далее найти


<div class="form-group">
    <div class="row">
        <div class="col-sm-12">
            <label>{$lang['meta_keys']}</label>
            <textarea name="keywords" class="classic" style="width:100%;" rows="3"></textarea>
        </div>
    </div>
</div>

Ниже вставить


<div class="form-group">
    <div class="row">
        <div class="col-sm-12">
            <label>Показывать новости в родительской категории</label>
            <select class="uniform" name="show_parent" data-width="100%"><option value="1" selected>{$lang['opt_sys_yes']}</option><option value="0">{$lang['opt_sys_no']}</option></select>
        </div>
    </div>
</div>

Открыть /engine/modules/functions.php найти


function get_sub_cats($id, $subcategory = '') {

Выше вставить


function get_not_sub_cats($id, $subcategory = array()) {
    global $cat_info;
    $subfound = array();

    foreach($cat_info as $cats) {
        if($cats['parentid'] == $id && $cats['show_parent'] == 0) {
            $subfound[] = $cats['id'];
        }
    }
    
    foreach($subfound as $parentid) {
        $subcategory[] = $parentid;
        $subcategory = get_not_sub_cats($parentid, $subcategory );
    }
    
    return $subcategory;
}

Открыть /engine/engine.php найти


if ($config['allow_multi_category']) {
                
    $where_category = "category regexp '[[:<:]](" . $get_cats . ")[[:>:]]'";

} else {
    
    if ( $allow_sub_cats ) {
        
        $get_cats = str_replace ( "|", "','", $get_cats );
        $where_category = "category IN ('" . $get_cats . "')";
    
    } else {
        
        $where_category = "category = '{$get_cats}'";
    
    }

}

Ниже вставить


$result_parent_cats = get_not_sub_cats($category_id);
if(count($result_parent_cats)) {
    $not_show_cat = array();
    foreach($result_parent_cats as $key => $array_cat) {
        if($array_cat['id'])
            $not_show_cat[] = $array_cat['id'];
    }
    if($config['allow_multi_category']) {
        $where_category .= " AND category NOT regexp '[[:<:]](" . implode("|", $not_show_cat) . ")[[:>:]]'";
    }
    else {
        $where_category .= " AND category NOT IN ('" . implode("','", $not_show_cat) . "')";
    }
}

Открыть /engine/init.php найти


$temp_parent = $cat_info[$value]['parentid'];

Ниже вставить


if($cat_info[$value]['show_parent'] == 0)
    continue;

 

Лучше написать хак который использует стандартное поле, но меняет логику работы на описанную выше.
Ваш текущий код не все места в движке правит.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...