Ajax переключение вида кратких новостей на главной странице DLE
В данной статье я постараюсь объяснить суть этого хака и как можно подробней описать установку. Установка очень лёгкая и займет всего пару минут.
Описание:
Хак Ajax template - это небольшая модификация которая позволяет менять вид кратких новостей не перезагружая всю страницу.
Данный хак нисколько не нагружает сам сайт. Принцип его работы заключается в том чтобы загрузить дополнительный шаблон кратких новостей, не перезагружая всю страницу.
Демонстрацию этой модификации вы уже видели, а если не видели то можете посмотреть на главной странице этого сайта.
Установка:
Для начала скачиваем архив с файлами модификации/хака
[aviable=main|cat]<link media="screen" href="{THEME}/css/ajax_temp.css" type="text/css" rel="stylesheet" />[/aviable]
Затем в самом низу этого же файла подключаем .js файл, перед тегом <body> вставляем:
[aviable=main|cat]<script type="text/jаvascript" src="{THEME}/js/ajax_temp.js"></script>[/aviable]
В этом же файле в месте где хотим чтобы отображался сам переключатель вставляем следующее:
[aviable=main|cat]
<div class="view-type templater">
<a href="#" [default] class="activetempajax" [/default] data-temp="this_1" data-catid="{id_cat}" data-pageid="{cstart}" data-nametemp="default">
<span class="setview view1"></span>
</a>
<a href="#" [list] class="activetempajax" [/ list] data-temp="this_2" data-catid="{id_cat}" data-pageid="{cstart}" data-nametemp="list">
<span class="setview view2"></span>
</a>
<a href="#" [table] class="activetempajax" [/table] data-temp="this_3" data-catid="{id_cat}" data-pageid="{cstart}" data-nametemp="tablet">
<span class="setview view3"></span>
</a>
</div>
[/aviable]
Готово! к шаблону мы подключились. Теперь займемся файлами движка..
Открываем файл /engine/engine.php и ищем такие строки:
$cache_prefix .= "_tempate_" . $config['skin'];
Ниже дописываем это:
$user_short_tpl = array(
'default' => 'shortstory.tpl',
'list' => 'shortstory_list.tpl',
'tablet' => 'shortstory_tablet.tpl'
);
$user_tpl =(isset($_COOKIE['short_template']) && isset($user_short_tpl[$_COOKIE['short_template']])) ? $_COOKIE['short_template'] : "default";
$cache_prefix .= "_".$user_tpl;
Далее открываем файл /engine/modules/show.short.php и ищем строки:
if( $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' );
Заменяем эти строки на:
$user_short_tpl = array(
'default' => 'shortstory.tpl',
'list' => 'shortstory_list.tpl',
'tablet' => 'shortstory_tablet.tpl'
);
if($template_ajax)
$user_tpl = $user_short_tpl[$template_ajax];
else
$user_tpl =(isset($_COOKIE['short_template']) && isset($user_short_tpl[$_COOKIE['short_template']])) ? $user_short_tpl[$_COOKIE['short_template']] : $user_short_tpl["default"];
if( $category_id and $cat_info[$category_id]['short_tpl'] != '' ) $tpl->load_template( $cat_info[$category_id]['short_tpl'] . '.tpl' );
else{ $tpl->load_template($user_tpl);}
После открываем файл /engine/modules/main.php (если у вас более старая версия DLE то файл index.php корневой!) и находим:
$tpl->set ( '{speedbar}', $tpl->result['speedbar'] );
Ниже вставляем:
$tpl->set ( '{id_cat}', $category_id );
$tpl->set ( '{cstart}', intval($_REQUEST["cstart"]) );
if(isset($_COOKIE['short_template']))
{
if($_COOKIE['short_template'] == "default")
{
$tpl->set_block( "'\\[default\\](.*?)\\[/default\\]'si", "\\1" );
$tpl->set_block( "'\\[list\\](.*?)\\[/list\\]'si", "" );
$tpl->set_block( "'\\[table\\](.*?)\\[/table\\]'si", "" );
}
elseif($_COOKIE['short_template'] == "list")
{
$tpl->set_block( "'\\[default\\](.*?)\\[/default\\]'si", "" );
$tpl->set_block( "'\\[list\\](.*?)\\[/list\\]'si", "\\1" );
$tpl->set_block( "'\\[table\\](.*?)\\[/table\\]'si", "" );
}
else
{
$tpl->set_block( "'\\[default\\](.*?)\\[/default\\]'si", "" );
$tpl->set_block( "'\\[list\\](.*?)\\[/list\\]'si", "" );
$tpl->set_block( "'\\[table\\](.*?)\\[/table\\]'si", "\\1" );
}
}
else
{
$tpl->set_block( "'\\[default\\](.*?)\\[/default\\]'si", "\\1" );
$tpl->set_block( "'\\[list\\](.*?)\\[/list\\]'si", "" );
$tpl->set_block( "'\\[table\\](.*?)\\[/table\\]'si", "" );
}
Ну вот и всё! Если вы сделали всё в точности как на писано в данной статье, то хак должен работать!
В файлах shortstory.tpl shortstory_list.tpl shortstory_tablet.tpl настраиваем внешний вид.
Автор модификации: Неизвестен!
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.