Главная » Модули DLE » Модернизация модуля категорий beta 0.1

Модернизация модуля категорий beta 0.1

  • Модули DLE

Модернизация модуля категорий beta 0.1


Предисловие: Человек далекий от программирования используя копипаст за пару часов написал этот код.
Поэтому просьба не судить строго.
Модуль очень полезный для больших порталов где требуются разные модули и блоки, в каждой категории.

Решил модернизировать блок категорий всвязи с тем, что необходимо на одном сайте создать большое количество категорий.
Решение 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