Значит не правильно передаётся идентификатор страницы.
Напишите |<xsl:value-of select="page/@id"/>| и посмотрите, что будет на странице - скорее всего будут пустые скобки.
Можно попробовать слегка доработать предлагаемый в документации код:
1. теперь не нужно передавать идентификатор страницы
2. не будет ошибки, если вдруг не удастся получить идентификатор страницы
public function counter($current_page_id = false) {
$current_page_id = $current_page_id ? $current_page_id : cmsController::getInstance()->getCurrentElementId();
$hierarchy = umiHierarchy::getInstance();
$element=$hierarchy->getElement($current_page_id);
if($element){
$temp_count=$element->getValue("kolichestvo_prosmotrov");
++$temp_count;
$element->setValue("kolichestvo_prosmotrov",$temp_count);
$element->commit();
return $element->getValue("kolichestvo_prosmotrov");
}
}
Для понимания нужен некоторый навык в XSLT.
Вывод метода меняем на следующее:
<xsl:value-of select="document(concat('udata://custom/counter/',page/@id))/udata" />
Если не заработало, то дорабатываем метод:
public function counter($current_page_id = false) {
$current_page_id = $current_page_id ? $current_page_id : cmsController::getInstance()->getCurrentElementId();
$hierarchy = umiHierarchy::getInstance();
$element=$hierarchy->getElement($current_page_id);
if($element){
$temp_count=$element->getValue("kolichestvo_prosmotrov");
++$temp_count;
$element->setValue("kolichestvo_prosmotrov",$temp_count);
$element->commit();
return $element->getValue("kolichestvo_prosmotrov");
}else{
return "Страница не найдена";
}
}
Если вывело "Страница не найдена", то меняем вывод на <xsl:value-of select="document('udata://custom/counter/')/udata" />