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

class Plugins
{
    private 
$file_headers = array(
            
'Name'        => 'Plugin Name',
            
'PluginURI'    => 'Plugin URI',
            
'Description' => 'Description',
            
'Author'      => 'Author',
            
'AuthorURI'   => 'Author URI',
            
'Version'     => 'Version',
            
'Status'      => 'Status',
            
'Tags'        => 'Tags',
            
'TextDomain'  => 'Text Domain',
            
'DomainURI'  => 'Domain Path',
      );

    public function 
init($optionType
    {
        
$action = (!empty($_GET['action']) ? $_GET['action'] : ''); 
        
$elid = (!empty($_GET['elid']) ? $_GET['elid'] : ''); 
        
        if (
$action == 'activation') {
            
ds_plugin_activate($elid);
            
redirect('?module=' ds_admin_get_page()); 
        }

        if (
$action == 'deactivation') {
            
ds_plugin_deactivate($elid);
            
redirect('?module=' ds_admin_get_page()); 
        }

        if (
$action == 'remove') {
            if (!
is_plugin_active$elid )) {
                
ds_plugin_remove($elid);
                
redirect('?module=' ds_admin_get_page()); 
            }
        }
    }
    
    public function 
getButtonRemove($btn$post
    {
        
$plugin $post['slug'];

        if (
is_plugin_active$plugin )) {
            
$btn['class'] = 'btn-sm btn-danger hidden-xs disabled'
        }
        
        return 
$btn
    }

    public function 
getButtonActivation($btn$post
    {
        
$plugin $post['slug'];

        if (
is_plugin_active($plugin)) {
            
$link = array(
                
'url' => '?module=plugins&action=deactivation&elid=%slug%'
                
'icon' => 'fa fa-stop'
                
'class' => 'btn-sm btn-secondary hidden-xs'
                
//'name' => __('Отключить'), 
            
); 
        }

        else {
            
$link = array(
                
'url' => '?module=plugins&action=activation&elid=%slug%'
                
'icon' => 'fa fa-play'
                
'class' => 'btn-sm btn-primary hidden-xs'
                
//'name' => __('Включить'), 
            
); 
        }
        
        return 
array_merge($btn$link); 
    }

    public function 
listPlugins($optionType ''
    {
        
$path PATH_PLUGINS DIRECTORY_SEPARATOR
        
$opdirbase opendir($path);
        
        
$plugins = array(); 
        
$sumHtml  = array(); 

        
$registered ds_plugins();

        if (!empty(
$registered)) {
            foreach(
$registered AS $key => $plugin) {
                if (!
is_dir($path $key)) {
                    
ds_plugin_remove($key); 
                    unset(
$registered[$key]);
                }
            }
        }
        
        while (
$filebase readdir($opdirbase)) 
        {
            if (
is_dir($path $filebase) && !preg_match('/[.]{1,2}/'$filebase)) {
                  if (
is_file($path $filebase DIRECTORY_SEPARATOR $filebase '.php')) {
                    if (isset(
$registered[$filebase])) {
                        
$plugins[] = $registered[$filebase];
                    } else {
                        
$plugins[] = $this->getPluginInfo($path $filebase$filebase); 
                    }
                  }
            }
        }
        
        return 
$plugins
    }


    public function 
getPluginInfo($path$file
    {
        
$registered ds_plugins();

        
$info = array(); 
        if (
is_file($path DIRECTORY_SEPARATOR $file '.php')) {
            
$plugin file_get_contents($path DIRECTORY_SEPARATOR $file '.php'); 
            
            foreach(
$this->file_headers AS $key => $value) {
                if (
preg_match('|' $value ' ?: ?(.*)$|mi'$plugin$matches)) {
                    
$info[$key] = text($matches[1]);
                }
            }
        }

        
$info['script'] = $file DIRECTORY_SEPARATOR $file '.php'
        
        
$info['slug'] = text($file);
        
$info['Full'] = (!empty($info['Description']) ? $info['Description'] . '<br />' '');
        
        
$more = array(); 
        if (!empty(
$info['Version'])) {
            
$more[] = __('Версия') . ': ' $info['Version'];
        }

        if (!empty(
$info['Status'])) {
            
$more[] = __('Статус') . ': ' $info['Status'];
        }

        if (!empty(
$info['Author'])) {
            if (!empty(
$info['AuthorURI'])) {
                
$more[] = __('Автор') . ': ' '<a target="_blank" href="' $info['PluginURI'] . '">' $info['Author'] . '</a>';
            } else {
                
$more[] = __('Автор') . ': ' $info['Author'];
            }
        }

        if (!empty(
$info['PluginURI'])) {
            
$more[] = '<a target="_blank" href="' $info['PluginURI'] . '">' __('Подробнее') . '</a>';
        }
        
        
$info['Full'] .= join(' | '$more); 
        
        if (empty(
$info['Name'])) {
            
$info['Name'] = substr($pathstrrpos($path'/') + 1); 
        }
        
        if (!isset(
$registered[$file])) {
            
$info['active'] = 0
            
ds_plugin_add($file$info);
        }

        return 
$info;
    }
}
Онлайн: 1
Реклама