хотелось бы сделать, чтобы по ссылке http://мой сайт/tracker отображался список блогов (blog) и тем форума (forum) и не отображался список страниц (page) и страниц книги (book)
Хаки кода без крайней необходимости - это не есть гуд.
---
---
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.
Конечно мой патч немножко был корявый, т.к. сделан за 5 сек
Самый правильный метод, это переделать запрос:
$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
--------------------- Кто знает?
А как на уровни хуков сделать новый модуль и переделать эту функцию tracker_page() ?
Заходите в администрацию views и копируйте tracker (add). Там все уже будет заполнено, надо только добавить в фильтрах типы нод. Потом дефолтный трекер можно отключить и использовать новый.
---
---
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.
Спасибо большое! Все получилось!
Только вот один маленький недостаток - в http://ants.dp.ua/tracker остались пустыми некоторые страницы (например /tracker?page=3).
Это как-то решается, пустые можно убрать?
Комментарии
у меня строчка 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)))
);
}
Хаки кода без крайней необходимости - это не есть гуд.
---
---
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.
Конечно мой патч немножко был корявый, т.к. сделан за 5 сек
Самый правильный метод, это переделать запрос:
$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
---------------------
Кто знает?
А как на уровни хуков сделать новый модуль и переделать эту функцию tracker_page() ?
Заходите в администрацию views и копируйте tracker (add). Там все уже будет заполнено, надо только добавить в фильтрах типы нод. Потом дефолтный трекер можно отключить и использовать новый.
---
---
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.
Спасибо большое! Все получилось!
Только вот один маленький недостаток - в http://ants.dp.ua/tracker остались пустыми некоторые страницы (например /tracker?page=3).
Это как-то решается, пустые можно убрать?