| Навигация по сайту |
| |
|
 |
|
|
 |
|
 |
| |
Здравствуйте! Продолжаю тему дизайна кратких новостей на главной страницы сайта. Как Вы все знаете при использовании не стандартного шаблона для кратких новостей определенной категории, данный шаблон не используется на главной страницы сайта, так как это вызывает существенную нагрузку на сервер.
Есть много хаков, которые сохраняют вывод не стандартного шаблона краткой новости, на главной страницы сайта, но как правило после установки таких хаков скрипт начинает выполнять от 10 и более чтений файлов, что само по себе не очень хорошо. Поэтому хочу предложить Вашему вниманию хак, который после кэшеирования сохраняет прежнюю нагрузку, выполняя всего одно чтение данных!
Установка хака для кратких новостей:
- Открываем 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(); } }
- Вот и все, теперь выбранный шаблон краткой новости в настройках категорий будет работать и на главной страницы.
Внимение!
- Первая загрузка главной страницы, может потребовать некоторое время, так как будет производится кэширование шаблонов.
- После редактирование или создания категорий необходимо очистить кэш сайта, чтобы было произведено повторное кэшеирование шаблонов.
- Нагрузка на сервер никуда не денется, но она будет значительно ниже, чем у аналогичных хаков.
P.S> По просьбе пользователей, на днях будет опубликован еще один небольшой хак, для выбора своего дизайна для каждой новости!
|
|
 |
|
 |
| |
Думайте, создавайте, творите, развивайте!
Автор: Брупт (DLE-Infa.Ru)
Категории новости: Хаки Ключевые слова новости: dle, хак, категории, новости, шаблон
|
|
 |
|
 |
| |
|
|
 |
|
 |
 |
#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;
| | цитировать |
|
|
 |
|
 |
|
|
| Популярные новости |
|
|
 |
|