Сергей

Сергей

С нами с 10 марта 2016; Место в рейтинге пользователей: #301
Сергей
03 июня 2016, 10:29
-3
Предлагаю такой вариант. Новый тип TV — поля.

Что дает этот плагин?
Мы знаем, что можно использовать динамический биндинг в TV — полях типа «список» и «множественный список» с @eval return $modx->runSnippet('snippetname') для формирования списка. Список формируется динамически из сниппета, но представляет собой только текстовое обозначение. Что не всегда удобно и понятно.

Описанный ниже плагин по — сути делал бы то же самое, только формировал «Расширенный динамический список», позволяя самим выбирать внешний вид списка элементов, и показывать информацию об элементах



Показываю на примере font-awesome.
Выбранный элемент должен рендериться рядом с полем TV-шки. При этом в «сыром виде» в самом поле будет храниться текст типа «fa-facebook». При настройке TV — поля пользователь должен сам указывать способ «рендера» этого «fa-facebook» в предпросмотре TV — поля.

То есть чтобы можно было либо подключать отдельный css — файл для этого, либо указывать инлайново стиль (а лучше и то и другое). В том, числе — подключать свои кастомные стили.

Но чтобы сами стили затрагивали только TV — поле, область рендера должна быть обернута в блок с названием, которое можно указывать в настройках TV. К примеру «Класс контейнера для предпросмотра». И текстовое поле, куда можно указать класс.

Тут главная особенность — чтобы пользователи могли подключить свои стили и сами определять способ рендера превьюшки. Еще возможно чтобы можно было указывать сниппет — хук для обработки данных перед рендером (опционально)

Это все было по внешнему виду предпросмотра
Теперь при нажатии кнопки выбор. Должно открываться окно с возможностью выбора элементов из списка. Но как должен выводиться список тоже должно быть определено в настройках TV — поля (без привязки к ExtJS). То есть чтобы тут можно было — бы подключить свои стили аналогично, определить как отображаются элементы. А при нажатии на них происходил выбор. То есть в документации указать например: «Отображать список можно любым произвольным способом, главное, чтобы у элементов был реализован метод onclick=»choose('fa-facebook')". И все. То есть определять то, что выбрал пользователь будет срабатывание этого метода.

Было — бы неплохо, если бы также можно было реализовать множественный выбор, а при выборе нескольких элементов просто добавлялся определенный класс к элементам. Ну а «внешний вид» уже определялся бы пользователем.

Потом еще бы сделать вывод информации в окне выбора не статичным html — файлом, а с возможностью полноценного использования сниппетов, чанков и т.д. — то есть динамически подготовить вывод.
Сергей
20 мая 2016, 17:07
0
Надо плагин, который будет использовать pQuery и при событии сохранения документа в TV — полях проверять наличие «запрещенных тегов» типа script ну и вырезать их. Добавить возможность исключения определенных TV из списка.
Сергей
20 мая 2016, 12:24
0
pdoPage имеет функционал для создания пагинации и ajax- подгрузки. У сниппета getImageList есть offset и limit. Судя по всему возможно использовать их вместе

[[!pdoPage? 
        &element=`getImageList`
        &maxLimit=`15`
        &totalVar=`ImagesTotal`
        &toPlaceholder=`ImagesResult`
        &ajaxMode=`scroll`
        &pageLimit=`10`
]]
    
    [[!+ImagesTotal:ne=`0`:then=`
        <div id="pdopage">
            <div class="rows clearfix">
                [[+ImagesResult]]
            </div>
            <div class="text-center" style="margin-top: 15px; display: none">
                [[!+page.nav]]
            </div>
        </div>
    `:else=`
        <p>Нет фотографий</p>
    `]]
Может получиться, а может и нет.
Сергей
20 мая 2016, 11:55
0
Первый способ можно использовать, когда получить ссылку на страницу можно только зная ID. Например — при использовании TV — поля с динамической генерацией ID ресурсов через биндинг @EVAL return $modx->runSnippet()
Сергей
05 мая 2016, 21:36
+2
В общем делали кое — что для строительной фирмы. Фильтрации нет, но есть подробный просмотр купленных/свободных квартир

походите по ссылкам. Пришлось много допиливать плагинов. И структура сайта сложная, но тем не менее
21sol.ru/o-mikrorajone/raspolozhenie.html
Сергей
05 мая 2016, 21:26
0
Буквально на днях перед праздниками клиенту позвонил сбербанк и предложил свою систему оплаты. Сделал вот абсолютно точно такой — же плагин, но чет поленился в пакет собрать :3. Я там не все функции API сбера реализовал. Только оплату и смену статуса в списке заказов minishop2. У сбера еще есть возможность возврата денег по запросу клиента. Но магазин торгует цветами, и возврат у них не предусмотрен. Илья, в твоей версии такой функционал добавлен? (хотя наверное он не всем нужен)