Константин

Константин

С нами с 24 апреля 2017; Место в рейтинге пользователей: #1041
Константин
11 мая 2022, 12:29
0
Спасибо! Теперь ошибка пропала: prnt.sc/Y6GQrMCHXjyr
Скрипт сработал
Но локализации spb в ресурсах не добавились:https://prnt.sc/uKX81XjRPLcN

Вот скрипт:

<?php
$lang = 'spb';
$localizator = $modx->getService('localizator');
$resources = $modx->getIterator('modResource');
foreach($resources as $resource) {
	$tmp = $modx->getObject('localizatorContent', array('resource_id' => $resource->id, 'key' => $lang));
	if($tmp) {
		$tmp = $modx->newObject('localizatorContent');
		$tmp->fromArray(array(
			'key' => $lang,
			'resource_id' => $resource->id,
			'active' => 1,
			'pagetitle' => $resource->pagetitle,
			// ...
		));
		$tmp->save();
	} else {
		// обновление если нужно, fromArray или ->set(key, value);
	}
	
}
Константин
11 мая 2022, 09:43
0
Ведь задача вывести значения списком, например МаркиL mazda, kia, bmw… Модели: CX-7, Rio, X6

Пробую написать сниппет такого плана.

<?php
$options = $modx->getIterator('msOption');
$output = array();
$onlyoptions = marka, model;
foreach($options as $onlyoptions ){
$output[] = $onlyoptions ->get('key').'=='.$option->get('value');
}
return $output;

Не работает…
Константин
11 мая 2022, 09:06
0
Нашел такой вариант вывода опций, но выводятся только названия опций, а не значения: prnt.sc/EmEinITQ3NQt

<?php
$options = $modx->getIterator('msOption');
$output = '';
foreach ($options as $opt){
$values[] = $opt->get('caption').'=='.$opt->get('key');
}
$output = implode('||',$values);

return $output;
Константин
11 мая 2022, 08:50
0
То есть, в сниппете мы сделали массив с опциями под названием option: prnt.sc/2KP4LPH3PSi6
А в шаблоне феном разбираем этот массив так? prnt.sc/n_EJth9nw9pr
Тогда на странице пустое поле: prnt.sc/iUZ68adwGFtX
Константин
06 мая 2022, 12:12
0
Спасибо!
1. Создал сниппет с этим кодом prnt.sc/ZuVvCHGba7Ny
2. Вывел сниппет в шаблоне prnt.sc/szcJrmnmSQ2O
3. Вот что получилось: ARRAY prnt.sc/vVOULK-zDUZh
Константин
06 мая 2022, 09:31
0
Fatal error: Uncaught Error: Call to a member function save() on null in /home/o/olesiayc/olesiayc.beget.tech/public_html/core/components/console/processors/exec.class.php(24): eval()'d code:19 Stack trace: #0 /home/o/olesiayc/olesiayc.beget.tech/public_html/core/components/console/processors/exec.class.php(24): eval() #1 /home/o/olesiayc/olesiayc.beget.tech/public_html/core/model/modx/modprocessor.class.php(185): ConsoleExecProcessor->process() #2 /home/o/olesiayc/olesiayc.beget.tech/public_html/core/model/modx/modx.class.php(1770): modProcessor->run() #3 /home/o/olesiayc/olesiayc.beget.tech/public_html/core/model/modx/modconnectorresponse.class.php(144): modX->runProcessor('exec', Array, Array) #4 /home/o/olesiayc/olesiayc.beget.tech/public_html/core/model/modx/modconnectorrequest.class.php(86): modConnectorResponse->outputContent(Array) #5 /home/o/olesiayc/olesiayc.beget.tech/public_html/core/model/modx/modconnectorrequest.class.php(73): modConnectorRequest->prepareResponse(Array) #6 /home/o/olesiayc/olesiayc.beget.te in /home/o/olesiayc/olesiayc.beget.tech/public_html/core/components/console/processors/exec.class.php(24): eval()'d code on line 19
Константин
06 мая 2022, 09:30
0
Спасибо!!! Попробовал, но фатальная ошибка возникла prnt.sc/IRdEt9PcHJgf
Константин
06 мая 2022, 08:15
0
Добрый день, подскажите пожалуйста, можно ли с помощью этого скрипта modx.pro/components/12012/#comment-83962 автоматически создать локализацию для всех созданных ресурсов перенеся в эту локализацию поля: pagetitle, longtitle?
Пробую так: prnt.sc/lfgYjY8GrPRL
Ругается на синтаксическую ошибку…
Константин
06 мая 2022, 08:15
0
Добрый день, подскажите пожалуйста, можно ли с помощью этого скрипта modx.pro/components/12012/#comment-83962 автоматически создать локализацию для всех созданных ресурсов перенеся в эту локализацию поля: pagetitle, longtitle?
Пробую так: prnt.sc/lfgYjY8GrPRL
Ругается на синтаксическую ошибку…
Константин
29 апреля 2022, 17:44
0
А можно еще вопрос, тоже касается сортировки и mfilter2, но тут задача попроще вроде, но тоже не могу докумекать, как реализовать. Можно ли как-то поменять в выпадающем списке порядок: prnt.sc/4nPxdi19Oc7D
Что бы KIA была первой в списке?
Константин
29 апреля 2022, 15:05
0
foreach ($optCollection as $opt) {
$key = 'mse2_filter_msoption_'.$opt->get('key'); // Добавляем к каждой опции префикс
$q = $modx->newQuery('modLexiconEntry');
$q->where(array(
'namespace' => 'msearch2',
'topic' => 'default',
'name' => $key
));
$lexicon = $modx->getObject('modLexiconEntry', $q);
// Пытаемся получить запись из словаря для этой опции
if (!$lexicon){
// Если записи нет — добавляем опцию в словарь
$newLexicon = $modx->newObject('modLexiconEntry', array(
'name' => $key,
'value' => $opt->get('caption'),
'namespace' => 'msearch2',
'topic' => 'default',
'language' => 'ru',
'createdon' => time()
));
Константин
29 апреля 2022, 09:58
0
Ура, заработало, спасибо огромное за помощь)))
Константин
28 апреля 2022, 17:18
0
Спасибо, попробовал так, но пустая страница и ошибка:
Unexpected token '~' in expression in e014f8071b522126681529ed92e5b3d5 line 377

