OSDN Git Service

FIX:メンバーごとの管理エリア用スキンが反映されていなかったので修正
[nucleus-jp/nucleus-next.git] / nucleus / libs / ADMIN.php
index 09ed8c4..c3f216d 100644 (file)
@@ -151,12 +151,12 @@ class Admin
        \r
        static public function initialize()\r
        {\r
-               global $CONF, $DIR_LIBS, $manager;\r
+               global $CONF, $DIR_LIBS, $manager, $member;\r
                \r
                /* NOTE: 1. decide which skinid to use */\r
                $skinid = $CONF['AdminSkin'];\r
                /*\r
-                * NOTE: this is temporary escaped because not implemented yet\r
+                * NOTE: this is temporary escaped because not implemented yet*/\r
                if (isset($member) && $member->isLoggedIn())\r
                {\r
                        $memskin = $member->getAdminSkin();\r
@@ -165,7 +165,6 @@ class Admin
                                $skinid = $memskin;\r
                        }\r
                }\r
-               */\r
                \r
                /* NOTE: 2. make an instance of skin object */\r
                if ( !Skin::existsID($skinid) )\r
@@ -4244,22 +4243,25 @@ class Admin
                if ( $skinid == $CONF['AdminSkin'] )\r
                {\r
                        self::error(_ERROR_DEFAULTSKIN);\r
+                       exit;\r
                }\r
                \r
                /*\r
                 * TODO: NOT Implemented\r
                 *  don't allow deletion of default skins for members\r
-               $memberDefaults =  $member->getAdminSkin();\r
-               foreach ( $memberDefaults as $memID => $adminskin )\r
+                */\r
+               $query          = 'SELECT * FROM %s WHERE madminskin = %d or mbkmklt = %d';\r
+               $res            = DB::getResult(sprintf($query, sql_table('member'), $skinid, $skinid));\r
+               $members        = array();\r
+               while ( $row = $res->fetch() ) {\r
+                       $members[] = $row['mrealname'];\r
+               }\r
+               if ( count($members) )\r
                {\r
-                       if ( $skinid == $adminskin )\r
-                       {\r
-                               $mem =& $manager->getMember($memID);\r
-                               self::error(_ERROR_SKINDEFDELETE . $mem->displayname);\r
-                       }\r
+                       self::error(_ERROR_SKINDEFDELETE . implode(' ' . _AND . ' ', $members));\r
+                       exit;\r
                }\r
-               */\r
-               \r
+\r
                $manager->notify('PreDeleteAdminSkin', array('skinid' => (integer) $skinid));\r
                \r
                // 1. delete description\r