Александр

Александр

С нами с 07 мая 2013; Место в рейтинге пользователей: #361

Как я расширил стандартную таблицу пользователей

В последнее время довольно часто приходится делать различные стартапы на заказ, суть которых сводится к платному сервису, с регистрацией, личным кабинетом, ну и как следствие каталогом пользователей, представляющих ту или иную услугу.

Обычно использую office, который обеспечивает готовый личный кабинет из коробки с минимальными усилиями, он же позволяет сохранять все в базу, пользователей. Но вот беда, полей катастрофически не хватает. Логичным решением было создавать страницы для каждого пользователя, и добавлять сколько угодно TV. Так я и делал, но решил заморочиться и не дублировать страницы, а расширить таблицу пользователей и работать с ней напрямую, как с ресурсом.

Вот что я сделал:
Николай Савин
30 марта 2016, 14:48
modx.pro
25
5 070
+6

Подключаем Ecommerce в Яндекс.Метрике

Всем привет. На форуме куча полезной информации по разработке магазинов. Я же в свою очередь хочу рассказать про настройку аналитики.

Итак мы будем передавать информацию из магазина miniShop в Яндекс.Метрику для того, чтобы в полном объёме пользоваться отчётами Электронной коммерции.
mekirile
24 марта 2016, 07:05
modx.pro
39
9 936
+13

Необходима помощь в кастомизации mSearch2

Доброго вечера!

Столкнулся с необходимостью скорректировать поиск таким образом, чтобы он выдавал не только товары, но и категории. Например, по запросу «машины» отдавать не только товары, но и саму категорию «Машины».
Алексей Шумаев
25 февраля 2016, 18:43
modx.pro
5
3 104
0

Соединяем EasyComm и mFilter2

Всем привет, и сразу к делу (кстати пишу первый раз тут, если будут ошибки — исправим).

Довольно таки часто требуется в интернет магазинах или каталогах добавить возможность пользователям писать отзывы о товарах, с этим очень хорошо справляется компонент EasyComm. Но очень часто возникает и смежная задача, слепить EasyComm с mFilter2, а именно сделать сортировку по количеству отзывов или по рейтингу товара. Выкладываю готовое решение.

Добавляем в вызов mFilter2 следующий код:

&loadModels=`easycomm`
&where=`{"class_key":"msProduct"}`
&leftJoin=`{
	"ecThread": {
		"class": "ecThread",
		"on": "msProduct.id = ecThread.resource"
	}
}`

&select=`{
	"msProduct": "*",
	"ecThread": "ecThread.rating_simple AS rating, ecThread.count AS reviews"
}`
Павел
25 декабря 2015, 10:34
modx.pro
34
4 822
+14

Генерация PDF на основе данных с формы в MODX Revo

Довольно часто возникает необходимость генерировать pdf на основе данных с формы.
Ниже небольшое решение как это сделать если стоит пакет ExportPage
Володя
24 декабря 2015, 12:12
modx.pro
22
4 898
+13

Пример работы Fenom

Вчера в поддержку магазина обратились с жалобой на медленную работы mSearch2 при небольшом количестве товаров.

При ближайшем рассмотрении выяснилось, что проблема, конечно, не в самом mSearch2, а в чанке, который используется для вывод результатов работы фильтра.

Изначально debugParser показывал такой результат работы.
Василий Наумкин
28 ноября 2015, 09:35
modx.pro
13
8 286
+9

Плагин запрещающий удалять определенные ресурсы

Вот этот хороший не знаю чей плагин запрещает удалять ресурсы переданные списком через параметр ids.
<?php
$e = &$modx->Event;

$ids= explode(',', $ids);

switch($e->name) {

        case 'OnBeforeDocFormDelete':
                if (isset($_REQUEST['id']) && in_array(intval($_REQUEST['id']), $ids)) {
                        echo '<div style="padding: 50px 100px; font: bold 12px Arial, sans-serif;">Удаление данного раздела невозможно</div>';
                        exit;
                }
        break;

        case 'OnDocFormDelete':
                if (isset($_REQUEST['id']) && in_array(intval($_REQUEST['id']), $ids)) {
                        exit;
                }
        break;

        default:
                return;
        break;

}
Он исправно работает кроме той его части, которая отвечает за вывод информационного сообщения _Удаление данного раздела невозможно_

Вместо него перед удалением выводится стандартное _Вы уверены..._

Подскажите как допилить… Pls
anatol
25 ноября 2015, 09:23
modx.pro
2
1 297
0

Расширение любых таблиц MODX

В очередной раз понадобилось изменить таблицу сайта, менять которую не предусмотрено.

Что обычно люди делают в таких случаях? Верно, редактируют ядро или нужный компонент, и больше их не обновляют. Но ведь это неправильно, и можно решить вопрос иначе.

Пишем обычный плагин, выставляем для него событие OnMODXInit и меняем модель для нужных классов системы или дополнений. Например, я добавил id менеджера в заказ miniShop2:
Василий Наумкин
16 ноября 2015, 07:07
modx.pro
116
10 222
+11

ExtJs для новичков. Админка загрузилась. ч.2

В первой части познакомились с методом Ext.getCmp() для работы с компонентами ExtJs. Он позволяет взаимодействовать с виджетами ExtJs — панелями, таблицами, формами, окнами, запрашивать и обрабатывать данные с сервера и т.д. Но иногда требуется просто поработать с обычными HTML элементами. А для этого метод Ext.getCmp() совсем не подходит. Можно, конечно, пользоваться обычным javascript. Но уж очень хочется иметь такой же удобный инструмент как jQuery. И ExtJs предоставляет нам такой функционал. Для работы с элементами DOM у него есть несколько методов.
Сергей Шлоков
02 ноября 2015, 15:06
modx.pro
25
4 626
+10

ExtJs для новичков. Админка загрузилась. ч.1

В прошлой статье мы попытались понять как формируется интерфейс админки на ExtJs. Теперь давайте попробуем разобраться, что можно сделать интерфейсом, который нам нарисовал ExtJs.
В ExtJs за каждым элементом интерфейса (панель, окно, таблица, кнопка, элемент формы) стоит специальный объект, называемый компонентом. Он отвечает за управление элементом интерфейса — создание, отображение, скрытие, удаление. В админке MODX все элементы «являются» компонентами ExtJs, за исключением верхнего меню. Разницу можно увидеть, если заглянуть в исходный код страницы — у меню простая и привычная HTML структура (ul > li > a), а если глянем на элемент, созданный ExtJs, то увидим, что он обернут дополнительными тегами. Например, вот код кнопки тулбара дерева ресурсов
<span unselectable="on" class="x-btn x-btn-small x-btn-icon-small-left tree-new-static-resource x-btn-noicon" id="ext-comp-1062" style="">
    <em class="">
         <button type="button" id="ext-gen139" class=" x-btn-text" style=""> </button>
    </em>
</span>
Сергей Шлоков
02 ноября 2015, 07:32
modx.pro
23
4 321
+8