Отключение вывода блока Права доступа в режиме редактирования страницы

Материал из Umicms
Перейти к:навигация, поиск

Задача. В административной части, при редактировании страниц модуля "Каталог", отключить вывод группы "Права доступа" для пользователей, которые не входят в группу "Супервайзеры".

Решение. Решение в данном случае достаточно простое, необходимо в папку \styles\skins\mac\data\modules\catalog\ добавить файл form.modify.custom.xsl следующего содержания:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet SYSTEM "ulang://common">
  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:umi="http://www.umi-cms.ru/TR/umi" xmlns:php="http://php.net/xsl" >
    <xsl:template match="data[@type = 'form' and (@action = 'modify' or @action = 'create')]">
      <form method="post" action="do/" enctype="multipart/form-data">
        <input type="hidden" name="referer" value="{/result/@referer-uri}" id="form-referer" />
        <input type="hidden" name="domain" value="{$domain-floated}"/>
        <xsl:apply-templates mode="form-modify" />
        <xsl:if test="document(concat('uobject://', $current-user-id, '.groups'))/udata/property/value/item[@guid = 'users-users-15']">
          <xsl:apply-templates select="page" mode="permissions" />
        </xsl:if>
        <xsl:if test="@action = 'modify' and count(page) = 1">
          <xsl:apply-templates select="document(concat('udata://backup/backup_panel/', page/@id))/udata" />
        </xsl:if>
      </form>
    </xsl:template>
  </xsl:stylesheet>

в итоге, для модуля "Каталог" мы переназначили шаблон, который находится в файле \styles\skins\mac\data\form.modify.xsl, т.е. добавили проверку на принадлежность пользователя к группе "Супервайзеры":

<xsl:if test="document(concat('uobject://', $current-user-id, '.groups'))/udata/property/value/item[@guid = 'users-users-15']">
    <xsl:apply-templates select="page" mode="permissions" />
</xsl:if>

Глобальная переменная $current-user-id - определена в файле \styles\skins\mac\main.xsl