Новый модуль cclive (Прямой эфир)

пн, 24.05.2010 15:47 :: olk
Пока только для тестирования. Новый модуль реализует показ блока и страницы так называемого "Прямого эфира", т.е. показывает информацию по самым последним изменениям при комментировании материалов. Отличается от аналогичных модулей широкой возможностями по темизации вывода. Т.е. вы можете настроить вывод (через шаблоны tpl.php) практически в любом удобном для вас формате. Для этого в модуле реализован вывод шаблоны практически для всех элементов.

Темизация страницы: cclive-page-wrapper.tpl.php Шаблон вывода страницы доступны переменные $livedata - непосредственно данные $pager - стандартный пэйджинг

  1. <div id="cclive-page">
  2. <table>
  3. <tbody>
  4. <?php print $livedata; ?>
  5. </tbody>
  6. </table>
  7. <?php print $pager; ?>
  8. </div>

Шаблон вывода страницы элемента (одной записи в странице) cclive-page-item.tpl.php

доступны переменные

  1. $zebra - (odd,even)
  2. $cclive_item - массив с данными записи
  3. $cclive_item['node_title'] - заголовок ноды
  4. $cclive_item['node_title_link'] - заголовок ноды в виде ссылки на ноду
  5. $cclive_item['node_title_link_to_comment'] - заголовок ноды в виде ссылки на последний комментарий
  6. $cclive_item['node_type'] - тип ноды
  7. $cclive_item['node_type_name'] - наименование типа ноды
  8. $cclive_item['node_timestamp'] - дата время создания ноды в виде timestamp
  9. $cclive_item['node_date'] - дата время создания ноды в формате установленном в настройках модуля
  10. $cclive_item['node_uid'] - uid автора ноды
  11. $cclive_item['node_username'] - имя автора ноды
  12. $cclive_item['node_usermail'] - email автора ноды
  13. $cclive_item['node_user_link'] -  имя автора ноды в виде ссылки на профиль
  14. $cclive_item['node_avatar'] - аватарка автора ноды
  15. $cclive_item['comment_uid'] - uid последнего комментария
  16. $cclive_item['comment_username'] - имя автора последнего комментария
  17. $cclive_item['comment_usermail'] - email автора последнего комментария
  18. $cclive_item['comment_homepage'] - homepage автора последнего комментария
  19. $cclive_item['comment_subject']  - заголовок последнего комментария
  20. $cclive_item['comment_user_link'] - имя автора последнего комментария в виде ссылки на профиль
  21. $cclive_item['comment_avatar'] - аватарка автора последнего комментария
  22. $cclive_item['comment_timestamp']- дата время создания последнего комментария в виде timestamp
  23. $cclive_item['comment_date'] - дата время создания последнего комментария в формате установленном в настройках модуля
  24. $cclive_item['comment_content'] - содержание комментария
  25. $cclive_item['comment_content_link_to_comment'] -  содержание комментария в виде ссылки на этот комментарий
  26. $cclive_item['href_node']  - url на ноду
  27. $cclive_item['href_comment']- url на последний комментарий
  28. $cclive_item['comment_count'] - количество опубликованных комментариев в ноде

  1. <?php
  2. // $Id$
  3. /**
  4.  *  @File
  5.  */
  6. ?>
  7. <tr class="cclive-page-row <?php print $zebra; ?>">
  8. <td class="cclive-page-node">
  9. <?php print  $cclive_item['node_user_link'] . ' &raquo; ' . $cclive_item['node_type_name']. ' &raquo; ' . $cclive_item['node_date'] . ' &raquo; ' . $cclive_item['node_title_link']; ?>
  10. </td>
  11. <td class="cclive-page-comment">
  12. <div class="submited">
  13. <?php print $cclive_item['comment_user_link'] . ' &raquo; ' . $cclive_item['comment_date'] . ' &raquo; <a href="'.$cclive_item['href_comment'].'" class="cclive-cnt">'.format_plural($cclive_item['comment_count'], '1 comment', '@count comments') .'</a>'; ?>
  14. </div>
  15. <div class="cclive-page-comment-body">
  16. <?php print $cclive_item['comment_content'];?>
  17. </div>
  18. </td>
  19. </tr>
так же доступна для переопределения функция темизации
  1. function theme_cclive_page($liveitem) {
  2.          foreach ($liveitem as $key => $value) {
  3.             $livedata .= $value;
  4.    }
  5.          return $livedata;
  6. }

Темизация блока: cclive-block-wrapper.tpl.php Шаблон вывода блока доступны переменные $livedata - непосредственно данные $more - ссылка на страницу cclive

  1. <?php
  2. // $Id$
  3. /**
  4.  *  @File
  5.  */
  6. ?>
  7. <div id="cclive-block">
  8. <?php print $livedata; ?>
  9. <?php print $more; ?>
  10. </div>
В свою очередь $livedata выводиться через функцию темизации
  1. function theme_cclive_block($liveitem) {
  2.          return theme('item_list',$liveitem);
  3. }
где $liveitem - это массив элементов, каждый из которых определен через шаблон cclive-block-item.tpl.php переменные аналогичны шаблону cclive-page-item.tpl.php
  1. <?php
  2. // $Id$
  3. /**
  4.  *  @File
  5.  */
  6. ?>
  7. <?php
  8. print $cclive_item['comment_user_link'] .
  9. ' &raquo; (' . $cclive_item['node_type_name'] .
  10. ')  &raquo;  <a href="' . $cclive_item['href_comment'] . '" title="' . check_plain($cclive_item['comment_content']) . '" class="ccfilter tooltip">'.$cclive_item['node_title'] . ' (' . $cclive_item['comment_count'] . ')</a>' ;
  11. ?>
  12. </div>
Ну и небольшая функция для темизации ссылки на страницу из блока
  1. function theme_cclive_more() {
  2.   return '<div class="more-link">' . l(t('Read more'), 'cclive') . '</div>';
  3. }

Установка модуля производиться как обычно, распаковываем архив в папку sites/all/modules На странице настройки модулей включаем модуль cclive В настройках модуля (admin/settings/cclive) - настраиваем вывод страницы "Прямой эфир" На странице настройки блоков (admin/build/block) - включаем и настраиваем блок cclive и помещаем его в нужный регион. Если хотим подредактировать вывод, копируем файлы *.tpl.php из папки модулей в директорию со своей темой и там их подправляем как надо. Если надо переопределить функции темизации, то переопределяем в файле вашей темы template.php нужные функции вашатема_cclive_block($liveitem) вашатема_cclive_page($liveitem) вашатема_cclive_more()

Файл перевода и README.TXT будет чуть позже.

ВложениеРазмер
Иконка пакета cclive_1.zip9.39 КБ

Комментарии

модуль не учитывает разграничение прав доступа? Я под гостем вижу комментарии переписки админов (модуль OG)

ok, спасибо учтем в следующим релизе.

Добавить комментарий
« Добавить комментарий
» Добавить комментарий