For developers

Add entry

modNodejs - Интеграция Nodejs в MODx

Всем доброе утро. Сегодня представляю на всеобщее обозрение компонент над которым я потел последние несколько дней.

Заголовок говорит сам за себя, это интеграция Nodejs в MODx.
Так зачем он нужен? Для realtime! Как сказал Николай: «технологии диктуют».

Простейший пример: в minishop2 поступил заказ, а менеджер гуляет по админке\сайту, вот что он увидит:

Без перезагрузки страницы и тд, можно выполнить любой js по наступлению эвента.
21 january 2017, 06:11    but1head
15    844    73 +27

Собственные модификаторы Fenom

Продолжаю разработку новой версии modstore.pro и хочу поделиться простым способом подключения своих модификаторов.

Обычный способ все знают: нужно создать сниппет, который будет принимать переменные $input и $options и вызвать его в чанке вот так:
{$variable | snippet}
Но
  • Сниппеты бывают совсем небольшие и создавать их на каждый чих не хочется
  • Вызов сниппета, это всё-таки дополнительная нагрузка
  • Лично я уже полностью перешел на файлы, и создавать запись в БД для сниппета, только ради его связи с файлом мне совсем не хочется
То есть, я хочу просто вызывать некий код в качестве модификатора. И в этом мне поможет событие pdoToolsOnFenomInit, которое появилось в pdoTools 2.6.0 и мало кто это заметил.
14 january 2017, 08:49    Василий Наумкин
11    448    11 +14

Функции хелперы для MODX

Друзья, поздравляю всех с наступающим Новым годом! Надеюсь, в новом году мы преодолеем все трудности и нам всем улыбнётся удача!


Ещё я хочу представить новую разработку в сфере улучшения процесса разработки — функции для работы с MODX.
31 december 2016, 11:57    Сергей Шлоков
20    846    46 +26

Практика резервного копирования на MODX

С ростом опыта и усложнением работ, все актуальнее становится тема резервного копирования базы данных, особенно при наличии большого объема информации.
Хочу поделиться своим опытом с начинающими разработчиками, а также почитать советы опытных мастеров.
Мне такая статья очень пригодилась бы на определенном этапе развития.

28 december 2016, 00:24    Николай Савин
4    616    20 +7

groupIt - обертка результатов.

Была задача вывод элементов от pdoResources поделить на группы и обернуть их в div.
Поиск дал приятный результат, я нашел ответ в виде спиппета groupResources(это был обычный велосипед) и переписал его на свой лад.
Пример его работы
   <div class="group">
     ContentA
     ContentB
     ContentC
   </div>
   <div class="group">
     ContentD
     ContentE
   </div>
14 august 2016, 11:00    DimenSi
26    656    25 +26

Доступ к странице сайта по id

Давно работаю с modx, но только сегодня узнал, что достучаться до любой страницы сайта при включенных ЧПУ можно дописав в адресной строке после имени домена ?id=Идентификатор_ресурса. Например, site.ru/?id=5375.
Рад если кому-то пригодится!
09 june 2016, 11:30    Дмитрий Куликов
2    572    7 -2

Делаем колбеки miniShop2 для всех

Всем привет! Так как в miniShop2 есть список колбеков для того, чтобы на определённые действия, совершаемые компонентом, можно было повесить свой код и, тем самым, дополнить работу магазина, то многие разработчики дополнений используют их в своём коде. Я уж не говорю о вебмастерах, которые используют этот инструмент для решения определённых нужд в своих сайтах.

В чём проблема?

В связи с этим получается проблема. Колбеков мало, а желающих воспользоваться ими — много. Я уже не раз сталкивался с тем, что некоторые компоненты из Modstore не могут работать вместе, т.к. используют одни и те же колбеки, на одних и тех же страницах.
Проблема в том, что код одного компонента, использующего, например miniShop2.Callbacks.Order.getcost, пересекается с другим кодом, другого компонента, использующего этот же колбек. Получается конфликт, который я для себя, в своих пакетах, решаю так:
22 may 2016, 03:53    Павел Гвоздь
7    858    3 +3

Ошибка в работе сниппета MinifyX

Всем привет!
Установил пакет minifyX, все работало прекрасно пока не возникла ошибка:
Fatal error: Uncaught exception 'Sabberworm\CSS\Parsing\UnexpectedTokenException' with message 'Identifier expected. Got “: 768”' in D:\OpenServer\domains\projects\site.ru\www\core\components\minifyx\munee\vendor\sabberworm\php-css-parser\lib\Sabberworm\CSS\Parser.php:174 Stack trace: #0 D:\OpenServer\domains\projects\site.ru\www\core\components\minifyx\munee\vendor\sabberworm\php-css-parser\lib\Sabberworm\CSS\Parser.php(398): Sabberworm\CSS\Parser->parseIdentifier(true, false) #1 D:\OpenServer\domains\projects\site.ru\www\core\components\minifyx\munee\vendor\sabberworm\php-css-parser\lib\Sabberworm\CSS\Parser.php(353): Sabberworm\CSS\Parser->parsePrimitiveValue() #2 D:\OpenServer\domains\projects\site.ru\www\core\components\minifyx\munee\vendor\sabberworm\php-css-parser\lib\Sabberworm\CSS\Parser.php(185): Sabberworm\CSS\Parser->parseValue(Array) #3 D:\OpenServer\domains\projects\site.ru\www\core\components\minifyx\munee\vendor\sabberworm\php-css-parser\lib\Sabberworm\CSS\Parser.php( in D:\OpenServer\domains\projects\site.ru\www\core\components\minifyx\munee\vendor\sabberworm\php-css-parser\lib\Sabberworm\CSS\Parser.php on line 174
12 may 2016, 21:59    Роман А.
0    526    19 -2

Fenom. Загрузка чанков и сниппетов из файлов

Продолжаю эксперименты с загрузкой чанков и сниппетов из файлов. Мой первый эксперимент с парсером оказался не очень удачный. Хотя задачу он решал, но ожидания были немного другие. А поближе познакомившись с феномом, нашел, как мне кажется, хорошее решение — модификаторы. Дальше для тех, кому это интересно.
11 may 2016, 18:16    Сергей Шлоков
5    1052    31 +12

Сниппет с выводом инфо о странице по заданному tv

Здравствуйте. Не могу добиться вывода инфо о странице. При вызове функции в сниппете браузер выдает ошибку.(modx evo)
function show_members() {
    global $modx;
	$id = $modx->documentIdentifier;
	$tv_info = $modx->getTemplateVarOutput(array(61));
	$id = $tv_info[0];
	$id = (int) $id;
    $output = '';
    $table = $modx->getFullTableName('site_content');
     
	$result = $modx->db->select('id,pagetitle,published,createdon,CreatedBy', $table, "id = {$id}");
    $members = $modx->db->makeArray($result);
	foreach( $members as $p_val ) {     
	     foreach( $p_val as $m_key => $m_val ) {
			 $html .= $modx->parseChunk('tv-info', array(
		            'id' => $m_val['id'],
		            'pagetitle' => $m_val['pagetitle'],
					'published' => $m_val['published'],
					'createdon' => $m_val['createdon'],
					'createdby' => $m_val['CreatedBy']
		        ),
	        	'[+',
		        '+]'
	        	);
	echo ($html);
			}
		}
}

echo(show_members());
?>
09 march 2016, 12:16    Максим
0    254    2 -2