コード例 #1
0
 function install()
 {
     include 'scripts/create-database.php';
     include 'scripts/create-configuration.php';
     $manager = new pluginManager();
     $manager->setup();
 }
コード例 #2
0
ファイル: plugin_manager.php プロジェクト: fg-ok/codev
 protected function display()
 {
     $this->smartyHelper->assign('activeGlobalMenuItem', 'Admin');
     if (Tools::isConnectedUser()) {
         if (!$this->session_user->isTeamMember(Config::getInstance()->getValue(Config::id_adminTeamId))) {
             $this->smartyHelper->assign('accessDenied', TRUE);
         } else {
             $action = filter_input(INPUT_POST, 'action');
             if (empty($action)) {
                 $action = 'display';
             }
             $pm = PluginManager::getInstance();
             // === ACTIONS =====================================================
             if ('enablePlugin' == $action) {
                 $pluginName = Tools::getSecurePOSTStringValue('pluginName');
                 $pm->enablePlugin($pluginName);
             } else {
                 if ('disablePlugin' == $action) {
                     $pluginName = Tools::getSecurePOSTStringValue('pluginName');
                     $pm->disablePlugin($pluginName);
                 } else {
                     if ('discoverNewPlugins' == $action) {
                         try {
                             Tools::createClassMap();
                             $pm->discoverNewPlugins();
                             //$this->smartyHelper->assign('infoMsg', T_('Found xx new plugins !'));
                         } catch (Exception $e) {
                             $this->smartyHelper->assign('errorMsg', T_('Could not create classmap: ') . $e->getMessage());
                         }
                     }
                 }
             }
             // === DISPLAY =====================================================
             // set values to display plugin table
             $plugins = $pm->getPlugins();
             $formattedPlugins = array();
             foreach ($plugins as $plugin) {
                 $className = $plugin['className'];
                 $formated_domains = array();
                 foreach ($plugin['domains'] as $domName) {
                     array_push($formated_domains, T_($domName));
                 }
                 //sort($formated_domains);
                 $formated_categories = array();
                 foreach ($plugin['categories'] as $catName) {
                     array_push($formated_categories, T_($catName));
                 }
                 //sort($formated_categories);
                 $formattedPlugins[$className] = array('name' => $plugin['displayedName'], 'status' => $plugin['status'], 'statusName' => pluginManager::getStatusName($plugin['status']), 'domains' => implode(',<br>', $formated_domains), 'categories' => implode(',<br>', $formated_categories), 'version' => $plugin['version'], 'description' => $plugin['description']);
             }
             $this->smartyHelper->assign('availablePlugins', $formattedPlugins);
         }
     }
 }
コード例 #3
0
ファイル: setup.php プロジェクト: Julien-SIMON/GobelinsLab
 $objectM = new objectManager();
 $groupM = new groupManager();
 $pluginM = new pluginManager();
 if ($accessM->getId($objectM->getId(getTableId('core_groups'), $groupM->getId('admins')), $objectM->getId(getTableId('core_plugins'), $pluginM->getId('core'))) == 0) {
     $accessM->create($objectM->getId(getTableId('core_groups'), $groupM->getId('admins')), $objectM->getId(getTableId('core_plugins'), $pluginM->getId('core')), 100);
 }
 if ($accessM->getId($objectM->getId(getTableId('core_groups'), $groupM->getId('members')), $objectM->getId(getTableId('core_plugins'), $pluginM->getId('core'))) == 0) {
     $accessM->create($objectM->getId(getTableId('core_groups'), $groupM->getId('members')), $objectM->getId(getTableId('core_plugins'), $pluginM->getId('core')), 20);
 }
 if ($accessM->getId($objectM->getId(getTableId('core_groups'), $groupM->getId('guests')), $objectM->getId(getTableId('core_plugins'), $pluginM->getId('core'))) == 0) {
     $accessM->create($objectM->getId(getTableId('core_groups'), $groupM->getId('guests')), $objectM->getId(getTableId('core_plugins'), $pluginM->getId('core')), 10);
 }
 // Add default job
 echo ' - Fill jobs table<BR>';
 $jobM = new jobManager();
 $pluginM = new pluginManager();
 if ($jobM->getId($pluginM->getId('core'), 'translate') == 0) {
     $jobM->create($pluginM->getId('core'), 'translate');
 }
 if ($jobM->getId($pluginM->getId('core'), 'backup') == 0) {
     $jobM->create($pluginM->getId('core'), 'backup');
 }
 if ($jobM->getId($pluginM->getId('core'), 'upkeep') == 0) {
     $jobM->create($pluginM->getId('core'), 'upkeep');
 }
 // Add default parameter
 echo ' - Fill parameters table<BR>';
 $parameterM = new parameterManager();
 if ($parameterM->getId(getPluginId('core'), 'DEFAULT_GROUP') == 0) {
     $parameterM->create(getPluginId('core'), 'DEFAULT_GROUP', 'members', 'members');
 }
