Помогите с Fenom
Друзья, помогите пожалуйста! Разбираюсь с Fenom, нужно пару подсказок, чтобы мог потихоньку двигаться дальше, надеюсь мои ламерские вопросы и другим помогут.
Вопрос 1:
как сделать вызов чанка (название чанка берется из ТВ-поля) в такой конструкции:
Ниже листинг чанка ms_product_content, все ли здесь правильно и как правильно вызвать конструкцию проверки OLD_PRICE?
Вопрос 1:
как сделать вызов чанка (название чанка берется из ТВ-поля) в такой конструкции:
{$_modx->runSnippet('!pdoMenu@PropertySet', [
'parents' => '2',
'showLog' => 0,
'includeTVs' => 'svg-icon',
'level' => '1',
'tplOuter' => '@INLINE <ul{$classes} id="side-menu">{$wrapper}</ul>',
'tpl' => '@INLINE
<li{$classes}>
<a href="{$link}" {$attributes}>
<div class="row">
<div class="col-md-3">[[$[[+svg-icon]]]]</div>
<div class="col-md-9">{$menutitle}</div>
</div>
</a>
</li>',
'outerClass' => 'nav'
])}Такие вызовы здесь не работают: {$_modx->resource.svg-icon}, {$_modx->getChunk('chunk_name')}Вопрос 2:Ниже листинг чанка ms_product_content, все ли здесь правильно и как правильно вызвать конструкцию проверки OLD_PRICE?
<h1 class="product-title">{$_modx->resource.longtitle}</h1>
<div id="msProduct" class="row">
<div class="col-md-5">
{$_modx->runSnippet('!msGallery@PropertySet', [
'tplEmpty' => 'shop_tpl.msGallery.empty',
'tplOuter' => 'shop_tpl.msGallery.outer',
'tplRow' => 'shop_tpl.msGallery.row',
])}
</div>
<div class="span7 col-md-7">
<form class="form-horizontal ms2_form" method="post">
<input type="hidden" name="id" value="{$_modx->resource.id}">
<div class="form-group">
<label class="col-sm-2 control-label">{$_modx->lexicon('ms2_product_article')}:</label>
<div class="col-sm-3">
<label class="checkbox">
{$article}
</label>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">{$_modx->lexicon('ms2_product_price')}:</label>
<div class="col-sm-3">
<label class="checkbox">
{$price} {$_modx->lexicon('ms2_frontend_currency')}
{$old_price > '0' ? '<span class="old_price">[[+old_price]] [[%ms2_frontend_currency]]</span>' : ''}
</label>
</div>
</div>
<div class="form-group form-inline">
<label class="col-sm-2 control-label" for="product_price">{$_modx->lexicon('ms2_cart_count')}:</label>
<div class="col-sm-3">
<input type="number" name="count" id="product_price" class="input-sm form-control" value="1" />
{$_modx->lexicon('ms2_frontend_count_unit')}
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">{$_modx->lexicon('ms2_product_weight')}:</label>
<div class="col-sm-3">
<label class="checkbox">{$weight} {$_modx->lexicon('ms2_frontend_weight_unit')}</label>
</div>
</div>
{$_modx->runSnippet('!msOptions@PropertySet', [
'name' => 'color',
])}
{$_modx->runSnippet('!msOptions@PropertySet', [
'name' => 'size',
])}
{$_modx->runSnippet('-!msOptions@PropertySet', [
'name' => 'tags',
'tplRow' => '',
'tplOuter' => '',
])}
<div class="form-group">
<label class="col-sm-2 control-label">{$_modx->lexicon('ms2_product_made_in')}:</label>
<div class="col-sm-3">
<label class="checkbox">{$made_in}</label>
</div>
</div>
<div class="form-group">
<div class="col-sm-3">
<button type="submit" class="btn btn-default" name="ms2_action" value="cart/add"><i class="glyphicon glyphicon-shopping-cart"></i> {$_modx->lexicon('ms2_frontend_add_to_cart')}</button>
</div>
</div>
</form>
</div>
</div>
{$_modx->runSnippet('!msProductOptions@PropertySet', [
'hideEmpty' => 1,
'groups' => '11,12,14',
'tplOuter' => 'shop_tpl.msProductOptions.outer',
'tplRow' => 'shop_tpl.msProductOptions.row',
])}
<p class="lead">{$_modx->resource.introtext}</p>
{$_modx->resource.content} Комментарии: 10
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
2. В чанке tpl.msProduct.content идёт работа со свойствами товара, которые выставляются в плейсхолдеры. Поэтому в MODX их можно получать через [[+имя]], а в Fenom нужно указывать ресурс, а не брать не пойми откуда переменные:
Недавно закончил один магазин, целиком построенный на Fenom. Всё получилось, но есть мнение, что пора писать новый обучающий курс про это.
пробовал вызывать просто значение ТВ, тоже не работает:
Значение можно вызвать как плейсхолдер:
В итоге в ТВ категории товара прописал значения такого вида: {$_modx->getChunk('lamp_icon')}
А по второму вопросу с old_price — все отлично работает.
Смысл же в том, чтобы передать имя чанка.
По другому никак не получается, ибо если файл не компилируется (не собирается) — то и смотреть ошибку негде. А сам Fenom работает уже с готовой страницей, про чанки и сниппеты, её подготавливающие, он не знает.
Так что просто открывай исходный код страницы и смотри, где так есть скобочки, похожие на JSON.