tracker и как с ним бороться?

Главные вкладки

Аватар пользователя Santa Claus Santa Claus 26 июля 2006 в 20:21

хотелось бы сделать, чтобы по ссылке http://мой сайт/tracker отображался список блогов (blog) и тем форума (forum) и не отображался список страниц (page) и страниц книги (book)

великие умы! подскажите пожалуйста, КАК?

Комментарии

Аватар пользователя antazy antazy 26 июля 2006 в 22:13

у меня строчка 112 tracker.module , было так :

$rows[] = array(
node_get_name($node->type),
l($node->title, "node/$node->nid") .' '. theme('mark', node_mark($node->nid, $node->changed)),
theme('username', $node),
array('class' => 'replies', 'data' => $comments),
t('%time ago', array('%time' => format_interval(time() - $node->last_post)))
);

делаем так:

if ($node->type==" /*твой тип1*/" or $node->type==" /*твой тип2*/ " or /*и т.д.*/) {
$rows[] = array(
node_get_name($node->type),
l($node->title, "node/$node->nid") .' '. theme('mark', node_mark($node->nid, $node->changed)),
theme('username', $node),
array('class' => 'replies', 'data' => $comments),
t('%time ago', array('%time' => format_interval(time() - $node->last_post)))
);
}

Аватар пользователя Natalie Natalie 26 июля 2006 в 22:32

Хаки кода без крайней необходимости - это не есть гуд.
---
---
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.

Аватар пользователя antazy antazy 27 июля 2006 в 22:11

Конечно мой патч немножко был корявый, т.к. сделан за 5 сек Wink
Самый правильный метод, это переделать запрос:
$sql = 'SELECT DISTINCT(n.nid), n.title, n.type, n.changed, n.uid, u.name, l.last_comment_timestamp AS last_post, l.comment_count FROM {node} n INNER JOIN {node_comment_statistics} l ON n.nid = l.nid INNER JOIN {users} u ON n.uid = u.uid LEFT JOIN {comments} c ON n.nid = c.nid AND (c.status = %d OR c.status IS NULL) WHERE n.status = 1 AND (n.uid = %d OR c.uid = %d) ORDER BY last_post DESC';

На, что-нибудь где where ещё смотрит и тип...
А самый правильный метод и самый тяжелый(для сервера тоже) - это метод Natalie через views Smile
---------------------
Кто знает?
А как на уровни хуков сделать новый модуль и переделать эту функцию tracker_page() ?

Аватар пользователя Natalie Natalie 26 июля 2006 в 23:31

Заходите в администрацию views и копируйте tracker (add). Там все уже будет заполнено, надо только добавить в фильтрах типы нод. Потом дефолтный трекер можно отключить и использовать новый.
---
---
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.

Аватар пользователя Santa Claus Santa Claus 27 июля 2006 в 11:16

Спасибо большое! Все получилось!
Только вот один маленький недостаток - в http://ants.dp.ua/tracker остались пустыми некоторые страницы (например /tracker?page=3).
Это как-то решается, пустые можно убрать?