Для разработчиков

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

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

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

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

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


Ещё я хочу представить новую разработку в сфере улучшения процесса разработки — функции для работы с MODX.
Сергей Шлоков
31 декабря 2016, 08:57
modx.pro
22
5 434
+25

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

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

Николай Савин
27 декабря 2016, 21:34
modx.pro
5
10 346
+7

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

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

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

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

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

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

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

В связи с этим получается проблема. Колбеков мало, а желающих воспользоваться ими — много. Я уже не раз сталкивался с тем, что некоторые компоненты из Modstore не могут работать вместе, т.к. используют одни и те же колбеки, на одних и тех же страницах.
Проблема в том, что код одного компонента, использующего, например miniShop2.Callbacks.Order.getcost, пересекается с другим кодом, другого компонента, использующего этот же колбек. Получается конфликт, который я для себя, в своих пакетах, решаю так:
Павел Гвоздь
22 мая 2016, 00:53
modx.pro
13
6 344
+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 мая 2016, 18:59
modx.pro
3 801
-2

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

Продолжаю эксперименты с загрузкой чанков и сниппетов из файлов. Мой первый эксперимент с парсером оказался не очень удачный. Хотя задачу он решал, но ожидания были немного другие. А поближе познакомившись с феномом, нашел, как мне кажется, хорошее решение — модификаторы. Дальше для тех, кому это интересно.
Сергей Шлоков
11 мая 2016, 15:16
modx.pro
12
5 721
+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 марта 2016, 09:16
modx.pro
1 567
-2

transport.tv.php - или как транспортировать tv

Расковыривая github.com/bezumkin/modExtra до крови, да бы упаковать свой mSocial я столкнулся с грустной проблемой он не умеет создавать tv. Ну или может быть умеет, но я не нашел как, в связи с этим решил немного его расширить добавив новый транспортер. Итак, что же нужно делать?
Павел Карелин
29 января 2016, 10:48
modx.pro
3
2 296
+5