К содержанию

Вывод кол-ва опубликованных документов

Цель: Вывести общее кол-во опубликованных на текущее число документов, включая документы из подкатегорий.

Вот так пытаюсь, но выводит кол-во только одного «каталога», а не всех вложенных «каталогов»/категорий

сниппет: LastUpdate
if (!isset($id)) {return;}
if (!isset($class)) {$class = 'num';}
if (!isset($published)) {$published = 1;}

$date = date(Ymd);
//$date = '20131101';//тест

$children = $modx->getCollection('modResource', array(
    'parent' => $id,
    'publishedby' => $published,
    'isfolder' => 0
    ));

$quantity = 0;
foreach($children as $child) {
    if(date(Ymd,$child->publishedon) == $date) { $quantity = $quantity+1;}
}

if($quantity) {return '<span class="'.$class.'">'.$quantity.'</span>';} else {return;}
К сожалению это не совсем то что я хотел, но пока не могу понять как сделать то что хочется т.е. учитывать и вложенные каталоги с документами.

Еще смущает foreach, есть ли аналогичный способ подсчета кол-ва документов с учетом даты?

Смотрел бд, там дата в микротайме, по этому приходится её приводить к Ymd.
Павел Левин
Павел Левин
07 ноября 2013, 11:37
modx.pro
4 936
Реклама

Комментарии: 5

Василий Наумкин
Василий Наумкин Администратор
07 ноября 2013, 15:40
    Павел Левин
    Павел Левин Проверенный
    07 ноября 2013, 16:20
    о, там много всякого, буду экспериментировать, перепишу, чтоб выводилось без MS. =)

    Спасибо.
      Павел Левин
      Павел Левин Проверенный
      07 ноября 2013, 17:31
      Василий, вам не приходилось использовать сравнение дат BETWEEN? такое возможно использовать в modx запросах?
        Василий Наумкин
        Василий Наумкин Администратор
        07 ноября 2013, 18:14
        &where=`["и здесь пиши любое SQL условие"]`
        Павел Левин
        Павел Левин Проверенный
        08 ноября 2013, 12:56
        Сделал, правда использовал другую вашу статью.

        Сниппет LastUpdate:
        <?php
        $pubTime = strtotime(date("Y-m-d"));//текущая дата в секунадах
        $pubTimeEnd = $pubTime+(24*60*60);//следующий день
        $ids = $modx->getChildIds($input);
        $count = 0;
        $value = 0;
        
        if (!empty($ids)) {//проверяем дочерние ресурсы
            $count = $modx->getCount('modResource', array(
        		'id:IN' => $ids
        		,'isfolder' => 0
                ,'publishedon:>' => $pubTime
                ,'publishedon:<=' => $pubTimeEnd
        	));
        } else {//проверяем текущий ресурс
            $count = $modx->getCount('modResource', array(
            	'id:IN' => array($input)
        		,'isfolder' => 0
                ,'publishedon:>' => $pubTime
                ,'publishedon:<=' => $pubTimeEnd
        	));
            $value = 'new';
        }
        
        if($count) {return '<span class="last-update">'.($value?$value:$count).'</span>';} else {return ' ';}

        Вызов в чанке/шаблоне:
        [[+id:LastUpdate]]

        Результат:
        Вывод шильдика с количеством новых статей в категории, или помечает шильдиком "new".


        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        5