Ругается на этот символ ~, я так понял
Константин
27 апреля 2022, 18:47
0
Вот же в документации к SelectFilters пример использования: prnt.sc/Pr7uUq8L0j7o
В том и дело, что если группы фильтров через mfilter2 вызывать, то порядок как раз меняется порядком чанков.

А с использованием SelectFilters, порядок сбивается. Этот компонент н умеет походу порядок поддерживать тот который нужен. Он всовывает дефолтные группы фильтров в начало.

Название чанков поменял, тот же результат.
Константин
27 апреля 2022, 08:57
0

{set $filters = '!SelectFilters' | snippet: [
'default' => [
'ms|vendor:vendors', 'resource|parent:parents'
]
]}

{$_modx->runSnippet('!mFilter2', [
'element' => 'msProducts',
'class' => 'msProduct',
'showEmptyFilters' => 1,
'limit' => 12,
'tplOuter' => 'mFilter2OuterTpl',
'tpls' => 'listProductTpl,gridProductTpl',
'includeTVs' => 'available',
'includeThumbs' => 'medium',
'tplPageWrapper' => '@INLINE
    {$prev}{$pages}{$next}
',
'tplPageActive' => '@INLINE {$pageNo}',
'tplPage' => '@INLINE {$pageNo}',
'tplPagePrev' => '@INLINE «',
'tplPageNext' => '@INLINE »',
'tplPagePrevEmpty' => '@INLINE «',
'tplPageNextEmpty' => '@INLINE »',
'filters' => $filters,
'aliases' => 'ms|vendor==vendor,
msoption|marka==marka,
msoption|model==model',
'ajaxMode' => 'button',
'filterOptions' => '{
«more_tpl»: "<button class=\«btn btn-blue btn-rounded btn_more\»>Загрузить еще"
}',

'tplFilter.outer.default' => 'filterSelectOuter',
'tplFilter.row.default' => 'filterSelectRow',

'tplFilter.outer.vendor' => 'filterCheckboxOuter',
'tplFilter.row.vendor' => 'filterCheckboxRow',

'tplFilter.outer.marka' => 'filterSelectOuter',
'tplFilter.row.marka' => 'filterSelectRow',

'tplFilter.outer.model' => 'filterSelectOuter',
'tplFilter.row.model' => 'filterSelectRow',

'tplFilter.outer.resource|parent:parents' => 'filterSelectOuter',
'tplFilter.row.resource|parent:parents' => 'filterSelectRow',

])}


Константин
26 апреля 2022, 18:11
0
Спасибо, сделал, кеш чистил, все равно не правильная последовательность…
Блок фильтров по каталогам в самой середине: prnt.sc/gPEm6FcerM3r
Константин
26 апреля 2022, 16:31
0
А выбор из выпадающего списка сейчас реализовать помог Артур, он предложил с помощью js формировать ссылку с get параметрами: prnt.sc/OkX-GKLLv5Pv

Это в случае, когда модели и марки — категории.
Константин
26 апреля 2022, 14:00
0
Приветствую, подскажите пожалуйста, как поменять порядок групп фильтров? К примеру 'default' => [
'ms|vendor:vendors', 'resource|parent:parents'

Эта группа фильтров должна идти последней: resource|parent:parents

А она выводится второй после ms|vendor:vendors
Константин
26 апреля 2022, 10:37
0
Такой вариант поиска необходим, так как этот же салонный фильтр подходит для Hyundai Solaris 1 RBR (10-17), и таких запчастей много, которые подходят к разным маркам и моделям.

Характеристики: производитель
Опции: статус производителя «Оригинал/Неоригинал», марка «KIA/Hyundai» и модель «Solaris 1 RBR (10-17), Rio 2 JB (05-11), Cerato 2 TD (09-13), Sportage 2 KM, KMS (04-10), Carens 3 UN (06-13), Elantra 4 HD (06-11), Tucson 1 JM (04-10), i-40 VF (11-20), Verna 3 MCT (06)»

Заранее спасибо, буду очень благодарен.
Константин
26 апреля 2022, 10:33
0
Посетитель заходит на сайт в поисках салонного фильтра для автомобиля KIA Rio 3 QBR (11-17). Перед ним строка поиска, куда он вводит «салонный фильтр», рядом в выпадающих списках он выбирает модель «KIA» и марку «Rio 3 QBR (11-17)». Скриншот: prnt.sc/ynP2RI8oq_d9

Нажимает кнопку «найти» и попадает на страницу результатов поиска с подборкой салонных фильтров по его запросу. Так же на странице с подборкой вывожу mfilter2, и клиент уже может из подборки выбрать фильтром производителя фильтра, к примеру «Бош», а так же его статус «Оригинал/Неоригинал», отметив нужные галочки. Скриншот: prnt.sc/IcN6k3hPMhoP