Alex

Alex

С нами с 18 сентября 2018; Место в рейтинге пользователей: #2113

Фильтрация продуктов по опции

Добрый день. Есть необходимость вывести продукты у которых опция (size) равен pagetitle текущей страницы.
Использую такую конструкцию:
{var $lowerpagetitle = $_modx->resource.pagetitle | lower } <!-- форматируем pagetitle -->
        {$lowerpagetitle} - <!-- проверяем что все ок с ним -->
        {$_modx->runSnippet('!msProducts', [
                'parents'=> '4', 
                'tpl'=>'',
                'where' => ' { "Data.size:LIKE": $lowerpagetitle } ',
                'showLog' => '1'
        ])}
Выводятся все ресурсы без фильтрации.
P.S. пробовал optionfilters вместо where — результат тот же
Alex
16 марта 2020, 17:05
modx.pro
408
0

Тег состоящий из нескольких слов и неразрывные пробелы

Всем привет. На сайте сделано облако тегов через такой сниппет. Теги в админке заполняются сразу с неразрывным пробелом (наружная ?nbsp; реклама). К сожалению в сниппете ?nbsp; заменяется на C2 A0 — как это можно исправить?

<?php
$base = $modx->config['base_url'];
$tvname = $modx->getOption('tvname', $scriptProperties, "autotag");
$output = "";

$content_type = $modx->getObject('modContentType', array('mime_type' => 'text/html'));
if(substr_count($_SERVER["REQUEST_URI"], $content_type->get('file_extensions'))) {
	$parent = $modx->resource->parent;
	$url = $modx->makeUrl($modx->resource->parent);
}else{
	$parent = $modx->resource->id;
	$url = $modx->resource->uri;
}

$q = $modx->newQuery('modTemplateVarResource');
$q->select('DISTINCT(`modTemplateVarResource`.`value`)');
$q->innerJoin('modTemplateVar', 'tv', "tv.id = modTemplateVarResource.tmplvarid");
$q->innerJoin('modResource', 'res', 'res.id=modTemplateVarResource.contentid');
$q->where(array(
		'tv.name' => $tvname, 
		'res.context_key' => $modx->resource->context_key,
		'res.parent' => $parent
	)
);

if($q->prepare() && $q->stmt->execute()) {
	while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
		$result[] = $row['value'];
	}
}
if($result) {
    $result = implode($result, ',');
    $result = array_unique(explode(',', $result));
    
    foreach($result as $value) {
    	$output .= "<a href='{$base}{$url}?tag={$value}' class='ui label'>{$value}</a> ";
    }
}
return $output;
Alex
25 февраля 2020, 09:47
modx.pro
354
0

MIGX и путь к изображению

Добрый вечер. Возникла проблема с путем к изображению.
В шаблоне вызываю так:
[[!getImageList?
    &value=`[[+solo.gallery_section-gallery_items]]`
    &tpl=`solo.gallery_item_tpl`
    &processTVs=`1`
  ]]
Чанк
solo.gallery_item_tpl
имеет такой вид
<div class="col-xs-12 col-md-6 col-sm-6">
  <img src="[[+image]]"  alt="[[+title]]"/>
</div>
<div class="col-xs-12 col-md-6 col-sm-6">
   <h3>[[+title]]</h3>
   [[+content]]
</div>
На выходе получаю ТОЛЬКО название файла выбранного в [[+image]], хотя должно быть image/custom/imagename.jpg
Как быть в такой ситуации?
Alex
19 ноября 2019, 22:14
modx.pro
455
0

Неправильный путь к изображению

Добрый день. Не могу получить правильный путь к картинке.
Есть страница с фильтрами mFilter2
[[!mFilter2?
        		&class=`msProduct`
                &filters=`
                ms|article,
                ms|vendor:vendors,
                msoption|size`
                &aliases=`msoption|size==style,ms|vendor==designer,ms|article==type,`
                &parents=`[[*id]]`
                &tpl=`store.tpl.mSearch2.row.ALL`
                &tplOuter=`store.tpl.mFilter2.outer`
                &element=`msProducts`
                &limit=`20`
                &sortby=`publishedon`
                &sortdir=`DESC`
                &includeTVs=`picture,action_header`
                &processTVs=`picture`
              ]]
