Блог Евгения Попова :: Программы :: DataLife Engine

Добавляем вкладки h1 и текста в настройки категорий


Данный хак можно использовать как альтренативу модулю CatFace, либо же использовать его совместно с ним и выводить два блока описания категорий и два заголовка.

Зайти в phpmyadmin и сделать запрос (если у вас другой префикс у таблиц, то поменяйте на свой):
ALTER TABLE `dle_category` ADD `h1_text` TEXT NOT NULL AFTER `descr`;
ALTER TABLE `dle_category` ADD `mini_descr` TEXT NOT NULL AFTER `h1_text`;

Открыть файл /engine/modules/main.php и найти:
$tpl->load_template ( 'main.tpl' );

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

if( $cat_info[$category_id]['h1_text'] ) {
   $tpl->set( '[category-text]', "" );
   $tpl->set( '[/category-text]', "" );
   $tpl->set( '{category-text}', $cat_info[$category_id]['h1_text'] );
} else {
   $tpl->set_block( "'\\[category-text\\](.*?)\\[/category-text\\]'si", "" );
   $tpl->set( '{category-text}', '' );
}

if( $cat_info[$category_id]['mini_descr'] ) {
   $tpl->set( '[category-mini-descr]', "" );
   $tpl->set( '[/category-mini-descr]', "" );
   $tpl->set( '{category-mini-descr}', $cat_info[$category_id]['mini_descr'] );
} else {
   $tpl->set_block( "'\\[category-mini-descr\\](.*?)\\[/category-mini-descr\\]'si", "" );
   $tpl->set( '{category-mini-descr}', '' );
}

Открыть файл /engine/inc/categories.php и найти (2 раза):
$description = $db->safesql( dle_substr( strip_tags( stripslashes( $_POST['descr'] ) ), 0, 200, $config['charset'] ) );

И после каждого вставить:
$h1_text = $db->safesql(  htmlspecialchars( strip_tags( stripslashes($_POST['h1_text'] ) ), ENT_QUOTES, $config['charset']) );
$mini_descr = $db->safesql(  stripslashes($_POST['mini_descr'] ), ENT_QUOTES, $config['charset'] );

Найти:

<div class="form-group">
   <label class="control-label col-lg-2">{$lang['meta_descr_cat']}</label>
   <div class="col-lg-10">
       <input type="text" name="descr" style="width:100%;max-width:350px;" value="{$row['descr']}"> ({$lang['meta_descr_max']})
   </div>
</div>


Ниже вставить:
<div class="form-group">
   <label class="control-label col-lg-2">H1 для категории</label>
   <div class="col-lg-10">
       <input type="text" name="h1_text" style="width:100%;max-width:350px;" value="{$row['h1_text']}">
   </div>
</div>
<div class="form-group">
   <label class="control-label col-lg-2">Мини описание для категории</label>
   <div class="col-lg-10">
       <textarea name="mini_descr" style="width:100%;max-width:350px;" rows="5">{$row['mini_descr']}</textarea>
   </div>
</div>

Найти:
$db->query( "INSERT INTO " . PREFIX . "_category (parentid, name, alt_name, icon, skin, descr, keywords, news_sort, news_msort, news_number, short_tpl, full_tpl, metatitle, show_sub, allow_rss) values ('$category', '$cat_name', '$alt_cat_name', '$cat_icon', '$skin_name', '$description', '$keywords', '$news_sort', '$news_msort', '$news_number', '$short_tpl', '$full_tpl', '$meta_title', '$show_sub', '$allow_rss')" );

Заменить на:
$db->query( "INSERT INTO " . PREFIX . "_category (parentid, name, alt_name, icon, skin, descr, h1_text, mini_descr, keywords, news_sort, news_msort, news_number, short_tpl, full_tpl, metatitle, show_sub, allow_rss) values ('$category', '$cat_name', '$alt_cat_name', '$cat_icon', '$skin_name', '$description', '$h1_text', '$mini_descr', '$keywords', '$news_sort', '$news_msort', '$news_number', '$short_tpl', '$full_tpl', '$meta_title', '$show_sub', '$allow_rss')" );

Найти:

$db->query( "UPDATE " . PREFIX . "_category SET parentid='$parentid', name='$cat_name', alt_name='$alt_cat_name', icon='$cat_icon', skin='$skin_name', descr='$description', keywords='$keywords', news_sort='$news_sort', news_msort='$news_msort', news_number='$news_number', short_tpl='$short_tpl', full_tpl='$full_tpl', metatitle='$meta_title', show_sub='$show_sub', allow_rss='$allow_rss' WHERE id='{$catid}'" );

Заменить на:

$db->query( "UPDATE " . PREFIX . "_category SET parentid='$parentid', name='$cat_name', alt_name='$alt_cat_name', icon='$cat_icon', skin='$skin_name', descr='$description', h1_text='$h1_text', mini_descr='$mini_descr', keywords='$keywords', news_sort='$news_sort', news_msort='$news_msort', news_number='$news_number', short_tpl='$short_tpl', full_tpl='$full_tpl', metatitle='$meta_title', show_sub='$show_sub', allow_rss='$allow_rss' WHERE id='{$catid}'" );

Использование:

[aviable=cat]
[category-text]<h1>{category-text}</h1>[/category-text]
[category-mini-descr]<div>{category-mini-descr}</div>[/category-mini-descr]
[/aviable]

В итоге у нас в редакторе категорий появятся еще два поля h1 и описание для категорий!

Автор данного хака Caspian
Перейти на сайт (скачивать файлы можно только на сайте)