собственно сабж - сайт с объявлениями.
как подсчитать количество нодов за определенный срок ( кол-во объявлений за сегодня) а так же общее количество нодов в определенной категории (таксономии)
в общем я представляю, но может есть где-то готовые решения)
Комментарии
обобщенно:
взять вьюс
делать вывод с фильтрацией по дате,
и выводя допустим список категорий, отношениями подтянуть NID,
включить агрегацию, и для этого поля указать в ее настройках - счетчик.
получим вывод кол-ва нод попадающих под наши условия.
что-то я агрегации не нахожу. может это на семерочке ?
вьюсы 2.16
таки да, забув вдягнути окуляри))
D7+V3 решение.
я на д6 поставил в3. вроде получилось, но прикол в другом. таксономия у меня 2х уровневая. И результаты он выдает как для родительского так и для дочернего термина, а хочется, чтобы только родительский термин. А поля "таксономия: родительский термин" для отображения при "Отношения: Таксономия: Термины материала" нету
как быть?
ЗЫ: упорно не хотят добавляться скобочки в суффик и префикс.
если я правильно понял, то группировка происходит по родителю,
собственно связь сделать обязательной,а поле можно из вывода исключить.
когда включаю обязательную связь то вот такое получается
"user warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= term_data_node.tid ) count_alias' at line 3 query: SELECT COUNT(*) FROM (SELECT COUNT(node.nid) AS nid FROM node node INNER JOIN term_data term_data_node ON .tid = term_data_node.tid ) count_alias in /home/arty/domains/test2.simfer.tv/html/sites/all/modules/views/plugins/views_plugin_pager.inc on line 141."
может чего не понял, но вижу у вас на сайте три уровня глубины таксономии.
ну вот словарь, с которым работаю, к примеру http://clip2net.com/s/1XZ7Y
вижу 2 уровня Оо
или я туплю
таки два)
смотрел http://test2.simfer.tv/ мин 10 на зад - было три))
ладн, ближе к теме, агрегация как сделана?
Use grouping: Да
а для поля Материал: Nid стоит Group type: Количество
параллельно решил попробовать сниппет
<?php
$vid = 13; // Номер словаря
$pole = array();
$items = array();
$terms = taxonomy_get_tree($vid);
//var_dump($terms); foreach ( $terms as $term ) {
$count = db_result(db_query("SELECT COUNT(nid) FROM {term_node} WHERE tid = %d", $term->tid));
$pole[]=Array ("[".$term->depth."]" .l($term->name, "taxonomy/term/$term->tid") . (($count) ? " (".$count.")": ""), $term->depth, $count, $term->tid) ;
}
$depth =-1;
foreach ($pole as $list) {
//$depth- глубина предыдущего уровня
//$list[1] - глубина текущего элемента
if ($list[1] == $depth) {
echo "</li>";
next;
}
while ($list[1] != $depth) {
if ($list[1] > $depth) {
$depth++;
echo "\n<ul>";
next;
}
if ($list[1] < $depth) {
$depth--;
echo "\n</li>\n</ul>";
}
}
echo
"\n<li>$list[0]";$depth=$list[1];
} //Закрываем все открытые теги до нулевого уровня:
$depth=0;
while ($list[1] != $depth) {
if ($list[1] > $depth) {
$depth++;
echo "</li>\n</ul>";
}
}
?>
но он выводит как родительский так и дочерний термин. как ограничиться только родительскими?
сделал так
<?php
$vid = 1; // Номер словаря
$pole = array();
$items = array();
$terms = taxonomy_get_tree($vid);
//var_dump($terms); foreach ( $terms as $term ) {
$count = db_result(db_query("SELECT COUNT(nid) FROM {term_node} WHERE tid = %d", $term->tid));
$pole[]=Array (l($term->name, "taxonomy/term/$term->tid") . (($count) ? " (".$count.")": " (0)"), $term->depth, $count, $term->tid) ;
}
$depth =-1;
echo
"\n<ul>";foreach ($pole as $list) {
//$depth- глубина предыдущего уровня
//$list[1] - глубина текущего элемента
if($list[1] == 0) {
echo "<li> $list[0] </li> ";
}
}
echo "\n </ul>";
?>
а вьюса так и не хочет показывать только родительские. видать надо на семерочку переходить