25 марта 2017, 11:25 Возможно, коллекция — не лучший инструмент для данной задачи, на случай, если статьи могут пересекаться для разных пользователей. На мой взгляд, лучше реализовать задачу таким образом: — у вас есть единый раздел с тикетами «Статьи» — на главной страницы с помощью MIGX вы реализуете таблицу вида: айди_пользователя | привязанные_для_него_айди_статей Далее, в шаблоне, где вы хотите отображать статьи для пользователя: {if $_modx->user.id > 0} {set $migx_tv = $_modx->resource.migx_tv_name | fromJSON} //не помню точно, по какому полю формируется ключ в MIGX, возможно, получение статей для конкретного пользователя будет выглядеть чуть иначе {set $user_articles = $migx_tv[$_modx->user.id]} {$_modx->runSnippet('!pdoResources', [ 'resources' => $user_articles, ... ])} {else} //форма авторизации {/if} Вопросы / Вывод ресурсов для определенного пользователя 3 +2
25 марта 2017, 11:17 Если использовать минимальное количество запросов, то можно воспользоваться fenom'ом примерно таким образом: //Собираем ресурсы, из которых необходимо будет сформировать табы {var $resource_list = $_modx->runSnippet('!pdoResources', [ ... 'return' => 'json' ])} //Родитель, от которого формируем табы {set $tab_parent = '11'} {set $tabs = ''} {foreach $resource_list | fromJSON | split as $item} {set $parent = $item['parent']} {set $id = $item['id']} {set $pagetitle = $item['pagetitle']} //Настроить оформление по вкусу {if $parent == $tab_parent} {set $tabs = $tabs ~ '<a data-id="' ~ $id ~ '" class="tab-selector">' ~ $pagetitle ~ '</a>'} {else} {set $tab_childs[$parent][$id] = '<div class="body">' ~ $pagetitle ~ '</div>'} {/if} {/foreach} <div class="wrapper"> <div class="tabs">{$tabs}</div> <div class="items"> {foreach $tab_childs as $parent_id => $tab_content} <div data-parent="{$parent_id}" class="body"> {foreach $tab_content as $tab_item} {$tab_item} {/foreach} </div> {/foreach} </div> </div> Вопросы / Как сделать табы из ресурсов? 8 +3 3
25 марта 2017, 10:31 Избавьтесь от тега base, и все заработает. Вопросы / Bootstrap ScrollSpy перезагружает страницу! 7 +1
24 марта 2017, 17:20 Добрый день, готов взяться. Дизайнер в комплекте. Объявления о работе / Необходимо переделать дизайн и переделать сайт 17 +1
21 марта 2017, 13:18 На правах предложения: может сделать аватарку в блоке «автор дополнения» кликабельной с переходом в профиль? Третий раз ловлю себя на попытке кликнуть по ней..) Сайты на MODX / Новый modstore.pro 150 +2
21 марта 2017, 12:24 Вариант 1: в чанках заменить href="[[+link]]"на href="/[[+link]]" Вариант 2: В системных настройках изменить параметр link_tag_scheme на full. Вариант 3: для сниппета pdoTools задать параметр &pageLinkScheme. Вопросы / Revo не правильное формирование урлов 2 +4 1
21 марта 2017, 01:28 На самом деле, идея с опциональностью предоставляемой техподдержки звучит вполне интересно, равно как и старт отсчета таймера с момента первого запроса. Возьмем для примера достаточно сложное (потенциально вызывающее вопросы) и в тоже время популярное дополнение: mSearch2. Ценник на него без учета скидок ~2000. Вычитаем 30% modstore — итого 1400 рублей идет автору. Предположим, что час среднебюджетного программиста стоит 700 рублей. Итого 2 часа сведут на нет всю прибыль от дополнения, что вполне достижимо, учитывая, что для решения ~половины запросов потребуется внедрение в админку. И все это без учета того, что под одним ключом могут задавать вопросы с разных сайтов. В итоге в текущей ситуации, с одной стороны, стимулируется написание хорошей документации, но с другой — повышение итоговой стоимости. На мой взгляд, все сведется ко второму, учитывая, что данный вопрос уже поднимался. Что в итоге делает менее выгодным реализацию больших дополнений (или покупателя отпугивает высокая цена, или объем вопросов — разработчика). К слову, все это подводит к идее реализации независимой от автора техподдержки (процентно от стоимости дополнения как раньше, или «общую техподдержку» за отдельную стоимость). Сайты на MODX / Новый modstore.pro 150 +6
20 марта 2017, 20:53 Тогда выходит не совсем логично — англоязычный пользователь не может даже узнать о существовании дополнение (без языковой поддержки), чтобы для себя решить — хочет ли он установить его в таком варианте или нет. Сайты на MODX / Новый modstore.pro 150 +2
20 марта 2017, 20:45 Вопрос: то, что сейчас при переключении языка пропадают все дополнения — это фича или ...? Сайты на MODX / Новый modstore.pro 150 0
20 марта 2017, 20:45 Да, на 10-ке + Chrome с ними все тоже ок. Сайты на MODX / Новый modstore.pro 150 +1
20 марта 2017, 17:25 Ну, проблема довольно распространенная с имитацией скролла, согласен, но вполне решаемая: — вот здесь (страница со скроллом / без скролла, попап по нажатию на кнопку «вход») я аналогичную ситуацию решил с помощью слегка модифицированного Magnific Popup'a + верстка html-контейнера со свойством box-sizing: border-box; (затрудняюсь сказать точнее, уже не помню полную реализацию) Сайты на MODX / Новый modstore.pro 150 +1
20 марта 2017, 17:14 Chrome, Windows 10, 1600x900, g.recordit.co/ObEaIYKtlV.gif (происходит как при открытии, так и закрытии) Сайты на MODX / Новый modstore.pro 150 +2
20 марта 2017, 17:09 Классно, сайт теперь выглядит куда интереснее..) Из того, что сразу попалось на глаза: На странице дополнения, при просмотре кол-ва загрузок (лупа) весь сайт передергивает (проблема со скриптом всплывающего окна и padding'a для имитации сдвига скролла). Также, вероятно, лишнее подчеркивание лупы при наведении: Сайты на MODX / Новый modstore.pro 150 +4
16 марта 2017, 00:47 1. Регистрируем плагин на событие OnManagerPageInit: <?php if ($modx->event->name != 'OnManagerPageInit') return; $modx->regClientCSS('/design/admin.css'); 2. В файле admin.css добавляем: .x-form-item.modx-tv {padding-left: 0 !important;} .modx-tv-reset {display: none !important;} Вопросы / Убрать кнопочку «Установить по умолчанию» у ТВ 6 +2
10 марта 2017, 00:20 Лучше сделать так (в плагине): меняем строку (в двух местах) $modx->user->addSessionContext($modx->context->key); на следующую $contexts = $modx->getCollection('modContext', array('key:!=' => 'mgr')); foreach($contexts as $context) { $modx->user->addSessionContext($context->key); } Новые дополнения и их версии / [switchUser] Версия 1.1.0 14 +4 1
03 марта 2017, 11:09 <!--minishop2_popular <i class="glyphicon glyphicon-star" title="[[%ms2_frontend_popular]]"></i>--> <!--minishop2_new <i class="glyphicon glyphicon-flag" title="[[%ms2_frontend_new]]"></i>--> <!--minishop2_favorite <i class="glyphicon glyphicon-bookmark" title="[[%ms2_frontend_favorite]]"></i>--> — с помощью этого. Вопросы / Условие для minishop2 7 0
02 марта 2017, 05:30 Вы еще легко отделались: я последний ~месяц занимаюсь разработкой системы управления заказов минишопа — после продолжительного программирования теряю возможность нормально склонять и расставлять ударения в словах на какое-то время %) Вопросы / Профиль пользователя ModX 23 +3
02 марта 2017, 05:21 Не совсем понял, что именно нужно расписать… 1. У вас есть раздел с тикетами (допустим, новости), доступный по адресу '/news/'. Создаете в древе ресурсов новую страницу (не тикет), после чего перетаскиваете ее в раздел с тикетами, делая ее дочерней. 2. Изменяете алиас для страницы и создаете для нее отдельный шаблон. 3. Исключаете страницу из поиска и выборок pdoResources/getTickets по данному разделу. 4. Вызываете в шаблоне сниппет TicketForm c параметром &parents, равным айди раздела с тикетами. Вопросы / Профиль пользователя ModX 23 0
02 марта 2017, 04:40 Это зависит от того, как вы планируете редактировать материал. Если вы хотите редактировать тикеты из дополнения Tickets, то: 1. создаете страницу для управления тикетами (допустим, news/admin), на которой вызываете сниппет TicketForm 2. прописываете в примере выше ссылку в следующем формате: <a href="[[~айди_страницы_из_пункта_1]]?tid=[[*id]]"></a> Вопросы / Профиль пользователя ModX 23 +1
02 марта 2017, 03:59 С помощью фильтров MODX'a: [[!+modx.user.id:is=`[[*createdby]]`:or:memberof=`Administrator`:then=`Редактировать`]] С помощью фенома: {if $_modx->user.id | ismember : 'Administrator' || $_modx->user.id == $_modx->resource.createdby} Редактировать {/if} Вопросы / Профиль пользователя ModX 23 +1 1
Возможно ли реализовать возможность предоплаты за доставку на сайте? У меня Робокасса, у них вроде есть docs.robokassa.ru/ru/iframe
Редизайн сообщества На больших экранах основной текст статьи я бы сделал 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... Да, планируется. Даже чуть больше, чем просто бонусная система)
На мой взгляд, лучше реализовать задачу таким образом:
— у вас есть единый раздел с тикетами «Статьи»
— на главной страницы с помощью MIGX вы реализуете таблицу вида:
Далее, в шаблоне, где вы хотите отображать статьи для пользователя:
в чанках заменить
на
Вариант 2:
В системных настройках изменить параметр link_tag_scheme на full.
Вариант 3:
для сниппета pdoTools задать параметр &pageLinkScheme.
Возьмем для примера достаточно сложное (потенциально вызывающее вопросы) и в тоже время популярное дополнение: mSearch2. Ценник на него без учета скидок ~2000. Вычитаем 30% modstore — итого 1400 рублей идет автору.
Предположим, что час среднебюджетного программиста стоит 700 рублей. Итого 2 часа сведут на нет всю прибыль от дополнения, что вполне достижимо, учитывая, что для решения ~половины запросов потребуется внедрение в админку. И все это без учета того, что под одним ключом могут задавать вопросы с разных сайтов.
В итоге в текущей ситуации, с одной стороны, стимулируется написание хорошей документации, но с другой — повышение итоговой стоимости. На мой взгляд, все сведется ко второму, учитывая, что данный вопрос уже поднимался. Что в итоге делает менее выгодным реализацию больших дополнений (или покупателя отпугивает высокая цена, или объем вопросов — разработчика).
К слову, все это подводит к идее реализации независимой от автора техподдержки (процентно от стоимости дополнения как раньше, или «общую техподдержку» за отдельную стоимость).
— вот здесь (страница со скроллом / без скролла, попап по нажатию на кнопку «вход») я аналогичную ситуацию решил с помощью слегка модифицированного Magnific Popup'a + верстка html-контейнера со свойством box-sizing: border-box; (затрудняюсь сказать точнее, уже не помню полную реализацию)
Из того, что сразу попалось на глаза:
На странице дополнения, при просмотре кол-ва загрузок (лупа) весь сайт передергивает (проблема со скриптом всплывающего окна и padding'a для имитации сдвига скролла).
Также, вероятно, лишнее подчеркивание лупы при наведении:
2. В файле admin.css добавляем:
меняем строку (в двух местах)
на следующую
1. У вас есть раздел с тикетами (допустим, новости), доступный по адресу '/news/'. Создаете в древе ресурсов новую страницу (не тикет), после чего перетаскиваете ее в раздел с тикетами, делая ее дочерней.
2. Изменяете алиас для страницы и создаете для нее отдельный шаблон.
3. Исключаете страницу из поиска и выборок pdoResources/getTickets по данному разделу.
4. Вызываете в шаблоне сниппет TicketForm c параметром &parents, равным айди раздела с тикетами.
Если вы хотите редактировать тикеты из дополнения Tickets, то:
1. создаете страницу для управления тикетами (допустим, news/admin), на которой вызываете сниппет TicketForm
2. прописываете в примере выше ссылку в следующем формате:
С помощью фенома: