• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

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

killoff

CD тихо, и не DVD меня ;)
Команда форума
Модератор
Регистрация
13 Май 2008
Сообщения
2.619
Реакции
1.125
  • Автор темы
  • Модер.
  • #1
Автор данного хака Caspian

Помните! Все делаете на свой страх и риск. Действия связанные с данным хаком ложатся полностью на вас господа!

Зайти в 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 и описание для категорий!
 
Помните! Все делаете на свой страх и риск. Действия связанные с данным хаком ложатся полностью на вас господа!
А что тут рискованного?
Деструктивных запросов в БД я не вижу, редактор только у админов (имея админку нашалить можно и без этого хака), дополнительных запросов нет...
Разве что возможная проблема с кэшем, хотя на мою память - там кэшируется вся таблица, а не выделенные поля...
 
  • Автор темы
  • Модер.
  • #3
Текст был скопирован в том виде, в котором его писал, скорее всего, автор этого хака! В том же выделении текста. Я же решил оставить это предостережение :)
 
  • Автор темы
  • Модер.
  • #4
По идее для этих целей можно использоваться Catface, чтобы не лезть в движок и не было дальнейших проблем с обновлением
Можно! в 12-й версии описание категории уже можно вносить сразу при редактировании категорий. h1 они не добавили. Да и удобнее, если это будет на одной странице категорий, а не отдельными модулями всё сделано!
 
Назад
Сверху