本文整理匯總了PHP中Typecho_Plugin::deactivate方法的典型用法代碼示例。如果您正苦於以下問題:PHP Typecho_Plugin::deactivate方法的具體用法?PHP Typecho_Plugin::deactivate怎麽用?PHP Typecho_Plugin::deactivate使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Typecho_Plugin
的用法示例。
在下文中一共展示了Typecho_Plugin::deactivate方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: removePlugin
/**
* 強行刪除某個插件
*
* @access public
* @param string $pluginName 插件名稱
* @return void
*/
public static function removePlugin($pluginName)
{
try {
/** 獲取插件入口 */
list($pluginFileName, $className) = Typecho_Plugin::portal($pluginName, __TYPECHO_ROOT_DIR__ . '/' . __TYPECHO_PLUGIN_DIR__);
/** 獲取已啟用插件 */
$plugins = Typecho_Plugin::export();
$activatedPlugins = $plugins['activated'];
/** 載入插件 */
require_once $pluginFileName;
/** 判斷實例化是否成功 */
if (!isset($activatedPlugins[$pluginName]) || !class_exists($className) || !method_exists($className, 'deactivate')) {
throw new Typecho_Widget_Exception(_t('無法禁用插件'), 500);
}
$result = call_user_func(array($className, 'deactivate'));
} catch (Exception $e) {
//nothing to do
}
$db = Typecho_Db::get();
try {
Typecho_Plugin::deactivate($pluginName);
$db->query($db->update('table.options')->rows(array('value' => serialize(Typecho_Plugin::export())))->where('name = ?', 'plugins'));
} catch (Typecho_Plugin_Exception $e) {
//nothing to do
}
$db->query($db->delete('table.options')->where('name = ?', 'plugin:' . $pluginName));
}
示例2: deactivate
/**
* 禁用插件
*
* @access public
* @return void
*/
public function deactivate($pluginName)
{
/** 獲取已激活插件 */
$plugins = Typecho_Plugin::export();
$activatedPlugins = $plugins['activated'];
$pluginFileExist = true;
try {
/** 獲取插件入口 */
list($pluginFileName, $className) = Typecho_Plugin::portal($pluginName, __TYPECHO_ROOT_DIR__ . '/' . __TYPECHO_PLUGIN_DIR__);
} catch (Typecho_Plugin_Exception $e) {
$pluginFileExist = false;
if (!isset($activatedPlugins[$pluginName])) {
throw $e;
}
}
/** 判斷實例化是否成功 */
if (!isset($activatedPlugins[$pluginName])) {
throw new Typecho_Widget_Exception(_t('無法禁用插件'), 500);
}
if ($pluginFileExist) {
/** 載入插件 */
require_once $pluginFileName;
/** 判斷實例化是否成功 */
if (!isset($activatedPlugins[$pluginName]) || !class_exists($className) || !method_exists($className, 'deactivate')) {
throw new Typecho_Widget_Exception(_t('無法禁用插件'), 500);
}
try {
$result = call_user_func(array($className, 'deactivate'));
} catch (Typecho_Plugin_Exception $e) {
/** 截獲異常 */
$this->widget('Widget_Notice')->set($e->getMessage(), NULL, 'error');
$this->response->goBack();
}
/** 設置高亮 */
$this->widget('Widget_Notice')->highlight('plugin-' . $pluginName);
}
Typecho_Plugin::deactivate($pluginName);
$this->update(array('value' => serialize(Typecho_Plugin::export())), $this->db->sql()->where('name = ?', 'plugins'));
$this->delete($this->db->sql()->where('name = ?', 'plugin:' . $pluginName));
$this->delete($this->db->sql()->where('name = ?', '_plugin:' . $pluginName));
if (isset($result) && is_string($result)) {
$this->widget('Widget_Notice')->set($result, NULL, 'notice');
} else {
$this->widget('Widget_Notice')->set(_t('插件已經被禁用'), NULL, 'success');
}
$this->response->goBack();
}