Вход Регистрация
Файл: sys/plugins/classes/widgets.class.php
Строк: 39
<?php

class widgets
{
    static public function 
exists($name)
    {
        return !!
self::getWidgetByName($name);
    }

    
/**
     * @param bool $nocache
     * @return widget[]
     */
    
static public function getAllWidgets($nocache = false)
    {
        static 
$widgets = false;
        if (!
$widgets && !$nocache) {
            
$widgets = cache::get('widgets');
        }

        if (!
$widgets) {
            
$widgets = array();
            
$widgets_path = H . '/sys/widgets';
            
$od = opendir($widgets_path);
            while (
$el_name = readdir($od)) {
                if (
$el_name{0} === '.') {
                    continue;
                }
                if (!
is_dir($widgets_path . '/' . $el_name)) {
                    continue;
                }
                if (!
is_file($widgets_path . '/' . $el_name . '/config.ini')) {
                    continue;
                }
                try {
                    
$widget = new widget($widgets_path . '/' . $el_name);
                    
$widgets[] = $widget;
                } catch (
Exception $e) {

                }
            }
            
closedir($od);
            
cache::set('widgets', $widgets, 60);
        }
        return 
$widgets;
    }

    
/**
     * @param $name
     * @return null|widget
     */
    
static public function getWidgetByName($name){
        
$widgets = self::getAllWidgets();
        foreach(
$widgets AS $widget){
            if (
$widget->getName() === $name){
                return 
$widget;
            }
        }
        return 
null;
    }
}
Онлайн: 3
Реклама