OSDN Git Service

- avoid warning when using app-specific plugin without parent classes.
authorichii386 <ichii386@2ef88817-412d-0410-a32c-8029a115e976>
Thu, 27 Jul 2006 01:56:31 +0000 (01:56 +0000)
committerichii386 <ichii386@2ef88817-412d-0410-a32c-8029a115e976>
Thu, 27 Jul 2006 01:56:31 +0000 (01:56 +0000)
- add plugin prop to Ethna_Backend, Ethna_ActionClass. (like Ethna_Session)

class/Ethna_ActionClass.php
class/Ethna_Backend.php
class/Ethna_Plugin.php

index a825799..20d09e5 100644 (file)
@@ -47,6 +47,9 @@ class Ethna_ActionClass
     /** @var    object  Ethna_Session       ¥»¥Ã¥·¥ç¥ó¥ª¥Ö¥¸¥§¥¯¥È */
     var $session;
 
+    /** @var    object  Ethna_Plugin        ¥×¥é¥°¥¤¥ó¥ª¥Ö¥¸¥§¥¯¥È */
+    var $plugin;
+
     /**#@-*/
 
     /**
@@ -69,6 +72,7 @@ class Ethna_ActionClass
         $this->af =& $this->action_form;
 
         $this->session =& $this->backend->getSession();
+        $this->plugin =& $this->backend->getPlugin();
     }
 
     /**
index 29c77d5..a0db6b6 100644 (file)
@@ -59,6 +59,9 @@ class Ethna_Backend
     /** @var    object  Ethna_Session       ¥»¥Ã¥·¥ç¥ó¥ª¥Ö¥¸¥§¥¯¥È */
     var $session;
 
+    /** @var    object  Ethna_Plugin        ¥×¥é¥°¥¤¥ó¥ª¥Ö¥¸¥§¥¯¥È */
+    var $plugin;
+
     /** @var    array   Ethna_DB¥ª¥Ö¥¸¥§¥¯¥È¤ò³ÊǼ¤·¤¿ÇÛÎó */
     var $db_list;
 
@@ -93,6 +96,7 @@ class Ethna_Backend
         $this->ac =& $this->action_class;
 
         $this->session =& $this->controller->getSession();
+        $this->plugin =& $this->controller->getPlugin();
         $this->db_list = array();
         $this->logger =& $this->controller->getLogger();
     }
@@ -219,6 +223,17 @@ class Ethna_Backend
     }
 
     /**
+     *  ¥×¥é¥°¥¤¥ó¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥¯¥»¥µ(R)
+     *
+     *  @access public
+     *  @return object  Ethna_Plugin    ¥×¥é¥°¥¤¥ó¥ª¥Ö¥¸¥§¥¯¥È
+     */
+    function &getPlugin()
+    {
+        return $this->plugin;
+    }
+
+    /**
      *  ¥Þ¥Í¡¼¥¸¥ã¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¥¢¥¯¥»¥µ(R)
      *
      *  @access public
index 8f51fb5..259a100 100644 (file)
@@ -109,7 +109,7 @@ class Ethna_Plugin
 
             // ¥×¥é¥°¥¤¥ó¤Î¿Æ¥¯¥é¥¹¤ò(¸ºß¤¹¤ì¤Ð)Æɤ߹þ¤ß
             list($class, $dir, $file) = $this->_getPluginNaming($type, null, 'Ethna');
-            $this->_includePluginSrc($class, $dir, $file);
+            $this->_includePluginSrc($class, $dir, $file, false);
         }
 
         // key ¤¬¤Ê¤¤¤È¤­¤Ï¥×¥é¥°¥¤¥ó¤ò¥í¡¼¥É¤¹¤ë
@@ -236,9 +236,10 @@ class Ethna_Plugin
      *  @param  string  $type   ¥×¥é¥°¥¤¥ó¤Î¼ïÎà
      *  @param  string  $name   ¥×¥é¥°¥¤¥ó¤Î̾Á°
      *  @param  string  $appid  ¥¢¥×¥ê¥±¡¼¥·¥ç¥óID
+     *  @param  bool    $strict ¥¨¥é¡¼ÍÞÀ©¥Õ¥é¥°
      *  @return true|Ethna_Error
      */
-    function &_includePluginSrc($class, $dir, $file)
+    function &_includePluginSrc($class, $dir, $file, $strict = true)
     {
         $true = true;
         if (file_exists("{$dir}/{$file}")) {
@@ -250,8 +251,11 @@ class Ethna_Plugin
                 return Ethna::raiseWarning('plugin class [%s] is not defined', E_PLUGIN_NOTFOUND, $class);
             }
         } else {
-            return Ethna::raiseWarning('plugin file is not found: [%s]', E_PLUGIN_NOTFOUND, "{$dir}/{$file}");
+            if ($strict == true) {
+                return Ethna::raiseWarning('plugin file is not found: [%s]', E_PLUGIN_NOTFOUND, "{$dir}/{$file}");
+            }
         }
+        return $true;
     }
 
     /**