Вход Регистрация
Файл: InstantSocial/uploud/admin/applets/components.php
Строк: 217
<?php
/******************************************************************************/
//                                                                            //
//                             InstantCMS v1.9                                //
//                        http://www.instantcms.ru/                           //
//                                                                            //
//                   written by InstantCMS Team, 2007-2011                    //
//                produced by InstantSoft, (www.instantsoft.ru)               //
//                                                                            //
//                        LICENSED BY GNU/GPL v2                              //
//                                                                            //
/******************************************************************************/

if(!defined('VALID_CMS_ADMIN')) { die('ACCESS DENIED'); }

function 
cpComponentHasConfig($id){
    
$has false;
    
$mod cpComponentById($id);
    if (
$mod) {
        
$file 'components/'.$mod.'/backend.php';
        if (
file_exists($file)){
            
$has true;
        }
    }
    return 
$has;
}

function 
cpComponentCanRemove($id){
    
$inDB cmsDatabase::getInstance();
    return !
$inDB->get_field('cms_components'"id={$id}"'system');
}

function 
applet_components(){

    
$inCore cmsCore::getInstance();
    
$inDB cmsDatabase::getInstance();

    
//check access
    
global $adminAccess;
    if (!
$inCore->isAdminCan('admin/components'$adminAccess)) { cpAccessDenied(); }

    
$GLOBALS['cp_page_title'] = 'Компоненты';
     
cpAddPathway('Компоненты''index.php?view=components');    
    
    if (isset(
$_REQUEST['do'])) { $do $_REQUEST['do']; } else { $do 'list'; }

    if (isset(
$_REQUEST['id'])) { $id = (int)$_REQUEST['id']; } else {
        if (isset(
$_REQUEST['link'])) {
            
$link htmlspecialchars($_REQUEST['link'], ENT_QUOTES);
            
$id $inDB->get_field('cms_components'"link='$link'"'id');
            
$_REQUEST['id'] = $id;
        } else {
            
$id = -1;
        }
    }

    if (
$do == 'show'){
        if (!isset(
$_REQUEST['item'])){
            if (
$id >= 0){ dbShow('cms_components'$id);  }
            echo 
'1'; exit;
        } else {
            
dbShowList('cms_components'$_REQUEST['item']);
            
$inCore->redirectBack();
        }

    }

    if (
$do == 'hide'){
        if (!isset(
$_REQUEST['item'])){
            if (
$id >= 0){ dbHide('cms_components'$id);  }
            echo 
'1'; exit;
        } else {
            
dbHideList('cms_components'$_REQUEST['item']);
            
$inCore->redirectBack();
        }
    }

    if (isset(
$_REQUEST['co'])) { $co $_REQUEST['co']; } else { $co = -1; }

    if (
$do == 'config'){            
        
$com cpComponentById($id);
        
        
//check access for component
        
if (!$inCore->isAdminCan('admin/com_'.$com$adminAccess)) { cpAccessDenied(); }
            
        if (
$com) {
            
$file PATH.'/admin/components/'.$com.'/backend.php';
            
//die($file);
            
if (file_exists($file)){
                include 
$file;
            } else {
                
header('location:index.php?view=components');
            }
        } else {
            
header('location:index.php?view=components');
        }
    
    }
        
    if (
$do == 'list'){
        
$toolmenu = array();
        
$toolmenu[0]['icon'] = 'install.gif';
        
$toolmenu[0]['title'] = 'Установить компонент';
        
$toolmenu[0]['link'] = '?view=install&do=component';

        
$toolmenu[1]['icon'] = 'help.gif';
        
$toolmenu[1]['title'] = 'Помощь';
        
$toolmenu[1]['link'] = '?view=help&topic=components';

        
cpToolMenu($toolmenu);


        
$component $inCore->request('installed''str''');

        if (
$component){

            
$task       $inCore->request('task''str''install');

            if (
$task == 'install' || $task == 'upgrade'){

                if (
is_numeric($component)){ $component $inCore->getComponentById($component); }

                
$inCore->loadComponentInstaller($component);
                
$_component call_user_func('info_component_'.$component);

                
$task_str   = ($task=='install') ? 'установлен' 'обновлен';
                echo 
'<div style="color:green;margin-top:12px;margin-bottom:5px;">';
                echo 
'<p>Компонент <strong>"'.$_component['title'].'"</strong> успешно '.$task_str.'.</p>';
                if (isset(
$_component['modules'])){
                    if(
is_array($_component['modules'])){
                        echo 
'<p>Дополнительно установлены модули:</p>';
                        echo 
'<ul>';
                            foreach(
$_component['modules'] as $module=>$title){
                                echo 
'<li>'.$title.'</li>';
                            }
                        echo 
'</ul>';
                    }
                }
                echo 
'</div>';
            }

            if (
$task == 'remove'){
                echo 
'<div style="color:green;margin-top:12px;margin-bottom:5px;">Компонент удален из системы.</div>';
            }

        }

        
//TABLE COLUMNS
        
$fields = array();

        
$fields[0]['title'] = 'id';            $fields[0]['field'] = 'id';            $fields[0]['width'] = '30';

        
$fields[1]['title'] = 'Название';    $fields[1]['field'] = 'title';        $fields[1]['width'] = '';        $fields[1]['link'] = '?view=components&do=config&id=%id%';

        
$fields[2]['title'] = 'Версия';        $fields[2]['field'] = 'version';        $fields[2]['width'] = '60';

        
$fields[3]['title'] = 'Включен';    $fields[3]['field'] = 'published';        $fields[3]['width'] = '65';

        
$fields[4]['title'] = 'Автор';        $fields[4]['field'] = 'author';        $fields[4]['width'] = '200';
        
        
$fields[5]['title'] = 'Ссылка';        $fields[5]['field'] = 'link';        $fields[5]['width'] = '100';
        
        
//ACTIONS
        
$actions = array();
        
$actions[0]['title'] = 'Настроить';
        
$actions[0]['icon']  = 'config.gif';
        
$actions[0]['link']  = '?view=components&do=config&id=%id%';
        
// Функция, которой передается ID объекта, и если она вернет TRUE то только тогда отобразится значок
        
$actions[0]['condition'] = 'cpComponentHasConfig';
        
        
$actions[1]['title'] = 'Удалить компонент';
        
$actions[1]['icon']  = 'delete.gif';
        
$actions[1]['link']  = '?view=install&do=remove_component&id=%id%';
        
$actions[1]['confirm'] = 'Удалить компонент из системы?';
        
// Функция, которой передается ID объекта, и если она вернет TRUE то только тогда отобразится значок
        
$actions[1]['condition'] = 'cpComponentCanRemove';

        
$where '';

        if (
$inUser->id 1){
            foreach(
$adminAccess as $key=>$value){
                if (
strstr($value'admin/com_')){
                    if (
$where) { $where .= ' OR '; }
                    
$value str_replace('admin/com_'''$value);
                    
$where .= "link='{$value}'";
                }
            }
        }
        
        if (!
$where) { $where 'id>0'; }
            
        
//Print table
        
cpListTable('cms_components'$fields$actions$where);        
    }

}

?>
Онлайн: 2
Реклама