Igor Ivanov

Igor Ivanov

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

Сниппет для вывода всех TV параметров ресурса

Всем привет,
долгое время занимаюсь сайтами на MODx, но в большинстве случаев все сводится к верстке и настройке всех сниппетов, без написания чего-либо.

Часто сталкиваюсь с задачей вывода TV параметров и их заголовков. Для текущей задачи встал вопрос разделения всех полей еще и на блоки-категории.
Евгений Webinmd
25 июня 2015, 19:08
modx.pro
15
7 459
+5

AjaxSnippet в pdoResources

Создал список новостей с помощью pdoResources. По задумке в каждой новости, есть кнопка — «Подробнее». И с помощью аякса, подгружается вся новость и остальные нужные данные.
Попытался реализовать это с помощью AjaxSnippet. Одна проблема — при клике по кнопке «Подробнее» открывается информация во всех новостях.

В шаблоне pdoresources вызов:
<div class="clearfix" id="more[[+idx]]"> [[AjaxSnippet?
    &snippet=`more`
    &input=`[[+introtext]]`
    &as_mode=`onclick`
	&as_target=`#more[[+idx]]`
	&wrapper=`more_button.tpl`
]] </div>

Шаблон more_button.tpl
<span id="[[+key]]" class="more blue left as_trigger">Подробнее V</span>

Как сделать, чтобы подгружалась только нужная новость в списке?
Павел
13 июня 2015, 11:13
modx.pro
9
2 083
+2

ms2Gallery и Selectel Cloud Storage

Предлагаю вам пошаговую инструкцию в картинках, как настроить ms2Gallery для работы с удалёнными файлами на Selectel Cloud Storage.



Если вы не знаете, что это и зачем нужно — советую прочесть заметку на хабре. В двух словах: картинки быстрее грузятся клиенту и не занимают лишнего места на сервере хостинга. Сразу скажу, инструкция простейшая, как 3 копейки — это вам не монструозный Amazon S3.
Василий Наумкин
11 апреля 2015, 12:33
modx.pro
19
7 653
+7

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

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

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

Алфавитный рубрикатор для ресурсов Modx Revo.

Результат работы тут: lab.nikann.ru/catalog#abc
За основу был взят: modx.ws/urok-modx-ajax-zagruzka-resursov
G@G
G@G
18 февраля 2015, 09:40
modx.pro
26
4 526
+5

Динамическая кнопка Купить / В корзине

Появилась необходимость реализовать динамическую кнопку Купить / В корзине.

Может кому-то пригодится.

Спасибо Алексею Наумову, Василию Наумкину за помощь в реализации.

Чанк Купить tplOut:
<button type="submit" class="btn btn-cart btn-primary" name="ms2_action" value="cart/add">
	Купить
</button>
<button type="submit" class="btn btn-checkout btn-success hidden" name="ms2_action" value="cart/add">
	В корзине
</button>

Чанк В корзине tplIn:
<button type="submit" class="btn btn-checkout btn-success" name="ms2_action" value="cart/add">
    В корзине
</button>

Скрипт (требуется подключенный jQuery)
if (typeof(miniShop2) != 'undefined') {
    // кнопки В корзину/Оформить
    miniShop2.Callbacks.Cart.add.response.success = function(response) {
        miniShop2.Order.getcost();
        miniShop2.sendData.$form.find('.btn-cart').addClass('hidden');
        miniShop2.sendData.$form.find('.btn-checkout').removeClass('hidden');
    };
    miniShop2.Callbacks.Cart.remove.response.success = function() {
        miniShop2.sendData.$form.find('.btn-cart').removeClass('hidden');
        miniShop2.sendData.$form.find('.btn-checkout').addClass('hidden');
    };
}

