1 (01.10.2012 12:39 отредактировано Kanra)

Тема: [кухня 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 Тема будет дополняться. Подкидывайте идеи по нужным тегам.

Re: [кухня DLE] Глобализация тегов DLE

Супер!!! Ждем продолжения, а потом я оформлю это в виде поста на блог, с твоего позволения!

Re: [кухня DLE] Глобализация тегов DLE

Kanra пишет:

p.s Тема будет дополняться. Подкидывайте идеи по нужным тегам.

К примеру вывод тегов из статистики ({news_moder}, {comm_day}, {news_num} и т.д.) в  main.tpl

Re: [кухня DLE] Глобализация тегов DLE

Stl пишет:

К примеру вывод тегов из статистики

Можно добавить:
- количество новостей на сайте
- количество комментариев
- количество зарегистрированных пользователей
- ...

5 (01.10.2012 12:45 отредактировано Kanra)

Re: [кухня DLE] Глобализация тегов DLE

admin пишет:

- количество новостей на сайте
- количество комментариев
- количество зарегистрированных пользователей

Добавил. Стоит учитывать, что это +1 запрос к бд за каждый тег. Остальные теги статистики достаточно специфические и не находят широкого применения, по аналогии кому надо сделает, будет что потом в комментариях блога обсудить.

p.s Кому не сложно протестируйте их на новых версиях dle. Я проверяю на 9.0.

6

Re: [кухня DLE] Глобализация тегов DLE

конечно возможно вопрос туповат... но все же...
Что даст вывод этих тегов на страницах? больше текста? ключей?

Re: [кухня DLE] Глобализация тегов DLE

donald_666 пишет:

Что даст вывод этих тегов на страницах? больше текста? ключей?

Если вы подходите к созданию сайта только с этой стороны, то ничего.

Re: [кухня DLE] Глобализация тегов DLE

Kanra пишет:

Стоит учитывать, что это +1 запрос к бд за каждый тег.

Добавь кеширование с обновлением раз в час.

Kanra пишет:

Кому не сложно протестируйте их на новых версиях dle. Я проверяю на 9.0.

А никто еще не отменял локалку на Денвере smile

Re: [кухня DLE] Глобализация тегов DLE

admin пишет:

А никто еще не отменял локалку на Денвере

Какой шустрый. У меня на работе постороннее ПО контролируют. А дома я занятие поинтереснее найду.

10

Re: [кухня DLE] Глобализация тегов DLE

Kanra пишет:

Если вы подходите к созданию сайта только с этой стороны, то ничего.

хм, а с какой тогда стороны подходите вы, чтобы ваш метод был полезен?
Мне просто интересно, хочу услышать вашу точку зрения.

11

Re: [кухня DLE] Глобализация тегов DLE

donald_666 пишет:

хм, а с какой тогда стороны подходите вы, чтобы ваш метод был полезен?

Вот например сайт есть http://emofans.ru/ - там есть блок слева "Что говорят на форуме?" и надпись "Нас уже: 87486 человек!" - как бы показатель "крутости" сайта. Это может сподвигунть новых пользователей регистрироваться. В отличие от сайта, где было бы написано "нас 23 человека - присоединяйтесь к нашему огромному сообществу"...
Утрировано для примера. Но зато понятно!

12

Re: [кухня DLE] Глобализация тегов DLE

admin пишет:

Вот например сайт есть http://emofans.ru/ - там есть блок слева "Что говорят на форуме?" и надпись "Нас уже: 87486 человек!" - как бы показатель "крутости" сайта. Это может сподвигунть новых пользователей регистрироваться. В отличие от сайта, где было бы написано "нас 23 человека - присоединяйтесь к нашему огромному сообществу"...
Утрировано для примера. Но зато понятно!

Вотт спасибо, теперь понятно) и доступно)

13 (01.10.2012 16:06 отредактировано Stl)

Re: [кухня DLE] Глобализация тегов DLE

Kanra пишет:

p.s Кому не сложно протестируйте их на новых версиях dle. Я проверяю на 9.0.

Сегодня проверю, некоторые теги из статистики на 9.7 и отпишусь.

UPD. Все теги статистики выше работают.

Не могли бы вы сделать вывод тега  {news_moder}?

14

Re: [кухня DLE] Глобализация тегов DLE

Stl пишет:

Не могли бы вы сделать вывод тега  {news_moder}?

Выполнить пункты 7 и 8. После вставить:

$tpl->set( '{news_moder}', $stats_news - $stats_approve );

Re: [кухня DLE] Глобализация тегов DLE

Kanra, все работает, спасибо большое.

16 (17.10.2012 17:00 отредактировано regsaitsw)

Re: [кухня DLE] Глобализация тегов DLE

Что надо изменить, что-бы был вывод количества зарегистрированных пользователей  в sidebar.tpl - подскажите пожалуйста.
P.S. Перенесите мой вопрос в "Нубские вопросы" - может тогда ответят.

17

Re: [кухня DLE] Глобализация тегов DLE

Здравствуйте! А можно  сделать, что бы в облаке тегов возле каждого тега было выведено количество новостей, относящихся к этому тегу?

18

Re: [кухня DLE] Глобализация тегов DLE

teleoperator27 пишет:

Здравствуйте! А можно  сделать, что бы в облаке тегов возле каждого тега было выведено количество новостей, относящихся к этому тегу?

Уже давно реализовано Павлом. Тыц-тыц. С его позволения могу добавить в шапку этой темы.

19

Re: [кухня DLE] Глобализация тегов DLE

Kanra пишет:

Уже давно реализовано Павлом. Тыц-тыц. С его позволения могу добавить в шапку этой темы.

всегда пожалуйста )

20

Re: [кухня DLE] Глобализация тегов DLE

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]

Не работает, ругается на вот это: if ($dle_module == "showfull" ) {
$tpl->set( '{news-title}', stripslashes( $row['title'] );
}
если добавить круглую скобку, то есть вот так:
if ($dle_module == "showfull" ) {
$tpl->set( '{news-title}', stripslashes( $row['title'] ));
}
то страница сайта загружается, но на месте вставленного тега пустое место....
как быть?