Баха Волков · 06 февраля 2020, 22:07 Не не не, не делайте так, помните или почитайте о DRY. С парсером MODX все понятно, ей сложно помочь, но феном-то полноценный шаблонизатор: {foreach ['receiver', 'phone', 'index', 'region', 'city', 'street', 'building', 'room', 'comment', 'customfield'] as $field} {if $address[$field]?} <tr> <td style="{$style.th};width: 200px; font-weight: 600;">{('ms2_frontend_' ~ $field) | lexicon}: </td> <td style="{$style.th}">{$address[$field]}</td> </tr> {/if} {/foreach} 8 моих строчек против твоих 80-ти Готовые решения / Данные клиента в письме (e-mail). Minishop2. Изменяем чанк tpl.msEmail 9 +12 5
Денис · 23 мая 2019, 14:07 Я делал 2 выборки на странице, всё работало. Можно попробовать вот так: <div id="pdopage"> [[!+page.nav]] <div class="rows"> [[!pdoPage? &element=`getImageList` &tvname=`resourcealbum` &tpl=`effects-img` &limit=`15` &ajaxMode=`button` &wrapperTpl = `effects_wrapper` &docid=`[[*id]]` &processTVs=`1` ]] </div> </div> <!-- Меняем ID на pdopage2 и добавляем параметры &ajaxElem... --> <div id="pdopage2"> [[!+nav.pagevar]] <div class="rows"> [[!pdoPage? &element=`getImageList` &tvname=`resourcealbum1` &tpl=`effects-img` &limit=`15` &ajaxMode=`button` &wrapperTpl = `colors_wrapper` &docid=`[[*id]]` &processTVs=`1` &pageNavVar= `nav.pagevar` &pageVarKey=`page1` &ajaxElemWrapper=`#pdopage2` &ajaxElemRows=`#pdopage2 .rows` &ajaxElemPagination=`#pdopage2 .pagination` &ajaxElemLink=`#pdopage2 .pagination a` &ajaxElemMore=`#pdopage2 .btn-more` ]] </div> </div> Вопросы / Несколько Pdopage на странице 5 0 4
Dolce · 16 октября 2017, 10:33 Точно, не удалил лишений код — как следствие и скопировал не то. Вот для селектов: $(document).ready(function() { $(document).on('change', '#mse2_sort', function() { var selected = $(this).find('option:selected'); var sort = selected.data('sort'); sort += mse2Config.method_delimeter + selected.val(); mse2Config.sort = sort; mSearch2.submit(); }); }); Вопросы / Шаблон сортировки для mFilter2 21 +2 5
Александр · 15 мая 2017, 12:41 Мучился с мультиязычностью (минишоп + несколько языков) + babel Стандартные чанки не подгружали англояз в контексте (EN, делал как тут писали) Русский язык (контекст WEB) — выводился норм, Английский везде выводился а в чанке корзины — нет, причем шапка таблицы заказов переводилать, а строки нет. Бред какой-то в итоге создал плагин и повесил его на «OnLoadWebDocument» $lang = $modx->getOption('cultureKey'); $modx->lexicon->load($lang.':minishop2:default');И только тогда все заработало. вот такие пироги Вопросы / Переключение языка словаря 8 0 1
Александр Туниеков · 10 марта 2017, 00:35 Может кому-то понадобиться опишу решение задачи. Мне понадобилось два дня чтоб пробраться через все баги. Сверстаный html макет сертификата в mpdf выгружался криво. Одна страница растягивалась на 3 страницы. Не подгружались фоновые картинки. В итоге решили сертификаты делать картинками, а на них уже накладывать номер и код сертификата. Во первых нужен сам mpdf. Он ставиться через composer. Но ставить через composer так не разобрался как. Поступил проще установил компонент PDFresource. В нем уже есть последняя настроенная версия mpdf. Итоговый сниппет html2pdf: <?php require_once(dirname(dirname(dirname(dirname(dirname(dirname(__FILE__)))))).'/core/components/pdfresource/vendor/mpdf/mpdf/mpdf.php'); // путь до mpdf $mpdf = new mPDF(); $mpdf->list_indent_first_level = 0; $mpdf->SetDisplayMode('fullpage'); switch($_GET['product']){ case '218': $img='http://mysite.ru/assets/components/html2pdf/sertifikat-lichniy-vrach-plus.jpg'; break; case '219': $img='http://mysite.ru/assets/components/html2pdf/sertifikat-lichniy-vrach-semeynoe-zdorovye.jpg'; break; case '217': default: $img='http://mysite.ru/assets/components/html2pdf/sertifikat-lichniy-vrach-standart.jpg'; break; } $t=$modx->getChunk('sertifikat_html',array( 'img'=>$img, 'nomer'=>$_GET['nomer'], 'code'=>$_GET['code'], )); //return $t; $mpdf->WriteHTML($t, 0); /*формируем pdf. С ключом 0 обрабатывает стили css.*/ $mpdf->Output('mpdf11.pdf', 'I'); // вывод pdf в браузер. С ключом 'D' выводит файл на загрузку. exit; // без этой команды в браузер выпадают ероглифыИтоговый чанк sertifikat_html: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html lang="ru"> <head> <meta charset="utf-8"> </head> <body> <div class="example2"> <img src="[[+img]]" > <div style="margin-top: -895px;padding-left:80px;"><span>[[+nomer]]</span></div> <div style="margin-top: -20px;padding-left:470px;"><span>[[+code]]</span></div> </div> </body> </html>В mpdf стили position:absolute обрабатываются ограниченно. Пришлось долго возиться, чтобы наложить текст на картинку. Решилось все стилем margin-top с отрицательными значениями. Причем те же стили примененные к span эффекта не давали. Только div выручил. Сейчас все наконец-то работает :) Вопросы / Нужно клиентам выгружать сертификат в pdf формате 8 0 1
Виталий Серый · 28 февраля 2017, 14:03 Самое простое через ключ массива. {*Первые два*} {foreach $rows as $idx => $row} {if $idx < 2} <div>{$idx} - {$row.title}</div> {/if} {/foreach} {*С пятой строки*} {foreach $rows as $idx => $row} {if $idx > 4} <div>{$idx} - {$row.title}</div> {/if} {/foreach} {*Чересстрочная вакханалия*} {foreach $rows as $idx => $row} <div{$idx is odd ? ' class="odd"' : ''>{$idx} - {$row.title} и два тикета туДаблин</div> {/foreach}И т.п. Документация Fenom. Вопросы / MIGX getImageList и Fenom 67 +4 4
Виталий Серый · 13 ноября 2016, 18:44 Код чанка написать между foreach. Например: {foreach $rows as $row} <div class="item"> <div class="title">{$row.title}</div> <div class="desc">{$row.description}</div> <div class="image"><img src="{$row.image}" alt="{$row.title}" /></div> </div> {/foreach} Вопросы / MIGX getImageList и Fenom 67 0 3
Виталий Серый · 08 июня 2016, 00:58 Можно попробовать обойтись средствами Fenom без getImageList. {set $rows = json_decode($_modx->resource.tv_product_main_gallery, true)} {foreach $rows as $row} {$row.image} {/foreach} Вопросы / MIGX getImageList и Fenom 67 +3 7
Виталий Барышников · 06 марта 2016, 11:59 Спасибо, всё работает. Только для тех, кто еще будет делать была проблема, что не работает пересчет корзины когда меняем количество товара в input. Нужно вручную добавить событие сабмита формы в onchange этого инпута: <input type="number" name="count" value="[[+count]]" max-legth="4" onchange="$(this).closest(miniShop2.form).submit();" class="input-sm form-control" /> Готовые решения / Динамическое обновление основной корзины 29 0 1
Константин Ильин · 08 декабря 2015, 01:08 Да бы не заниматься двойной работой по заполнению словаря, сделал такой выход: [[!GetNameFilter]] $query = $modx->query("SELECT * FROM modx_tt_ms2_options WHERE `key`= '".$filter."'"); $item = $query->fetch(PDO::FETCH_ASSOC); return $item['caption'];в чанке tpl.mFilter2.filter.outer заменил вот так: <h4>[[+table:is=`msoption`:then=`[[!GetNameFilter? &filter=`[[+filter]]`]]`:else=`[[%mse2_filter_[[+table]]_[[+filter]]]]`]] </h4> Вопросы / mFilter2 и Характеристики 17 0 2
gtsAPI 1.1.7 — таблицы на TanStack, инлайн-редактирование как в Excel Prime Vue datatable тупит на 200+ строк и в виртуальном скролинге высота полей фиксирована. Вот нам в итоге и не подошло. Директор сказал расчет должен сразу показываться без пагин...
mxApi — быстрый внешний API для MODX Revolution • зафиксировать публичный контракт EndpointInterface / метаданных по semver, чтобы наш провайдер не ломался на обновлениях;Фактически это уже так, beta стоит просто на всякий случа...
YaSmartCaptcha - защитите ваши формы от спама умной капчей от Яндекс Вообще не понял о чем речь) В системной настройке service_js сейчас указана ссылка smartcaptcha.cloud.yandex.ru/captcha.js Я предложил очистить эту настройку, тогда компонент н...
mxBackup — обезличенные копии MODX в пару кликов Ещё нет, я там разом почти полтора десятка пакетов выложил модератор, вероятно, а шоке.
Gallery3x 3.4.0 - вставка галерей прямо из визуального редактора (CKEditor и TinyMCE RTE) Здравствуйте. Есть консольный скрипт Вот почитайте: docs.ivan345.com/books/gallery3x/page/import-ms2galleryphp
[mSync] Новая версия синхронизации с 1С Всем привет. В какой то момент начали сыпаться ошибки: Error 23000 executing statement: INSERT INTO `modx_msync_products` (`product_id`, `uuid_1c`) VALUES ...
8 моих строчек против твоих 80-ти
Можно попробовать вот так:
Стандартные чанки не подгружали англояз в контексте (EN, делал как тут писали)
Русский язык (контекст WEB) — выводился норм, Английский везде выводился а в чанке корзины — нет, причем шапка таблицы заказов переводилать, а строки нет. Бред какой-то
в итоге создал плагин и повесил его на «OnLoadWebDocument»
И только тогда все заработало.
вот такие пироги
Сверстаный html макет сертификата в mpdf выгружался криво. Одна страница растягивалась на 3 страницы. Не подгружались фоновые картинки. В итоге решили сертификаты делать картинками, а на них уже накладывать номер и код сертификата.
Во первых нужен сам mpdf. Он ставиться через composer. Но ставить через composer так не разобрался как. Поступил проще установил компонент PDFresource. В нем уже есть последняя настроенная версия mpdf.
Итоговый сниппет html2pdf:
Итоговый чанк sertifikat_html:
В mpdf стили position:absolute обрабатываются ограниченно. Пришлось долго возиться, чтобы наложить текст на картинку. Решилось все стилем margin-top с отрицательными значениями. Причем те же стили примененные к span эффекта не давали. Только div выручил.
Сейчас все наконец-то работает :)
И т.п.
Документация Fenom.
Например:
[[!GetNameFilter]]
в чанке tpl.mFilter2.filter.outer заменил вот так: