本文整理汇总了PHP中Plugin::find方法的典型用法代码示例。如果您正苦于以下问题:PHP Plugin::find方法的具体用法?PHP Plugin::find怎么用?PHP Plugin::find使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Plugin
的用法示例。
在下文中一共展示了Plugin::find方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: glpiautoload
function glpiautoload($classname)
{
global $DEBUG_AUTOLOAD, $CFG_GLPI;
static $notfound = array();
// empty classname or non concerted plugin
if (empty($classname) || is_numeric($classname)) {
return FALSE;
}
$dir = GLPI_ROOT . "/inc/";
//$classname="PluginExampleProfile";
if ($plug = isPluginItemType($classname)) {
$plugname = strtolower($plug['plugin']);
$dir = GLPI_ROOT . "/plugins/{$plugname}/inc/";
$item = strtolower($plug['class']);
// Is the plugin activate ?
// Command line usage of GLPI : need to do a real check plugin activation
if (isCommandLine()) {
$plugin = new Plugin();
if (count($plugin->find("directory='{$plugname}' AND state=" . Plugin::ACTIVATED)) == 0) {
// Plugin does not exists or not activated
return FALSE;
}
} else {
// Standard use of GLPI
if (!in_array($plugname, $_SESSION['glpi_plugins'])) {
// Plugin not activated
return FALSE;
}
}
} else {
// Is ezComponent class ?
$matches = array();
if (preg_match('/^ezc([A-Z][a-z]+)/', $classname, $matches)) {
include_once GLPI_EZC_BASE;
ezcBase::autoload($classname);
return TRUE;
} else {
$item = strtolower($classname);
}
}
// No errors for missing classes due to implementation
if (!isset($CFG_GLPI['missingclasses']) or !in_array($item, $CFG_GLPI['missingclasses'])) {
if (file_exists("{$dir}{$item}.class.php")) {
include_once "{$dir}{$item}.class.php";
if ($_SESSION['glpi_use_mode'] == Session::DEBUG_MODE) {
$DEBUG_AUTOLOAD[] = $classname;
}
} else {
if (!isset($notfound["{$classname}"])) {
// trigger an error to get a backtrace, but only once (use prefix 'x' to handle empty case)
//Toolbox::logInFile('debug', "file $dir$item.class.php not founded trying to load class $classname\n");
trigger_error("GLPI autoload : file {$dir}{$item}.class.php not founded trying to load class '{$classname}'");
$notfound["{$classname}"] = TRUE;
}
}
}
}
示例2: plugin_mreporting_install
function plugin_mreporting_install()
{
global $DB;
//get version
$plugin = new Plugin();
$found = $plugin->find("name = 'mreporting'");
$plugin_mreporting = array_shift($found);
//init migration
$migration = new Migration($plugin_mreporting['version']);
//create profiles table
$queries = array();
$queries[] = "CREATE TABLE IF NOT EXISTS `glpi_plugin_mreporting_profiles` (\n `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,\n `profiles_id` VARCHAR(45) NOT NULL,\n `reports` CHAR(1),\n `config` CHAR(1),\n PRIMARY KEY (`id`)\n )\n ENGINE = MyISAM;";
//create configuration table
$queries[] = "CREATE TABLE IF NOT EXISTS `glpi_plugin_mreporting_configs` (\n `id` int(11) NOT NULL auto_increment,\n `name` varchar(255) collate utf8_unicode_ci default NULL,\n `classname` varchar(255) collate utf8_unicode_ci default NULL,\n `is_active` tinyint(1) NOT NULL default '0',\n `is_notified` tinyint(1) NOT NULL default '1',\n `show_graph` tinyint(1) NOT NULL default '0',\n `show_area` tinyint(1) NOT NULL default '0',\n `spline` tinyint(1) NOT NULL default '0',\n `show_label` VARCHAR(10) default NULL,\n `flip_data` tinyint(1) NOT NULL default '0',\n `unit` VARCHAR(10) default NULL,\n `default_delay` VARCHAR(10) default NULL,\n `condition` VARCHAR(255) default NULL,\n `graphtype` VARCHAR(255) default 'GLPI',\n PRIMARY KEY (`id`),\n KEY `is_active` (`is_active`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;";
$queries[] = "CREATE TABLE IF NOT EXISTS `glpi_plugin_mreporting_preferences` (\n `id` int(11) NOT NULL auto_increment,\n `users_id` int(11) NOT NULL default 0,\n `template` varchar(255) collate utf8_unicode_ci default NULL,\n PRIMARY KEY (`id`),\n KEY `users_id` (`users_id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;";
// add display preferences
$query_display_pref = "SELECT id \n FROM glpi_displaypreferences\n WHERE itemtype = 'PluginMreportingConfig'";
$res_display_pref = $DB->query($query_display_pref);
if ($DB->numrows($res_display_pref) == 0) {
$queries[] = "INSERT INTO `glpi_displaypreferences` \n VALUES (NULL,'PluginMreportingConfig','2','2','0');";
$queries[] = "INSERT INTO `glpi_displaypreferences` \n VALUES (NULL,'PluginMreportingConfig','3','3','0');";
$queries[] = "INSERT INTO `glpi_displaypreferences` \n VALUES (NULL,'PluginMreportingConfig','4','4','0');";
$queries[] = "INSERT INTO `glpi_displaypreferences` \n VALUES (NULL,'PluginMreportingConfig','5','5','0');";
$queries[] = "INSERT INTO `glpi_displaypreferences` \n VALUES (NULL,'PluginMreportingConfig','6','6','0');";
$queries[] = "INSERT INTO `glpi_displaypreferences` \n VALUES (NULL,'PluginMreportingConfig','8','8','0');";
}
$queries[] = "CREATE TABLE IF NOT EXISTS `glpi_plugin_mreporting_notifications` (\n `id` int(11) NOT NULL auto_increment,\n `entities_id` int(11) NOT NULL default '0',\n `is_recursive` tinyint(1) NOT NULL default '0',\n `name` varchar(255) collate utf8_unicode_ci default NULL,\n `notepad` longtext collate utf8_unicode_ci,\n `date_envoie` DATE DEFAULT NULL,\n `notice`INT(11) NOT NULL DEFAULT 0,\n `alert` INT(11) NOT NULL DEFAULT 0,\n `comment` text collate utf8_unicode_ci,\n `date_mod` datetime default NULL,\n `is_deleted` tinyint(1) NOT NULL default '0',\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;";
foreach ($queries as $query) {
$DB->query($query);
}
// == Update to 2.1 ==
if (!FieldExists('glpi_plugin_mreporting_configs', 'is_notified')) {
$migration->addField('glpi_plugin_mreporting_configs', 'is_notified', 'tinyint(1) NOT NULL default "1"', array('after' => 'is_active'));
$migration->migrationOneTable('glpi_plugin_mreporting_configs');
}
require_once "inc/profile.class.php";
PluginMreportingProfile::createFirstAccess($_SESSION['glpiactiveprofile']['id']);
$rep_files_mreporting = GLPI_PLUGIN_DOC_DIR . "/mreporting";
if (!is_dir($rep_files_mreporting)) {
mkdir($rep_files_mreporting);
}
$notifications_folder = GLPI_PLUGIN_DOC_DIR . "/mreporting/notifications";
if (!is_dir($notifications_folder)) {
mkdir($notifications_folder);
}
require_once "inc/notification.class.php";
PluginMreportingNotification::install();
CronTask::Register('PluginMreportingNotification', 'SendNotifications', MONTH_TIMESTAMP);
require_once "inc/baseclass.class.php";
require_once "inc/common.class.php";
require_once "inc/config.class.php";
$config = new PluginMreportingConfig();
$config->createFirstConfig();
return true;
}
示例3: getModuleId
/**
* Get module id or fusioninventory plugin id
*
* @param $p_name Module name
* @return Plugin id or FALSE if module is not active or not a fusioninventory module
**/
static function getModuleId($p_name)
{
$index = FALSE;
if (!isset($_SESSION['glpi_plugins'])) {
return $index;
}
if ($p_name == 'fusioninventory') {
$index = array_search($p_name, $_SESSION['glpi_plugins']);
if (!$index) {
$plugin = new Plugin();
$data = $plugin->find("directory='" . $p_name . "'");
if (count($data)) {
$fields = current($data);
$index = $fields['id'];
}
}
}
return $index;
}
示例4: showSystemInformations
/**
* @param $width
**/
function showSystemInformations($width)
{
// No need to translate, this part always display in english (for copy/paste to forum)
echo "\n<tr class='tab_bg_2'><th>Plugins list</th></tr>";
echo "<tr class='tab_bg_1'><td><pre>\n \n";
$plug = new Plugin();
$pluglist = $plug->find("", "name, directory");
foreach ($pluglist as $plugin) {
$msg = substr(str_pad($plugin['directory'], 30), 0, 20) . " Name: " . Toolbox::substr(str_pad($plugin['name'], 40), 0, 30) . " Version: " . str_pad($plugin['version'], 10) . " State: ";
switch ($plugin['state']) {
case self::ANEW:
$msg .= 'New';
break;
case self::ACTIVATED:
$msg .= 'Enabled';
break;
case self::NOTINSTALLED:
$msg .= 'Not installed';
break;
case self::TOBECONFIGURED:
$msg .= 'To be configured';
break;
case self::NOTACTIVATED:
$msg .= 'Not activated';
break;
case self::TOBECLEANED:
default:
$msg .= 'To be cleaned';
break;
}
echo wordwrap("\t" . $msg . "\n", $width, "\n\t\t");
}
echo "\n</pre></td></tr>";
}
示例5: glpi_autoload
/**
* To load classes
*
* @param $classname : class to load
**/
function glpi_autoload($classname)
{
global $DEBUG_AUTOLOAD, $CFG_GLPI;
static $notfound = array('xStates' => true, 'xAllAssets' => true);
// empty classname or non concerted plugin or classname containing dot (leaving GLPI main treee)
if (empty($classname) || is_numeric($classname) || strpos($classname, '.') !== false) {
die("Security die. trying to load an forbidden class name");
}
$dir = GLPI_ROOT . "/inc/";
if ($plug = isPluginItemType($classname)) {
$plugname = strtolower($plug['plugin']);
$dir = GLPI_ROOT . "/plugins/{$plugname}/inc/";
$item = strtolower($plug['class']);
// Is the plugin activate ?
// Command line usage of GLPI : need to do a real check plugin activation
if (isCommandLine()) {
$plugin = new Plugin();
if (count($plugin->find("directory='{$plugname}' AND state=" . Plugin::ACTIVATED)) == 0) {
// Plugin does not exists or not activated
return false;
}
} else {
// Standard use of GLPI
if (!isset($_SESSION['glpi_plugins']) || !in_array($plugname, $_SESSION['glpi_plugins'])) {
// Plugin not activated
return false;
}
}
} else {
//TODO: clean, seems uneeded, as composer autoloader is used first
// Do not try to load phpcas using GLPI autoload
//if (preg_match('/^CAS_.*/', $classname)) {
// return false;
//}
// Do not try to load Zend using GLPI autoload
//if (preg_match('/^Zend.*/', $classname)) {
// return false;
//}
// Do not try to load Simplepie using GLPI autoload
//if (preg_match('/^SimplePie.*/', $classname)) {
// return false;
//}
$item = strtolower($classname);
}
if (file_exists("{$dir}{$item}.class.php")) {
include_once "{$dir}{$item}.class.php";
if (isset($_SESSION['glpi_use_mode']) && $_SESSION['glpi_use_mode'] == Session::DEBUG_MODE) {
$DEBUG_AUTOLOAD[] = $classname;
}
} else {
if (!isset($notfound["x{$classname}"])) {
// trigger an error to get a backtrace, but only once (use prefix 'x' to handle empty case)
// trigger_error("GLPI autoload : file $dir$item.class.php not founded trying to load class '$classname'");
$notfound["x{$classname}"] = true;
}
}
}
示例6: Plugin
/**
* プラグインのステータスを更新する
*
* @return boolean
* @access protected
*/
function _updatePluginStatus()
{
$db =& $this->_connectDb($this->_readDbSettingFromSession());
$version = $this->getBaserVersion();
App::import('Model', 'Plugin');
$Plugin = new Plugin();
$datas = $Plugin->find('all');
if ($datas) {
$result = true;
foreach ($datas as $data) {
$data['Plugin']['version'] = $version;
$data['Plugin']['status'] = true;
if (!$Plugin->save($data)) {
$result = false;
}
}
return $result;
} else {
return false;
}
}
示例7: glpi_autoload
/**
* To load classes
*
* @param $classname : class to load
**/
function glpi_autoload($classname)
{
global $DEBUG_AUTOLOAD, $CFG_GLPI;
static $notfound = array('xStates' => true, 'xAllAssets' => true);
// empty classname or non concerted plugin or classname containing dot (leaving GLPI main treee)
if (empty($classname) || is_numeric($classname) || strpos($classname, '.') !== false) {
return false;
}
$dir = GLPI_ROOT . "/inc/";
if ($plug = isPluginItemType($classname)) {
$plugname = strtolower($plug['plugin']);
$dir = GLPI_ROOT . "/plugins/{$plugname}/inc/";
$item = strtolower($plug['class']);
// Is the plugin activate ?
// Command line usage of GLPI : need to do a real check plugin activation
if (isCommandLine()) {
$plugin = new Plugin();
if (count($plugin->find("directory='{$plugname}' AND state=" . Plugin::ACTIVATED)) == 0) {
// Plugin does not exists or not activated
return false;
}
} else {
// Standard use of GLPI
if (!in_array($plugname, $_SESSION['glpi_plugins'])) {
// Plugin not activated
return false;
}
}
} else {
// Is ezComponent class ?
if (preg_match('/^ezc([A-Z][a-z]+)/', $classname, $matches)) {
include_once GLPI_EZC_BASE;
ezcBase::autoload($classname);
return true;
}
// Is Zend class ?
// if (preg_match('/^Zend/',$classname,$matches)) {
// if (GLPI_ZEND_PATH) {
// set_include_path(GLPI_ZEND_PATH . PATH_SEPARATOR . get_include_path());
// }
// require_once("Zend/Loader.php");
//
// Zend_Loader::loadClass($classname);
// return true;
// }
// Do not try to load phpcas using GLPI autoload
if (preg_match('/^CAS_.*/', $classname)) {
return false;
}
$item = strtolower($classname);
}
// No errors for missing classes due to implementation
if (file_exists("{$dir}{$item}.class.php")) {
include_once "{$dir}{$item}.class.php";
if (isset($_SESSION['glpi_use_mode']) && $_SESSION['glpi_use_mode'] == Session::DEBUG_MODE) {
$DEBUG_AUTOLOAD[] = $classname;
}
} else {
if (!isset($notfound["x{$classname}"])) {
// trigger an error to get a backtrace, but only once (use prefix 'x' to handle empty case)
// trigger_error("GLPI autoload : file $dir$item.class.php not founded trying to load class '$classname'");
$notfound["x{$classname}"] = true;
}
}
}
示例8: destroy
/**
* Remove the specified resource from storage.
* DELETE /plugin/{id}
*
* @param int $id
* @return Response
*/
public function destroy($id)
{
$plugin = Plugin::find($id);
$plugin->versions()->delete();
$plugin->delete();
return Redirect::back()->withSuccess('Plugin removed.');
}
示例9: checkInstall
//.........这里部分代码省略.........
$this->assertEquals(count($fields_toadd), 0, 'Fields missing/not good in ' . $when . ' ' . $table . ' ' . print_r($fields_toadd, TRUE) . " into " . $diff);
$this->assertEquals(count($fields_toremove), 0, 'Fields to delete in ' . $when . ' ' . $table . ' ' . print_r($fields_toremove, TRUE) . " into " . $diff);
}
}
/*
* Check if all modules registered
*/
$query = "SELECT `id` FROM `glpi_plugin_fusioninventory_agentmodules`\n WHERE `modulename`='WAKEONLAN'";
$result = $DB->query($query);
$this->assertEquals($DB->numrows($result), 1, 'WAKEONLAN module not registered');
$query = "SELECT `id` FROM `glpi_plugin_fusioninventory_agentmodules`\n WHERE `modulename`='INVENTORY'";
$result = $DB->query($query);
$this->assertEquals($DB->numrows($result), 1, 'INVENTORY module not registered');
$query = "SELECT `id` FROM `glpi_plugin_fusioninventory_agentmodules`\n WHERE `modulename`='InventoryComputerESX'";
$result = $DB->query($query);
$this->assertEquals($DB->numrows($result), 1, 'ESX module not registered');
$query = "SELECT `id` FROM `glpi_plugin_fusioninventory_agentmodules`\n WHERE `modulename`='NETWORKINVENTORY'";
$result = $DB->query($query);
$this->assertEquals($DB->numrows($result), 1, 'NETWORKINVENTORY module not registered');
$query = "SELECT `id` FROM `glpi_plugin_fusioninventory_agentmodules`\n WHERE `modulename`='NETWORKDISCOVERY'";
$result = $DB->query($query);
$this->assertEquals($DB->numrows($result), 1, 'NETWORKDISCOVERY module not registered');
$query = "SELECT `id` FROM `glpi_plugin_fusioninventory_agentmodules`\n WHERE `modulename`='ESX'";
$result = $DB->query($query);
$this->assertEquals($DB->numrows($result), 0, 'ESX module may be renommed in InventoryComputerESX');
// $query = "SELECT `id` FROM `glpi_plugin_fusioninventory_agentmodules`
// WHERE `modulename`='DEPLOY'";
// $result = $DB->query($query);
// $this->assertEquals($DB->numrows($result), 1, 'DEPLOY module not registered');
/*
* Verify in taskjob definition PluginFusinvsnmpIPRange not exist
*/
$query = "SELECT * FROM `glpi_plugin_fusioninventory_taskjobs`";
$result = $DB->query($query);
while ($data = $DB->fetch_array($result)) {
$snmprangeip = 0;
if (strstr($data['targets'], "PluginFusinvsnmpIPRange")) {
$snmprangeip = 1;
}
$this->assertEquals($snmprangeip, 0, 'Have some "PluginFusinvsnmpIPRange" items in taskjob definition');
}
/*
* Verify cron created
*/
$crontask = new CronTask();
$this->assertTrue($crontask->getFromDBbyName('PluginFusioninventoryTask', 'taskscheduler'), 'Cron taskscheduler not created');
$this->assertTrue($crontask->getFromDBbyName('PluginFusioninventoryTaskjobstate', 'cleantaskjob'), 'Cron cleantaskjob not created');
$this->assertTrue($crontask->getFromDBbyName('PluginFusioninventoryNetworkPortLog', 'cleannetworkportlogs'), 'Cron cleannetworkportlogs not created');
$this->assertTrue($crontask->getFromDBbyName('PluginFusioninventoryAgentWakeup', 'wakeupAgents'), 'Cron wakeupAgents not created');
/*
* Verify config fields added
*/
$plugin = new Plugin();
$data = $plugin->find("directory='fusioninventory'");
$plugins_id = 0;
if (count($data)) {
$fields = current($data);
$plugins_id = $fields['id'];
}
$query = "SELECT `id` FROM `glpi_plugin_fusioninventory_configs`\n WHERE `type`='ssl_only'";
$result = $DB->query($query);
$this->assertEquals($DB->numrows($result), 1, "type 'ssl_only' not added in config for plugins " . $plugins_id);
$query = "SELECT `id` FROM `glpi_plugin_fusioninventory_configs`\n WHERE `type`='delete_task'";
$result = $DB->query($query);
$this->assertEquals($DB->numrows($result), 1, "type 'delete_task' not added in config");
$query = "SELECT `id` FROM `glpi_plugin_fusioninventory_configs`\n WHERE `type`='inventory_frequence'";
$result = $DB->query($query);
$this->assertEquals($DB->numrows($result), 1, "type 'inventory_frequence' not added in config");
$query = "SELECT `id` FROM `glpi_plugin_fusioninventory_configs`\n WHERE `type`='agent_port'";
$result = $DB->query($query);
$this->assertEquals($DB->numrows($result), 1, "type 'agent_port' not added in config");
$query = "SELECT `id` FROM `glpi_plugin_fusioninventory_configs`\n WHERE `type`='extradebug'";
$result = $DB->query($query);
$this->assertEquals($DB->numrows($result), 1, "type 'extradebug' not added in config");
$query = "SELECT `id` FROM `glpi_plugin_fusioninventory_configs`\n WHERE `type`='users_id'";
$result = $DB->query($query);
$this->assertEquals($DB->numrows($result), 1, "type 'users_id' not added in config");
$query = "SELECT * FROM `glpi_plugin_fusioninventory_configs`\n WHERE `type`='version'";
$result = $DB->query($query);
$this->assertEquals($DB->numrows($result), 1, "type 'version' not added in config");
$data = $DB->fetch_assoc($result);
$this->assertEquals($data['value'], '0.90+1.0', "Field 'version' not with right version");
$query = "SELECT `id` FROM `glpi_plugin_fusioninventory_configs`\n WHERE `type`='otherserial'";
$result = $DB->query($query);
$this->assertEquals($DB->numrows($result), 1, "type 'otherserial' not added in config");
// TODO : test glpi_displaypreferences, rules, bookmark...
/*
* Verify table glpi_plugin_fusioninventory_inventorycomputercriterias
* have right 10 lines
*/
$query = "SELECT `id` FROM `glpi_plugin_fusioninventory_inventorycomputercriterias`";
$result = $DB->query($query);
$this->assertEquals($DB->numrows($result), 11, "Number of criteria not right in table" . " glpi_plugin_fusioninventory_inventorycomputercriterias " . $when);
/*
* Verify table `glpi_plugin_fusioninventory_inventorycomputerstats` filed with data
*/
$query = "SELECT `id` FROM `glpi_plugin_fusioninventory_inventorycomputerstats`";
$result = $DB->query($query);
$this->assertEquals($DB->numrows($result), 8760, "Must have table `glpi_plugin_fusioninventory_inventorycomputerstats` not empty");
}
示例10: array
$db =& ConnectionManager::getDataSource('plugin');
$db->cacheQueries = false;
$listSources = $db->listSources();
$prefix = $db->config['prefix'];
$pluginTables = array('blog' => $prefix . 'blog_contents', 'mail' => $prefix . 'mail_contents', 'feed' => $prefix . 'feed_configs', 'uploader' => $prefix . 'uploader_files', 'twitter' => $prefix . 'twitter_configs');
$tableExistsPlugins = array();
foreach ($pluginTables as $key => $table) {
if (in_array($table, $listSources)) {
$tableExistsPlugins[] = $key;
}
}
App::import('Model', 'Plugin');
$Plugin = new Plugin();
$result = true;
foreach ($tableExistsPlugins as $plugin) {
$data = $Plugin->find('first', array('conditions' => array('name' => $plugin)));
$appPath = APP . 'plugins' . DS . $plugin . DS . 'config' . DS . 'config.php';
$baserPath = BASER_PLUGINS . $plugin . DS . 'config' . DS . 'config.php';
$path = '';
if (file_exists($appPath)) {
$path = $appPath;
} elseif (file_exists($baserPath)) {
$path = $baserPath;
}
$data['Plugin']['name'] = $plugin;
$data['Plugin']['status'] = false;
if ($path) {
include $path;
if (isset($title)) {
$data['Plugin']['title'] = $title;
}
示例11: linkVersion
/**
* Links a version to an application
* GET /application/{appid}/link/{pluginid}
*
* @param int $appid
* @param int $pluginid
* @return Response
*/
public function linkVersion($appid, $pluginid)
{
if (Application::find($appid) && Plugin::find($pluginid)) {
return View::make('admin.applications.linkversion')->with(['app' => Application::find($appid), 'plugin' => Plugin::find($pluginid), 'versionslist' => Plugin::find($pluginid)->versions()->lists('name', 'id')]);
} else {
return Redirect::action('application.index')->withErrors(['Application or plugin does not exist.']);
}
}
示例12: plugin_escalade_install
function plugin_escalade_install()
{
global $DB;
//get version
$plugin = new Plugin();
$found = $plugin->find("name = 'escalade'");
$plugin_escalade = array_shift($found);
//init migration
$migration = new Migration($plugin_escalade['version']);
// == Tables creation (initial installation) ==
if (!TableExists('glpi_plugin_escalade_histories')) {
$query = "CREATE TABLE `glpi_plugin_escalade_histories` (\n `id` INT(11) NOT NULL AUTO_INCREMENT,\n `tickets_id` INT(11) NOT NULL,\n `groups_id` INT(11) NOT NULL,\n `date_mod` DATETIME NOT NULL,\n PRIMARY KEY (`id`),\n KEY `tickets_id` (`tickets_id`),\n KEY `groups_id` (`groups_id`)\n ) ENGINE = MYISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;";
$DB->query($query);
}
if (!TableExists('glpi_plugin_escalade_configs')) {
$query = "CREATE TABLE `glpi_plugin_escalade_configs` (\n `id` INT(11) NOT NULL AUTO_INCREMENT,\n `remove_group` INT(11) NOT NULL,\n `remove_delete_group_btn` INT(11) NOT NULL,\n `remove_delete_user_btn` INT(11) NOT NULL,\n `show_history` INT(11) NOT NULL,\n `task_history` INT(11) NOT NULL,\n `remove_tech` INT(11) NOT NULL,\n `solve_return_group` INT(11) NOT NULL,\n `reassign_group_from_cat` INT(11) NOT NULL,\n `reassign_tech_from_cat` INT(11) NOT NULL,\n `cloneandlink_ticket` INT(11) NOT NULL,\n `close_linkedtickets` INT(11) NOT NULL,\n `use_assign_user_group` INT(11) NOT NULL,\n `use_assign_user_group_creation` INT(11) NOT NULL,\n `use_assign_user_group_modification` INT(11) NOT NULL,\n `assign_me_ticket` INT(11) NOT NULL,\n `use_filter_assign_group` INT(11) NOT NULL,\n `ticket_last_status` INT(11) NOT NULL,\n PRIMARY KEY (`id`)\n ) ENGINE = MYISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;";
$DB->query($query);
$query = "INSERT INTO glpi_plugin_escalade_configs \n VALUES (NULL, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, '" . Ticket::WAITING . "')";
$DB->query($query);
}
// == Update to 1.2 ==
if (!FieldExists('glpi_plugin_escalade_configs', 'cloneandlink_ticket')) {
$migration->addField('glpi_plugin_escalade_configs', 'cloneandlink_ticket', 'INT(11) NOT NULL', array('after' => 'reassign_tech_from_cat'));
$migration->migrationOneTable('glpi_plugin_escalade_configs');
}
if (!FieldExists('glpi_plugin_escalade_configs', 'close_linkedtickets')) {
$migration->addField('glpi_plugin_escalade_configs', 'close_linkedtickets', 'INT(11) NOT NULL', array('after' => 'cloneandlink_ticket'));
$migration->migrationOneTable('glpi_plugin_escalade_configs');
}
if (!FieldExists('glpi_plugin_escalade_configs', 'use_assign_user_group')) {
$migration->addField('glpi_plugin_escalade_configs', 'use_assign_user_group', 'INT(11) NOT NULL', array('after' => 'close_linkedtickets'));
$migration->migrationOneTable('glpi_plugin_escalade_configs');
}
if (!FieldExists('glpi_plugin_escalade_configs', 'use_assign_user_group_creation')) {
$migration->addField('glpi_plugin_escalade_configs', 'use_assign_user_group_creation', 'INT(11) NOT NULL', array('after' => 'use_assign_user_group'));
$migration->migrationOneTable('glpi_plugin_escalade_configs');
}
if (!FieldExists('glpi_plugin_escalade_configs', 'use_assign_user_group_modification')) {
$migration->addField('glpi_plugin_escalade_configs', 'use_assign_user_group_modification', 'INT(11) NOT NULL', array('after' => 'use_assign_user_group_creation'));
$migration->migrationOneTable('glpi_plugin_escalade_configs');
}
if (!FieldExists('glpi_plugin_escalade_configs', 'remove_delete_group_btn')) {
$migration->addField('glpi_plugin_escalade_configs', 'remove_delete_group_btn', 'INT(11) NOT NULL', array('after' => 'remove_group'));
$migration->migrationOneTable('glpi_plugin_escalade_configs');
}
if (!FieldExists('glpi_plugin_escalade_configs', 'assign_me_ticket')) {
$migration->addField('glpi_plugin_escalade_configs', 'assign_me_ticket', 'INT(11) NOT NULL', array('after' => 'use_assign_user_group_modification'));
$migration->migrationOneTable('glpi_plugin_escalade_configs');
}
if (!isIndex("glpi_plugin_escalade_histories", 'tickets_id') || !isIndex("glpi_plugin_escalade_histories", 'groups_id')) {
$migration->addKey("glpi_plugin_escalade_histories", 'tickets_id', 'tickets_id');
$migration->addKey("glpi_plugin_escalade_histories", 'groups_id', 'groups_id');
$migration->migrationOneTable('glpi_plugin_escalade_histories');
}
// == Update to 1.3 ==
if (!FieldExists('glpi_plugin_escalade_configs', 'remove_delete_user_btn')) {
$migration->addField('glpi_plugin_escalade_configs', 'remove_delete_user_btn', 'INT(11) NOT NULL DEFAULT 1', array('after' => 'remove_delete_group_btn'));
$migration->migrationOneTable('glpi_plugin_escalade_configs');
}
if (!FieldExists('glpi_plugin_escalade_configs', 'use_filter_assign_group')) {
$migration->addField('glpi_plugin_escalade_configs', 'use_filter_assign_group', 'INT(11) NOT NULL', array('after' => 'use_assign_user_group_modification'));
$migration->migrationOneTable('glpi_plugin_escalade_configs');
}
if (!TableExists('glpi_plugin_escalade_groups_groups')) {
$query = "CREATE TABLE `glpi_plugin_escalade_groups_groups` (\n `id` INT(11) NOT NULL AUTO_INCREMENT,\n `groups_id_source` int(11) NOT NULL DEFAULT '0',\n `groups_id_destination` int(11) NOT NULL DEFAULT '0',\n PRIMARY KEY (`id`)\n ) ENGINE = MYISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;";
$DB->query($query);
}
// Update for 0.84 status
if (TableExists('glpi_plugin_escalade_configs')) {
foreach ($DB->request("glpi_plugin_escalade_configs") as $data) {
switch ($data['ticket_last_status']) {
case 'solved':
$status = Ticket::SOLVED;
break;
case 'waiting':
$status = Ticket::WAITING;
break;
case 'closed':
$status = Ticket::CLOSED;
break;
case 'assign':
$status = Ticket::ASSIGNED;
break;
case 'new':
$status = Ticket::INCOMING;
break;
case 'plan':
$status = Ticket::PLANNED;
break;
default:
$status = -1;
break;
}
$query = "UPDATE `glpi_plugin_escalade_configs`\n SET `ticket_last_status` = '" . $status . "'\n WHERE `id` = '" . $data['id'] . "'";
$DB->query($query);
}
$query = "ALTER TABLE `glpi_plugin_escalade_configs` MODIFY `ticket_last_status` INT(11);";
$DB->query($query);
}
return true;
//.........这里部分代码省略.........
示例13: edit
/**
* Show the form for editing the specified resource.
* GET /version/{id}/edit
*
* @param int $id
* @return Response
*/
public function edit($pluginid, $versionid)
{
return View::make('admin.version.edit')->with(['version' => Version::find($versionid), 'plugin' => Plugin::find($pluginid)]);
}