PageRenderTime 54ms CodeModel.GetById 31ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/flatpress/admin/panels/plugin/admin.plugin.php

https://bitbucket.org/alexandrul/flatpress
PHP | 147 lines | 69 code | 54 blank | 24 comment | 8 complexity | d931040f2824e4b635502055e1e65c5d MD5 | raw file
Possible License(s): AGPL-1.0, GPL-2.0, MIT
  1. <?php
  2. /**
  3. * plugin control panel
  4. *
  5. * Type:
  6. * Name:
  7. * Date:
  8. * Purpose:
  9. * Input:
  10. *
  11. * @author NoWhereMan <real_nowhereman at users dot sf dot com>
  12. *
  13. */
  14. /*
  15. function admin_plugin_adminheader() {
  16. $f = ADMIN_DIR . '/panels/plugin/admin.plugin.js';
  17. echo <<<SCP
  18. <script src="$f" type="text/javascript"></script>
  19. SCP;
  20. }
  21. add_action('wp_head', 'admin_plugin_adminheader');
  22. */
  23. class admin_plugin extends AdminPanel {
  24. var $panelname = 'plugin';
  25. var $actions = array('default'=>true);
  26. }
  27. class admin_plugin_default extends AdminPanelAction {
  28. var $commands = array('enable', 'disable');
  29. var $errors = array();
  30. function setup() {
  31. $this->pluginid = isset($_GET['plugin'])? $_GET['plugin'] : null;
  32. $pi = new plugin_indexer;
  33. $plist = $pi->getList();
  34. sort($plist);
  35. $this->smarty->assign('pluginlist', $plist);
  36. $this->errors = @$pi->getEnableds(true);
  37. $this->fp_plugins = $pi->enabledlist;
  38. }
  39. function dodisable($id) {
  40. $fp_plugins = $this->fp_plugins;
  41. $success = -1;
  42. if (plugin_exists($id)) {
  43. $success = 1;
  44. if (false !== $i = array_search($id, $fp_plugins)) {
  45. unset($fp_plugins[$i]);
  46. sort($fp_plugins); /* compact indices */
  47. do_action('deactivate_'.$id);
  48. $success = system_save(CONFIG_DIR . 'plugins.conf.php', compact('fp_plugins'));
  49. } else {
  50. $success = -1;
  51. }
  52. }
  53. if ($success)
  54. $this->smarty->assign('success', $success);
  55. return PANEL_REDIRECT_CURRENT;
  56. }
  57. function doenable ($id) {
  58. $success = -1;
  59. $fp_plugins = $this->fp_plugins;
  60. if (plugin_exists($id)) {
  61. $success = 1;
  62. if (!in_array($id, $fp_plugins)) {
  63. $fp_plugins[] = $id;
  64. sort($fp_plugins);
  65. plugin_load($id, false, false);
  66. do_action('activate_'.$id);
  67. $success = system_save(CONFIG_DIR . 'plugins.conf.php', compact('fp_plugins'));
  68. } else {
  69. $success = -1;
  70. }
  71. }
  72. if ($success)
  73. $this->smarty->assign('success', $success);
  74. return PANEL_REDIRECT_CURRENT;
  75. }
  76. function main() {
  77. //$conf = io_load_file(CONFIG_DIR . 'plugins.conf.php');
  78. $this->smarty->assign('warnings', $this->errors);
  79. $this->smarty->assign('enabledlist', $this->fp_plugins);
  80. lang_load('admin.plugin');
  81. return 0;
  82. }
  83. function onsave() {
  84. $fp_plugins = array_keys($_POST['plugin_enabled']);
  85. $success = system_save(CONFIG_DIR . 'plugins.conf.php', compact('fp_plugins'));
  86. $retval = ( $success )? 1 : -1 ;
  87. $this->smarty->assign('success', $retval);
  88. //$this->smarty->assign('pluginconf', $str);
  89. return $retval;
  90. }
  91. }
  92. ?>