Павел Романов

Павел Романов

С нами с 03 марта 2014; Место в рейтинге пользователей: #43
08 июля 2021, 16:35
+1
Попробуйте так (только вместо 999999 укажите ID TV-шки valuta):
//...
if($tvo = $modx->getObject('modTemplateVarResource', array('tmplvarid' => 999999,'contentid' => $product->id))) {
    $currency_type = $tvo->get('value');
    $currency = $modx->getOption('currency_'.strtoupper($currency_type)); //Значение курса
}
//...
08 июля 2021, 11:08
+1
Тут Shopkeeper вообще не при чем.
Скорее всего у Вас установлен pdoTools и включен шаблонизатор Fenom на страницах.
Добавьте пробел после открывающей фигурной скобки:
&where=`{ "template":9 }`

Но лучше используйте pdoResources:
[[!pdoResources?
    &parents=`319`
    &templates=`9`
    &tpl=`product`
    &includeTVs=`price,image,opisanie`
    &limit=`20`
]]
26 июня 2021, 11:10
1
+1
Можно так:
<?php
$id = $modx->resource->id;
$tpl = '@INLINE <li><a href="[[~[[+id]]]]">[[#[[+id]].tvname]]</a></li>'; // tvname - имя Вашей TV
//.....
15 мая 2021, 12:09
1
0
Можете для избранного использовать Compare (там внутри инструкция есть).
01 мая 2021, 10:16
0
Без префикса:
[[#[[*parent]].prodImg]]
01 апреля 2021, 15:22
+1
В системных настройках в разделе «Шлюз» параметр request_param_alias
01 апреля 2021, 14:35
0
В ней передается URI страницы.
Если там будет существующий URI, то все откроется: modstore.pro/?q=packages/import-and-export/xparser
01 апреля 2021, 11:35
+1
Еще надо сбросить у таблиц в базе AUTO_INCREMENT, а то при создании нового товара он снова будет с пятизначным ID.
28 марта 2021, 19:27
1
+1
На третьей строке поменяйте $modx->resource->get('id') на $resource->get(''id''):
if(!$tvo = $modx->getObject('modTemplateVarResource', array('tmplvarid' => $tvid, 'contentid' => $resource->get('id')))) return;
27 марта 2021, 19:42
1
+1
Попробуйте так (просто плагин на OnDocFormSave, без сниппета и TV-шку доставайте через modTemplateVarResource):
<?php
$tvid = 5; // ID TV-шки
if(!$tvo = $modx->getObject('modTemplateVarResource', array('tmplvarid' => $tvid, 'contentid' => $modx->resource->get('id')))) return;
$tv = $tvo->get('value');
$items = $modx->fromJSON($tv);
$output = array();

foreach($items as $item) {
	$item['date'] = 'newdate';
	$output[] = $item;
}

$tvo->set('value' , $modx->toJSON($output));
$tvo->save();

// очистка кеша ресурса
$cacheKey = $resource->getCacheKey();
$modx->cacheManager->refresh(array('resource' => array('key' => $cacheKey)));
25 марта 2021, 17:02
1
+2
Сделайте тип «Список (одиночный выбор)», а в возможных значениях пропишите запрос в базу или вызов сниппета для вывода списка ресурсов.
Например pdoResources:

@EVAL 
return '-==||'.$modx->runSnippet('pdoResources',array(
'parents'=>'15', // тут родитель
'limit'=>0,
'sortby'=>'{ "pagetitle":"ASC" }',
'tpl'=>'@INLINE [[+pagetitle]] ([[+id]])==[[+id]]',
'outputSeparator'=>'||',
'showHidden' => 1
));
25 марта 2021, 15:30
+1
Сделайте TV с выводом этих ресурсов и включите у него автозавершение.
Для MIGX-поля укажите имя этой TV в input TV.
01 марта 2021, 12:34
1
+1
Добавьте в словари (Шестеренка » Управление словарями) в пространство имен msearch2 для соответствующего языка параметр с таким названием и нужным значением.
11 января 2021, 13:01
+1
Если речь об этом, то там просто все пишется в TV.
Соответственно, на странице [[*hitspage]], в чанке (если &tvPrefix не меняли) [[+tv.hitspage]]
01 декабря 2020, 11:14
+1
Вот это не нужно: &class=`pdoResources`.
Класса pdoResources не существует, а если нужно работать с обычными ресурсами (modResource) то это он делает по умолчанию.
Так выводит?
[[!mFilter2?
&limit=`5`
&element=`pdoResources`
&parents=`81`
&filters=`tv|price:number`
&suggestions=`0`
]]
01 декабря 2020, 01:17
0
Если вызываете не в ресурсе с ID = 81, то не выводит из-за &parent=`81`.
Должно быть &parents=`81`