Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Слайдер из баннеров на главной странице

Автор manadsgnРаздел Шаблоны XSLT

Ответов: 1
Просмотров: 4433
Последний ответ 14 Сентября 2012, 17:30:39
от manadsgn
Слайдер

Автор johnРаздел Шаблоны TPL

Ответов: 2
Просмотров: 3849
Последний ответ 27 Марта 2012, 00:01:10
от john
Слайдер

Автор RoLanaРаздел Шаблоны XSLT

Ответов: 17
Просмотров: 8933
Последний ответ 18 Октября 2013, 22:41:33
от PHOENIX-75

0 Пользователей и 1 Гость просматривают эту тему.

*

john

  • ***
  • 207
  • +6/-0
    • Просмотр профиля
Слайдер
« : 04 Февраля 2015, 23:58:26 »
Помогите найти ошибку.
Использовал этот урок.
http://wiki.umisoft.ru/%D0%A1%D0%BB%D0%B0%D0%B9%D0%B4%D0%B5%D1%80_%D0%BD%D0%B0_%D0%B2%D1%81%D0%B5%D1%85_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0%D1%85_%D1%81%D0%B0%D0%B9%D1%82%D0%B0%D1%85_%28bxslider%29_TPL
Из него, скопировал один макрос.

public function getSliderItems($parent_id, $template = "default"){
if (!$parent_id)
return 'Parent page id is not set';
list($template_items, $template_item) = def_module::loadTemplates("data/slider/" . $template, "items", "item");
 
$umiHierarchy = umiHierarchy::getInstance();
$childs_arr = $umiHierarchy->getChildIds($parent_id, false);
$item_arr = array();
$items_arr = array();
foreach ($childs_arr as $item_id){
$item = $umiHierarchy->getElement($item_id);
if ($item instanceof iUmiHierarchyElement){
$image = $item->getValue('slider_item_image');
$item_arr['@image'] = '/'.$image->getFilePath();
$item_arr['@name'] = $item->getName();
$item_arr['@link'] = $item->getValue('slider_item_link');
$items_arr[] = def_module::parseTemplate($template_item, $item_arr);
}
}
$items_arr = array('subnodes:items' => $items_arr);
 
return def_module::parseTemplate($template_items, $items_arr);
 
}

Вставляю его в шаблоне %custom getSliderItems(70)%
и при обновление страницы вижу тоже самое %custom getSliderItems(70)%
 Версия UMI 2.8.1, может не работать из-за версии или где искать ошибку.
На локальной машине все гуд.
Спасибо.


*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Слайдер
« Ответ #1 : 22 Марта 2015, 18:48:04 »
Давайте проверять по порядку

1. Работает ли сам макрос?
Измените код макроса, чтобы точно знать что он срабатывает
public function getSliderItems($parent_id, $template = "default"){
     return 'ok';
}

2. Если все работает, то проверяйте что у вас есть tpl шаблон ~tpl/data/slider/default.tpl (что он в кодировке uft-без BOM). Что в шаблоне есть блоки items и item

3. что у указанной страницы, id которой вы передаете в макрос первым параметром, есть дочерние страницы и у каждой есть поля с индетификаторами slider_item_image  и slider_item_link

P.S. Если это не дает результата, дебажте макрос на предмет того? где он спотыкается.