Евгений Шеронов

Евгений Шеронов

С нами с 20 мая 2015; Место в рейтинге пользователей: #30

Упрощаем работу с TV

Продолжая тему, начатую Василием, предлагаю решение для упрощения работы с TV. Оно поможет тем, у кого логика сайта завязана на TV — запросы, фильтры и т.п.
Решается эта задача созданием полей в таблице ресурсов и копированием в них значений TV.
Сергей Шлоков
02 декабря 2015, 09:18
modx.pro
49
8 052
+7

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

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

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

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

ExtJs для новичков. Админка загрузилась. ч.1

В прошлой статье мы попытались понять как формируется интерфейс админки на ExtJs. Теперь давайте попробуем разобраться, что можно сделать интерфейсом, который нам нарисовал ExtJs.
В ExtJs за каждым элементом интерфейса (панель, окно, таблица, кнопка, элемент формы) стоит специальный объект, называемый компонентом. Он отвечает за управление элементом интерфейса — создание, отображение, скрытие, удаление. В админке MODX все элементы «являются» компонентами ExtJs, за исключением верхнего меню. Разницу можно увидеть, если заглянуть в исходный код страницы — у меню простая и привычная HTML структура (ul > li > a), а если глянем на элемент, созданный ExtJs, то увидим, что он обернут дополнительными тегами. Например, вот код кнопки тулбара дерева ресурсов
<span unselectable="on" class="x-btn x-btn-small x-btn-icon-small-left tree-new-static-resource x-btn-noicon" id="ext-comp-1062" style="">
    <em class="">
         <button type="button" id="ext-gen139" class=" x-btn-text" style=""> </button>
    </em>
</span>
Сергей Шлоков
02 ноября 2015, 07:32
modx.pro
23
4 313
+8

[videoGallery] Добавляем видеоролики из фронтенда


Многие задавали вопрос: "можно ли добавлять видео из фронта и как это реализовать". Из-за особенности компонента самому это сделать было не так просто, как казалось на первый взгляд. Сегодня Алексей заказал внедрение данной функции.

В компонент был добавлен сниппет videoGallery.input, который можно вызвать в любой форме на сайте, примерно так:
[[!videoGallery.input?
	&tv=`video`
	&res=`[[+id]]`
]]
&tv — это имя ТВ,
&res — ID ресурса, к которому привязано видео.

Павел Гвоздь
16 октября 2015, 20:21
modx.pro
7
4 369
+9

Не работает пересчет цен в корзине

В зависимости от общего количества товара в корзине плагин устанавливает скидку на каждый товар: от 1 до 5 — 0%, от 5 до 10 — 0%, от 10 и выше — 20%.
Код плагина:
switch ($modx->event->name) {
	case 'msOnAddToCart': case 'msOnChangeInCart':
	$tmp = $cart->get();
$price=	$tmp[$key]['price'];
$tmpm = $cart->status();
$total_count = $tmpm['total_count'];
if ($total_count >= 10) {
	$price=$price*0.8;
} elseif ($total_count >= 5) {
	$price=$price*0.9;
} else {
	$price=$price;
}
$tmp[$key]['price']=$price;
	$cart->set($tmp);	
	break;
}
Беда в том, что цена пересчитывается не у всех товаров в корзине, а только у последнего добавленного/измененного, а для того что бы у остальных она поменялась, надо у каждого оставшегося изменить кол-во. Никак не могу понять, как после увеличения/уменьшения total_count, пересчитывать цены у каждого товара в корзине автоматом.
Артем
11 октября 2015, 07:03
modx.pro
5
2 232
+1

Как сделать скидки от количества товара?

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



Так же, у него должна быть возможность изменить количество товара в корзинке, когда он уже будет оформлять покупку.



Первое что пришло в голову, это установить MIGX и по средством TV параметра, скажем discount выгружать количество товара и скидок от которых они зависят, вот что получилось:

<?php
$dis = $modx->resource->getTVValue('discount');
$a = json_decode($dis, true);

foreach ($a as $discount => $value) {
    $count = $value["count"];
    $price = $value["price"];
    
    echo '<p>'.$count.' шт. - '.$price.'%</p>';
}
Андрей Копп
10 октября 2015, 22:00
modx.pro
7
5 888
0

Сборка transport-пакета без установки MODX



Писать свои пакеты для MODX не просто для новичка, да и опытному разработчику иногда не сладко приходится. Но новичок пугается, а опытный разбирается :).

Эта заметка рассказывает о том, как можно написать и собрать пакет компонента для MODX без установки и настройки самого MODX. Уровень выше среднего, так что возможно придется поломать голову в отдельных случаях, но оно того стоит.

За подробностями прошу под кат.

Іван Клімчук
08 октября 2015, 22:53
modx.pro
21
7 837
+11

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

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

При заказе товара пользователь бы регистрировался?

Здравствуйте. Подскажите пожалуйста, как сделать:
Когда пользователь заказал товар, то он автоматически регистрировался и к нему приходило письмо об регистрации
joxi.ru/brR8g7bUBbDg21
Александр Янк
16 августа 2015, 16:28
modx.pro
9
3 101
+2

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

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

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