Модернизация модуля категорий beta 0.1
- Модули DLE
Предисловие: Человек далекий от программирования используя копипаст за пару часов написал этот код.
Поэтому просьба не судить строго.
Модуль очень полезный для больших порталов где требуются разные модули и блоки, в каждой категории.
Решил модернизировать блок категорий всвязи с тем, что необходимо на одном сайте создать большое количество категорий.
Решение c тегами "custom", "avialable", "include file" не подходит получиться очень большой файл шаблона.
Что будет добавлено. Добавлять будем поле(по аналогии можно добавить несколько) для ввода блока - HTML код.
Храниться всё это дело будет в базе данных.
Выводиться в шаблон по средством тегов {cat_block1}.
Данные будут браться в зависимости от той категории в которой вы находитесь.
Если не укажите блок то ничего и не будет выводиться.
К сожалению пока не работает для главной страницы.
И так приступим.
1. Сначала добавим в базу данных в таблицу dle_categories
дополнительно столбец cat_block1 (значение поля TEXT)
2. Создадим файл /engine/modules/mod_cat.php
<?php
$row = $db->super_query( "SELECT * FROM " . PREFIX . "_category WHERE id = '{$category_id}'" );
$cat_block1 = $row['cat_block1'];
$tpl->set ( '{cat_block1}', '{$cat_block1}' );
?>
3. Внесем изменения в файл /engine/engine.php
Добавить данную строку
include_once ENGINE_DIR."/modules/mod_cat.php";
После:
if ($titl_e) $metatags['title'] = $titl_e . ' » ' . $config['home_title'];
Или перед
if (! $rss_url) {
if ($config['allow_alt_url'] == "yes") {
$rss_url = $config['http_home_url'] . "rss.xml";
4. Откроем файл /index.php
Добавить
$tpl->set ( '{cat_block1}', $cat_block1 );
Перед
$tpl->set ( '{speedbar}', $tpl->result['speedbar'] );
5. Доработка в админке.
Открываем файл /engine/inc/categories.php
5.1. Встречается в коде два раза. После
$full_tpl = totranslit
Добавляем строку
$cat_block1 = stripslashes ( $_POST['cat_block1'] );
5.2 Заменяем
$db->query( "INSERT INTO " . PREFIX . "_category (parentid, name, alt_name, icon, skin, descr, keywords, news_sort, news_msort, news_number, short_tpl, full_tpl) values ('$category', '$cat_name', '$alt_cat_name', '$cat_icon', '$skin_name', '$description', '$keywords', '$news_sort', '$news_msort', '$news_number', '$short_tpl', '$full_tpl')" );
На:
$db->query( "INSERT INTO " . PREFIX . "_category (parentid, name, alt_name, icon, skin, descr, keywords, news_sort, news_msort, news_number, short_tpl, full_tpl, cat_block1) values ('$category', '$cat_name', '$alt_cat_name', '$cat_icon', '$skin_name', '$description', '$keywords', '$news_sort', '$news_msort', '$news_number', '$short_tpl', '$full_tpl', '$cat_block1')" );
5.3. Встречается в коде два раза: После:
<tr>
<td style="padding:4px;">{$lang['cat_f_tpl']}</td>
<td><input class="edit" type="text" name="full_tpl" value="{$row['full_tpl']}">.tpl<a href="#" class="hintanchor" onmouseover="showhint('{$lang[cat_f_tpl_hit]}', this, event, '250px')">[?]</a></td>
</tr>
Добавляем:
<tr id="default_textarea">
<td style="padding:4px;">Код Блока</td>
<td><textarea style="width: 400px; height: 200px;" name="cat_block1" >{$row['cat_block1']}</textarea>
</td>
</tr>
5.4. Зменить
$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' 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', keywords='$keywords', news_sort='$news_sort', news_msort='$news_msort', news_number='$news_number', short_tpl='$short_tpl', full_tpl='$full_tpl', cat_block1='$cat_block1' WHERE id='$catid'" );
И на последок:
Заходим в админку теперь появилось поле для редактирования блока вразделе "Управление категориями" если кто еще не понял:
Выводим блок в шаблон через тег:
{cat_block1}
6. Забыл - наслаждаемся результатом.
С уважением,
MozgFx
Автор: MozgFx
Стоимость: Бесплатно
Ключевые слова по теме Модернизация модуля категорий beta 0.1: cat_block1, будет, 34_category, PREFIX, категорий, категории, очень, db62query40, данных, WHERE, 39cat_block139, После, tpl62set, блока, шаблон, MozgFx, главной, страницы, 39skin_name39, 39description39