В этой небольшой части мы оформим вывод трэкера (а проще - займемся «украшательством»)
Шаг номер 18:
Для начала в графическом редакторе создадим две небольшие картинки (иконки обозначающие «прикрепление» материала и иконку сигнализирующую о том, что нода помещена на главную страницу), я не стал сильно извращаться и сделал две несложные пнг-эшки размером 32х32.
- кнопка (knopka.png)
- на главной (promote.png)
Сохраним наши файлы в директории модуля.
Шаг номер 19:
Добавим в самое начало файла (что бы легче потом было искать) пару дефайнов для имен файлов иконок, ну и изменим функцию theme_cctracker_page.
define(IMG_STICKY,'knopka.png');
define(IMG_PROMOTE,'promote.png');
...
function theme_cctracker_page($tracker, $tp) {
$module_path = drupal_get_path('module', 'cctracker');
$header = array();
if ($tp != 'tab-types'){
$header[] = t('Type');
}
$header[] = t('Post');
if ($tp != 'my-posts') {
$header[] = t('Author');
}
$header[] = t('Created');
$header[] = t('Replies');
$header[] = t('Last updated');
$rows = array();
foreach ($tracker as $key => $value){
$class = '';
$promote = ($value->promote == 1) ? theme('image', $module_path.'/'.IMG_PROMOTE, t('The main'), t('Located on the main page'), array('class' => 'pngfix ccfilter tooltip cctracker-icon-promote')) : '';
$class = ' cctracker-promote';
$sticky = ($value->cc_sticky == 1) ? theme('image', $module_path.'/'.IMG_STICKY, t('Sticky'), t('Fixed on the top of the tracker'), array('class' => 'pngfix ccfilter tooltip cctracker-icon-sticky')) : '';
$class .= ' cctracker-promote';
$comments = 0;
if ($value->comment_count) {
$comments = $value->comment_count;
if ($new = comment_num_new($value->nid)) {
$comments .= '<br />';
$comments .= l(format_plural($new, '1 new', '@count new'), 'node/'. $value->nid,
array(
'query' => comment_new_page_count($value->comment_count, $new, $value),
'fragment' => 'new',
'html' => TRUE,
'attributes'=>array('title'=>t('Go to first new comment'),'class'=>'ccfilter tooltip new'),
));
}
}
$row = array();
if ($tp != 'tab-types'){
$row[] = array('data' => $sticky . check_plain(node_get_types('name', $value->type)), 'class' => 'cctracker-type-' . $value->type. $class);
$sticky = '';
}
$row[] = array('data' => $sticky . $promote . l($value->title,'node/'.$key) .' '. theme('mark', node_mark($value->nid, $value->changed)) , 'class' => 'cctracker-title' . $class);
if ($tp != 'my-posts') {
$row[] = array('data' => theme('username',$value), 'class' => 'cctracker-user' . $class);
}
$row[] = array('data' => format_date($value->created,'small'), 'class' => 'cctracker-date-created' . $class);
$row[] = array('data' => $comments, 'class' => 'cctracker-replies' . $class);
$row[] = array('data' => t('!time ago', array('!time' => format_interval(time()-$value->last_update))), 'class' => 'cctracker-last-update' . $class);
$rows[] = array('data'=>$row, 'id' => 'cctracker-' . $value->nid, 'class' => 'cctracker-row' . $class);
}
$output = theme('table', $header, $rows);
return $output;
}
В следующей части мы сделаем небольшие изменения в модуле, чтобы была возможность наконец совсем отказаться от стандартного модуля - tracker, а именно, добавим вывод трэкера в профиль пользователя.
