OSDN Git Service

merged 3.2 code
[nucleus-jp/nucleus-jp-ancient.git] / euc / nucleus / libs / PLUGINADMIN.php
1 <?php\r
2 \r
3 /**\r
4   * Nucleus: PHP/MySQL Weblog CMS (http://nucleuscms.org/) \r
5   * Copyright (C) 2002-2005 The Nucleus Group\r
6   *\r
7   * This program is free software; you can redistribute it and/or\r
8   * modify it under the terms of the GNU General Public License\r
9   * as published by the Free Software Foundation; either version 2\r
10   * of the License, or (at your option) any later version.\r
11   * (see nucleus/documentation/index.html#license for more info)\r
12   *\r
13   * code to make it easier to create plugin admin areas\r
14   *\r
15   * $Id: PLUGINADMIN.php,v 1.3 2005-03-16 08:10:35 kimitake Exp $\r
16   * $NucleusJP: PLUGINADMIN.php,v 1.3 2005/03/12 06:19:05 kimitake Exp $\r
17   */\r
18 \r
19 global $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS, $HTTP_ENV_VARS, $HTTP_POST_FILES, $HTTP_SESSION_VARS;\r
20 $aVarsToCheck = array('DIR_LIBS');\r
21 foreach ($aVarsToCheck as $varName)\r
22 {\r
23         if (phpversion() >= '4.1.0')\r
24         {\r
25                 if (   isset($_GET[$varName]) \r
26                         || isset($_POST[$varName]) \r
27                         || isset($_COOKIE[$varName])\r
28                         || isset($_ENV[$varName])\r
29                         || isset($_SESSION[$varName])\r
30                         || isset($_FILES[$varName])\r
31                 ){\r
32                         die('Sorry. An error occurred.');\r
33                 }\r
34         } else {\r
35                 if (   isset($HTTP_GET_VARS[$varName]) \r
36                         || isset($HTTP_POST_VARS[$varName]) \r
37                         || isset($HTTP_COOKIE_VARS[$varName])\r
38                         || isset($HTTP_ENV_VARS[$varName])\r
39                         || isset($HTTP_SESSION_VARS[$varName])\r
40                         || isset($HTTP_POST_FILES[$varName])\r
41                 ){\r
42                         die('Sorry. An error occurred.');\r
43                 }               \r
44         }\r
45 }\r
46 \r
47 \r
48 include($DIR_LIBS . 'ADMIN.php');\r
49 \r
50 class PluginAdmin {\r
51         \r
52         var $strFullName;               // NP_SomeThing\r
53         var $plugin;                    // ref. to plugin object\r
54         var $bValid;                    // evaluates to true when object is considered valid\r
55         var $admin;                             // ref to an admin object\r
56         \r
57         function PluginAdmin($pluginName)\r
58         {\r
59                 global $manager;\r
60                 \r
61                 $this->strFullName = 'NP_' . $pluginName;\r
62                 \r
63                 // check if plugin exists and is installed\r
64                 if (!$manager->pluginInstalled($this->strFullName))\r
65                         doError('Invalid plugin');\r
66                 \r
67                 $this->plugin =& $manager->getPlugin($this->strFullName);\r
68                 $this->bValid = $this->plugin;\r
69         \r
70                 if (!$this->bValid)\r
71                         doError('Invalid plugin');\r
72                 \r
73                 $this->admin = new ADMIN();\r
74                 $this->admin->action = 'plugin_' . $pluginName;\r
75         }\r
76         \r
77         function start($extraHead = '')\r
78         {\r
79                 global $CONF;\r
80                 $strBaseHref  = '<base href="' . htmlspecialchars($CONF['AdminURL']) . '" />';  \r
81                 $extraHead .= $strBaseHref;\r
82                 \r
83                 $this->admin->pagehead($extraHead);\r
84         }\r
85         \r
86         function end()\r
87         {\r
88                 $this->admin->pagefoot();\r
89         }       \r
90 }\r
91 \r
92 \r
93 \r
94 ?>\r