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

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

function 
cpComponentHasConfig($component){

    return 
file_exists('components/'.$component.'/backend.php');

}

function 
cpComponentCanRemove($id){

    
$inCore cmsCore::getInstance();

    
$com $inCore->getComponent($id);

    if(
$com['system']) { return false; }

    global 
$adminAccess;

    return 
cmsUser::isAdminCan('admin/com_'.$com['link'], $adminAccess);

}

function 
applet_components(){

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

    global 
$_LANG;

    global 
$adminAccess;
    if (!
cmsUser::isAdminCan('admin/components'$adminAccess)) { cpAccessDenied(); }

    
$GLOBALS['cp_page_title'] = $_LANG['AD_COMPONENTS'];
     
cpAddPathway($_LANG['AD_COMPONENTS'], 'index.php?view=components');

    
$do cmsCore::request('do''str''list');

    
$id   cmsCore::request('id''int');
    
$link cmsCore::request('link''str''');
    if(
$link){
        
$_REQUEST['id'] = $id $inCore->getComponentId($link);
    }

    if (
$do == 'show'){

        
$com cpComponentById($id);
        
//check access for component
        
if (!cmsUser::isAdminCan('admin/com_'.$com$adminAccess)) { echo 0; exit; }

        
dbShow('cms_components'$id);
        echo 
'1'; exit;

    }

    if (
$do == 'hide'){

        
$com cpComponentById($id);
        
//check access for component
        
if (!cmsUser::isAdminCan('admin/com_'.$com$adminAccess)) { echo 0; exit; }

        
dbHide('cms_components'$id);
        echo 
'1'; exit;

    }

    if (
$do == 'config'){

        
$com cpComponentById($id);
        
//check access for component
        
if (!cmsUser::isAdminCan('admin/com_'.$com$adminAccess)) { cpAccessDenied(); }

        if (
$com) {

            
$file PATH.'/admin/components/'.$com.'/backend.php';

            if (
file_exists($file)){
                
cmsCore::loadLanguage('components/'.$com);
                
cmsCore::loadLanguage('admin/com_'.$com);
                include 
$file; return;
            } else {
                
cmsCore::redirect('index.php?view=components');
            }

        } else {
            
cmsCore::redirect('index.php?view=components');
        }

    }

    if (
$do == 'list'){
        
$toolmenu = array();
        
$toolmenu[0]['icon']  = 'install.gif';
        
$toolmenu[0]['title'] = $_LANG['AD_INSTALL_COMPONENTS'];
        
$toolmenu[0]['link']  = '?view=install&do=component';

        
$toolmenu[1]['icon']  = 'help.gif';
        
$toolmenu[1]['title'] = $_LANG['AD_HELP'];
        
$toolmenu[1]['link']  = '?view=help&topic=components';

        
cpToolMenu($toolmenu);

        
$component cmsCore::request('installed''str''');

        if (
$component){

            
$task cmsCore::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') ? $_LANG['AD_IS_INSTALL'] : $_LANG['AD_IS_UPDATE'];
                echo 
'<div style="color:green;margin-top:12px;margin-bottom:5px;">';
                echo 
'<p>'.$_LANG['AD_COMPONENT'].' <strong>"'.$_component['title'].'"</strong> '.$task_str.'.</p>';
                if (isset(
$_component['modules']) && $task == 'install'){
                    if(
is_array($_component['modules'])){
                        echo 
'<p>'.$_LANG['AD_OPT_INSTALL_MODULES'].':</p>';
                        echo 
'<ul>';
                            foreach(
$_component['modules'] as $module=>$title){
                                echo 
'<li>'.$title.'</li>';
                            }
                        echo 
'</ul>';
                    }
                }
                if (isset(
$_component['plugins']) && $task == 'install'){
                    if(
is_array($_component['plugins'])){
                        echo 
'<p>'.$_LANG['AD_OPT_INSTALL_PLAGINS'].':</p>';
                        echo 
'<ul>';
                            foreach(
$_component['plugins'] 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;">'.$_LANG['AD_COMPONENT_IS_DELETED'].'.</div>';
            }

        }

        
$fields = array();
        
$fields[0]['title'] = 'id';               $fields[0]['field'] = 'id'$fields[0]['width'] = '30';
        
$fields[1]['title'] = $_LANG['TITLE']; $fields[1]['field'] = 'title'$fields[1]['width'] = ''$fields[1]['link'] = '?view=components&do=config&id=%id%';
        
$fields[2]['title'] = $_LANG['AD_VERSION']; $fields[2]['field'] = 'version'$fields[2]['width'] = '60';
        
$fields[3]['title'] = $_LANG['AD_ENABLE']; $fields[3]['field'] = 'published'$fields[3]['width'] = '65';
        
$fields[4]['title'] = $_LANG['AD_AUTHOR']; $fields[4]['field'] = 'author'$fields[4]['width'] = '200';
        
$fields[5]['title'] = $_LANG['AD_LINK']; $fields[5]['field'] = 'link'$fields[5]['width'] = '100';

        
$actions = array();
        
$actions[0]['title'] = $_LANG['AD_CONFIG'];
        
$actions[0]['icon']  = 'config.gif';
        
$actions[0]['link']  = '?view=components&do=config&id=%id%';
        
// Функция, которой передается ID объекта, и если она вернет TRUE то только тогда отобразится значок
        
$actions[0]['condition'] = 'cpComponentHasConfig';

        
$actions[1]['title']   = $_LANG['DELETE'];
        
$actions[1]['icon']    = 'delete.gif';
        
$actions[1]['link']    = '?view=install&do=remove_component&id=%id%';
        
$actions[1]['confirm'] = $_LANG['AD_DELETED_COMPONENT_FROM'];
        
// Функция, которой передается ID объекта, и если она вернет TRUE то только тогда отобразится значок
        
$actions[1]['condition'] = 'cpComponentCanRemove';

        
$where '';

        if (
$inUser->id 1){
            foreach(
$adminAccess as $key=>$value){
                if (
mb_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);
    }

}

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