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)
   
Навигация по сайту
   
 

Шаблоны кратких новостей на главной страницы

 

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

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

Установка хака для кратких новостей:

  1. Открываем engine/modules/show.short.php
    • Находим:
      $news_found = FALSE;
    • Ниже вставляем:
      $short_main = FALSE;
    • Находим:
             else $tpl->load_template( 'shortstory.tpl' );
    • Заменяем на:
              else
              {
                  if ( $category_id ) $tpl->load_template( 'shortstory.tpl' );
                  else
                  {
                      $template = get_vars( 'template' );

                          
                      if ( ! $template )
                      {
                          $template = array ( );
                          
                          foreach( $cat_info as $key => $value )
                          {
                              if ( $cat_info[$key]['short_tpl'] != '' AND file_exists( $tpl->dir . DIRECTORY_SEPARATOR . $cat_info[$key]['short_tpl'] . '.tpl' ) )
                                  $template[$key] = file_get_contents( $tpl->dir . DIRECTORY_SEPARATOR . $cat_info[$key]['short_tpl'] . '.tpl' );
                          }
                          
                          if ( file_exists( $tpl->dir . DIRECTORY_SEPARATOR . 'shortstory.tpl' ) ) $template[0] = file_get_contents( $tpl->dir . DIRECTORY_SEPARATOR . 'shortstory.tpl' );
                          else die( 'Не возможно загрузить shortstory.tpl' );
                          
                          set_vars( 'template', $template );
                      }
                      
                      $short_main = true;
                  }
              }
    • Находим:
              while ( $row = $db->get_row( $sql_result ) ) {
    • Ниже вставляем:
              if ( $short_main )
              {
                  if ( isset( $template[intval( $row['category'] )] ) ) $tpl->copy_template = $template[intval( $row['category'] )];
                  else $tpl->copy_template = $template[0];
                  
                  if ( ! $xfound AND ( strpos( $tpl->copy_template, "[xfvalue_" ) !== false OR strpos( $tpl->copy_template, "[xfgiven_" ) !== false ) )
                  {
                      $xfound = true;
                      $xfields = xfieldsload();
                  }
              }
  2. Вот и все, теперь выбранный шаблон краткой новости в настройках категорий будет работать и на главной страницы.

Внимение!

  • Первая загрузка главной страницы, может потребовать некоторое время, так как будет производится кэширование шаблонов. 
  • После редактирование или создания категорий необходимо очистить кэш сайта, чтобы было произведено повторное кэшеирование шаблонов.
  • Нагрузка на сервер никуда не денется, но она будет значительно ниже, чем у аналогичных хаков.
P.S> По просьбе пользователей, на днях будет опубликован еще один небольшой хак, для выбора своего дизайна для каждой новости!

 
 
  Думайте, создавайте, творите, развивайте!
Автор: Брупт (DLE-Infa.Ru)
Категории новости: Хаки
Ключевые слова новости: dle, хак, категории, новости, шаблон
 
 
 
 
 
   
 

#1 Автор комментария: sapfire65 Дата написания комментария: 28 февраля 2011 16:40
 


Дата рег.: 27.02.2011
Комментариев: 2
Публикаций: 0
Это просто супер, вы ГУРУ ДЛЕ !!!

цитировать
 

#2 Автор комментария: Роман С. Дата написания комментария: 5 января 2012 12:32
 


Дата рег.: --
Комментариев: 0
Публикаций: 0
Ага, вот только дополнительные поля новости перестали работать. Действительно, зачем они нужны? Можно и похерить их, да? =\

цитировать
 

#3 Автор комментария: Брупт Дата написания комментария: 7 января 2012 22:04
 


Дата рег.: 16.04.2009
Комментариев: 82
Публикаций: 167
На вывод доп. полей данный хак не влияет )

цитировать
 

#4 Автор комментария: Человек Дата написания комментария: 9 февраля 2012 19:11
 


Дата рег.: --
Комментариев: 0
Публикаций: 0
Ага, не влияет... Не работают они.

цитировать
 

#5 Автор комментария: bloodhand Дата написания комментария: 18 февраля 2012 16:05
 


Дата рег.: --
Комментариев: 0
Публикаций: 0
Чтобы работали дополнительные поля нужно после
if ( $short_main AND isset( $template[reset( explode( ',', $row['category'] ) )] ) ) $tpl->copy_template = $template[reset( explode( ',', $row['category'] ) )];
elseif ( $short_main ) $tpl->copy_template = $template[0];


Ниже вставить
if( strpos( $tpl->copy_template, "[xfvalue_" ) !== false OR strpos( $tpl->copy_template, "[xfgiven_" ) !== false ) { $xfound = true; $xfields = xfieldsload();}
else $xfound = false;

цитировать
 

#6 Автор комментария: Брупт Дата написания комментария: 10 марта 2012 23:05
 


Дата рег.: 16.04.2009
Комментариев: 82
Публикаций: 167
bloodhand,
Спасибо, подправил новость.

цитировать
 

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

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