Вход Регистрация
Файл: DESURE-dcms-f12de01ac63e/sys/plugins/classes/menu_ini.class.php
Строк: 73
<?php

/**
 * UI. Меню /sys/ini/menu.*.ini
 */
class menu_ini {

    public 
$icons true// отображение иконок меню    
    
public $menu_arr = array(); // загруженный INI файл меню в массив
    
protected $_listings = array();
    protected 
$_listing;
    protected 
$_values = array(); // переменные, доступные в строках меню

    
function __construct($menu_name false) {
        if (
$menu_name) {
            
$this->menu_load($menu_name);
        }
        
$this->_listings[] = $this->_listing = new listing();
    }

    protected function 
menu_load($menu_name) {
        if ((
$menu_arr ini::read('/sys/ini/menu.' $menu_name '.ini'true)) !== false) {
            
$this->menu_arr $menu_arr;
        } else {
            
$post $this->_listing->post();
            
$post->icon('err');
            
$post->title __('Ошибка загрузки меню');
        }
    }

    protected function 
processing() {
        global 
$user;
        foreach (
$this->menu_arr as $key => $value) {

            if (!empty(
$value['razdel']) && $this->_listing->count()) {
                
$this->_listings[] = $this->_listing = new listing();
            }

            if (
$user->group < @$value['group']) {
                continue;
            }
            if (!empty(
$value['for_vip']) && !$user->is_vip) {
                continue;
            }
            
$post $this->_listing->post();

            if (empty(
$value['razdel'])) {
                
$post->url text::toValue(@$this->value($value['url']));
            } else {
                
$post->highlight true;
            }

            
$post->title __($key);

            if (
$this->icons && !empty($value['icon'])) {
                
$post->icon($value['icon']);
            }
        }
    }

    protected function 
value($str) {
        if (!
$this->_values)
            return 
$str;
        return 
preg_replace('#{$(.+?)}#e''$this->_values[\1]'$str);
    }

    public function 
display() {
        
$this->processing();
        foreach (
$this->_listings AS $listing)
            
$listing->display();
    }

    public function 
value_add($name$value) {
        
$this->_values[$name] = $value;
    }

}
Онлайн: 1
Реклама