DLE-Infa.RU Регистрация Статистика Контакты Сервис
«    Май 2012    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
ajax, css, dle, free, green, info, news, pr, release, sms, url, user, wap, альбом, английский, баг, блок, загрузка, запрет, изображения, категории, комментарии, кэш, модуль, новости, новость, ошибка, переходы, подсказки, пользователи, релиз, смарт, спам, тиц, файлы, фото, хак, чпу, шаблон, шаблоны
Качественный и дешевый VDS / VPS хостинг
 Наш архив:
Апрель 2011 (1)
Январь 2011 (8)
Декабрь 2010 (7)
Ноябрь 2010 (3)
Октябрь 2010 (12)
Сентябрь 2010 (4)
   
Навигация по сайту
   
 

Сочный дизайн на главной страницы. Свой шаблон для каждой новости

 

Представляю Вашему вниманию небольшой хак, который поможет организовать уникальный дизайн каждой новости на главной страницы сайта, без дополнительной нагрузки на сервер!

Установка хака уникального шаблона для каждой новости:

  1. Открываем engine/modules/show.short.php
    • Находим:
          if( isset( $view_template ) and $view_template == "rss" ) {
          } elseif( $category_id and $cat_info[$category_id]['short_tpl'] != '' ) $tpl->load_template( $cat_info[$category_id]['short_tpl'] . '.tpl' );
          else $tpl->load_template( 'shortstory.tpl' );
    • Заменяем на:
          if( isset( $view_template ) and $view_template == "rss" ) {
          } elseif( $category_id and $cat_info[$category_id]['short_tpl'] != '' ) $tpl->load_template( $cat_info[$category_id]['short_tpl'] . '.tpl' );
          elseif ( $dle_module == 'main' )
          {
              $tpl->load_template( 'main_shortstory.tpl' );
              $template = explode( '[razdelitel]', $tpl->copy_template );
          } else $tpl->load_template( 'shortstory.tpl' );
    • Находим:
      while ( $row = $db->get_row( $sql_result ) ) {
    • Ниже вставляем:
              if ( $dle_module == 'main' )
              {
                  if ( in_array( $row['category'], array( '1', '0', '3' ) ) ) $templ = '1';
                  elseif ( in_array( $row['category'], array( '1', '0', '3' ) ) ) $templ = '2';
                  else $templ = '0';
                  
                  if ( isset( $template[$templ] ) ) $tpl->copy_template = $template[$templ];
                  else $tpl->copy_template = $template[0];
              }
    • Теперь создаем шаблон main_shortstory.tpl и вставляем несколько шаблонов сразу, разделяя их тегом [razdelitel].

Теперь подробнее! Данный хак загружает ОДИН раз шаблон main_shortstory.tpl и создает из него массив нескольких шаблонов при помощи тега [razdelitel], а при генерации новости мы просто выбираем нужный нам шаблон! Размер массива зависит от количество тегов [razdelitel], если тег вставлен один раз, то создается двух мерный массив, два раза - трех мерный и т.д.

В Данном примере тег будет вставлен 2 раза, соответственно создается трех мерный массив от 0 до 2. Обратите внимание на строчки в коде выделенные зеленым цветом. array( '10', '0', '3' ) (if) 10, 0 и 3 это Ид категорий и если новость относится к этим категориям, то будет загружен шаблон, который находится в массиве с индексом 1 ($templ = '1';) и соответсвенно array( '2', '8', '5' ) (elseif) говорит, что если новость относится к категории 2, 8 или 5 то будет загружен шаблон с индексом в массиве 2 ($templ = '2';). И если новость опубликована в другую категорию (else), то соответственно будет загружаться шаблон с индексом в массиве 0 ($templ = '0';).

Естественно изменяйте под Ваши нужды часть кода выделенные зеленым цветом и добавляйте нужные условия!

Теперь  чтобы поняли все до исключения как использовать данный хак приведу пример:

Я хочу чтобы для новостей в категориях 3, 8, 4 загружался синий шаблон, для 2, 5, 12, 6 категорий загружался розовый шаблон, для 14 и 15 категорий загружался оранжевый шаблон, а для всех остальных категорий загружался красный шаблон. (Получится 4 мерный массив с индексами от 0 до 3).

Шаблон main_shortstory.tpl имеет такое содержимое:

---------------------------------------

Код синего шаблона (Индекс в массиве 0)
[razdelitel]
Код красного шаблона (Индекс в массиве 1)

[razdelitel]
Код розового шаблона (Индекс в массиве 2)

[razdelitel]
Код оранжевого шаблона (Индекс в массиве 3)

---------------------------------------

Следовательно я заменяю в коде Выше:

        if ( in_array( $row['category'], array( '10', '0', '3' ) ) ) $templ = '1';
        elseif ( in_array( $row['category'], array( '2', '8', '5' ) ) ) $templ = '2';
        else $templ = '0';
На нужный мне код:
        if ( in_array( $row['category'], array( '3', '8', '4' ) ) ) $templ = '0';
        elseif ( in_array( $row['category'], array( '2', '5', '12', '6' ) ) ) $templ = '2';

        elseif ( in_array( $row['category'], array( '14', '15' ) ) ) $templ = '3';
        else $templ = '1';

Вот и все! У нас получилась радужная, сочная и красивая главная страница! Развивайте, творите, создавайте!


 
 
  Автор: Брупт (dle-infa.ru)
Категории новости: Хаки
Ключевые слова новости: dle, хак, категории, новости, шаблон
 
 
 
 
 
   
 

Добавление комментария
 
Ваше Имя:
Ваш E-Mail:
Включите эту картинку для отображения кода безопасности
обновить, если не виден код

 
 
 
Популярные новости
Copyright© DLE-Infa group (DLE-Infa.RU) 2009-2011 Все права защищены. Копирование и использование каких либо материала на сайте разрешено только с прямой ссылкой на dle-infa.ru