Виталий Валерьевич
С нами с 23 декабря 2012; Место в рейтинге пользователей: #333Кто пользуется tvSuperSelect
Всем привет. Есть здесь те 37 человек, которые используют tvSuperSelect? Мне нужна помощь по части создания тегов для тикетов. Я уже писал вопрос, но там заглохло. Нужен сниппет, который бы получал тикеты по тегу. Всё что уже сделано есть по той ссылке выше.
Там получается у тегов ссылка вида site.ru/section?tag=Мойтэг
В разделе с тикетами заменяю вызов getTickets на вызов своего сниппета:
Ответ на вопрос однозначно даст много лайков), вопрос тегов для блога популярный. И я допишу в том вопросе полное решение.
Там получается у тегов ссылка вида site.ru/section?tag=Мойтэг
В разделе с тикетами заменяю вызов getTickets на вызов своего сниппета:
<?php
$tag = isset($_GET['tag']) ? $modx->sanitizeString($_GET['tag']) : '';
if ($tag){
// здесь происходит колдунство и я получаю id тикетов у которых есть нужный тег
// и передаю их в getTickets
}
return $modx->runSnippet('getTickets',$scriptProperties);
Я не силен в API и Mysql, поэтому сам не могу.Ответ на вопрос однозначно даст много лайков), вопрос тегов для блога популярный. И я допишу в том вопросе полное решение.
Плагин проверки авторства
Здравствуйте. Прошу помочь мне с написанием небольшого плагина. В бэкэнде нужно предотвратить редактирование ресурса (тикета) пользователем, который не является его автором.
Мне подсказали, что плагин нужен на событие OnBeforeDocFormSave, я совсем не дружу с modx, думаю должно быть что-то подобное:
Мне подсказали, что плагин нужен на событие OnBeforeDocFormSave, я совсем не дружу с modx, думаю должно быть что-то подобное:
<?php
switch($modx->event->name){
case 'OnBeforeDocFormSave':
{
if ($user->get('id') != $resource->get('createdby')) {
// что же здесь писать
};
}
}
Помогите, пожалуйста, допились это до нормального плагина, чтобы выводилась ошибка, что нет прав на редактирование и чтобы ресурс не сохранялся. Соединяем EasyComm и mFilter2
Всем привет, и сразу к делу (кстати пишу первый раз тут, если будут ошибки — исправим).
Довольно таки часто требуется в интернет магазинах или каталогах добавить возможность пользователям писать отзывы о товарах, с этим очень хорошо справляется компонент EasyComm. Но очень часто возникает и смежная задача, слепить EasyComm с mFilter2, а именно сделать сортировку по количеству отзывов или по рейтингу товара. Выкладываю готовое решение.
Добавляем в вызов 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"
}`
Генерация PDF на основе данных с формы в MODX Revo
Довольно часто возникает необходимость генерировать pdf на основе данных с формы.
Ниже небольшое решение как это сделать если стоит пакет ExportPage
Ниже небольшое решение как это сделать если стоит пакет ExportPage
[customExtra] Создание кастомных объектов
Периодически мне приходится реализовывать на сайтах клиентов какой-то уникальный функционал. Часто требуется сохранять информацию в базу данных, выводить её оттуда, реализовывать возможность управления из админки. Раньше для этого приходилось писать кастомный компонент.
А значит, надо написать схему, сгенерировать модель, оформить интерфейс, написать процессоры и прочее, и прочее… Для начинающих разработчиков этот метод достаточно сложен. А мне, например, каждый раз та-а-ак лень это делать.
Недавно я все-таки решился собрать некий стандартный компонент, с большим количеством полей, которые можно использовать как угодно. Даже написал небольшую заметку о нем у себя в блоге и на какое-то время успокоился.
До тех пор, пока мне не понадобилось иметь два таких кастомных объекта…
А значит, надо написать схему, сгенерировать модель, оформить интерфейс, написать процессоры и прочее, и прочее… Для начинающих разработчиков этот метод достаточно сложен. А мне, например, каждый раз та-а-ак лень это делать.
Недавно я все-таки решился собрать некий стандартный компонент, с большим количеством полей, которые можно использовать как угодно. Даже написал небольшую заметку о нем у себя в блоге и на какое-то время успокоился.
До тех пор, пока мне не понадобилось иметь два таких кастомных объекта…
[GeoLocation] - геолокации пользователя. (1.0.3)
[GeoLocation] — компонент реализует функционал геолокации. Используется библиотека SxGeo.
Изменения:
— доработан функционал выбора по умолчанию
— добавлены поля «ресурс» и «изображение»
— добавлена возможность форматирования данных
— добавлена работа c INLINE чанками
Изменения:
— доработан функционал выбора по умолчанию
— добавлены поля «ресурс» и «изображение»
— добавлена возможность форматирования данных
— добавлена работа c INLINE чанками
[SkypeNotify] - уведомление в скайп для MODX
[SkypeNotify] — собственно уведомление в скайп для MODX.
подключить и инициализировать skypenotify
подключить и инициализировать skypenotify
$skypenotify = $modx->getService('skypenotify')
$skypenotify->initialize();
подключить аккаунт скайп$skypenotify->connect('login', 'password');
отправить сообщение$skypenotify->sendMessage('login', 'Привет Боб, как дела?');
Упрощаем работу с TV
Продолжая тему, начатую Василием, предлагаю решение для упрощения работы с TV. Оно поможет тем, у кого логика сайта завязана на TV — запросы, фильтры и т.п.
Решается эта задача созданием полей в таблице ресурсов и копированием в них значений TV.
Решается эта задача созданием полей в таблице ресурсов и копированием в них значений TV.
Пример работы Fenom
Вчера в поддержку магазина обратились с жалобой на медленную работы mSearch2 при небольшом количестве товаров.
При ближайшем рассмотрении выяснилось, что проблема, конечно, не в самом mSearch2, а в чанке, который используется для вывод результатов работы фильтра.
Изначально debugParser показывал такой результат работы.
При ближайшем рассмотрении выяснилось, что проблема, конечно, не в самом mSearch2, а в чанке, который используется для вывод результатов работы фильтра.
Изначально debugParser показывал такой результат работы.
[Office] Версия 1.3.2 вложенные extended поля
Представляю вам новую версию Office, компонента для работы с пользователями на сайте.
Очень много вопросов возникает с extended полями, которые в этой версии были расширены, так что я решил написать максимально понятные примеры по их использованию.
Итак, все неразрешённые поля в профиле пользователя запрещены для заполнения. Они просто обнуляются при обработке формы, поэтому, первым делом, вам нужно разрешить extended в параметре &profileFields:
Там же вам нужно указывать и все остальные поля, которые вы разрешаете менять своим пользователям:
Очень много вопросов возникает с extended полями, которые в этой версии были расширены, так что я решил написать максимально понятные примеры по их использованию.
Итак, все неразрешённые поля в профиле пользователя запрещены для заполнения. Они просто обнуляются при обработке формы, поэтому, первым делом, вам нужно разрешить extended в параметре &profileFields:
[[!OfficeProfile?
&profileFields=`extended`
]]
Там же вам нужно указывать и все остальные поля, которые вы разрешаете менять своим пользователям:
[[!OfficeProfile?
&profileFields=`extended,username,fullname,email`
]]