Тема: [кухня DLE] Глобализация тегов DLE
В связи с этой темой начинаю небольшую серию мануалов по выводу полезных на мой взгляд тегов в другие файлы шаблона. Погнали.
1) Вывод названия категории в main.tpl
Открыть index.php, найти:
$tpl->load_template ( 'main.tpl' );
После вставить:
$tpl->set ( '{cat-title}', $cat_info[$category_id]['name'] );
В нужном месте main.tpl вставить {cat-title}.
2) Вывод названия новости в main.tpl
Открыть index.php, найти:
$tpl->set ( '{speedbar}', $tpl->result['speedbar'] );
Ниже вставить:
if ($dle_module == "showfull" ) {
$tpl->set( '{news-title}', stripslashes( $row['title'] );
}
В main.tpl в нужном месте вставить:
[available=showfull] {news-title}[/available]
3) Вывод {related-news} в main.tpl
Открыть show.full.php, найти и удалить:
AND strpos( $tpl->copy_template, "{related-news}" ) !== false
Найти:
$tpl->set( '{related-news}', $buffer );
После вставить:
$title_news_related = $buffer;
Открыть index.php и найти:
$tpl->load_template ( 'main.tpl' );
После вставить:
$tpl->set('{related-news}', $title_news_related);
В main.tpl в нужном месте вставить:
[aviable=showfull]<ul>{related-news}</ul>[/aviable]
4) Вывод аватара в краткой новости
Открыть show.short.php и найти:
$row['category'] = intval( $row['category'] );
После вставить:
if (phpversion() >= '5.4' and $config['charset'] === 'cp1251') {
$author = htmlspecialchars( strip_tags( stripslashes( $row['autor'] ) ) ,ENT_QUOTES, 'cp1251');
} else {
$author = htmlspecialchars( strip_tags( stripslashes( $row['autor'] ) ) );
}
$user_photo = $db->get_row ( $db->query ( "SELECT foto FROM " . PREFIX . "_users WHERE name='{$author}'"));
if ($user_photo['foto'])
{
$tpl->set( '{user_photo}', $config['http_home_url']. "uploads/fotos/" . $user_photo['foto']);
}
else
{
$tpl->set( '{user_photo}', '{THEME}/images/noavatar.png');
}
В нужном месте shortstory.tpl вставить:
<img src="{user_photo}" alt="">
5) Вывод аватара в полной новости
Открыть show.full.php и найти:
$row['category'] = intval( $row['category'] );
Ниже вставить:
if (phpversion() >= '5.4' and $config['charset'] === 'cp1251') {
$author = htmlspecialchars( strip_tags( stripslashes( $row['autor'] ) ) ,ENT_QUOTES, 'cp1251');
} else {
$author = htmlspecialchars( strip_tags( stripslashes( $row['autor'] ) ) );
}
$user_photo = $db->get_row ( $db->query ( "SELECT foto FROM " . PREFIX . "_users WHERE name='{$author}'"));
if ($user_photo['foto'])
{
$tpl->set( '{user_photo}', $config['http_home_url']. "uploads/fotos/" . $user_photo['foto']);
}
else
{
$tpl->set( '{user_photo}', '{THEME}/images/noavatar.png');
}
В нужное место файла fullstory.tpl вставить:
<img src="{user_photo}" alt="">
6) Вывод дополнительных полей в main.tpl
Открыть index.php и найти:
$tpl->load_template ( 'main.tpl' );
После вставить:
if ( $subaction == 'showfull' AND isset( $xfieldsdata['имя_поля'] ) ) $tpl->set( '{pole1}', $xfieldsdata['имя_поля'] );
else $tpl->set('{pole1}', '' );
В main.tpl вставить в нужном месте тег {pole1}.
7) Вывод общего количества новостей в main.tpl
Открыть index.php, найти:
$tpl->load_template ( 'main.tpl' );
После вставить:
$stats_news = dle_cache('news_count');
if(empty($stats_news)){
$row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post" );
$stats_news = $row['count'];
create_cache('news_count',$stats_news);
}
$tpl->set ( '{news_num}', $stats_news );
В шаблоне main.tpl вставить тег {news_num}.
8) Вывод опубликованных новостей в main.tpl
Открыть index.php, найти:
$tpl->load_template ( 'main.tpl' );
После вставить:
$stats_approve = dle_cache('news_allows');
if(empty($stats_approve)){
$row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE approve ='1'" );
$stats_approve = $row['count'];
create_cache('news_allows',$stats_approve);
}
$tpl->set ( '{news_allow}', $stats_approve );
В шаблоне main.tpl вставить тег {news_allow}.
9) Вывод общего количества комментариев в main.tpl
Открыть index.php, найти:
$tpl->load_template ( 'main.tpl' );
После вставить:
$count_comments = dle_cache('count_comm');
if(empty($count_comments)){
$row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_comments" );
$count_comments = $row['count'];
create_cache('count_comm',$count_comments);
}
$tpl->set ( '{comm_num}', $count_comments );
В шаблоне main.tpl вставить тег {comm_num}.
10) Вывод количества зарегистрированных пользователей в main.tpl
Открыть index.php, найти:
$tpl->load_template ( 'main.tpl' );
После вставить:
$stats_users = dle_cache('user_stat');
if(empty($stats_users)){
$row = $db->super_query( "SELECT COUNT(*) as count FROM " . USERPREFIX . "_users" );
$stats_users = $row['count'];
create_cache('user_stat',$stats_users);
}
$tpl->set ( '{user_num}', $stats_users );
В шаблоне main.tpl вставить тег {user_num}.
p.s Тема будет дополняться. Подкидывайте идеи по нужным тегам.