Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Не выводится дополнительное меню в версии "Start"

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

Ответов: 4
Просмотров: 2072
Последний ответ 10 Январь 2013, 10:08:04
от admin
Магазин "Современный" - добавление заголовка к левому меню каталога

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

Ответов: 4
Просмотров: 1930
Последний ответ 25 Июнь 2012, 17:33:00
от manadsgn
Вывод страницы в меню с отключением вывода в карте сайта

Автор alpotemkinРаздел Макросы UMI.CMS

Ответов: 6
Просмотров: 3483
Последний ответ 03 Ноябрь 2011, 15:07:29
от alpotemkin
Текущая страница - добавление класса к ссылке главного меню

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

Ответов: 2
Просмотров: 1691
Последний ответ 24 Июнь 2012, 14:00:10
от manadsgn
Вывод в меню только разделов с определенными свойствами

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

Ответов: 4
Просмотров: 3404
Последний ответ 24 Июнь 2011, 12:58:58
от polo

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

*

john

  • ***
  • 206
  • +6/-0
    • Просмотр профиля
Есть код, отображение подуровня меню, если он активен.
		public function activmenu($categ_id, $id) {
$hierarchy = umiHierarchy::getInstance();
$element = $hierarchy->getAllParents($id, true);
$value = (in_array($categ_id, $element)) ? 1: 0;
return $value;
}

Подскажите, как написать условие проверки существования подуровня и вернуть значение 1 или 0 например или значение "poduroven".

public function poduroven($id=NULL) {
if($id have $categ_id) return 'poduroven';

*

admin

  • *****
  • 2443
  • +172/-1
    • Просмотр профиля
Re:Проверка существования под-уровня меню
« Ответ #1 : 26 Сентябрь 2012, 00:35:01 »
проверка того что страница существует? проверка того что у страницы с id = $categ_id есть подстраница с id = $id или что-тио другое?

не очень понятно, что именно вам надо

*

john

  • ***
  • 206
  • +6/-0
    • Просмотр профиля
Re:Проверка существования под-уровня меню
« Ответ #2 : 26 Сентябрь 2012, 10:29:21 »
Второе - проверка того что у страницы с id = $categ_id есть хоть одна подстраница с id = $id

*

admin

  • *****
  • 2443
  • +172/-1
    • Просмотр профиля
Re:Проверка существования под-уровня меню
« Ответ #3 : 26 Сентябрь 2012, 12:10:20 »
       $hierarchy = umiHierarchy::getInstance(); 
       // получаем экземпляр коллекции
       $childs = $hierarchy->getChilds($current_page_id);
       // получаем список
дочерних страниц, включая не активные и не видимые в меню.


теперь в  $childs у нас массив дочерних элементов. Описании функции getChilds() смотрите в официальной документации

*

john

  • ***
  • 206
  • +6/-0
    • Просмотр профиля
Re:Проверка существования под-уровня меню
« Ответ #4 : 26 Сентябрь 2012, 13:20:39 »
	public function poduroven($current_page_id, $id) {
$hierarchy = umiHierarchy::getInstance();
        // получаем экземпляр коллекции
        $childs = $hierarchy->getChilds($current_page_id);
        // получаем список дочерних страниц, включая не активные и не видимые в меню.
if($childs==$id) return '1';
        //  проверка того что у страницы с id = $categ_id есть хоть одна подстраница с id = $id
Проверка не работает. Или по другому, то как?

*

admin

  • *****
  • 2443
  • +172/-1
    • Просмотр профиля
Re:Проверка существования под-уровня меню
« Ответ #5 : 26 Сентябрь 2012, 14:35:00 »
это массив, так что проверка будет такой

$value = (in_array($id, $childs)) ? 1: 0;
return $value;
, но это уже больше к php чем к umi

*

john

  • ***
  • 206
  • +6/-0
    • Просмотр профиля
Re:Проверка существования под-уровня меню
« Ответ #6 : 26 Сентябрь 2012, 14:50:04 »
    <xsl:variable name="podurovens" select="document(concat('udata://custom/poduroven/',@id,'/',$document-page-id))/udata" />
<a href="{@link}" class="{$podurovens}"><xsl:value-of select="name" /></a>
условие почему-то не работает, условие возвращает все время ноль. а должен вернуть единицу если  у страницы с id = $categ_id есть хоть одна подстраница с id = $id

*

john

  • ***
  • 206
  • +6/-0
    • Просмотр профиля
Re:Проверка существования под-уровня меню
« Ответ #7 : 29 Сентябрь 2012, 00:43:49 »
Подскажите как условие написать правильно?
		public function poduroven($current_page_id, $id) {
$hierarchy = umiHierarchy::getInstance();
                // получаем экземпляр коллекции
                $childs = $hierarchy->getChilds($id, true);
                // получаем список дочерних страниц, включая не активные и не видимые в меню.
$value = (in_array($current_page_id, $childs)) ? 1: 0;
return $value;
}