Илья Уткин · 31 октября 2017, 11:17 2 +4 Я делал так: Чанк outer для фильтра: <div id="mse2_[[+table]][[+delimeter]][[+filter]]"> [[+rows]] </div> Чанк rows для фильтра: {if $idx == 0} <label for="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]"> <input type="checkbox" name="[[+filter_key]]" id="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]" value="[[+value]]" [[+checked]] [[+disabled]]/> [[+title]] <sup>[[+num]]</sup> </label> {/if} То есть, тупо не показываю вторую галочку. Вопросы / mFilter2 - из метода boolean убрать значение "нет" 2
Alex Zhuravlev · 16 октября 2017, 22:24 2 0 Дописал под себя getLanguages. Сделал вывод в placeholders и добавил css class «active» getLanguages <?php $pdo = $modx->getService('pdoTools'); $uri = $_SERVER['REQUEST_URI']; if(substr($uri, 0, 1)) { $uri = mb_substr($uri, 1); $tmp = explode('/', $uri); if($path = $tmp[0]) { $tmp = $modx->getObject('localizatorLanguage', array('http_host:LIKE' => "%/{$path}/")); if($tmp) { $uri = str_replace("{$path}/", "", $uri); } } } $protocol = 'https://'; $languages = $modx->getIterator('localizatorLanguage'); foreach($languages as $language) { if(mb_substr($language->http_host, -1) == '/') { $placeholders = array( 'cultureKey'=>$language->key, 'active'=>$language->key == $modx->localizator_key ? 'active' : '', 'url'=>$protocol . $language->http_host . $uri, ); } else { $placeholders = array( 'cultureKey'=>$language->key, 'active'=>$language->key == $modx->localizator_key ? 'active' : '', 'url'=>$protocol . $language->http_host . '/' . $uri, ); } $output .= $pdo->getChunk($tpl, $placeholders); } return $output; В шаблоне <div class="langs"> {$_modx->runSnippet('!getLanguages', ['tpl' => 'section-langs-1',])} <div class="dropdown-menu"> {$_modx->runSnippet('!getLanguages', ['tpl' => 'section-langs-2',])} </div> </div> Содержимое section-langs-1 <a href="#" data-toggle="dropdown" role="button" aria-expanded="false"></a><img class="imglang {$active}" src="/assets/img/flags/{$cultureKey}.png" alt="{$cultureKey}"> Содержимое section-langs-2 <div class="dropdown-item"> {if $active != 'active'} <a class="{$active}" href="{$url}"><img class="imglang {$active}" src="/assets/img/flags/{$cultureKey}.png" alt="{$cultureKey}"></a> {else} <div class="{$active}"><img class="imglang {$active}" src="/assets/img/flags/{$cultureKey}.png" alt="{$cultureKey}"></div> {/if} </div> На уникальность не претендую, но уверен что кому то поможет. Критика и правки приветствуются. Новые дополнения и их версии / [localizator] Мультиязычность, СЕО, автоперевод... 353
Василий Наумкин · 11 октября 2017, 10:28 2 +1 Нужно. Причём, писать лучше массивом, потому что сейчас у тебя там JSON с ошибкой: 'includeTVs' => 'searching', 'where' => [ 'searching' => 1, 'Status.value:IN' => ['', 0, 2], ],Тоже самое касается и join — все сниппеты pdoTools давно понимают указание массивов через Fenom. Вопросы / прошу помочь с where fenom 10
man · 09 октября 2017, 11:38 1 +1 Можно! В значения по умолчанию пишешь стандартный migx-json, типа такого но со своими полями: [{ "MIGX_id":"1", "name":"name 1", "description":"description 1", "size":"10,5 х 14,8см", ... "impPrint":"25"}, { "MIGX_id":"2", "name":"name 2", "description":"description 2", "size":"42,0 x 59,4 см", ... "impPrint":"22"}, { "MIGX_id":"3", "name":"name 3", "description":"description 3", "size":"59,4 х 84,1 см", ... "impPrint":"23"} ] Вопросы / MIGX. Поля по умолчанию 3
Stan Ezersky · 14 сентября 2017, 21:57 1 0 Когда задаёте такие вопросы, хоть версии окружения пишите… Вопросы / Не отправляется заказ 6
Илья Уткин · 14 сентября 2017, 10:58 1 +1 [[!+modx.user.id:eq=`1`:then=` <a href="manager/?a=element/chunk/update&id=8" data-action="iframe">Редактировать</a> `:else=``]] Только вместо восьмёрки id нужного чанка. Ну и оформить ссылку уже можно как угодно с помощью стилей. Новые дополнения и их версии / [frontendManager] Первая версия 94
Илья Уткин · 14 сентября 2017, 10:36 3 +3 Да, перед проверкой псевдонима никакое событие не вызывается. Здесь используется дополнение Tickets — тикеты это расширенные ресурсы с дополнительным функционалом, в том числе, со своим механизмом генерации URL. Можно как костыль использовать такое решение: 1. Включаем автоматическую генерацию псевдонима 2. В плагине проверяем — если псевдоним ресурса такой же, как его сгенерировал бы MODX, заменяем псевдоним: <?php switch ($modx->event->name) { case 'OnDocFormSave': $generated = $resource->cleanAlias($resource->pagetitle); if ($resource->alias == $generated) { $resource->set('alias', $resource->id); } $resource->save(); break; default: break; } Но это, конечно, очень грязный хак — ведь где-то автоматически сгенерированный псевдоним будет реально нужен. Нужно ограничивать работу плагина, например, родителем ресурса или его шаблоном. Вопросы / Id вместо alias в URL 10
Stan Ezersky · 10 сентября 2017, 13:56 2 +2 Хотлинк-защита location /images/ { valid_referers none blocked www.host.com host.com; if ($invalid_referer) { return 403; } } Вопросы / Как защитить фото в ms2gallery 19
Володя · 07 сентября 2017, 06:56 2 +2 <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
Илья Уткин · 03 сентября 2017, 12:35 2 +1 {$_pls['tv.image'] | phpthumbon : "w=75"} Готовые решения / Использование тегов MODX внутри @INLINE-чанков pdoTools 12
MiniShop3 1.11.0 при клике на radio идет пересчет итоговой суммы в 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`; — добавлены ...
[msBonus2] 1.3.0 Бонус-коды, уведомления о сгорании и совместимость с msMultiCurre... Да, планируется. Даже чуть больше, чем просто бонусная система)
FileMan - прикрепление файлов к ресурсам для MODX 3 Добрый день! Может что-то с правами доступа к файлам? Посмотрите логи в modx, в php. С ходу сложно ответить, ранее не было таких случаев.
Чанк outer для фильтра:
Чанк rows для фильтра:
То есть, тупо не показываю вторую галочку.
Сделал вывод в placeholders и добавил css class «active»
getLanguages
В шаблоне
Содержимое section-langs-1
Содержимое section-langs-2
На уникальность не претендую, но уверен что кому то поможет.
Критика и правки приветствуются.
Причём, писать лучше массивом, потому что сейчас у тебя там JSON с ошибкой:
Тоже самое касается и join — все сниппеты pdoTools давно понимают указание массивов через Fenom.
В значения по умолчанию пишешь стандартный migx-json, типа такого но со своими полями:
Только вместо восьмёрки id нужного чанка. Ну и оформить ссылку уже можно как угодно с помощью стилей.
Можно как костыль использовать такое решение:
1. Включаем автоматическую генерацию псевдонима
2. В плагине проверяем — если псевдоним ресурса такой же, как его сгенерировал бы MODX, заменяем псевдоним:
Но это, конечно, очень грязный хак — ведь где-то автоматически сгенерированный псевдоним будет реально нужен. Нужно ограничивать работу плагина, например, родителем ресурса или его шаблоном.