SN74 5 Опубликовано: 16 февраля 2018 Рассказать Опубликовано: 16 февраля 2018 В 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; Лучше написать хак который использует стандартное поле, но меняет логику работы на описанную выше. Ваш текущий код не все места в движке правит. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.