Alex
10 сентября 2019, 09:50
modx.pro
751
0

Почему могут не выводиться выбранные фильтры?

Добрый день. Не могу понять почему не выводятся выбранные фильтры prnt.sc/otco47
Сами фильтры применяются.
Вызов фильтров
[[!mFilter2?
      &includeTVs=`picture`
      &filters=`
      ms|vendor:vendors,
      msoption|area,
      msoption|effect,
      msoption|user_properties,
      ms|price:number`
      &parents=`[[*id]]`
      &tpl=`store.tpl.msProducts.row`
      &tplOuter=`store.tpl.mFilter2.outer`
      &element=`msProducts`
      &class=`msProduct`
      &limit=`16`
      &sort = `resource|pagetitle:asc`
      &includeTVs=`picture,action_header`
      &processTVs=`picture`
      &tplFilter.outer.ms|price=`tpl.mFilter2.filter.slider`
			&tplFilter.row.ms|price=`tpl.mFilter2.filter.number`
			&values_delimeter=`;`
    ]]
Чанк обертки:
Alex
16 августа 2019, 09:46
modx.pro
397
0

Не работает taglister

Добрый день. Не работает фильтр по тегам. В url передаются параметры правильно, но все равно отображаются все ресурсы.
Вызов на странице блога
[[!pdoPage?
        &parents=`[[*id]]` 
        &depth=`3` 
        &tpl=`blog.tpl` 
        &includeTVs=`tags,picture` 
        &processTVs=`1` 
        &limit=`12`
        &hideContainers=`1` 
        &where=` { "tags:LIKE":"%[[!#get.tag]]%" } `
        &tplPageWrapper=`@INLINE <div class="text-center"><ul class="pagination">[[+first]][[+prev]][[+pages]][[+next]][[+last]]</ul></div>`
      ]] 
      [[!+page.nav]]
Чанк blog.tpl
<div class="post-entry clearfix mb40">
  <div class="row">
    <div class="col-xs-12 col-sm-3 col-md-3">
      <div class="post-entry-picture">
        <a href="{$id | url}" title="{$pagetitle}">
        	<img class="img-responsive" src="[[+tv.picture:phpthumbon=`w=200&h=200&zc=1&q=85`]]" alt="{$pagetitle}">
       	</a>
      </div>
    </div>
    <div class="col-xs-12 col-sm-9 col-md-9">
        <p class="post-entry-tags">
        <i class="fa fa-tags"></i> [[!tolinks? &items=`{$tags}` &tagKey=`tags` &target=`16` &tpl=`blog.tag.link` &outputDelim=` / `]]
      </p>
      <h2>
        <a href="{$id | url}">{$pagetitle}</a>
      </h2>
      <p>
        <i class="fa fa-clock-o"></i> {$publishedon | date_format : '%d/%m/%Y'}
      </p>
      <p class="mt20">
        {$introtext | limit : 250}
      </p>
      <p>
        <a href="{$id | url}#cut" class="btn btn-blue sharp"><i class="fa fa-link"></i><span>Подробнее</span></a>
       </p>
Alex
27 мая 2019, 13:36
modx.pro
527
0

Как правильно составить условие?

Добрый день. Необходимо вывести отзывы на странице.
Отзыв представлен в виде обычного ресурса, в котором есть tv со списком проектов. Необходимо на странице проекта вывести только те отзывы в которых выбран данный проект в тв.
[[pdoResources?
          &parents=`89`
          &depth=`10`
          &includeTVs=`checkresource`
          &limit=`0`
          &tpl=`checkresource.tpl`
          &tvFilters=`checkresource==%[[*pagetitle]]%`
            &showLog=`1`
      ]]
Вызов делаю таким, но ничего не выводит.
В логах
Alex
10 января 2019, 11:44
modx.pro
883
0