Наверх

Репосты

В разделе «Репосты» расположены чужие статьи, которые мне понравились или показались полезными.

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

Подписка пользователей при регистрации в MODX.

15 июня 2015, 09:36

Обратился заказчик с заданием — подписывать пользователей на рассылку новостей при регистрации. Сайт работает на MODX revolution и используется компонент Sendex. Написал небольшой сниппет — subscription, который подключается через параметр &postHooks сниппета Register, компонента Login. В свою очередь, сниппет subscription, имеет один единственный параметр &idnewsletter, в котором передаётся ID рассылки.
Читать дальше

[Console 2.0.4-beta] Циклические запросы в консоли MODX

11 июня 2015, 10:52

Сегодня вышла новая версия дополнение Console для MODX.

Обновление коснулось возможности отправлять повторные циклические запросы на сервер и выполнять один и тот же код несколько раз — до тех пор, пока все, что вам нужно не будет обработано.
Читать дальше

ID документа для алиаса

08 июня 2015, 09:32

В последнее время стало «модным» использовать в алиасе документа его ID и отказаться от расширений, типа: .html, .php и т.д. Вместо, допустим, такой ссылки:
mysite.ru/section/parent/myresource-alias.html,
получить такую ссылку:
mysite.ru/section/parent/12345.
В этом небольшом топике речь пойдёт именно об этом, ну и конечно реализация.
Для указания, в качестве алиаса, ID документа в MODX revolution напишем плагин на событие OnDocFormSave.
Читать дальше

[shopStats] Панель статистики интернет-магазина

25 марта 2015, 16:42

[shopStats] — виджет с краткой статистикой интернет-магазина


Установка:
1. Скачать transport.zip с github.com/tanaevr/shopStats
2. Загрузить в core/packages
3. Перейти в Приложения / Установщик и выбрать «Искать пакет локально», далее установить.
4. Перейти в Панели и добавить в активную панель виджет «shopStats»

Панель настроена на статистику из minishop2, в дальнейшем через нее можно будет так же видеть статистику shopkeeper версий 2 и 3. Так же планируется добавить настройку выводящихся данных.
Читать дальше

Модель безопасности в MODX

23 сентября 2014, 19:02

Модель безопасности в MODX не самая очевидная. Хотя в MODX присутствуют примитивы, присущие, например, модели безопасности SQL, их предназначение в MODX несколько отличается.

При настройке безопасности конечной целью является дать каждому пользователю соответвующий набор привилегий – разрешить ему совершать определенные действия в системе. Действия могут совершаться над различными объектами: страницами (resource), контекстами (context), чанками (chunk), переменными шаблонов (TV) и т.д. Сами действия могут быть очень разными, в простейшем случае это создание, просмотр, редактирование и удаление. Таким образом, задача настройки безопасности сводится к заданию отношений между пользователями, объектами и привилегиями.

Группы пользователей

Предположим, мы хотим дать пользователю partner доступ к странице «Проекты» на редактирование. В этом примере объектом является страница «Проекты», привилегией – редактирование, а пользователем – partner. Но для того, чтобы реализовать такую схему безопасности, потребуется создать группу пользователей. Дело в том, что в MODX права назначаются именно группе, а не пользователю. Группа – это множество пользователей, обладающих схожими правами. Разумеется, пользователь может состоять в нескольких группах.
Читать дальше

Вызов кешируемых и некешируемых сниппетов в примерах

17 июня 2014, 11:08

В данном топике рассмотрим различные примеры вызова сниппетов, и как это сказывается на кешировании.

Для начала сразу уточним, что есть два метода вызова сниппетов:
  1. Прописать MODX-тег, типа [[snippet]] — кешируемый сниппет, или [[!snippet]] — некешируемый сниппет.
  2. Вызвать выполнение сниппета через API MODX, то есть $modx->runSnippet('snippet');
Теперь рассмотрим, в чем здесь разница и как это влияет на кеширование.

Принципиально именно в процессе выполнения сниппетов программно, или на уровне синтаксиса, разницы нет. Это именно если говорить про выполнение кода сниппета, и если не брать во внимание кеширование и выполнение кешированных элементов. Если же говорить про кеширование, то сразу забегая вперед, скажу, что разница есть, если мы хотим кешировать результат, так как метод $modx->runSnippet() — это операция без учета кеша, то есть результат вызываемого таким образом сниппета всегда будет не из кеша, а реально выполняемый.
Читать дальше

Обновление MODX Revolution 2.0.8 до версии 2.2.x

09 июня 2014, 17:02

Сегодня проводил обновление сайта на MODX Revolution 2.0.8 до версии 2.2.5 и хочу поделиться опытом, может кому пригодится.

Для начала проблема: нельзя 2.0.8 обновить сразу до версии 2.2.5 в автоматическом режиме (если у кого-то есть другое мнение, с радостью выслушаю). Со времен 2.0.х не только удалили много деприкативного кода, так еще и добавили много всего, и изменения коснулись не только файловой системы, но и в базе данных много изменений появилось.
В связи с этим увидел только один вариант: развернуть новый сайт и перенести туда все из старого. И как оказалось, это не так уж и сложно оказалось сделать. Здесь вам phpMyAdmin в помощь. Но успех переноса обратнопропорционален привычке вносить изменения в сторонние пакеты (в том числе и в базовые настройки пакетов).
Читать дальше

Как не чистить кэш всего сайта?

21 мая 2014, 15:13

Постоянно задают вопросы «а как при сохранении чистить кэш не всего сайта, а только обновляемого ресурса?». А вот так:
<?php
switch($modx->event->name) {
  case 'OnDocFormRender':
	$resource->set('syncsite', 0);
  break;
  
  case 'OnDocFormSave':
    if ($modx->event->params['mode'] != 'upd') {return;}
    $resource->_contextKey = $resource->context_key;
    $cache = $modx->cacheManager->getCacheProvider($modx->getOption('cache_resource_key', null, 'resource'));
    $key = $resource->getCacheKey();
    $cache->delete($key, array('deleteTop' => true));
    $cache->delete($key);
  break;
}

Читать дальше

Правильный хостинг для MODX Revolution — Текстовая версия

18 мая 2014, 19:03

Видео можно посмотреть здесь: http://ilyaut.ru/video/hosting-for-modx/

Предлагаю вашему вниманию вторую версию инструкции по созданию собственного хостинга для сайтов на MODX Revolution и не только.

На сей раз я заснял и смонтировал видео всего процесса, постарался от души. Можно скачать в ультра-мега качестве (FullHD 1920x1080x25, 785mb).
Читать дальше

Пара фокусов с xPDO

18 мая 2014, 16:01

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

Выборка 1000 ресурсов

$q = $modx->newQuery('modResource', array('id:>' => 0));
$q->limit(1000);

$q->prepare();
$q->stmt->execute();
$res = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($res as $v) {
	//echo $v['modResource_pagetitle'];
}
Этот код работает за 0.042197227478 и занимает 33.3 Mb памяти.

$q = $modx->newQuery('modResource', array('id:>' => 0));
$q->limit(1000);

$res = $modx->getCollection('modResource', $q);
foreach ($res as $v) {
	//echo $v->get('pagetitle');
}
А этот уже за 2.15289998055 и занимает 78.3 Mb памяти.

В чем же разница?
Читать дальше

Авторизация

через сервис Loginza:


Шаблоны MODX

1 2 Дальше »

Объектная
модель
MODX