Sergey

Sergey

С нами с 12 января 2017; Место в рейтинге пользователей: #781

mFilter2 - из метода boolean убрать значение "нет"

Здравствуйте!

Помогите, пожалуйста, доработать метод фильтрации. У товара есть поле ms|favorite. У некоторых товаров это поле отмечено (чекбокс). Нужно в фильтре вывести только одну галочку, по клику на которую бы фильтровались товары. Можно выводить методом boolean, но тогда будет выбор «да» и «нет».

Нашел направление, куда копать.

Создал новый метод Positive, присвоил:

&filters=`ms|favorite:positive`
Но дальше эксперименты-правки не увенчались успехом.

Грубо говоря, из метода boolean, который я взял за основу, нужно убрать те варианты, где поле не отмечено (нулевое?). Далее чистый boolean с исправленными названиями на positive.

<?php
class myCustomFilter extends mse2FiltersHandler {
	public function buildPositiveFilter(array $values, $name = '') {
		if (count($values) < 2 && empty($this->config['showEmptyFilters'])) {
			return array();
		}
		$results = array();
		foreach ($values as $value => $ids) {
			$empty = empty($value) || (is_numeric($value) && (int)$value === 0);
			$title = $empty
				? $this->modx->lexicon('mse2_filter_positive_no')
				: $this->modx->lexicon('mse2_filter_positive_yes');
			if (!isset($results[$title])) {
				$results[$title] = array(
					'title' => $title,
					'value' => (int)!$empty,
					'type' => '<b>positive</b>',
					'resources' => $ids,
				);
			}
			else {
				$results[$title]['resources'] = array_merge($results[$title]['resources'], $ids);
			}
		}
		ksort($results);

		return $results;
	}
 	public function filterPositive(array $requested, array $values, array $ids) {
		$matched = array();

		$tmp = array_flip($ids);
		foreach ($requested as $value) {
			foreach ($values as $k => $resources) {
				$empty = empty($k) || (is_numeric($k) && (int)$k === 0);
				if ((empty($value) && !$empty) || (!empty($value) && $empty)) {
					continue;
				}
				foreach ($resources as $id) {
					if (isset($tmp[$id])) {
						$matched[] = $id;
					}
				}
			}
		}

		return $matched;
	}
}
Мартин Очоа
30 октября 2017, 20:06
modx.pro
2
1 713
0

Подготавливаем ЛК для "ГдеПосылка"


Это продолжение статей по работе с заказами MS2, в последней статье я обещал, что расскажу как интегрировать сервис «ГдеПосылка» в Minishop2, а пока я жду пока очухается администрация «ГдеПосылка» чтобы дать мне доступ к API подготовим почву для интеграции, что мы будем делать:

  1. Добавим новое поле в заказы minishop2
  2. Сделаем вывод для пользователей их историю заказов без extJS и каких либо дополнений, на чистом pdoTools
  3. Научимся делать leftJoin и select на pdoTools и pdoFetch
  4. Бонусом идут сразу готовые стили для всего этого добра и написанный JS
За стилизацию заказов я брал пример с modstore, я надеюсь никто не обидится, потому что мне кажется что у нового дизайна модстора очень удачное стиливое решение истории заказов

За объяснением кода — под кат, за кодом на GitHub
Pavel Zarubin
19 октября 2017, 11:37
modx.pro
17
5 765
+8

Sendex и AjaxForm - подписка на рассылку ч/з ajax

Sendex, как учебный компонент, особо не развивается, но он довольно удобен и приятен в обращении изнутри сайта. В связи с чем регулярно его использую. Но вот «снаружи», на фронте, он не очень удобен. Очередная просьба от клиента «чтобы окошко появлялось, а страничка не перезагружалась», побудила переписать для себя сниппет так, чтобы потом пользовать его через ajaxform. Получилось три чанка, один сниппет и немного джаваскрипта.
mngatoff
26 августа 2017, 19:52
modx.pro
26
5 103
+8

Мультидоменность контекстами


В сообществе часто проскакивают вопросы про мультидоменность на одной копии MODX. А у меня, как раз, сайты демо версий компонентов реализованы таким образом. Думаю, информация будет полезной!
Павел Гвоздь
10 августа 2017, 16:01
modx.pro
36
6 315
+29

