On March 26, 2019 we launched new MODX Forums. Please join us at the new MODX Community Forums.
Subscribe: RSS
  • Добрый день.

    Просьба подсказать как корректно внести правки.

    Есть код, он корректно работает, если в категории только элементы, без вложенных подкатегорий с элементами:
    <?php
    $c = $modx->newQuery('modResource');
    $c->where(array(
        'hidemenu'=>0,
        'published'=>1,
        'deleted'=>0,
        'parent' => 16
    ));
    //$c->stmt->execute();
    $c->select('id,pagetitle,longtitle');
    $c->prepare();
    $c->stmt->execute();
    $res = $c->stmt->fetchAll(PDO::FETCH_ASSOC);
    foreach ($res as $v) {
        $q = $modx->newQuery('modTemplateVarResource');
        $q->leftJoin('modResource', 'Resource', array(
            'Resource.id = modTemplateVarResource.contentid',
            'modTemplateVarResource.tmplvarid' => 11,
            'modTemplateVarResource.value' => $v["id"]
            
        ));
        $q->where(array(
            'Resource.hidemenu'=>0,
            'Resource.published'=>1,
            'Resource.deleted'=>0,
            'Resource.parent' => $parent,
        ));
        $q->prepare();
        $sql = $q->toSQL();
        //echo "*".$sql."*";
        $count=$modx->getCount('modTemplateVarResource', $q);
    }
    


    Мы добавили подкатегории с новыми элементами и фильтрация не учитывает новые элементы из подкатегорий. Что нужно добавить, чтобы фильтрация работала на элементы подкатегорий?

    По видимому нужно в parent передавать массив со всеми id категорий, которые нужны, можно ли так делать?
    • 1. ..со всеми id категорий, которые нужны, можно ли так делать? Можно.
      2. Используйте xPDO::getCollection, не надо все усложнять.