Ответы пользователя по тегу MODX
  • Как сделать фильтрацию товаров?

    Эмм, используешь getCollection и одновременно хочешь прогнать через getResources, мало логики.
    если по твоему плану, тебе надо в этом сниппете запустить еще getResources и прогнать через него массив который ты набиваешь в функциях
    $output = $modx->runSnippet('getPage',array(
       'element' => 'getResources',
       'resources' => $array // id
    ));
    return $output;

    лучше полученные с GET параметры подставить tvFilters не набивать лишний раз через getCollection
    $output = $modx->runSnippet('getPage',array(
       'element' => 'getResources',
       'parent' => 0,
       'tvFilters' =>  ''//  условие
    ));
    return $output;

    а вообще для таких фильтраций лучше использовать getProducts, а еще лучше pdoResources/pdoPage а еще лучше воспользоваться готовым сниппетом tagmanager2 он работает с GET парамами
    Ответ написан
    Комментировать
  • Как сделать форму фильтрации для страницы коллекций?

    Есть хороший сниппет tagmanager, работает с GER, ajax фильтрация, работа с TV
    Если знаешь php, создается сниппет, в нем пишется любой php код.
    $_GET
    и обрабатывай как хочешь.
    Самый сумасшедший вариант вызвать в сниппете другой сниппет, например getresources, и передать ему
    В MODx есть мощное API. например getCollection,
    $q = $modx->newQuery('modResource', array('id:>' => 0, 'template' => 3));
    $res = $modx->getCollection('modResource', $q);
    var_export($res);

    есть вариант напрямую обращаться к базе через примочки pdo, к дефолтным полям site_content. с tv уже сложнее надо джойнить 2 таблицы
    $q = $modx->newQuery('modResource', array('id:>' => 0, 'template' => 3));
    $q->select('id,pagetitle');
    if ($q->prepare() && $q->stmt->execute()) {
        while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
            var_export($row);
        }
    }
    Ответ написан
    Комментировать