Extjs: добавление поля в таблице заказов

Добрый день!

Подскажите, пожалуйста, как добавить с помощью MODX-плагина элемент в контекстное меню в таблице заказов Минишопа? По-умолчанию, там Изменить и Удалить. joxi.ru/52azjXgu4dzBZA

1. Я создал плагин msOrderAddPrint, повесил его на событие msOnManagerCustomCssJs
Написал в нем код:
Михаил
04 июля 2017, 13:30
modx.pro
8
2 686
0

Добавление нового поля в профили пользователей

Требуется добавить во все профили пользователей новое поле (ИНН), как это лучше сделать? Нужно чтобы и из админки было удобно редактировать и через фронтенд. Может уже ктото сталкивался с подобным. Думал добавлять в какие нибудь уже стандартные поля типа «факс», но это по моему колхоз)))
Алексей Соин
16 марта 2017, 04:22
modx.pro
2
4 151
0

AjaxForm не срабатывает валидация Checbox

Добрый день!

Чекбокс выглядит так:
<input type=«checkbox» name=«iagree[]» id=«iagree» value=«I agree that:»
[[!+fi.iagree:FormItIsChecked=`I agree that:`]]>
Я соглашаюсь с тем что:


В вызове снипета есть необходимый параметр:
&validate=`
iagree:required`

делал и так:
&validate=`
iagree[]:required`

Есть и другие поля для валидации. Они валидируются, а чекбокс нет.
И класс не присваивается, и форма улетает без поставленной галки.
Гуглил, яндексил, да всё бестолку((

Заодно, если знатоки AjaxForm подскажут как слать два письма с разными tpl (одно мне, другое тому, кто форму заполнил, о том, что его заявка успешно ушла) — буду крайне признателен

И еще как добавить в случае ошибки валидации чекбокса рядом с ним сообщение.
У меня там рядом с ним вот такая конструкция есть:
[[+fi.error.iagree]]
и в параметрах снипета такая:
&iagree.vTextRequired=`Тык!`
только я хз сработает ли и как вобще надо

И еще мне надо что бы файлы можно было прикреплять только doc, docx и pdf — как это сделать?
Серый
27 января 2017, 18:09
modx.pro
3
6 142
0

Collections. Коллекции внутри коллекций

Привет, помогите разобраться с Collections
Я создал тип коллекции для категории компаний и для самих компаний тоже.
Т.е. Сами категория компаний — тип коллекции, а внутри него компании(которые тоже типа коллекции).
Павел
16 января 2017, 16:54
modx.pro
4
4 980
0

Короткие ссылки средствами modx

Запрос на помощь вылился в готовый результат.

Пример основной задачи — реализация сайта с кириллическим именем домена, и ссылками так же на кириллице. Типа: сайт.рф/каталог/ресурс

Выглядит красиво, доступно, запоминается, и говорят — полезно для СЕО. Но появилась проблемка, связанная с тем, что при попытке поделиться урлом, порой выводится неудобноваримая ссылка из кучи непонятных символов. Что нибудь типа такого:
Александр Н
10 октября 2016, 21:56
modx.pro
10
6 948
+7

[Решено] Дополнительные поля в Tickets

Всем привет! Создаю форму добавления объявлений, добавил новые TV поля таким образом:

<input type="text" name="tv_price" value="0" />
где tv_price название tv параметра, но при сохранении сохраняет только значение value по умолчанию, тоесть 0. Не могу разобраться, как прописать name правильно tv.price или tvprice?

UPD: Всё оказалось намного проще. Выводим TicketForm с параметрами:

[[!TicketForm?
&requiredFields=`parent,pagetitle,content,bprice,bcountry,bregion,bcity`
&allowedFields=`parent,pagetitle,content,published,bprice,bcountry,bregion,bcity`
&parents=`322,335,338,345,351,352,353,354,355,356,357,358,361,365,369,373`
]]
а в чанке который выводит форму прописываем TV-параметры в name без префиксов tv., tv_ а как есть:

<input type="text" name="bprice" value="0">
Андрей Копп
19 августа 2016, 23:01
modx.pro
6
1 871
+1