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

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


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

сниппет: 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 460
0

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

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

    Спасибо.
      Павел Левин
      07 ноября 2013, 17:31
      0
      Василий, вам не приходилось использовать сравнение дат BETWEEN? такое возможно использовать в modx запросах?
      Павел Левин
      08 ноября 2013, 12:56
      0
      Сделал, правда использовал другую вашу статью.

      Сниппет 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