Виталий Серый · 16 ноября 2017, 11:55 В данном случае это, на мой взгляд, оптимальная реализация, но предложу немного мутировать. В настройках контекста создать переменную, пусть будет ctx_res, в которой через запятую перечислить все требуемые id. Алиасы ресурсов привести в соответствие. И вывести, например, через pdoMenu {'pdoMenu' | snippet:[ 'parents' => 0, 'resources' => 'ctx_res' | option, 'tpl' => 'tpl', ]} tpl: <div class="content__item content__item{$idx}"> <a href="{$id | url}" class="content__heading content__heading--{$idx}">{('gg_' ~ $alias) | lexicon}</a> <a href="{$id | url}" class="content__heading-a"> <p>{$id | resource : 'introtext'}</p> </a> <span class="content__more{$idx}"> {'gg_more' | lexicon}</span> <a href="{$id | url}" class="content__more"> {'gg_more' | lexicon}</a> </div> Вопросы / Контексты, Fenom, Babel 12 0 1
Виталий Серый · 16 ноября 2017, 11:18 Через if или switch {set $items = [ '2' => 'gg_about', '4' => 'gg_invest', '3' => 'gg_trade', ]} {if $_modx->context.key == 'eng'} {* {if $_modx->config.cultureKey == 'en'} *} {set $items = [ '12' => 'gg_ne_about', '14' => 'gg_invest_li', '13' => 'gg_trader', ]} {elseif $_modx->context.key == 'deu'} {* {if $_modx->config.cultureKey == 'de'} *} {set $items = [ '22' => 'gg_about', '24' => 'gg_invest_on', '23' => 'gg_trade_in', ]} {/if} Вопросы / Контексты, Fenom, Babel 12 0 1
Виталий Серый · 15 ноября 2017, 18:10 Мне нравится делать примерно вот так: {set $items = [ '2' => 'gg_about', '4' => 'gg_invest', '3' => 'gg_trade', ]} {set $idx = 1} {foreach $items as $id => $lex} <div class="content__item content__item{$idx}"> <a href="{$id | url}" class="content__heading content__heading--{$idx}">{$lex | lexicon}</a> <a href="{$id | url}" class="content__heading-a"> <p>{$id | resource : 'introtext'}</p> </a> <span class="content__more{$idx}"> {'gg_more' | lexicon}</span> <a href="{$id | url}" class="content__more"> {'gg_more' | lexicon}</a> </div> {set $idx = $idx + 1} {/foreach} Вопросы / Контексты, Fenom, Babel 12 +2 1
Антон Грошев · 09 ноября 2017, 02:13 Решил таким методом: {var $par = $modx->runSnippet('pdoResources', ['parents' => 5,'limit' => 0,'returnIds' => 1,'fastMode' => 1,'scheme' => 'uri','level' => 1,'depth' => 0]) | split} {set $cnt = $modx->getCount('modResource', ['parent:IN' => $par ])} {'pdoMenu' | snippet : [ 'parents' => 5, 'displayStart' => 1, 'countChildren' => 1, 'fastMode' => 1, 'scheme'=> 'uri', 'level' => 2, 'showLog' => 0, 'firstClass' => '', 'lastClass' => '', 'hideContainers' => 0, 'parentClass' => 0, 'tplOuter' => '@INLINE <ul class="gallery-cats clearfix">[[+wrapper]]</ul>', 'tplInner' => '@INLINE [[+wrapper]]', 'tplStart' => '@INLINE <li[[+classes]]><a href="{{~5}}">Minden </a> ('~ $cnt ~')</li>[[+wrapper]]', 'tpl' => '@INLINE <li[[+classes]]><a href="{{~5}}?year={$alias}">{$pagetitle}</a> ([[+children]])</li>' ]} Вопросы / Подчет дочерних документов 3 0 1
Максим Кузнецов · 07 ноября 2017, 12:29 На fenom-е посимпатичнее будет: {foreach $_modx->resource.pagetitle | split : ' ' as $pagetitle_word} {if $pagetitle_word | length > 3} {var $words[] = $pagetitle_word} {/if} {/foreach} {set $random_word_position = rand(1, $words| length)} {set $random_word = $words[$random_word_position - 1]} {$_modx->runSnippet('!msProducts', [ 'parent' => $_modx->resource.parent, 'resources' => -$_modx->resource.id, 'where' => '{ "pagetitle:LIKE": "%' ~ $random_word ~ '%" }', ... ])} Готовые решения / modRelation - Похожие товары для minishop2 и pdoTools 40 +6 5
Володя · 25 сентября 2017, 12:56 <div id="msGallery"> {if $files?} {var $preload = []} <div class="fotorama" data-nav="thumbs" data-thumbheight="45" data-allowfullscreen="true" data-swipe="true" data-autoplay="5000" data-maxheight="400"> {foreach $files as $file} {set $preload[] = '<img src='~$file['url']~'>'} <a href="{$file['url']}" target="_blank"> <img src="{$file['small']}" alt="" title=""> </a> {/foreach} </div> {else} <img src="{('assets_url' | option) ~ 'components/minishop2/img/web/ms2_medium.png'}" srcset="{('assets_url' | option) ~ 'components/minishop2/img/web/ms2_medium@2x.png'} 2x" alt="" title=""/> {/if} </div> <div style="position:fixed;left:9999px;opacity:0;"> {$preload|join} </div> Вопросы / MiniShop2 картинки разного размера 21 0 1
Василий Наумкин · 12 сентября 2017, 11:40 {var $ids = $_modx->getParentIds($_modx->resource.id)} {if '11' in list $ids} Фильтры для пылесосов {else} Фильтры для вытяжек {/if}Код не проверял, но логика примерно такая: получить массив с родителями текущего ресурса и проверить, если ли среди них нужный. Вопросы / Как разделить ветки ресурсов в феноме? 4 +4 2
Александр · 10 сентября 2017, 17:11 {if $_modx->resource.class_key == 'msProduct'} {$_modx->runSnippet('ms2Gallery')} {else} {$_modx->resource.content} {/if} Вопросы / Как проверить принадлежность ресурса к msProduct ? 1 +2 2
Володя · 07 сентября 2017, 06:56 <div id="msGallery" class="msoptionsprice-gallery"> <div class="fotorama" data-nav="thumbs" data-fit_="cover" data-allowfullscreen="false" data-swipe="true" data-enableifsingleframe="false"> {var $preload = []} {if $files?} {foreach $files as $file} {set $preload[] = '<img src='~$file['medium']~'>'} <a href="{$file['medium']}" target="_blank" alt="{$file['name']}" title="{$file['description']}"> <img src="{$file['small']}" class="img-responsive" alt="{$file['name']}" title="{$file['description']}"> </a> {/foreach} {else} <a href="{('assets_url' | option) ~ 'img/noimage.png'}" target="_blank" alt="noimage" title="noimage"> <img src="{('assets_url' | option) ~ 'img/noimage.png'}" alt="noimage" title="noimage"> </a> {/if} </div> </div> <div style="position:fixed;left:9999px;opacity:0;"> {$preload|join} </div>то есть добавил скрытый контейнер и в нем подгрузку изображений. Попробуйте… Вопросы / Как регулировать порядок загрузки через msGallery? 5 +2 2
Sergey Leleko · 04 сентября 2017, 14:25 Вы абсолютно правы! Спасибо за помощь Вам, Алексею Ерохину. А так же отдельное огромное спасибо Илье Уткину. С учетом всего и вся получился вот такой результат: {if $_modx->resource.link_ids} <h2>разновидности</h2> <div class="row different"> <div class="col-md-6" style="min-height: 200px;"> <ul> {'!pdoResources' | snippet : [ 'parents' => '0', 'limit' => '12', 'depth' => '1', 'tvPrefix' => '', 'includeTVs' => 'link_ids', 'resources' => $_modx->resource.link_ids, 'tpl' => '@INLINE <li><a href="/{$uri}">{$pagetitle}</a></li> {if $idx == 6}</ul></div> <div class="col-md-6" style="min-height: 200px;"><ul>{/if}', 'sortdir' => 'ASC' ]} </ul> </div> {/if}Это решение подразумевает: 1) Один вызов pdoResources, если кол-во перечисленных айди больше 6 то выводится вторая колонка. 2) Если TV вообще пустой то блок не выводится Вопросы / Как можно вывести перечень ресурсов в два дива? 9 0 1
Возможно ли реализовать возможность предоплаты за доставку на сайте? Так ради этого мне и нужно это все, чтобы клиент платил сразу при оформлении заказа, чтобы избавить себя от мусорных заявок (когда человек оставляет заявку, а предоплату делать не ...
Редизайн сообщества На больших экранах основной текст статьи я бы сделал 18 px. Да и текст комментариев можно таким сделать. Для меня лично 16 — мелковато на больших экранах (в комментариях вообще 15 ...
MiniShop3 1.11.0 при клике на radio идет пересчет итоговой суммы в orderUI, в зависимости от способов(оплаты доставки) я так поняла. попробуй код запуска события поставить ниже чем orderUI, после
ImageOptimizer - WebP/AVIF и responsive <picture> для MODX 3 Дополнение доступно modstore.pro/packages/photos-and-files/imageoptimizer
Localizator3 для MODX 3: перевод полей и TV без отдельного context на язык, Vue 3 + PrimeV... Добавил localizator3_default_language
msInShopNotify Начиная с версии 3.0.0-beta добавлена поддержка MiniShop3 Минимальные требования: PHP 8.4 MODX 3.2 MiniShop3
MaxNotify Обновление 1.2.0-pl (03.07.2026) — добавлены уведомления о заявках FormIt через hook-сниппет `maxNotifyFormIt`; — добавлены уведомления о заявках SendIt через hook-...
[msBonus2] 1.3.0 Бонус-коды, уведомления о сгорании и совместимость с msMultiCurre... Да, планируется. Даже чуть больше, чем просто бонусная система)
В настройках контекста создать переменную, пусть будет ctx_res, в которой через запятую перечислить все требуемые id.
Алиасы ресурсов привести в соответствие.
И вывести, например, через pdoMenu
А так же отдельное огромное спасибо Илье Уткину. С учетом всего и вся получился вот такой результат:
Это решение подразумевает:
1) Один вызов pdoResources, если кол-во перечисленных айди больше 6 то выводится вторая колонка.
2) Если TV вообще пустой то блок не выводится