function install() { include 'scripts/create-database.php'; include 'scripts/create-configuration.php'; $manager = new pluginManager(); $manager->setup(); }
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); } } }
$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'); }
* */ 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";
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); } }
$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 {
// ------------------------------------------------------------------- // 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>
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">
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; }