Bluetenstadt

Bluetenstadt

С нами с 01 марта 2016; Место в рейтинге пользователей: #396

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

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

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

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

Вывод заказов для Minishop2

Давно использую MODX Revo, но в основном для небольших сайтов. А сейчас решил сделать на нём интернет-магазин. Захотелось сделать на сайте личный кабинет покупателя, где он сможет просматривать свои заказы. Начал искать и не нашёл ни одного решения этого вопроса (может плохо искал?!).
Странно. В итоге написал свой велосипед — сниппет и чанк в котором выводится содержимое.
Павел Пустота
11 сентября 2015, 14:00
modx.pro
13
7 723
0

Включаем MemCache

MemCahed — это замечательная технология, которая позволяет кэшировать данные не на жесткий диск, а в оперативную память, которая быстрее во много-много раз. И если раньше MODX нужно было дружить с ней, то с версии 2.1 работа с MemCache уже включена в движок, и это нужно только активировать.

В принципе, операция не сложная, но есть один момент, из-за которого я и пишу этот топик.

Все операции, как обычно, написаны для сервера настроенного по этой инструкции.
Василий Наумкин
26 августа 2015, 04:58
modx.pro
8
12 102
0

Получить номер заказа MS2

Всем привет!

Подскажите, откуда и на каком этапе можно получить номер заказа. Пробовал обращаться к объектам cart и order, ни тот ни другой номер заказа не содержат:

$cart = $miniShop2->cart->get();
$order = $miniShop2->order->get();

Номер пытаюсь получить плагином, который срабатывает на событие msOnCreateOrder. Что я упустил?

Заранее спасибо за ответы!
Павел Ширяев
11 июня 2015, 13:44
modx.pro
2
5 010
0

Super MODx SEO-strict +ускоряем фронтенд

Михаил задал вопрос про канонизацию урлов в MODx.
Писал ему ответ, но понял, что он слишком большой. Поэтому переписал в статью.

Поехали.
Алексей Карташов
25 марта 2015, 14:29
modx.pro
70
16 940
+11

Удаление старых аватарок Office

Недавно выяснилось, что в платном компоненте Office была недоработка, которая мешала удалению старых аватарок пользователей при редактировании профиля.

То есть, вы залили фотку, потом её удалили или заменили — а старая осталась на сервере. Ошибку я успешно поправил, обновление выпустил, но встал вопрос — а что делать с этими старыми аватарками? Они же место занимают, да и вообще, нехорошо как-то.

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

Скрипт опробован на этом сайте (modx.pro), проблем не было. Но всё равно: внимание, использовать скрипт только после полного бэкапа сайта! Как и любая операция с удалением файлов, этот скрипт потенциально опасен!

Я вас предупредил, претензии не принимаются.
Василий Наумкин
21 января 2015, 01:24
modx.pro
4
1 695
+8

[Save2Page] Экспорт страниц в PDF

Позвольте Вашим пользователям скачивать Ваши статьи, новости, тексты в формате PDF ! 

Пакет Save2Page добавляет на сайт кнопки для быстрого сохранения текущей страницы в файл формата PDF и кнопку для отображения версии для печати. 

Пожалуйста, обратите внимание, что модуль плохо сохранять в PDF-файл сложный контент (сложная верстка, скрипты, HTML5 и др). Имейте ввиду, что модуль создан не для сохранения всего подряд, а для сохранения контента (статьи, новости, акции, услуги и товары и др).

Этот функционал часто можно встретить на сайтах с другими CMS, а теперь и на MODx Revolution! Благодаря этому решению Ваш пользователь сможет быстро скачать себе интересную статью, описание товара с картинками, новость и многое другое, что есть на Вашем сайте! 

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

На текущий момент доступно:

  • генерации pdf на основе ресурса modx
  • генерация pdf на основе чанка modx
  • генерация pdf на основе сниппета modx
  • генерация Markdown на основе ресурса modx
  • генерация Txt на основе ресурса modx
Володя
09 октября 2014, 11:48
modx.pro
7
8 828
+7

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

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

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


Ambient Hack
15 сентября 2014, 09:33
modx.pro
30
6 012
+11

Не работает pdoSitemap

Помогите пожалуйста, все сделал по инструкции, но pdoSitemap почему то не работает. На странице Sitemap пишет следующее:
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"></urlset>
И больше ничего нету.
Ростислав
18 апреля 2014, 09:02
modx.pro
1
6 102
-1

Расширенные поля пользователей

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

На самом деле, это никакой не секрет. Во многих объектах MODX есть специальное поле типа JSON, которое хранится в БД как текст, например, properties у modResource и extended у modUserProfile.

При работе с объектами xPDO, JSON текст из этих полей превращается в массивы. То есть, общий принцип выглядит так:
// id нужного пользователя
$user_id = 15;
// Получаем объект modUser
if ($user = $modx->getObject('modUser', $user_id)) {
	// Получаем связанный с ним профиль пользователя
	if ($profile = $user->getOne('Profile')) {
		// Получаем специальное поле extended
		$extended = $profile->get('extended');
		// Добавляем новое значение
		$extended['mykey'] = 'mydata';
		// И сохраняем обратно в профиль
		$profile->set('extended', $extended);
		$profile->save();
	}
}
Самое приятное, что эти данные вы можете не только просмотреть на странице пользователя, но и изменить.
Василий Наумкин
07 апреля 2014, 11:00
modx.pro
40
16 893
+11