Отображать в меню развернутым только активный пункт меню

Материал из Umicms
Версия от 14:04, 28 июня 2011; Alexh (обсуждение | вклад) (Новая страница: «Необходимо отображать в меню развернутым только активный раздел Файл:Demo-dizzy-left-menu.jpg Д…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Необходимо отображать в меню развернутым только активный раздел

Demo-dizzy-left-menu.jpg


Для решения данной задачи необходимо добавить в файл custom.php следующий код:

public function activmenu($categ_id, $id) {
			$hierarchy = umiHierarchy::getInstance();
			$element = $hierarchy->getAllParents($id, true);
			$value = (in_array($categ_id, $element)) ? 1: 0;
			return $value;
		}


В шаблон \xsltTpls\modules\catalog\left-column-category-list.xsl

<xsl:template match="udata[@method = 'getCategoryList']//item" mode="left-column">
	
<!-- вызов кастомного скрипта -->
	<xsl:variable name="actmenu" select="document(concat('udata://custom/activmenu/',@id,'/',$document-page-id))/udata" />
		
		<li umi:element-id="{@id}" umi:region="row">
			<span>
				<a href="{@link}" umi:field-name="name" umi:delete="delete" umi:empty="&empty-section-name;">
					<xsl:value-of select="." />
				</a>
			</span>

<!-- условие - отображать только тот раздел в котором мы находимся -->
			<xsl:if test="$actmenu = 1">
			<xsl:apply-templates select="document(concat('udata://catalog/getCategoryList/void/', @id))" />
			</xsl:if>

		</li>
	</xsl:template>