Андрей Копп
С нами с 07 октября 2013; Место в рейтинге пользователей: #176[Решено] Дополнительные поля в Tickets
Всем привет! Создаю форму добавления объявлений, добавил новые TV поля таким образом:
UPD: Всё оказалось намного проще. Выводим TicketForm с параметрами:
<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">
mFilter2 и кастомные таблицы
Вчера начал делать фильтрацию таблицы с фирмами на mFilter2. Сначало я создал файл кастомного класса:
core/components/msearch2/custom/filters/custom.class.php со следующим содержимым:
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;
}
}
Как организовать меню?
Как в 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);
Хотелось выводимые списки сортировать по алфавиту. Подскажите пожалуйста как это организовать? [Решено] Замена & на & в pagetitle
При выгрузке xml всех товаров возникают ошибки связанные с амперсандом. Есть ли в модиксе функция которая бы все амперсанды в тайтлах заменяла на & amp;?
Update: Совершено забыл про модификаторы. Вопрос снимается.
Update: Совершено забыл про модификаторы. Вопрос снимается.
[[+pagetitle:replace=`&==&`]]
Как авторизоваться через Office на форуме SMF?
Всем привет. Столкнулся с такой задачей. Нужно авторизироваться через Office на форуме SMF, догадываюсь что авторизация не происходит из-за того, что офис не находит контекст на котором авторизироваться, но если авторизироваться на MODX, то блок с авторизированным пользователем появляется. Делаю вот таким образом:
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`
]]
Не помогает. Нужно вывести список всех популярных товаров на одной странице. У товара не выбираются категории
Сегодня заказчик написал, что не может перенести товар в новую созданную категорию. У товара в списке категорий данной категории не было, хотя в древе ресурсов она есть. Как я могу предположить на вывод есть некий лимит для отображения. Как мне этот лимит увеличить? Было бы отлично, если бы у выпадающего списка в поле Категория была бы пагинация по страницам.
Парсер YouTube по ключевым словам
Всем привет. Случилось так, что потребовалось написать парсер для сервиса youtube по ключевым словам. Что требуется. Нужно список ключевых слов в столбике прогнать через API Youtube и сохранить записи в таблицу исключая дубли и у каждой записи нужно указывать контекст и сам ключ. Вообщем начал разбираться и вот что в итоге пока удалось намулевать devmodx.ru/syoutubeparser/:
Добавляемый тикет по умолчанию неопубликован
Всем привет. Хотел спросить, можно ли настроить сниппет [[!TicketForm]] таким образом, чтобы пользователь при создании тикета, создавал его неопубликованным, чтобы в дальнейшем администратор мог сам добавлять тикеты из админки?