Вывод выпадающего списка ресурсов в админке
мне нужно получить ресурсы родителя на скриншоте 2 из скриншота 1
и выводить их в поле админкы моего пакета в 3м поле (скрин 2)
задача такова есть таблица
id|yslyga|price|forpage
1|yslyga1|100|3
2|yslyga2|400|4
она заполняеться через админку (скрин 2)
forpage — можно вручную ввести id ресурса
но человек не разбираеться в этом и хочу сделать список ресурсов и автоматически чтоб id вставлялось в бд
потом на каждой из страниц выводить только услуги этой страницы
и выводить их в поле админкы моего пакета в 3м поле (скрин 2)
задача такова есть таблица
id|yslyga|price|forpage
1|yslyga1|100|3
2|yslyga2|400|4
она заполняеться через админку (скрин 2)
forpage — можно вручную ввести id ресурса
но человек не разбираеться в этом и хочу сделать список ресурсов и автоматически чтоб id вставлялось в бд
потом на каждой из страниц выводить только услуги этой страницы
Комментарии: 7
хорошо получилось вывести по примеру
github.com/bezumkin/miniShop2/blob/master/assets/components/minishop2/js/mgr/misc/ms2.combo.js
+
github.com/bezumkin/miniShop2/blob/master/core/components/minishop2/processors/mgr/system/element/resource/getlist.class.php
но чет оно не записывает в базу при редактировании/добавления ресурса id выбраной страницы
а так же возвращает все страницы сайта
можно как то определенные?
github.com/bezumkin/miniShop2/blob/master/assets/components/minishop2/js/mgr/misc/ms2.combo.js
+
github.com/bezumkin/miniShop2/blob/master/core/components/minishop2/processors/mgr/system/element/resource/getlist.class.php
но чет оно не записывает в базу при редактировании/добавления ресурса id выбраной страницы
а так же возвращает все страницы сайта
можно как то определенные?
,{xtype: 'pricelist-combo-resource',fieldLabel: _('pricelist_item_forres'),name: 'forres',id: 'pricelistbyp-'+this.ident+'-forres',anchor: '99%'}
можно узнать что это поле передает в базу? а то должно id выбранного ресурса и в базе поле инт а оно не заполняеться чет
Открыть консоль браузера и посмотреть что в запросе на сервер уходит при сохранении.
У комбобокса должен быть параметр hiddenName: 'forres'
У комбобокса должен быть параметр hiddenName: 'forres'
спасибо, работает
<?php
$pricelistbyp = $modx->getService('pricelistbyp','pricelistbyp',$modx->getOption('pricelistbyp_core_path',null,$modx->getOption('core_path').'components/pricelistbyp/').'model/pricelistbyp/',$scriptProperties);
if (!($pricelistbyp instanceof pricelistbyp)) return '';
/**
* Do your snippet code here. This demo grabs 5 items from our custom table.
*/
$tpl = $modx->getOption('tpl',$scriptProperties,'Item');
$sortBy = $modx->getOption('sortBy',$scriptProperties,'name');
$sortDir = $modx->getOption('sortDir',$scriptProperties,'ASC');
$limit = $modx->getOption('limit',$scriptProperties,5);
$outputSeparator = $modx->getOption('outputSeparator',$scriptProperties,"\n");
/* build query */
$c = $modx->newQuery('pricelistbypItem');
$c->sortby($sortBy,$sortDir);
$c->limit($limit);
$items = $modx->getCollection('pricelistbypItem',$c);
/* iterate through items */
$list = array();
/* @var pricelistbypItem $item */
foreach ($items as $item) {
$itemArray = $item->toArray();
$list[] = $modx->getChunk($tpl,$itemArray);
}
/* output */
$output = implode($outputSeparator,$list);
$toPlaceholder = $modx->getOption('toPlaceholder',$scriptProperties,false);
if (!empty($toPlaceholder)) {
/* if using a placeholder, output nothing and set output to specified placeholder */
$modx->setPlaceholder($toPlaceholder,$output);
return '';
}
/* by default just return output */
return $output;
этот код я взял из заготовки не понятно все, но интересует:
/* build query */
$c = $modx->newQuery('pricelistbypItem');
$c->sortby($sortBy,$sortDir);
$c->limit($limit);
$items = $modx->getCollection('pricelistbypItem',$c);
как я понимаю это сам запрос?как мне тогда с таблицы
таблица
id|yslyga|price|forpage
1|yslyga1|100|3
2|yslyga2|400|4
выводить на странице (ресурсе) только нужные мне поля
например страница (ресурс) из id 3
на ней должна вывестись строка
1|yslyga1|100|3
т.е мне нужно вызвать мой снипет
[[pricelistbyp? &pageid='3' &tpl='oneTpl']]
вопрос в том как передать &pageid='3' и выбрать из базы и вернуть выбранное на страницу
хоть подсказку какую нит буду рад (делаю в первый раз)
добавил после
$limit = $modx->getOption('limit',$scriptProperties,5);
свой $pageid = $modx->getOption('pageid',$scriptProperties,0);
еще куда то нужно что то добавлять?
то что есть на данный момент иду тестировать
<?php
$pricelistbyp = $modx->getService('pricelistbyp','pricelistbyp',$modx->getOption('pricelistbyp_core_path',null,$modx->getOption('core_path').'components/pricelistbyp/').'model/pricelistbyp/',$scriptProperties);
if (!($pricelistbyp instanceof pricelistbyp)) return '';
/**
* Do your snippet code here. This demo grabs 5 items from our custom table.
*/
$tpl = $modx->getOption('tpl',$scriptProperties,'Item');
$sortBy = $modx->getOption('sortBy',$scriptProperties,'yslyga');
$sortDir = $modx->getOption('sortDir',$scriptProperties,'ASC');
$limit = $modx->getOption('limit',$scriptProperties,5);
$pageid = $modx->getOption('pageid',$scriptProperties,0);
$outputSeparator = $modx->getOption('outputSeparator',$scriptProperties,"\n");
/* build query */
$c = $modx->newQuery('pricelistbypItem');
$c->sortby($sortBy,$sortDir);
$c->limit($limit);
$c->where(array(
'forres' => $pageid
));
$items = $modx->getCollection('pricelistbypItem',$c);
/* iterate through items */
$list = array();
/* @var pricelistbypItem $item */
foreach ($items as $item) {
$itemArray = $item->toArray();
$list[] = $modx->getChunk($tpl,$itemArray);
}
/* output */
$output = implode($outputSeparator,$list);
$toPlaceholder = $modx->getOption('toPlaceholder',$scriptProperties,false);
if (!empty($toPlaceholder)) {
/* if using a placeholder, output nothing and set output to specified placeholder */
$modx->setPlaceholder($toPlaceholder,$output);
return '';
}
/* by default just return output */
return $output;
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.