12 января 2015, 11:37 Редактировать ext js, скорее всего. Ну и как вариант, могу предложить такое решение (костыль): Создаем плагин adminStyles, срабатывающим на событие OnManagerPageBeforeRender с последующим кодом: <?php $modx->controller->addHtml('<link rel="stylesheet" type="text/css" media="screen" href="../design/admin.css" />');Ну и добавляем по указанному адресу соответствующий css-файл с параметрами {display: none;} к соответствующему элементу. Вопросы / Кастомизация админки для секции тикетов 1 0
12 января 2015, 11:29 pdoField docs.modx.pro/components/pdotools/snippets/pdofield должен помочь. Вопросы / pdoPage вывести ресурсы на уровень выше 1 0
12 января 2015, 11:26 Выпадающий список данной структуры реализуется за счет тега optgroup. Пример: <select> <optgroup label="Категория 1"> <option value="1">Параметр 1</option> <option value="2">Параметр 2</option> </optgroup> </select>Т.е. нужно модифицировать формат вывода getResourse к данной структуре. Вопросы / Структурированный список в tv-параметре 7 0 1
12 января 2015, 10:05 on.change при для нажатия на +- в корзине, + on.click на класс кнопок, добавляющих товар в корзину, а дальше — по id корзины проверять для каждой строки товара выполнение условия, и, если выполняется, ставить цену 2, а если нет — цену 1. Чтобы не извращаться с поиском «новой цены», можно где-нибудь в невидимом блоке в корзине рядом с основной ценой ставить доп. цену и свитчить их при выполнении условия. Ну и + все дополнительные места, которые могут повлиять на кол-во товаров, тоже зацепить скриптом. Вопросы / 2 цены для товара miniShop2 29 0
11 января 2015, 21:46 Можно в ресурсах, которые собираешься выводить, в пункт «атрибуты ссылки» дописать что-нибудь в духе class=«icon-название» для каждого пункта, где требуется иконка и вывести в шаблоне (tpl) в нужном месте при помощи плейсходлера [[+attributes]]. Дальше — дело за css. Вопросы / иконки к пунктам pdomenu 5 0
11 января 2015, 13:59 Первое — думаю, с друзьями проблем не будет — просто 1 доп.поле, где в массиве будут перечисляться id пользователей с последующим выводом через pdoTools Второе — store.simpledream.ru/packages/users/socialtools.html не подойдет? Краудфандинг / Отображение страницы пользователя 68 0
10 января 2015, 21:55 а) отключить проверку форм со стороны сниппета и подключить проверку со стороны яваскриптов б) добавить 1 скрытое поле, на которую навесить проверку со стороны formlt + яваскрипт, который срабатывает на событие on.change нужных форм и заполняет/чистит поле валидации в) написать свой сниппет для этого, благо функционал не сложный Вопросы / Заполнять или можно не заполнять вот в чем вопрос 5 0
10 января 2015, 17:42 По-настоящему «прямые» урлы генерируются только в случае, если добавлять в файловой структуре аналогичные элементы с желаемым названием, допустим, page23.html У modx'a, если не ошибаюсь, для чпу в .htaccess прописано: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] + опять же, если пользоваться встроенными в modx настройками чпу и определением «страниц» для генерации страниц красивых ссылок для страниц пользователя, то необходимо «создавать» такие страницы в желаемом разделе при регистрации пользователя, а это вытекает в Второй способ имеет плюс в том, что можно, теоретически, руками настроить совершенно любое отображение личной страницы для каждого пользователя персонально, но плодит кучу ненужных страниц и вообще несколько топорно. Краудфандинг / Отображение страницы пользователя 68 0
10 января 2015, 15:58 Да, именно.) Исключение, разве что медали, которые выдаются персонально за личные заслуги и не подвергаются систематизации. Краудфандинг / Отображение страницы пользователя 68 0
10 января 2015, 15:44 Я все это, помимо прочего, написал ради отображения одного фактора. Т.к. задача действительно фундаментальная, при этом, на мой взгляд, не требующая глубинных познаний в modx'e, вероятно, есть причина, почему схожий по функционалу пакет до сих пор не появился: труднореализуемость настройки для коробки. На мой взгляд, для отображения страницы пользователя можно применить 2 принципиально разных решения: — динамичное получение данных логина или id пользователя из адресной строки с последующем отображением — фиксированное создание страницы пользователя в нужном разделе Второй способ имеет плюс в том, что можно, теоретически, руками настроить совершенно любое отображение личной страницы для каждого пользователя персонально, но плодит кучу ненужных страниц и вообще несколько топорно. Поэтому выбрав пункт 1, мы автоматически очень сильно связываем себя с внесением записей в .htaccess, а значит все равно допиливать дополнение руками. Что же до остальных пунктов, то для части из них нужно или пилить дополнительно отдельный функционал регистрации + личный кабинет, или же уже задействовать имеющийся. Ну и последнее и, пожалуй, самое главное: для удобной работы с дополнительными полями пользователя (медальки, карма) «не программисту» потребуется или написать фронтэнд-модуль или существенно изменить способ взаимодействия с ними через бэкэнд. Краудфандинг / Отображение страницы пользователя 68 0
10 января 2015, 09:34 С вашего позволения, приведу сюда пример реализации большинства пунктов (не отрицаю востребованнось решения данных задач сразу из коробки, т.к. работы для реализации этих пунктов нужно сделать прилично): Страницы пользователей с нормальными урл 1. Создаем страницу «профиль пользователя» (не путаем с личным кабинетом), выставляем ему псевдоним, допустим users, к которой будут обращаться в виде site.ru/users?profile=имя 2. Ставим дополнение pdoTools 3. Создаем сниппет user.Profile и добавляем его в шаблон вывода <?php $count = $modx->getCount('modUser', array('username' => $_GET[profile])); if($count <= 0){ echo' <h2> <a>Ошибка</a> </h2> <div> Пользователя не существует. </div>'; } else { $params = array(); $params['users'] = $_GET[profile]; $params['showBlocked'] = '1'; $params['tpl'] = 'user.Profile'; $params['prepareSnippet'] = 'user.Profile.Prepare'; $result = $modx->runSnippet('pdoUsers', $params); if (!empty($result)) { return $result; } else { return '<h2> <a>Ошибка</a> </h2> <div> Что-то сломалось.. Сейчас починим. </div>'; } } — насколько я помню, сразу вызвать pdoUsers с параметром конкретного пользователя нежелательно, т.к. если пользователя не существует, он выдает по-умолчанию весь список пользователей. Возможно, сейчас что-то поменялось или это можно обойти — не проверял. Для данного сниппета также можно дописывать условия, если пользователь не активирован и тд и тп. При помощи параметров tpl и prepareSnippet кастомизируем до нужного уровня. 4. Дописываем в .htaccess RewriteRule ^users/([^/]+)$ /users?profile=$1 [L] — чтобы ссылка приняла вид site.ru/users/Имя_пользователя Возможность добавлять поля в профиль пользователя При регистрации: дополнение login Для редактирования пользователем (личный кабинет) — дополнение office Возможность указывать шаблон для оформления страницы пользователя 1. Добавляем дополнительное поле в личный кабинет пользователя (шаблон отображения) 2. В шаблоне отображения профиля пользователя дописываем классы, завязанные на полученном значении (class=«userInfo-[[+tpl.style]]») 2.А. Если необходимо менять структуру шаблона в зависимости от выбранного пользователя значением, то в сниппете в первой части дописываем до $params = array();получение extended-поля по id пользователя с вытекающими условиями if, внутри которых будет разный параметр $params['tpl'] Добавить «из коробки» дату регистрации и дату последней активности Дату регистрации — сниппет логин и 1 доп. поле. С датой последней активности сложнее, т.к. в таблицах Modx'a, насколько я помню, есть только поле последней авторизации. Возможно, нужно завязывать на сессии +временной промежуток. Возможность сделать станицу пользователя общедоступной для просмотра Аналогично пункту 2.А. в разделе «шаблона отображения» Краудфандинг / Отображение страницы пользователя 68 +2 4
10 января 2015, 01:02 Как функционал дополнения в копилку modx'a — очень даже. Думаю, многим порталам будет востребовано. По поводу импорта такого функционала на данный сайт — спорно (имхо). Краудфандинг / Карма 13 0
06 января 2015, 14:57 Может, я не совсем корректно уловил задачу, но, похоже, вам для данной задачи все равно потребуется использовать часть функционала pdoMenu, а именно — обратный цикл, чтобы определить уровень вложения. Думаю, основной параметр для данной задачи — where +было бы на порядок проще, если бы нужные для вывода документы, помимо глубины, имели еще общие или справедливые только для них шаблоны — тогда весь вызов можно было бы ограничить только условием на соответствие этих шаблонов. Вопросы / Как вывести ресурсы определенного уровня? 13 0
06 января 2015, 13:27 pdoMenu, pdoResources? docs.modx.pro/components/pdotools/ Вопросы / Как вывести ресурсы определенного уровня? 13 0
06 января 2015, 02:21 Странный подход, на мой взгляд modx намного больше cmf, чем cms — поэтому и воспринимается как платформа, в первую очередь, для программистов. Готовое дополнение (без морфологии) — tagLister. Со всеми наворотами — разве что писать с нуля и, на мой взгляд, на порядок целесообразнее отдельным дополнением, т.к. те же теги потенциально пригодятся не только в тикетах (галереи, фото-видео и пр пр). Краудфандинг / Тэги к тикетам 49 0
05 января 2015, 18:12 Ну, на мой взгляд, годные программисты и так стараются писать все дополнения под себя, за исключением pdotools, tickets и аналогичных, которые написаны слишком уж хорошо +на реализацию которых самим просто нет возможностей/времени. ребята, которые строят хорошие «юзер-френдли» ресурсы, — оценивают это дополнение, как одно из самых удобных, функциональных и быстрых на фоне аналогов в друпале и вордпресе. — к чему это сказано? С тем же успехом можно было сказать что-то в духе: «ребята, которые работают на битриксе, оценивают битрикс как один из самых удобных и быстрых функционалов», но вряд ли от их мнения он таким становится. Ну и да, к слову: большого ума, как по мне, чтобы реализовать более быстрый аналог друпалу и вордпрессу в текущей их ипостасти и не требуется. Ровно до тех пор, пока легкие дополнения Modx'a не стали «универсальным решением на все случаи жизни из коробки для ленивых» Что же до подгружаемых элементов с пакетами tickets — повторюсь, вопрос в востребованности и максимальной необходимости для большинства. И теги ими, на мой взгляд, не являются. Краудфандинг / Тэги к тикетам 49 0
05 января 2015, 14:11 Да, это справедливо. Помнится, Agel Nash даже выявлял довольно неприятные уязвимости tv-полей. Другое дело, что отдельным сниппетом можно реализовать вывод, да. Но, в отличие от тех же комментариев, теги вряд ли логично выставлять отдельно со стороны бэкэнда. Нормализация — тут уже придется подключать словари и не только. Вообще, если нужен будет морфологический анализ, имхо, это очень серьезный и сложный вопрос реализации, заслуживающий полноценного и отдельного дополнения. А что имелось ввиду под «исключением тега»? Краудфандинг / Тэги к тикетам 49 0
05 января 2015, 10:18 Могу ошибаться, но по-моему в нем где-то жестко использовался getResource в отображении, поэтому и написал свой модуль (повторяюсь, могу ошибаться — дело было давно) =) Краудфандинг / Тэги к тикетам 49 0
05 января 2015, 10:06 Если честно, я и прелести tagLister'a не оценил — он уж на случай крайней лени, как по мне. Вот как реализованы теги у меня (может, кому пригодится): 1. Дополнительное поле «tags» Параметры ввода: Авто-метка (можно и простой строкой, по желанию) 2. Сниппет «tags», делающий теги ссылками (для последующего поиска по ним) <?php if ($input == ''){ return; } $tags = explode(',',$input); foreach ($tags as $key => $value){ $output[] = '<a href="'.$modx->makeurl($tagsPage, '').'/'.$value.'" itemprop="keywords">'.$value.'</a>'; } return implode(', ',$output); 3. Вывод в чанке [[*tags:notempty=` <div class="tagList" itemscope itemtype="http://schema.org/CreativeWork"> [[!tags? &tagsPage=`91` &input=`[[*tags]]`]] </div> `]] — где &tagsPage — параметр, определяющий айди страницы поиска по тегам для формирования ссылки Ну и дополнительно, для «полного спектра услуг»: 4. Создаем страницу "Поиск по тегам" с псевдонимом tag, где будем выводить все теги, удовлетворяющие запросу: [[!pdoPage &parents=`0` &includeContent=`1` &where=`{"tags:LIKE":"%[[!GET? &get=`tag`]]%"}` &includeTVs=`tags` &limit=`10` &sortby=`createdon` &sortdir=`DESC` &depth=`1` &tpl=`tag.Item`]] — где сниппет GET перехватывает выбранный тег в адресной строке. GET <?php return $_GET[$get]; 5. Дописываем .htaccess, чтобы адресная строка поиска приняла вид site.ru/tag/Название_тега RewriteRule ^tag/([^/]+)$ /tag?tag=$1 [L] Краудфандинг / Тэги к тикетам 49 +1 4
05 января 2015, 09:05 Наборы параметров -> Comments -> Jevix cfgAllowTagParams {..., "div":{"class":["comm-img"]},...} cfgAllowTags Дописать тег div — только, насколько я понимаю, в данном способе тег выводится не в теле комментария (где текст), а в общем шаблоне комментария под ним с подцеплением результатов на лету. Вопросы / Как прикрепить изображение к комментарию 27 +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... Да, планируется. Даже чуть больше, чем просто бонусная система)
Ну и как вариант, могу предложить такое решение (костыль):
Создаем плагин adminStyles, срабатывающим на событие OnManagerPageBeforeRender с последующим кодом:
Ну и добавляем по указанному адресу соответствующий css-файл с параметрами {display: none;} к соответствующему элементу.
Т.е. нужно модифицировать формат вывода getResourse к данной структуре.
Чтобы не извращаться с поиском «новой цены», можно где-нибудь в невидимом блоке в корзине рядом с основной ценой ставить доп. цену и свитчить их при выполнении условия.
Ну и + все дополнительные места, которые могут повлиять на кол-во товаров, тоже зацепить скриптом.
Дальше — дело за css.
Второе — store.simpledream.ru/packages/users/socialtools.html не подойдет?
б) добавить 1 скрытое поле, на которую навесить проверку со стороны formlt + яваскрипт, который срабатывает на событие on.change нужных форм и заполняет/чистит поле валидации
в) написать свой сниппет для этого, благо функционал не сложный
У modx'a, если не ошибаюсь, для чпу в .htaccess прописано:
+ опять же, если пользоваться встроенными в modx настройками чпу и определением «страниц» для генерации страниц красивых ссылок для страниц пользователя, то необходимо «создавать» такие страницы в желаемом разделе при регистрации пользователя, а это вытекает в
На мой взгляд, для отображения страницы пользователя можно применить 2 принципиально разных решения:
— динамичное получение данных логина или id пользователя из адресной строки с последующем отображением
— фиксированное создание страницы пользователя в нужном разделе
Второй способ имеет плюс в том, что можно, теоретически, руками настроить совершенно любое отображение личной страницы для каждого пользователя персонально, но плодит кучу ненужных страниц и вообще несколько топорно.
Поэтому выбрав пункт 1, мы автоматически очень сильно связываем себя с внесением записей в .htaccess, а значит все равно допиливать дополнение руками.
Что же до остальных пунктов, то для части из них нужно или пилить дополнительно отдельный функционал регистрации + личный кабинет, или же уже задействовать имеющийся.
Ну и последнее и, пожалуй, самое главное: для удобной работы с дополнительными полями пользователя (медальки, карма) «не программисту» потребуется или написать фронтэнд-модуль или существенно изменить способ взаимодействия с ними через бэкэнд.
Страницы пользователей с нормальными урл
1. Создаем страницу «профиль пользователя» (не путаем с личным кабинетом), выставляем ему псевдоним, допустим users, к которой будут обращаться в виде site.ru/users?profile=имя
2. Ставим дополнение pdoTools
3. Создаем сниппет user.Profile и добавляем его в шаблон вывода
— насколько я помню, сразу вызвать pdoUsers с параметром конкретного пользователя нежелательно, т.к. если пользователя не существует, он выдает по-умолчанию весь список пользователей. Возможно, сейчас что-то поменялось или это можно обойти — не проверял.
Для данного сниппета также можно дописывать условия, если пользователь не активирован и тд и тп. При помощи параметров tpl и prepareSnippet кастомизируем до нужного уровня.
4. Дописываем в .htaccess
— чтобы ссылка приняла вид site.ru/users/Имя_пользователя
Возможность добавлять поля в профиль пользователя
При регистрации: дополнение login
Для редактирования пользователем (личный кабинет) — дополнение office
Возможность указывать шаблон для оформления страницы пользователя
1. Добавляем дополнительное поле в личный кабинет пользователя (шаблон отображения)
2. В шаблоне отображения профиля пользователя дописываем классы, завязанные на полученном значении (class=«userInfo-[[+tpl.style]]»)
2.А. Если необходимо менять структуру шаблона в зависимости от выбранного пользователя значением, то в сниппете в первой части дописываем до
получение extended-поля по id пользователя с вытекающими условиями if, внутри которых будет разный параметр $params['tpl']
Добавить «из коробки» дату регистрации и дату последней активности
Дату регистрации — сниппет логин и 1 доп. поле.
С датой последней активности сложнее, т.к. в таблицах Modx'a, насколько я помню, есть только поле последней авторизации. Возможно, нужно завязывать на сессии +временной промежуток.
Возможность сделать станицу пользователя общедоступной для просмотра
Аналогично пункту 2.А. в разделе «шаблона отображения»
По поводу импорта такого функционала на данный сайт — спорно (имхо).
Думаю, основной параметр для данной задачи — where +было бы на порядок проще, если бы нужные для вывода документы, помимо глубины, имели еще общие или справедливые только для них шаблоны — тогда весь вызов можно было бы ограничить только условием на соответствие этих шаблонов.
Готовое дополнение (без морфологии) — tagLister. Со всеми наворотами — разве что писать с нуля и, на мой взгляд, на порядок целесообразнее отдельным дополнением, т.к. те же теги потенциально пригодятся не только в тикетах (галереи, фото-видео и пр пр).
— к чему это сказано? С тем же успехом можно было сказать что-то в духе: «ребята, которые работают на битриксе, оценивают битрикс как один из самых удобных и быстрых функционалов», но вряд ли от их мнения он таким становится.
Ну и да, к слову: большого ума, как по мне, чтобы реализовать более быстрый аналог друпалу и вордпрессу в текущей их ипостасти и не требуется. Ровно до тех пор, пока легкие дополнения Modx'a не стали «универсальным решением на все случаи жизни из коробки для ленивых»
Что же до подгружаемых элементов с пакетами tickets — повторюсь, вопрос в востребованности и максимальной необходимости для большинства. И теги ими, на мой взгляд, не являются.
Другое дело, что отдельным сниппетом можно реализовать вывод, да. Но, в отличие от тех же комментариев, теги вряд ли логично выставлять отдельно со стороны бэкэнда.
Нормализация — тут уже придется подключать словари и не только. Вообще, если нужен будет морфологический анализ, имхо, это очень серьезный и сложный вопрос реализации, заслуживающий полноценного и отдельного дополнения.
А что имелось ввиду под «исключением тега»?
Вот как реализованы теги у меня (может, кому пригодится):
1. Дополнительное поле «tags»
Параметры ввода: Авто-метка (можно и простой строкой, по желанию)
2. Сниппет «tags», делающий теги ссылками (для последующего поиска по ним)
3. Вывод в чанке
— где &tagsPage — параметр, определяющий айди страницы поиска по тегам для формирования ссылки
Ну и дополнительно, для «полного спектра услуг»:
4. Создаем страницу "Поиск по тегам" с псевдонимом tag, где будем выводить все теги, удовлетворяющие запросу:
— где сниппет GET перехватывает выбранный тег в адресной строке.
GET
5. Дописываем .htaccess, чтобы адресная строка поиска приняла вид site.ru/tag/Название_тега
cfgAllowTagParams
cfgAllowTags
Дописать тег div
— только, насколько я понимаю, в данном способе тег выводится не в теле комментария (где текст), а в общем шаблоне комментария под ним с подцеплением результатов на лету.