Отображать в меню демодизи развернутым только активный пункт меню
Материал из Umicms
Необходимо отображать в меню развернутым только активный раздел
Для решения данной задачи необходимо добавить в файл 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>

