本文整理汇总了PHP中plugin::find_install方法的典型用法代码示例。如果您正苦于以下问题:PHP plugin::find_install方法的具体用法?PHP plugin::find_install怎么用?PHP plugin::find_install使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类plugin
的用法示例。
在下文中一共展示了plugin::find_install方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: index
public function index()
{
$this->template->content = new View('admin/addons/plugins');
$this->template->content->title = 'Addons';
if (isset($_GET['status']) && !empty($_GET['status'])) {
$status = $_GET['status'];
if (strtolower($status) == 'a') {
$filter = 'plugin_active = 1';
} elseif (strtolower($status) == 'i') {
$filter = 'plugin_active = 0';
} else {
$status = "0";
$filter = '1=1';
}
} else {
$status = "0";
$filter = '1=1';
}
// Add the hidden plugins to the list of plugins to filter out
if (count(Kohana::config('plugins.hide_from_list')) != 0) {
$hide_from_list = array_map(array(Database::instance(), 'escape'), Kohana::config('plugins.hide_from_list'));
$filter .= ' AND plugin_name NOT IN (' . implode(",", $hide_from_list) . ')';
}
$plugins = plugin::resync_plugins();
// check, has the form been submitted?
$form_error = FALSE;
$form_saved = FALSE;
$form_action = "";
if ($_POST) {
$post = Validation::factory($_POST);
// Add some filters
$post->pre_filter('trim', TRUE);
// Add some rules, the input field, followed by a list of checks, carried out in order
$post->add_rules('action', 'required', 'alpha', 'length[1,1]');
$post->add_rules('plugin_id.*', 'required', 'numeric');
if ($post->validate()) {
if ($post->action == 'a') {
// Activate Action
foreach (array_unique($post->plugin_id) as $item) {
$plugin = ORM::factory('plugin', $item);
// Make sure we run the installer if it hasnt been installed yet.
// Then mark it as installed
if ($plugin->loaded and $plugin->plugin_name) {
Kohana::config_set('core.modules', array_merge(Kohana::config('core.modules'), array(PLUGINPATH . $plugin->plugin_name)));
// Name of the class (First letter of class should be capitalized)
$class = ucfirst($plugin->plugin_name) . '_Install';
// Find the Library File
$path = plugin::find_install($plugin->plugin_name);
if ($path) {
include $path;
// Run the installer
$install = new $class();
$install->run_install();
}
// Mark as Active and Mark as Installed
$plugin->plugin_active = 1;
$plugin->plugin_installed = 1;
$plugin->save();
}
}
} elseif ($post->action == 'i') {
// Deactivate Action
foreach ($post->plugin_id as $item) {
$plugin = ORM::factory('plugin', $item);
if ($plugin->loaded) {
$plugin->plugin_active = 0;
$plugin->save();
}
}
} elseif ($post->action == 'd') {
// Delete Action
foreach ($post->plugin_id as $item) {
$plugin = ORM::factory('plugin', $item);
if ($plugin->loaded and $plugin->plugin_name) {
Kohana::config_set('core.modules', array_merge(Kohana::config('core.modules'), array(PLUGINPATH . $plugin->plugin_name)));
// Name of the class (First letter of class should be capitalized)
$class = ucfirst($plugin->plugin_name) . '_Install';
// Find the Library File
$path = plugin::find_install($plugin->plugin_name);
if ($path) {
include $path;
// Run the uninstaller
$install = new $class();
$install->uninstall();
}
// Mark as InActive and Mark as UnInstalled
$plugin->plugin_active = 0;
$plugin->plugin_installed = 0;
$plugin->save();
}
}
}
} else {
$form_error = TRUE;
}
}
$plugins = ORM::factory('plugin')->where($filter)->orderby('plugin_name', 'ASC')->find_all();
$this->template->content->plugins = $plugins;
$this->template->content->total_items = $plugins->count();
$this->template->content->form_error = $form_error;
//.........这里部分代码省略.........