Сниппет myButton:
<?php
// Параметры
$idd = $modx->getOption('idd', $scriptProperties, $modx->resource->id);
$tplIn = $modx->getOption('tplIn', $scriptProperties, 'tplIn'); //Можно писать так: ('tplIn', $scriptProperties,  '@INLINE Товар в корзине, кол-во – [[+count]], цена = [[+price]].');
$tplOut = $modx->getOption('tplOut', $scriptProperties, 'tplOut'); // '@INLINE Товара нет в корзине.'
// Классы для работы
$pdo = $modx->getService('pdoTools');
$miniShop2 = $modx->getService('minishop2');
$miniShop2->initialize($modx->context->key, $scriptProperties);
$cart = $miniShop2->cart->get();
// Поехали
$found = false;
foreach($cart as $product) {
	if ($product['id'] == $idd) {
		$found = $product;
		break;
	}
}
return $found
	? $pdo->getChunk($tplIn, $found)
	: $pdo->getChunk($tplOut);


Кнопка вызывается таким образом:
[[!myButton? &idd=`[[+id]]`]]
Klike
17 февраля 2015, 13:36
modx.pro
42
5 831
+2

UiCMPGenerator дополнение для создания пакетов

Hi, написал тут свое дополнение для создания пакетов UiCMPGenerator. За основу взято дополнение CMPGenerator, но в моем прикручен графический интерфейс для создания зависимостей типа Композиционная (Composite) и Агрегирующая (Aggregate), а также можно расширять родные таблицы Modx-a.
Для работы требуется MODX Revolution 2.3.х

Ссылка на офф репозиторий http://modx.com/extras/package/uicmpgenerator
Видео: http://youtu.be/Qkspw8kXwK4
Prihod
14 января 2015, 17:21
modx.pro
28
9 033
+25

[modDevTools] Версия 1.0.0-pl. Права и ресурсы


Доделал первоначальные задумки для дополнения, которое, надеюсь, поможет разработчикам быстрее и проще работать в админке MODX Revolution. Что компонент умеет на момент релиза стабильной первой версии:
Виталий Киреев
28 октября 2014, 09:28
modx.pro
4
4 987
+13

Иконки в дереве Modx 2.3

Где-то в комментарияx было, что можно заменить иконки в дереве. Не новую тему сделать, а именно кастомные иконки. Честно говоря, глаза устают от новой админки. Различия в графике минимальные, приходится непроизвольно напрягать зрение.
Alexander V
25 октября 2014, 10:47
modx.pro
2
6 333
0

[ms2Gallery] Версия 1.3.0 - сниппет ms2GalleryResources

Как и обещал, представляю вашему вниманию новую версию ms2Gallery со сниппетом для вывода ресурсов с прикреплёнными изображениями.

Честно говоря, это вопрос №1 в поддержке магазина по ms2Gallery — «как вывести документы из контейнера такого-то с присоединением превью такого-то?». И мне очень надоело объяснять, как работает вот эта портянка:
[[!pdoPage?
	&element=`pdoResources`
	&loadModels=`ms2gallery`
	&parents=`0`
	&tpl=`myRowTpl`
	&leftJoin=`{
		"120x90": {"class":"msResourceFile","alias":"120x90", "on": "120x90.resource_id = modResource.id AND 120x90.path LIKE '%/120x90/' AND 120x90.rank=0"}
		,"360x270": {"class":"msResourceFile","alias":"360x270", "on": "360x270.resource_id = modResource.id AND 360x270.path LIKE '%/360x270/' AND 360x270.rank=0"}
	}`
	&select=`{
		"modResource":"*"
		,"120x90":"120x90.url as 120x90"
		,"360x270":"360x270.url as 360x270"
	}`
]]
[[!+page.nav]]

Поэтому с версии 1.3.0 вы можете вызывать отдельный сниппет:
[[!pdoPage?
	&element=`ms2GalleryResources`
	&parents=`0`
	&tpl=`@INLINE
	<p>
		<a href="[[+uri]]">[[+pagetitle]]</a>
		<a href="[[+120x90.original]]"><img src="[[+120x90]]" title="[[+120x90.name]]" /></a>
	</p>
	`
	&typeOfJoin=`inner`
	&includeThumbs=`120x90,360x270`
	&includeOriginal=`1`
]]
[[!+page.nav]]
Как видите, теперь всё стало гораздо проще.
Василий Наумкин
21 октября 2014, 04:26
modx.pro
7
6 901
+7