View file mooSocial v2.3.0 - PHP Social Network/upload/app/Controller/Component/QuickSettingsComponent.php

File size: 3.11Kb
<?php

/**
 * mooSocial - The Web 2.0 Social Network Software
 * @website: http://www.moosocial.com
 */
 
App::uses('Component', 'Controller');

class QuickSettingsComponent extends Component 
{
    public function run( &$controller, $module = array(), $id = null)
    {
        $this->Setting = ClassRegistry::init('Setting');
        $this->SettingGroup = ClassRegistry::init('SettingGroup');
        $setting_groups = $settings = null;
        
        if($module != null)
        {
            $module_id = array();
            foreach($module as $item)
            {
                $module_id[] = array("module_id" => $item);
            }
            
            //group setting
            $setting_groups = $this->SettingGroup->find('all', array(
                'conditions' => array(
                    'OR' => $module_id
                )
            ));
        }

        //settings
        $settingGuides = array();
        if((int)$id < 1)
        {
            $groupId = array();
            if($setting_groups != null)
            {
                foreach($setting_groups as $setting_group)
                {
                    $setting_group = $setting_group['SettingGroup'];
                    $groupId[] = $setting_group['id'];
                    $settingGuides[] = $this->getSettingGuide($setting_group['module_id']);
                }
                $settings = $this->Setting->find('all', array(
                    'conditions' => array('group_id' => $groupId),
                ));
            }
        }
        else 
        {
            $settings = $this->Setting->find('all', array(
                'conditions' => array('group_id' => $id),
            ));
            if($setting_groups != null)
            {
                foreach($setting_groups as $setting_group)
                {
                    $setting_group = $setting_group['SettingGroup'];
                    if($setting_group['id'] == $id)
                    {
                        $settingGuides[] = $this->getSettingGuide($setting_group['module_id']);
                        break;
                    }
                }
            }
        }
        
        $controller->set('setting_groups', $setting_groups);
        $controller->set('settings', $settings);
        $controller->set('settingGuides', $settingGuides);
        $controller->set('acive_group', $id);
    }
    
    public function install() {}
    
    public function upgrade() {}
    
    public function uninstall() {}
    
    private function getSettingGuide($key)
    {
        $settingGuide = '';
        $setupPath = sprintf(PLUGIN_FILE_PATH, $key, $key);
        if ( file_exists($setupPath) )
        {
            require_once($setupPath);
            $classname = $key.'Plugin';
            if(class_exists($classname))
            {
                $cl = new $classname();
                if(method_exists($classname, 'settingGuide'))
                {
                    $settingGuide = $cl->settingGuide();
                }
            }
        }
        return $settingGuide;
    }
}