Андрей Копп

Андрей Копп

С нами с 07 октября 2013; Место в рейтинге пользователей: #175

[Решено] Дополнительные поля в 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 769
+1

mFilter2 и кастомные таблицы

Вчера начал делать фильтрацию таблицы с фирмами на mFilter2. Сначало я создал файл кастомного класса:

core/components/msearch2/custom/filters/custom.class.php со следующим содержимым:

<?php
class CustomFilter extends mse2FiltersHandler {
    
	function __construct(mSearch2 &$mse2,array $config = array()) {
        parent::__construct($mse2, $config);
        $this->modx->addPackage('spromo' ,MODX_CORE_PATH.'components/spromo/model/');
        $this->modx->addPackage('gl' ,MODX_CORE_PATH.'components/gl/model/');
        $this->modx->addPackage('voteforms' ,MODX_CORE_PATH.'components/voteforms/model/');
    }
    
	public function getSpromoCompaniesValues(array $fields, array $ids) {
		$filters = array();
		$no_id = false;
		if (!in_array('id', $fields)) {
			$fields[] = 'id';
			$no_id = true;
		}
		$q = $this->modx->newQuery('SpromoCompanies');
		$q->select(implode(',', $fields));
		$q->where(array('SpromoCompanies.id:IN' => $ids));
		$tstart = microtime(true);
		if ($q->prepare() && $q->stmt->execute()) {
			$this->modx->queryTime += microtime(true) - $tstart;
			$this->modx->executedQueries++;
			while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
				foreach ($row as $k => $v) {
					$v = trim($v);
					if ($k == 'category_id') {
						if ($row['parent'] == $v) {continue;}
						else {$k = 'parent';}
					}
					if ($v == '' || ($k == 'id' && $no_id)) {
						continue;
					}
					elseif (isset($filters[$k][$v])) {
						$filters[$k][$v][] = $row['id'];
					}
					else {
						$filters[$k][$v] = array($row['id']);
					}
				}
			}
		}
		else {
			$this->modx->log(modX::LOG_LEVEL_ERROR, "[mSearch2] Error on get filter params.\nQuery: ".$q->toSql()."\nResponse: ".print_r($q->stmt->errorInfo(),1));
		}

		return $filters;
	}
}
Андрей Копп
30 июля 2016, 12:49
modx.pro
4
2 699
+1

Как организовать меню?

Всем привет. Столкнулся не совсем со стандартной задачей. Нужно вывести от родителя все дочерние ресурсы по блокам, как показано на скриншоте:


Андрей Копп
28 июля 2016, 19:01
modx.pro
1
1 097
+1

Как в getCollection сделать сортировку по алфавиту

Всем привет. Делаю форму добавления объявлений. На AJAX делаю выбор страны-регионы-города вот таким вот способом:

<?php
$countries = $modx->getCollection('glCountry');
$region = $modx->getCollection('glRegion');
$city = $modx->getCollection('glCity');

$country_id = htmlspecialchars($_GET['country_id']);

$i = 0;
if($region) {
    foreach ($region as $k => $regs) {
        $region_id = $regs->get('id');
        $region_name = $regs->get('name_ru');
        $country = $regs->get('country');
        if ($region_id == '1') continue;
        $regarr = array(
            'name' => $region_name,
            'id' => $region_id
        );
        
        if ($country_id == $country) {
            $regions[$i] = $regarr;
            $i++;
        }
    }
    $result = array('regions'=>$regions);
}
else {
    $result = array('type'=>'error');
}
print json_encode($result);
Хотелось выводимые списки сортировать по алфавиту. Подскажите пожалуйста как это организовать?
Андрей Копп
27 июля 2016, 23:49
modx.pro
4 041
+1

[Решено] Замена & на &amp; в pagetitle

При выгрузке xml всех товаров возникают ошибки связанные с амперсандом. Есть ли в модиксе функция которая бы все амперсанды в тайтлах заменяла на & amp;?

Update: Совершено забыл про модификаторы. Вопрос снимается.
[[+pagetitle:replace=`&==&`]]
Андрей Копп
10 июня 2016, 11:46
modx.pro
2 422
0

Как авторизоваться через Office на форуме SMF?

Всем привет. Столкнулся с такой задачей. Нужно авторизироваться через Office на форуме SMF, догадываюсь что авторизация не происходит из-за того, что офис не находит контекст на котором авторизироваться, но если авторизироваться на MODX, то блок с авторизированным пользователем появляется. Делаю вот таким образом:
Андрей Копп
17 мая 2016, 13:38
modx.pro
1 783
0

pdoPage + miniShop2

Всем привет. Может кто-нибудь подсказать как стандартными параметрами можно фильтровать список товаров по популярности? Пробую вызывать вот так:

[[!pdoPage?
				    &parents=`81,365,366,362,363,353,352,351,117,104,361,359,360,47,357,358,3,43,67,121,159,108,367,111,124`
					&element=`msProducts`
					&tpl=`product`
                    &includeContent=`1`
					&includeTVs=`image`
            		&prepareTVs=`1`
					&processTVs=`1`
					&limit=`100`
					&where=`{"template": 2, "popular": 1}`
					&showLog=`1`
				]]
Не помогает. Нужно вывести список всех популярных товаров на одной странице.
Андрей Копп
11 апреля 2016, 11:42
modx.pro
2 750
0

У товара не выбираются категории

Сегодня заказчик написал, что не может перенести товар в новую созданную категорию. У товара в списке категорий данной категории не было, хотя в древе ресурсов она есть. Как я могу предположить на вывод есть некий лимит для отображения. Как мне этот лимит увеличить? Было бы отлично, если бы у выпадающего списка в поле Категория была бы пагинация по страницам.
Андрей Копп
04 апреля 2016, 12:55
modx.pro
871
0

Парсер YouTube по ключевым словам

Всем привет. Случилось так, что потребовалось написать парсер для сервиса youtube по ключевым словам. Что требуется. Нужно список ключевых слов в столбике прогнать через API Youtube и сохранить записи в таблицу исключая дубли и у каждой записи нужно указывать контекст и сам ключ. Вообщем начал разбираться и вот что в итоге пока удалось намулевать devmodx.ru/syoutubeparser/:
Андрей Копп
02 апреля 2016, 20:15
modx.pro
2 856
0

Добавляемый тикет по умолчанию неопубликован

Всем привет. Хотел спросить, можно ли настроить сниппет [[!TicketForm]] таким образом, чтобы пользователь при создании тикета, создавал его неопубликованным, чтобы в дальнейшем администратор мог сам добавлять тикеты из админки?
Андрей Копп
04 марта 2016, 18:51
modx.pro
1
1 470
0