Антон Соловьёв

Антон Соловьёв

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

TinyMCE + Tickets + выбор главной картинки в TV

Добрый день. Понадобился функционал удобного редактора textarea во фронтенде Tickets, а также сделать возможность пользователю выбрать главную картинку для тикета.

Вот что получилось:


Инструкция под катом
Andrei D.
24 апреля 2016, 12:32
modx.pro
46
5 632
+15

Redis Cache (xPDORedisCache)

Решил попробовать использовать redis кэш для modx
создал класс xPDORedisCache, особо не заморачивался переписал мемкеш класс, но возникает проблема, идет пустая выдача и в логе:
modExtensionPackage::loadCache() is not a valid static method.
в общем логе:
[Fri Apr 08 23:00:11 2016] [error] [client 130.193.37.24] PHP Warning:  Invalid argument supplied for foreach() in /var/www/core/model/modx/modcontext.class.php on line 101
[Fri Apr 08 23:00:11 2016] [error] [client 130.193.37.24] PHP Warning:  array_merge(): Argument #2 is not an array in /var/www/core/model/modx/modx.class.php on line 2306
[Fri Apr 08 23:00:11 2016] [error] [client 130.193.37.24] PHP Fatal error:  Class 'modUser_' not found in /var/www/core/xpdo/xpdo.class.php on line 770
Есть какие идеи куда копать?

UPD: 2016-04-10
Решение далось легко, забыл указать сериализацию
$this->redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);
Устанавливается в /core/xpdo/cache/
в настройках cache_handler = cache.xPDORedisCache
Доступные опции:
redis_server — строка с данными для подключения 'localhost:6379'
redis_auth — пароль для аутентификации
redis_db — целое число >= 0
cache_prefix — по желанию, по сути если задать в redis_db разные значения для разных сайтов, будет то, что надо

Код xpdorediscache.class.php ниже:
Dmitry Rodionov
08 апреля 2016, 22:08
modx.pro
15
6 402
+5

Идеальный сервер для новичков

Хотел поделиться с новичками инструкцией по настройке сервера на Ubuntu 14.04.





Статья для новичков от новичка.
В этой статье я не претендую на Правильный хостинг для MODX Revolution от Василия. В своей статье Василий советует использовать Ajenti, мне же больше нравится VestaCP, её мы и установим.

В статье мы первоначально настроим сервер, установим хостинг панель, проверим потребляемые ресурсы. Так-же подходит любым CMS.

В качестве сервера я использовал VDS Разминка за 90р/месяц от firstvds.ru (Реферальная ссылка). Выбрал только из-за цены.

Сам я пользуюсь хостингом от modhost.pro: Хостинг для MODX. modhost.pro

В конечном итоге мы получим готовый рабочий сервер с простой хостинг панелью, настраиваемыми бекапами, свистелками.
Илья
16 сентября 2015, 12:49
modx.pro
9
8 544
+2

Создаю свой компонент, нужна ваша помощь



Здравствуйте. Делаю свой компонент биллинга, простой сниппет с ценами. С MODX 2.3.3 перестали работать выводы полей с записями из таблицы бд. Всё создано, прописаны поля таблиц, но данные не выводятся. Вот что находится в файле отвечающим за вывод списка записей из базы /www/test.site.ru/core/components/billings/processors/mgr/billing/getlist.php

<?php
/**
 * Get a list of Billings
 *
 * @package billings
 * @subpackage processors
 */
/* setup default properties */
$isLimit = !empty($scriptProperties['limit']);
$start = $modx->getOption('start',$scriptProperties,0);
$limit = $modx->getOption('limit',$scriptProperties,20);
$sort = $modx->getOption('sort',$scriptProperties,'name');
$dir = $modx->getOption('dir',$scriptProperties,'ASC');
$query = $modx->getOption('query',$scriptProperties,'');

/* build query */
$c = $xpdo->newQuery('Hosting');

