Владислав

Владислав

Был в сети 08 февраля 2019, 22:26
Заказы принимаю
если товар добавляется в корзину проверяется опция freemax, никто ничего не ел, я так и записал и обрабатывается так как нужно. Но при отправке ругается на эту и еще все опции которые в текстовом формате. Попробовал очистить все содержимое плагина. И все равно не отправляет почту но ошибок не выдает в лог
Если интересно кому будет решение.

Скопировал два метода, как по инструкции. Первый от buildBooleanFilter, а второй от filterNumber и назвал их чтобы фильтр срабатывал на Exist. Собрался копать дальше и о чудо… все заработало.

public function buildExistFilter(array $values, $name = '') {
    	if (count($values) < 2 && empty($this->config['showEmptyFilters'])) {
			return array();
		}

		$results = array();
		foreach ($values as $value => $ids) {
			$title = empty($value) ? $this->modx->lexicon('mse2_filter_boolean_no') : $this->modx->lexicon('mse2_filter_boolean_yes');
			$results[$title] = array(
				'title' => $title
				,'value' => $value
				,'type' => 'boolean'
				,'resources' => $ids
			);
		}

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

		$min = floor(min($requested));
		$max = ceil(max($requested));

		$tmp = array_flip($ids);
		foreach ($values as $number => $resources) {
			if ($number >= $min && $number <= $max) {
				foreach ($resources as $id) {
					if (isset($tmp[$id])) {
						$matched[] = $id;
					}
				}
			}
		}

		return $matched;
	}
&suggestionsRadion=`tv|space__image`
&tplFilter.row.tv|space__image=`tpl.mFilter2.filter.checkbox`

Копать дальше не пришлось
Пробовал. Получается так что выводит 1 чекбокс для первого tv параметра у которого встречается значение. И по клику на этот чекбокс он выводит как раз этот единственный ресурс. То есть он проверяет не наличие какой то записи в тв параметре, а ищет ресурсы у которых этот параметр такой же как у первого ресурса у которого он заполнен.