OSDN Git Service

ADD:メンバー毎の管理画面およびブックマークレット用スキン選択ボックスを追加
authorshizuki <shizuki@kinezumi.net>
Tue, 29 May 2012 06:33:46 +0000 (15:33 +0900)
committershizuki <shizuki@kinezumi.net>
Tue, 29 May 2012 06:33:46 +0000 (15:33 +0900)
「メンバーの編集」画面にメンバー毎の管理画面およびブックマークレット用スキン選択用のスキン変数<%defadminskinselect%><%defbookmarkletselect%>を追加
上2つの表示用に日本語と英語の翻訳ファイルに翻訳文を追加

install/install.sql
nucleus/libs/ADMIN.php
nucleus/libs/AdminActions.php
nucleus/libs/MEMBER.php
nucleus/locales/en_Latn_US.ISO-8859-1.php
nucleus/locales/en_Latn_US.UTF-8.php
nucleus/locales/ja_Jpan_JP.EUC-JP.php
nucleus/locales/ja_Jpan_JP.UTF-8.php
skins/admin/default/skinbackup.xml

index 0a6bb60..4a49c24 100644 (file)
@@ -159,7 +159,8 @@ CREATE TABLE nucleus_member (
   mcookiekey varchar(40) default NULL,\r
   mlocale varchar(20) NOT NULL default '',\r
   mautosave tinyint(2) NOT NULL default '1',\r
-  adminskin tinyint(2) NOT NULL default '0',\r
+  madminskin tinyint(2) NOT NULL default '0',\r
+  mbkmklt tinyint(2) NOT NULL default '0',\r
   PRIMARY KEY  (mnumber),\r
 --  UNIQUE KEY mnumber (mnumber),\r
   UNIQUE KEY mname (mname)\r
index 12d3bab..825dc3d 100644 (file)
@@ -1476,6 +1476,7 @@ class Admin
                $email                  = strip_tags(postVar('email'));\r
                $url                    = strip_tags(postVar('url'));\r
                $adminskin              = intPostVar('adminskin');\r
+               $bookmarklet    = intPostVar('bookmarklet');\r
                \r
                // begin if: sometimes user didn't prefix the URL with http:// or https://, this cause a malformed URL. Let's fix it.\r
                if ( !preg_match('#^https?://#', $url) )\r
@@ -1573,7 +1574,9 @@ class Admin
                $mem->setURL($url);\r
                $mem->setNotes($notes);\r
                $mem->setLocale($locale);\r
-               \r
+               $mem->setAdminSkin($adminskin);\r
+               $mem->setBookmarklet($bookmarklet);\r
+\r
                // only allow super-admins to make changes to the admin status\r
                if ( $member->isAdmin() )\r
                {\r
index 84e8e8d..30d14eb 100644 (file)
@@ -1187,15 +1187,30 @@ class AdminActions extends BaseActions
         */
        public function parse_defadminskinselect($template_name)
        {
-               global $CONF;
+               global $CONF, $action;
+
+               if ( $action == 'editmembersettings' )
+               {
+                       global $member;
+                       $default = ($member->adminskin > 0) ? $member->adminskin : $CONF['AdminSkin'];
+               }
+               elseif ( $action == 'memberedit' )
+               {
+                       global $manager;
+                       $mem = $manager->getMember(intRequestVar('memberid'));
+                       $default = ($mem->adminskin > 0) ? $mem->adminskin : $CONF['AdminSkin'];
+               }
+               else
+               {
+                       $default = $CONF['AdminSkin'];
+               }
 
                $query  = "SELECT sdname as text, sdnumber as value FROM %s WHERE sdname LIKE 'admin/%%'";
                $query = sprintf($query, sql_table('skin_desc'));
-
                $template = array(
                                'name'          => 'adminskin',
                                'tabindex'      => 10080,
-                               'selected'      => $CONF['AdminSkin']
+                               'selected'      => $default
                );
                $this->parser->parse(showlist($query, 'select', $template, $template_name));
                return;
@@ -1210,15 +1225,31 @@ class AdminActions extends BaseActions
         */
        public function parse_defbookmarkletselect($template_name)
        {
-               global $CONF;
-       
+               global $CONF, $action;
+               
+               if ( $action == 'editmembersettings' )
+               {
+                       global $member;
+                       $default = ($member->bookmarklet > 0) ? $member->bookmarklet : $CONF['BookmarkletSkin'];
+               }
+               elseif ( $action == 'memberedit' )
+               {
+                       global $manager;
+                       $mem = $manager->getMember(intRequestVar('memberid'));
+                       $default = ($mem->bookmarklet > 0) ? $mem->bookmarklet : $CONF['BookmarkletSkin'];
+               }
+               else
+               {
+                       $default = $CONF['BookmarkletSkin'];
+               }
+               
                $query  = "SELECT sdname as text, sdnumber as value FROM %s WHERE sdname LIKE 'admin/%%'";
                $query = sprintf($query, sql_table('skin_desc'));
        
                $template = array(
                                'name'          => 'bookmarklet',
                                'tabindex'      => 10085,
-                               'selected'      => $CONF['BookmarkletSkin']
+                               'selected'      => $default
                );
                $this->parser->parse(showlist($query, 'select', $template, $template_name));
                return;
index add9899..d031413 100644 (file)
@@ -37,6 +37,8 @@ class Member
        public $canlogin = 0;           // (either 0 or 1)\r
        public $notes;\r
        public $autosave = 1;           // if the member use the autosave draft function\r
+       public $adminskin = 0;          // if the member use the autosave draft function\r
+       public $bookmarklet = 0;                // if the member use the autosave draft function\r
        private $locale = '';\r
        \r
        /**\r
@@ -368,7 +370,9 @@ class Member
                $this->setNotes($row['mnotes']);\r
                $this->setLocale($row['mlocale']);\r
                $this->setAutosave($row['mautosave']);\r
-               \r
+               $this->setAdminSkin($row['madminskin']);\r
+               $this->setBookmarklet($row['mbkmklt']);\r
+\r
                return $row ? TRUE : FALSE;\r
        }\r
        \r
@@ -820,6 +824,8 @@ class Member
                           . 'mnotes=' . DB::quoteValue($this->notes) . ', '\r
                           . 'mcanlogin=' . intval($this->canlogin) . ', '\r
                           . 'mlocale=' . DB::quoteValue($this->locale) . ', '\r
+                          . 'madminskin=' . DB::quoteValue($this->adminskin) . ', '\r
+                          . 'mbkmklt=' . DB::quoteValue($this->bookmarklet) . ', '\r
                           . 'mautosave=' . intval($this->autosave) . ' '\r
                        . 'WHERE mnumber=' . intval($this->id);\r
                DB::execute($query);\r
@@ -907,6 +913,26 @@ class Member
                $this->url = $site;\r
        }\r
        \r
+       public function setAdminSkin($skin)\r
+       {\r
+               $this->adminskin = $skin;\r
+       }\r
+\r
+       public function setBookmarklet($skin)\r
+       {\r
+               $this->bookmarklet = $skin;\r
+       }\r
+       \r
+       public function getAdminSkin()\r
+       {\r
+               return $this->adminskin;\r
+       }\r
+\r
+       public function getBookmarklet()\r
+       {\r
+               return $this->bookmarklet;\r
+       }\r
+\r
        public function getLocale()\r
        {\r
                return $this->locale;\r
index edfa183..4dbd06c 100644 (file)
@@ -34,6 +34,7 @@ define('_ERROR_BADADMINSKINNAME',                     'the name of skin for admin area must start
 define('_ERROR_BADADMINTEMPLATENAME',          'the name of template for admin area must start with \'admin/\'.');
 define('_SETTINGS_ADMINSKIN', 'default skin for admin area');
 define('_SETTINGS_BKMKLTSKIN', 'default skin for bookmarklet');
+define('_MEMBERS_BKMKLTSKIN',          "bookmarklet skin");
 
 /********************************************
  *        Start New for 3.6x                *
index 97241fd..1adb636 100644 (file)
@@ -34,6 +34,7 @@ define('_ERROR_BADADMINSKINNAME',             'the name of skin for admin area must start w
 define('_ERROR_BADADMINTEMPLATENAME',  'the name of template for admin area must start with \'admin/\'.');\r
 define('_SETTINGS_ADMINSKIN', 'default skin for admin area');
 define('_SETTINGS_BKMKLTSKIN', 'default skin for bookmarklet');
+define('_MEMBERS_BKMKLTSKIN',          "bookmarklet skin");
 
 /********************************************
  *        Start New for 3.6x                *
index bbfc124..e8da25d 100644 (file)
@@ -41,6 +41,7 @@ define('_ERROR_BADADMINSKINNAME', '
 define('_ERROR_BADADMINTEMPLATENAME', '´ÉÍý²èÌÌÍÑ¥¹¥­¥ó¤Î¥Æ¥ó¥×¥ì¡¼¥È̾¤ÏÀèƬ¤¬¡Öadmin/¡×¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£');
 define('_SETTINGS_ADMINSKIN', '¥Ç¥Õ¥©¥ë¥È¤Î´ÉÍý²èÌÌÍÑ¥¹¥­¥ó');
 define('_SETTINGS_BKMKLTSKIN', '¥Ç¥Õ¥©¥ë¥È¤Î¥Ö¥Ã¥¯¥Þ¡¼¥¯¥ì¥Ã¥ÈÍÑ¥¹¥­¥ó');
+define('_MEMBERS_BKMKLTSKIN',          '»ÈÍѤ¹¤ë¥Ö¥Ã¥¯¥Þ¡¼¥¯¥ì¥Ã¥ÈÍѤΥ¹¥­¥ó');
 
 /********************************************
  *        Start New for 3.64                *
index c5e045a..16ed6df 100644 (file)
@@ -41,6 +41,7 @@ define('_ERROR_BADADMINSKINNAME', '管理画面用スキン名は先頭が「adm
 define('_ERROR_BADADMINTEMPLATENAME', '管理画面用スキンのテンプレート名は先頭が「admin/」で始まっている必要があります。');
 define('_SETTINGS_ADMINSKIN', 'デフォルトの管理画面用スキン');
 define('_SETTINGS_BKMKLTSKIN', 'デフォルトのブックマークレット用スキン');
+define('_MEMBERS_BKMKLTSKIN',          '使用するブックマークレット用のスキン');
 
 /********************************************
  *        Start New for 3.64                *
index f4ad29b..2864fea 100644 (file)
@@ -1545,7 +1545,12 @@ ADMIN Area Default skin]]></description>
 </tr><%if(superadmin)%><tr>\r
 <td><%text(_SKINABLEADMIN_MEMBERS_ADMINSKIN)%> <%customhelplink(useadminskin)%></td>\r
 <td>\r
-<%defskinselect(admin/default)%>\r
+<%defadminskinselect(admin/default)%>\r
+</td>\r
+</tr><%endif%><%if(superadmin)%><tr>\r
+<td><%text(_MEMBERS_BKMKLTSKIN)%></td>\r
+<td>\r
+<%defbookmarkletselect(admin/default)%>\r
 </td>\r
 </tr><%endif%>\r
 <%pluginoptions(member)%>\r