имеем шаблон
<xsl:template match="/result[@method = 'category'][count(/result/parents/page) = 1]">
<div umi:element-id="{$document-page-id}" umi:field-name="descr" umi:empty="&empty-page-content;">
<xsl:value-of select=".//property[@name = 'descr']/value" disable-output-escaping="yes" />
</div>
<xsl:apply-templates select="document(concat('udata://custom/getCatalogObjects/', page/@id))/udata" />
</xsl:template>
И собственно функция
public function getCatalogObjects($categoryId = false, $template = 'getCatalogObjects', $per_page = 12) {
self::initFilterList();
// Выясняем какая сортировка применена
$asc = (isset($_GET['asc']) && ($_GET['asc'] == "false")) ? 0 : 1;
$sort = isset($_GET['sort']) ? $_GET['sort'] : "h1";
$objects = self::getFilteredItems($this->FILTER_LIST, $categoryId, $per_page, $sort, $asc);
if($objects->length != 0) {
return self::parseTpl($objects, $template, $per_page);
} else {
return "Товары с указанными характеристиками не найдены.";
}
}
Добавление в которую
def_module::setHeader("asd");
или
$controller = cmsController::getInstance();
$controller->currentHeader = $h1;
Не приводит к желаемому результату.
Может вообще не правильно изначальный подход, перенести это в глобальный кастом, если все это будет перенесено в кастом самого модуля?
Просто саму работу с фильтрами делал не я, мне хочется сделать это как-то по человечески.
Думаю, имеет смысл вынести в custom модуля catalog.
По поводу header получается следующий код:
<title><xsl:apply-templates select="/result" mode="title" /></title>
Далее:
<xsl:template match="result" mode="title"><xsl:value-of select="@header" /></xsl:template>
<xsl:template match="result[@module = 'catalog' and @method = 'category'][count(/result/parents/page) = 1]" mode="title">
<xsl:apply-templates select="document('udata://catalog/getCategoryTitle/')/udata" />
</xsl:template>
В кастоме модуля каталог определяете метод getCategoryTitle, в котором формируете новый заголовок.