コード例 #4
0
ファイル: plugin.php プロジェクト: KonzolozZ/e107
 *
 */
require_once "../class2.php";
if (!getperms("Z")) {
    e107::redirect('admin');
    exit;
}
e107::coreLan('plugin', true);
$e_sub_cat = 'plug_manage';
define('PLUGIN_SHOW_REFRESH', FALSE);
define('PLUGIN_SCAN_INTERVAL', !empty($_SERVER['E_DEV']) ? 0 : 360);
global $user_pref;
require_once e_HANDLER . 'plugin_class.php';
require_once e_HANDLER . 'file_class.php';
$plugin = new e107plugin();
$pman = new pluginManager();
define("e_PAGETITLE", ADLAN_98 . " - " . $pman->pagetitle);
if (e_AJAX_REQUEST) {
    print_a($_POST);
    print_a($_GET);
    exit;
}
if (e_AJAX_REQUEST && isset($_GET['action'])) {
    if ($_GET['action'] == 'download') {
        $string = base64_decode($_GET['src']);
        parse_str($string, $p);
        //	print_a($p);
        //	$mp = $pman->getMarketplace();
        //	$mp->generateAuthKey($e107SiteUsername, $e107SiteUserpass);
        // Server flush useless. It's ajax ready state 4, we can't flush (sadly) before that (at least not for all browsers)
        echo "<pre>Connecting...\n";
コード例 #5
0
 function installConfigAndDatabase($siteName, $siteDefaultLanguage, $dbDriverName, $databaseHost, $databaseUser, $databasePassword, $databaseName, $databasePrefix, $adminLogin, $adminPassword, $adminMail)
 {
     DatabaseDriverManager::findAllDriversInDirectory('core/dbdrivers');
     $dbDriver = DatabaseDriverManager::loadDriver($dbDriverName);
     if (!isError($dbDriver)) {
         $dbDriver->connect($databaseHost, $databaseUser, $databasePassword, $databaseName);
         $dbDriver->setPrefix($databasePrefix);
         $pluginManager = new pluginManager($this->_pluginAPI);
         $pluginManager->findAllPlugins('interface/core-plugins/');
         // an hack for viewPage to be first
         $foundPlugins = array_reverse($pluginManager->getAllFoundPlugins());
         foreach ($foundPlugins as $plugin) {
             if (is_a($plugin, 'InstallablePlugin')) {
                 $a = $plugin->install($this->_pluginAPI, $dbDriver, $siteDefaultLanguage);
                 if (isError($a)) {
                     var_dump($a);
                     die('Something went wrong');
                 }
             }
         }
         $userM = new userManager($dbDriver);
         $admin = $userM->newUser();
         $a = $admin->initFromArray(array('login' => $adminLogin, 'password' => md5($adminPassword), 'email' => $adminMail));
         $userM->addUserToDatabase($admin);
         $group = $userM->newGroup();
         $group->initFromArray(array('generic_name' => 'administrator', 'generic_description' => 'The admin users'));
         $userM->addGroupToDatabase($group);
         $group->assignPermission('edit_admin', true);
         $admin->addToGroup($group);
         $group = $userM->newGroup();
         $group->initFromArray(array('generic_name' => 'normaluser', 'generic_description' => 'All users'));
         $userM->addGroupToDatabase($group);
         $group->assignPermission('edit_admin', false);
         $admin->addToGroup($group);
         $group = $userM->newGroup();
         $group->initFromArray(array('generic_name' => 'anonymous', 'generic_description' => 'Not logged in'));
         $userM->addGroupToDatabase($group);
         $group->assignPermission('edit_admin', false);
         $configContents = '<?php' . PHP_NL . PHP_NL;
         $configContents .= '$configItems[\'/databases/driver\']=\'' . $dbDriverName . '\';' . PHP_NL;
         $configContents .= '$configItems[\'/databases/host\']=\'' . $databaseHost . '\';' . PHP_NL;
         $configContents .= '$configItems[\'/databases/password\']=\'' . $databasePassword . '\';' . PHP_NL;
         $configContents .= '$configItems[\'/databases/user\']=\'' . $databaseUser . '\';' . PHP_NL;
         $configContents .= '$configItems[\'/databases/database\']=\'' . $databaseName . '\';' . PHP_NL;
         $configContents .= '$configItems[\'/databases/table_prefix\']=\'' . $databasePrefix . '\';' . PHP_NL . PHP_NL;
         $configContents .= '$configItems[\'/site/title\']=\'' . $siteName . '\';' . PHP_NL;
         $configContents .= '$configItems[\'/site/default_language\']=\'' . $siteDefaultLanguage . '\';' . PHP_NL;
         $configContents .= '$configItems[\'/site/enableUsers\']=true;' . PHP_NL;
         $configContents .= '$configItems[\'/languages/' . $siteDefaultLanguage . '\']=\'' . $siteDefaultLanguage . '\';' . PHP_NL;
         $configContents .= '?>';
         $c = @fopen('config.php', 'w');
         if ($c !== false) {
             fwrite($c, $configContents);
             fclose($c);
             header('Location: index.php');
         } else {
             $sm =& $this->_pluginAPI->getSmarty();
             $sm->assign('CONFIG_CONTENT', htmlspecialchars($configContents));
             $sm->display('installer/save_config_manual.tpl');
         }
     } else {
         var_dump($dbModule);
     }
 }
コード例 #6
0
ファイル: core.library.php プロジェクト: KasaiDot/Dashboard2
    $manager->handleAction($action, $args);
    exit;
}
if (!$config->get('installed')) {
    $lang = new language(_DEFAULT_LANGUAGE_, _DEFAULT_SITE_, true);
    $theme =& new theme();
    $theme->showError(_OFFLINE_MESSAGE_, 3);
}
if ($config->get('multiLanguageSupport') && count($args)) {
    $language = array_shift($args);
} else {
    $language = _DEFAULT_LANGUAGE_;
}
$lang = new language($language, _DEFAULT_SITE_, true);
$user = new currentUser();
$manager = new pluginManager();
$tree = new pageTree($user, $manager, $language, _DEFAULT_SITE_);
if (count($args) > 0) {
    // First check our pretty URL hashes
    $url = implode('/', $args);
    $url = preg_replace('/\\.([a-z0-9]+)$/i', '', $url);
    if (isset($GLOBALS['HASH_IDS'][$url])) {
        $id = $GLOBALS['HASH_IDS'][$url];
        $manager->handleAction('view', array($id));
        exit;
    }
    // Secondly handle an action
    $action = array_shift($args);
    $manager->handleAction($action, $args);
    exit;
} else {
コード例 #7
0
// ------------------------------------------------------------------- //
if (!secFile(__FILE__, 90)) {
    return;
}
// ------------------------------------------------------------------- //
switch ($a) {
    case 'create_form':
        echo '
<div class="alert alert-info" role="alert">
	' . _('#core#_#23#') . '
</div>

<p>
	<select name="job">
    	';
        $pluginM = new pluginManager();
        $jobM = new jobManager();
        foreach ($init->pluginsIndex as $plugin) {
            foreach (scandir('plugins/' . $plugin) as $file) {
                if (!is_dir('plugins/' . $plugin . '/' . $file) && preg_match('#^task_.*_loader.php$#', $file) && $jobM->getId($pluginM->getId($plugin), substr($file, 5, strlen($file) - 16)) == 0) {
                    echo '<option value="' . $pluginM->getId($plugin) . ';' . substr($file, 5, strlen($file) - 16) . '">' . $file . '</option>';
                }
            }
        }
        echo '
	</select>
</p>

<button type="button" class="btn btn-primary" onClick="popupFormSubmit(\'index.php?m=a&g=core&p=admin_jobs&a=create\',$(\'form#popupForm\').serialize());">
Ajouter
</button>
コード例 #8
0
    case 'setupJsonList':
        $dataArray['data'] = array();
        $q0 = get_link()->prepare("SELECT \n\t\t\t\t\t\t\t\t\tg.id AS ID,\n\t\t\t\t\t\t\t\t\tg.name AS NAME,\n\t\t\t\t\t\t\t\t\tg.version AS VERSION,\n\t\t\t\t\t\t\t\t\tg.activated AS ACTIVATED,\n\t\t\t\t\t\t\t\t\tg.created_date AS CREATED_DATE,\n\t\t\t\t\t\t\t\t\tg.created_id AS CREATED_ID,\n\t\t\t\t\t\t\t\t\tg.edited_date AS EDITED_DATE,\n\t\t\t\t\t\t\t\t\tg.edited_id AS EDITED_ID,\n\t\t\t\t\t\t\t\t\tg.deleted_date AS DELETED_DATE,\n\t\t\t\t\t\t\t\t\tg.deleted_id AS DELETED_ID\n\t\t\t\t\t\t\t\tFROM \n\t\t\t\t\t\t\t\t" . get_ini('BDD_PREFIX') . "core_plugins g\n\t\t\t\t\t\t\t\tWHERE \n\t\t\t\t\t\t\t\tg.deleted_date=0\n\t\t\t\t\t\t\t\tORDER BY g.name ASC");
        $q0->execute();
        while ($r0 = $q0->fetch(PDO::FETCH_OBJ)) {
            array_push($dataArray['data'], array("ID" => $r0->ID, "NAME" => $r0->NAME, "VERSION" => $r0->VERSION, "ENABLE" => $r0->ACTIVATED, "ACTION" => '<a href="#" data-toggle="modal" data-target="#popup" onClick="insertLoader(\'#popupContent\');setPopupTitle(\'Modifier le plugin\');$(\'#popupContent\').load(\'index.php?m=a&g=core&p=admin_plugins&a=updateForm&id=' . $r0->ID . '\');"><span class="iconfa-edit-write"> Modifier</span></a>'));
        }
        $q0->closeCursor();
        echo json_encode($dataArray);
        break;
    case 'availableJsonList':
        $dir = 'plugins';
        $dataArray['data'] = array();
        if (is_dir($dir) && ($handle = opendir($dir))) {
            $blacklist = array('.', '..');
            $pluginM = new pluginManager();
            while ($file = readdir($handle)) {
                if (!in_array($file, $blacklist) && $pluginM->getId($file) == 0 && !is_file($dir . '/' . $file) && $file != 'sample') {
                    array_push($dataArray['data'], array("NAME" => $file, "ACTION" => '<a href="#" data-toggle="modal" data-target="#popup" onClick="insertLoader(\'#popupContent\');setPopupTitle(\'Ajouter le plugin\');$(\'#popupContent\').load(\'index.php?m=a&g=core&p=admin_plugins&a=setupForm&name=' . $file . '\');"><span class="iconfa-edit-write"> Setup</span></a>'));
                }
            }
            closedir($handle);
        }
        echo json_encode($dataArray);
        break;
        // Display Html table container
    // Display Html table container
    default:
        echo '
<div class="box">
	<div class="box-header">
コード例 #9
0
 function localAsset($name)
 {
     if (file_exists(_BASE_PLUGINS_ . pluginManager::classToName(get_class($this)) . '/assets/' . $name)) {
         return '/core/plugins/' . pluginManager::classToName(get_class($this)) . '/assets/' . $name;
     }
     return $name;
 }