Авторизация

UMI.CMS работа с debug config.ini фильтрация по IP

1. Вывод ошибок. Иногда на UMI CMS при доработке сайта нужно вывести php ошибки, для этого есть config.ini и секция [debug], выставляем нужный нам IP в filter.ip (например filter.ip[] = "91.133.145.234") и работаем.

2. Отображение какой-то информации только администратору. В xslt можно отсеять по пользователю например с помощью такой записи: <xsl:variable name="userType" select="/result/user/@type" />

3. Отображение какой-то информации только определённому IP Иногда при доработке сайта нужно на уровне гостя проверить работу каких то функций или чего то ещё, но при этом не показывать эту информацию остальным, для этого можно создать функцию которая будет сравнивать текущий IP пользователя c указанным в filter.ip и работать через неё в xslt:

public function is_ini_current_ip($template){
    if(!$template) $template = "default";
    
    $this_ip = getServer('REMOTE_ADDR');
    $array_ip_debug = mainConfiguration::getInstance()->get('debug','filter.ip');
    
    list($is_ini_current_ip_true) = def_module::loadTemplates("content/is_ini_current_ip/" . $template, "is_ini_current_ip_true");
    
    $line = array();
    if($this_ip == $array_ip_debug[0]){
        $line['attribute:is_ini_current_ip'] = 1;
    } else{
        $line['attribute:is_ini_current_ip'] = 0;
        $is_ini_current_ip_true = '';
    }
    return def_module::parseTemplate($is_ini_current_ip_true, $line);
}

Обращаться к ней будем так:
<xsl:apply-templates select="document('udata://custom/is_ini_current_ip/')/udata" />, ищем атрибут is_ini_current_ip и по нему определяем совпадает IP в config.ini с нашим или нет.

Если работаем в TPL, то создаём в папке content папку is_ini_current_ip в ней создаём файл default.tpl в нём пишем:

<?php
$FORMS = Array();
$FORMS['is_ini_current_ip_true'] = <<<END
<div class="is_ip">текст</div>
END;
?>

По отладке custom методов будет также полезно

[ Saitadmin.ru || с 2006 по текущий год || Санкт-Петербург ]