Виталий Валерьевич

Виталий Валерьевич

С нами с 23 декабря 2012; Место в рейтинге пользователей: #333

[AjaxForm] Версия 1.0.2-pl

В репозитории Simple Dream доступна новая версия компонента AjaxForm.

Список изменений:

Добавлен вызов jQuery события af_complete после отправки формы. Теперь вы можете что-то делать с ответом от сервера:
$(document).on('af_complete', function(event, response) {
	console.log(event, response);
});
Василий Наумкин
18 июня 2014, 02:07
modx.pro
4
8 830
+4

Использование modRegistry

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

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

Этот класс отлично документирован, но я хочу показать простой и понятный пример.
Василий Наумкин
12 июня 2014, 02:57
modx.pro
13
3 138
+8

miniShop2 - скидка или наценка к сумме заказа

Добрый день!

Такой вопрос… нужно реализовать логику: наценка 5%, если в корзине 1 или 2 товара, скидка 2%, если в корзине 8 товаров или больше. Как это делать?

Пока идея: переопределить msCartHandler, в методе get реализовать мою логику:

public function get() {
	$cart['skidka'] = array('id' => 'skidka', 'price' => -100, 'weight' => 0, 'options' ),
	return $this->cart;
}

… но… есть еще

public function status($data = array()) {

… окей, и там можно реализовать эту логику. И еще немного надо будет поправить js файлы, хорошо… хотя уже что-то много правок намечается… я верно пытаюсь сделать? или нужно по другому реализовывать? Василий, как бы ты поступил? Общие мысли интересуют, реализовать — справлюсь :)

Естественно, мне нужно, что бы все заработало и в маленькой корзине в шапке сайта, и в большой корзине.
Наумов Алексей
05 мая 2014, 13:58
modx.pro
10
4 679
0

Фильтрация по выпадающему списку для mFilter2

Может кому-то пригодится небольшое решение с подключением Bootstrap-select

Пример рабочего select с поиском без правки скрипта, благодаря label:
Руслан Киямов
29 апреля 2014, 14:30
modx.pro
24
6 639
+8

Выборка pdoPage where по дате

Добрый день. В тикете можно указать дату мероприятия через бекенд, вот выборка, которая показывает сегодняшние мероприятия:
[[!pdoPage?
&element=`getTickets`
&includeTVs=`program-start`
&tpl=`program-list-ru`
&sortby=`program-start` &sortbyTV=`program-start` &sortdirTV=`ASC` &sortby=``
&where=`{«program-start:LIKE»:"%[[!today]]%"}`
]] — тут всё ок

Как сделать, чтобы была выборка по сегодняшним и предстоящим?
Пробовал:
[[!pdoPage?
&element=`getTickets`
&includeTVs=`program-start`
&tpl=`program-list-ru`
&sortby=`program-start` &sortbyTV=`program-start` &sortdirTV=`ASC` &sortby=``
&where=`({«program-start:LIKE»:"%[[!today]]%"}) AND ({«program-start RLIKE '[[:>:]]%[[!today]]%'»}) `
]]
Andrei D.
15 апреля 2014, 09:09
modx.pro
6
5 350
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 526
+11

Вывод суммы прописью

Специально по просьбе Wassi Wassinen достал из нафталина, отряхнул пыль и публикую свой класс вывода сумм прописью, который основан на вот этих методах.

В оригинальной версии копейки писались цифрами, а теперь — буквами. Ради этого пришлось переписать больше половины кода.
Василий Наумкин
30 марта 2014, 11:19
modx.pro
6
3 225
+5

красивые урлы для брендов в категориях

добрый день, появилось желание сделать красивые ссылки для брендов в разделах, т.е. сейчас все это выглядит так
site.ru/catalog/razdel/?ms|vendor=3
что не очень красиво и для пресловутого seo не айс)
хочется получить ссылки вида
site.ru/catalog/razdel/brand/sony/
что позволит создавать странички разделов с товарами брендов типа «Ноутбуки sony», понятно что в идеале нужно еще и title причесать, но хотя бы разобраться с чпу и ссылками.

кто-то уже решал подобную задачу?
Ilya Ev
26 марта 2014, 19:07
modx.pro
4
3 726
0

Цена в рублях по курсу доллара в miniShop2

Как выводить в miniShop2 сумму товара в рублях, если цена указана в долларах? Есть плагин парсера курса валют.
Stan
03 марта 2014, 10:27
modx.pro
24
7 977
0

Динамическая подгрузка контента страницы

Добрый день, Василий!

У меня есть страница, содержимое которой формируется с помощью сниппета msProducts
[[!msProducts? &tpl=`tpl.Preview` &limit=`10` &sortby=`publishedon`]]
Можно ли не просто ограничить вывод дочерних документов (&limit=`10`), но и сделать так, чтобы каждый раз при скроллинге (или нажатии на кнопку) подгружались еще 10 дочерних документов?
Можно ли это сделать с минимальным переписыванием (а лучше вообще без него) уже существующего кода?
Дарья Сизова
13 января 2014, 13:07
modx.pro
1
3 073
0