if (!empty($query)) {
    $c->where(array(
		'id:LIKE' => '%'.$query.'%',
		'OR:vid:LIKE' => '%'.$query.'%',
        'OR:name:LIKE' => '%'.$query.'%',
        'OR:cost:LIKE' => '%'.$query.'%',
		'OR:sort:LIKE' => '%'.$query.'%',
		'OR:hdd:LIKE' => '%'.$query.'%',
		'OR:domains:LIKE' => '%'.$query.'%',
		'OR:db:LIKE' => '%'.$query.'%',
		'OR:ftp:LIKE' => '%'.$query.'%',
		'OR:id_price:LIKE' => '%'.$query.'%',
    ));
}

$count = $modx->getCount('Hosting',$c);
$c->sortby($sort,$dir);
if ($isLimit) $c->limit($limit,$start);
$billings = $modx->getIterator('Hosting', $c);

/* iterate */
$list = array();
foreach ($billings as $billing) {
    $billingArray = $billing->toArray();
    $list[]= $billingArray;
}
return $this->outputArray($list,$count);
Взято из дополнения Doodles и переделано под свои запросы. Есть мысли как заставить это работать? Буду очень признателен.
Андрей Копп
10 февраля 2015, 01:53
modx.pro
1
1 226
0

Новые версии MODX: 2.3.0 и 2.2.15

Наконец-то вышла давно ожидаемая стабильная версия MODX 2.3.0 — вот запись в официальном блоге и перевод. Полный список изменений на английском можно посмотреть здесь, а скачать вот здесь.

С этого момента 2.3.0 становится актуальной рабочей веткой MODX, а 2.2.х устаревает. В связи с чем у меня к вам просьба начать тестировать наши основные дополнения на предмет работы в новом MODX. Точно знаю, что есть проблемы у miniShop2 из-за необычного расположения в меню, может и еще что всплывет.

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

Сообщения об ошибках всех дополнений в MODX 2.3 прошу писать в одной этой теме. Из других мест комментарии буду переносить сюда, или вовсе удалять.
Василий Наумкин
16 июля 2014, 04:14
modx.pro
4
9 486
+1

Вирусы на старых версиях MODX Revo

Всем привет!
Не знаю, можно ли здесь создавать темы подобного плана…

В общем, у нас веб-студия. Делаем сайты на MODX. После создания сайта, они остаются у нас на сервере.
Сегодня получили жалобу: с айфона и айпада, сайт загружается нормально, но при клике на любую ссылку идет переход в Apple Store на приложение AviaSales.
Если заходить с Андроида (телефон/планшет) зараженный сайт предлагает «обновить браузер».
Запуск антивируса на сервере — нужных вирусов не нашел…
Олег Сергеевич
26 мая 2014, 21:53
modx.pro
1
3 738
+2

Отправляем заголовки Last-Modified и Not Modified

Написал небольшой плагинчик для отправки браузеру заголовка Last-Modified и, если браузер спросит If modified since — ответа 304 Not Modified
Илья Уткин
29 апреля 2014, 13:49
modx.pro
20
14 362
+3

создание секции tickets через процессоры

Интересует создание секции tickets через процессоры.
Нашел статью о процессорах в MODX — хочу применить на практике.
Володя
13 апреля 2014, 09:09
modx.pro
3
1 959
0

Создание своего события в MODX

Сижу посматриваю исходники minishop. Заинтересовался созданием собственных событий в MODX.
$response = $this->ms2->invokeEvent('msOnBeforeAddToOrder', array(
'key' => $key,
'value' => $value,
'order' => $this
));
Правильно ли я понял что вот данный кусок кода и вызывает событие?
Если да, то каким образом теперь его отследить?
Володя
12 апреля 2014, 10:24
modx.pro
13
8 888
0

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

Небольшая пошаговая инструкция, как научиться сохранять любые интересующие данные о юзере в специальное поле 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 438
+11