Наверх

Репосты

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

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

[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 памяти.

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

Отправка письма на e-mail через сервис MODX modMail

15 мая 2014, 19:19

Для меня стало настоящим открытием то, что в MODX есть встроенный сервис для отправки писем на e-mail. Конечно, кто-то знает об этом, и возможно очень давно, но я узнал о такой возможности совсем недавно (уверен, не я один).

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

Плагин для транслитерации русских имен файлов загружаемых в ModX Revolution

15 мая 2014, 19:09

В процессе работы с ModX Revolution возникла необходимость сделать плагин для транслитерации имен файлов загружаемых пользователем на хостинг через встроенный менеджер файлов. Использованную функцию UrlTranslit нарыл где то здесь.

Как использовать:
Создаем новый плагин с именем TransliterateFileNames
копируем в плагин код с Github
назначаем на событие OnFileManagerUpload.
Читать дальше

Знакомство с xPDO ч. 2 или xPDO для «гиков»

15 мая 2014, 18:57

После написания первой вводной статьи по xPDO, где я разобрал только базовые понятия и простейшие запросы/операции, обещался я вам (и себе), что обязательно копну глубже. Потребовало это достаточное кол-во времени, ибо «почва через чур каменистая», и похоже кроме самого Jason`а Coward`а никто не знает точно как сделать с xPDO все «правильно и красиво». Надеюсь недостаток документации восполнится после выхода Революшн (а на данный момент добрая половина функционала xPDO не задокументированна вобще :( ).
Посему за сеансом «просветления в Дао» я обратился лично у вышеупомянутому Джэйсону, и получил ответы на некоторые вопросы. (Хотя один из у меня разрешить так и не удалось, но об этом чуть позже).
Данная статья покрывает такие функции xPDO:
→ $xpdo->newQuery();
→ new xPDOCriteria();
→ $xpdo->getOne;
→ $xpdo->getMany;
→ $xpdo->getObjectGraph;
→ $xpdo->getCollectionGraph;
→ $xpdo->getCount;
→ незадокументированные методы создания и отладки запросов.
→ а также не упомянутые ранее вопросы «облегченного» удаления записей в БД.
Читать дальше

Авторизация

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

Подписка или RSS

Буду присылать новые статьи — никакого спама



Шаблоны MODX

1 2 Дальше »

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