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
Возможно ли реализовать возможность предоплаты за доставку на сайте? В любом случаем стандартный флоу минишоп2 рассчитан на оплату по ссылке, т.е. чтобы получить информацию об оплате, нужно чтобы заказ существовал. Чтобы сделать иначе, нужно использ...
Редизайн сообщества На больших экранах основной текст статьи я бы сделал 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
— только, насколько я понимаю, в данном способе тег выводится не в теле комментария (где текст), а в общем шаблоне комментария под ним с подцеплением результатов на лету.