OSDN Git Service

<%itemtime%>タグをパースする度にイベント「PreAddItemForm」が発生するバグの修正
[nucleus-jp/nucleus-next.git] / nucleus / libs / AdminActions.php
index 8029584..f09c6c6 100644 (file)
@@ -472,6 +472,8 @@ class AdminActions extends BaseActions
                                'editmember',
                                'localeselectoptions',
                                'pluginoptions',
+                               'defadminskinselect',
+                               'defbookmarkletselect',
                                );
                                break;
                        case 'forgotpassword':
@@ -575,6 +577,8 @@ class AdminActions extends BaseActions
                                'localeselectoptions',
                                'mediadirwarning',
                                'pluginextras',
+                               'defadminskinselect',
+                               'defbookmarkletselect',
                                );
                                break;
                        case 'showlogin':
@@ -1173,6 +1177,95 @@ class AdminActions extends BaseActions
                }
                return;
        }
+
+       /**
+        * AdminActions::parse_defadminskinselect()
+        * Parse skinvar defadminskinselect
+        *
+        * @param       string  $template_name  name of template to use
+        * @return      void
+        */
+       public function parse_defadminskinselect($template_name)
+       {
+               global $CONF, $action;
+               
+               if ( $action == 'editmembersettings' )
+               {
+                       global $member;
+                       $default = $member->adminskin;
+               }
+               elseif ( $action == 'memberedit' )
+               {
+                       global $manager;
+                       $mem = $manager->getMember(intRequestVar('memberid'));
+                       $default = $mem->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'      => $default
+               );
+               
+               if ( $this->skintype != 'settingsedit' )
+               {
+                       $template['extra'] = Entity::hsc(_MEMBERS_USESITELANG);
+               }
+               
+               $this->parser->parse(showlist($query, 'select', $template, $template_name));
+               return;
+       }
+       
+       /**
+        * AdminActions::parse_defbookmarkletselect()
+        * Parse skinvar defbookmarkletselect
+        *
+        * @param       string  $template_name  name of template to use
+        * @return      void
+        */
+       public function parse_defbookmarkletselect($template_name)
+       {
+               global $CONF, $action;
+               
+               if ( $action == 'editmembersettings' )
+               {
+                       global $member;
+                       $default = $member->bookmarklet;
+               }
+               elseif ( $action == 'memberedit' )
+               {
+                       global $manager;
+                       $mem = $manager->getMember(intRequestVar('memberid'));
+                       $default = $mem->bookmarklet;
+               }
+               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'      => $default
+               );
+               
+               if ( $this->skintype != 'settingsedit' )
+               {
+                       $template['extra'] = Entity::hsc(_MEMBERS_USESITELANG);
+               }
+               
+               $this->parser->parse(showlist($query, 'select', $template, $template_name));
+               return;
+       }
        
        /**
         * AdminActions::parse_batchdeletetype()
@@ -1282,7 +1375,7 @@ class AdminActions extends BaseActions
                {
                        $template['content']  = 'categorylist';
                        $template['tabindex'] = 200;
-                       $this->parser->parse(listplug_batchlist('category', $resource, 'table', $template));
+                       $this->parser->parse(listplug_batchlist('category', $resource, 'table', $template, $template_name));
                }
                else
                {
@@ -1425,7 +1518,7 @@ class AdminActions extends BaseActions
                        $template['content']  = 'teamlist';
                        $template['tabindex'] = 10;
                                
-                       $this->parser->parse(listplug_batchlist('team', $resource, 'table', $template));
+                       $this->parser->parse(listplug_batchlist('team', $resource, 'table', $template, $template_name));
                }
                else
                {
@@ -2160,7 +2253,7 @@ class AdminActions extends BaseActions
                        $template['content'] = 'memberlist';
                        $template['tabindex'] = 10;
                                
-                       $this->parser->parse(listplug_batchlist('member', $resource, 'table', $template));
+                       $this->parser->parse(listplug_batchlist('member', $resource, 'table', $template, $template_name));
                }
                else
                {
@@ -2648,7 +2741,8 @@ class AdminActions extends BaseActions
                );
                
                $manager->notify('AdminPrePageHead', $data);
-               echo $extrahead;
+               
+               $this->parser->parse($extrahead);
                return;
        }
        
@@ -3236,7 +3330,7 @@ class AdminActions extends BaseActions
                                
                        $template['content'] = 'itemlist';
                                
-                       $this->parser->parse(listplug_navlist('item', $query, 'table', $template));
+                       $this->parser->parse(listplug_navlist('item', $query, 'table', $template, $template_name));
                }
                else
                {
@@ -3258,34 +3352,7 @@ class AdminActions extends BaseActions
        {
                global $manager;
                
-               $item = false;
-               $itemid = intRequestVar('itemid');
-               $item =& $manager->getItem($itemid, 1, 1);
-               
-               if ( $item )
-               {
-                       $blog =& $manager->getBlog($item['blogid']);
-                       
-                       if ( $blog->convertBreaks() && requestVar('action') == 'itemedit' )
-                       {
-                               $item['body'] = removeBreaks($item['body']);
-                               $item['more'] = removeBreaks($item['more']);
-                       }
-               }
-               
-               $contents = array();
-               if ( requestVar('action') == 'itemedit' )
-               {
-                       $contents = $item;
-               }
-               elseif ( requestVar('action') == 'createitem' )
-               {
-                       $data = array(
-                               'contents'      => &$contents,
-                               'blog'          => &$this->blog
-                       );
-                       $manager->notify('PreAddItemForm', $data);
-               }
+               $contents = Admin::$contents;
                $itemtime = getdate($contents['timestamp']);
                echo $itemtime[$key];
                return;
@@ -3326,62 +3393,74 @@ class AdminActions extends BaseActions
         */
        public function parse_localeselectoptions()
        {
-               global $manager;
+               global $CONF, $member;
                
                $locales = i18n::get_available_locale_list();
                
-               $memid = intRequestVar('memberid');
-               if ( $memid )
+               /* default option */
+               if ( $this->skintype == 'editmembersettings' )
                {
-                       $mem =& $manager->getMember($memid);
-                       if ( !$mem->getLocale() || !in_array($mem->getLocale(), $locales) )
-                       {
-                               echo "<option value=\"\" selected=\"selected\">" . Entity::hsc(_MEMBERS_USESITELANG) . "</option>\n";
-                       }
-                       else
-                       {
-                               echo "<option value=\"\">" . Entity::hsc(_MEMBERS_USESITELANG) . "</option>\n";
-                       }
+                       if ( !$member->getLocale() )\r
+                       {\r
+                               echo "<option value=\"\" selected=\"selected\">" . Entity::hsc(_MEMBERS_USESITELANG) . "</option>\n";\r
+                       }\r
+                       else\r
+                       {\r
+                               echo "<option value=\"\">" . Entity::hsc(_MEMBERS_USESITELANG) . "</option>\n";\r
+                       }\r
                }
                else
                {
-                       if ( !i18n::get_current_locale() || !in_array(i18n::get_current_locale(), $locales) )
-                       {
-                               echo "<option value=\"\" selected=\"selected\">en_Latn_US</option>\n";
-                       }
-                       else
-                       {
-                               echo "<option value=\"\">en_Latn_US</option>\n";
-                       }
+                       if ( $CONF['Locale'] == 'en_Latn_US' )\r
+                       {\r
+                               echo "<option value=\"\" selected=\"selected\">" . Entity::hsc(_LOCALE_EN_LATN_US) . "</option>\n";\r
+                       }\r
+                       else\r
+                       {\r
+                               echo "<option value=\"\">" . Entity::hsc(_LOCALE_EN_LATN_US) . "</option>\n";\r
+                       }\r
                }
+               
+               /* optional options */
                foreach ( $locales as $locale )
                {
-                       if ( $locale == 'en_Latn_US' )
+                       if ( $this->skintype == 'editmembersettings' )\r
                        {
-                               continue;
+                               if ( $locale != $member->getLocale() )\r
+                               {\r
+                                       echo "<option value=\"{$locale}\">";\r
+                               }\r
+                               else\r
+                               {\r
+                                       echo "<option value=\"{$locale}\" selected=\"selected\">";\r
+                               }
                        }
-                       else if ($memid)
+                       else
                        {
-                               if ( $locale == $mem->getLocale() )
-                               {
-                                       echo "<option value=\"{$locale}\" selected=\"selected\">{$locale}</option>\n";
-                               }
-                               else
+                               if ( $locale == 'en_Latn_US' )
                                {
-                                       echo "<option value=\"{$locale}\">{$locale}</option>\n";
+                                       /* already output */
+                                       continue;
                                }
+                               else if ( $locale != $CONF['Locale'] )\r
+                               {\r
+                                       echo "<option value=\"{$locale}\">";\r
+                               }\r
+                               else\r
+                               {\r
+                                       echo "<option value=\"{$locale}\" selected=\"selected\">";\r
+                               }\r
+                       }
+                       $label = '_LOCALE_' . strtoupper($locale);
+                       if ( !defined($label) )
+                       {
+                               echo $locale;
                        }
                        else
                        {
-                               if ( $locale == i18n::get_current_locale() )
-                               {
-                                       echo "<option value=\"{$locale}\" selected=\"selected\">{$locale}</option>\n";
-                               }
-                               else
-                               {
-                                       echo "<option value=\"{$locale}\">{$locale}</option>\n";
-                               }
+                               echo constant($label);
                        }
+                       echo "</option>\n";\r
                }
                return;
        }
@@ -5050,31 +5129,13 @@ class AdminActions extends BaseActions
        {
                global $member, $nucleus, $CONF, $manager;
                
-               $extrahead = Admin::getAdminextrahead();
-               $data = array(
-                       'extrahead'     => &$extrahead,
-                       'action'        =>  Admin::getAdminAction()
-               );
-               $manager->notify('AdminPrePageHead', $data);
+               /* HTTP 1.1 application for no caching */
+               header("Cache-Control: no-cache, must-revalidate");
+               header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
                
                $content = $this->parser->skin->getContentFromDB('pagehead');
                if ( !$content )
                {
-                       $baseUrl = Entity::hsc($CONF['SkinsURL']);
-                       
-                       /*
-                        * TODO: obsoleted
-                        if ( !array_key_exists('AdminCSS', $CONF) )
-                        {
-                        DB::execute("INSERT INTO " . sql_table('config') . " VALUES ('AdminCSS', 'original')");
-                        $CONF['AdminCSS'] = 'original';
-                        }
-                        */
-                       
-                       /* HTTP 1.1 application for no caching */
-                       header("Cache-Control: no-cache, must-revalidate");
-                       header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
-                       
                        $root_element = 'html';
                        $charset = i18n::get_current_charset();
                        $locale = preg_replace('#_#', '-', i18n::get_current_locale());
@@ -5083,81 +5144,56 @@ class AdminActions extends BaseActions
                        $system_identifier = self::$system_identifier;
                        $xhtml_namespace = self::$xhtml_namespace;
                        
-                       echo "<?xml version=\"{$xml_version_info}\" encoding=\"{$charset}\" ?>\n";
-                       echo "<!DOCTYPE {$root_element} PUBLIC \"{$formal_public_identifier}\" \"{$system_identifier}\">\n";
-                       echo "<{$root_element} xmlns=\"{$xhtml_namespace}\" xml:lang=\"{$locale}\" lang=\"{$locale}\">\n";
-                       echo "<head>\n";
-                       echo '<title>' . Entity::hsc($CONF['SiteName']) . " - Admin</title>\n";
-                       /*
-                        * TODO: obsoleted
-                        echo "<link rel=\"stylesheet\" title=\"Nucleus Admin Default\" type=\"text/css\" href=\"{$baseUrl}admin/defaultadmin/styles/admin_{$CONF["AdminCSS"]}.css\" />\n";
-                        */
-                       echo "<link rel=\"stylesheet\" title=\"Nucleus Admin Default\" type=\"text/css\" href=\"{$baseUrl}admin/defaultadmin/styles/addedit.css\" />\n";
-                       echo "<script type=\"text/javascript\" src=\"{$baseUrl}javascripts/edit.js\"></script>\n";
-                       echo "<script type=\"text/javascript\" src=\"{$baseUrl}javascripts/admin.js\"></script>\n";
-                       echo "<script type=\"text/javascript\" src=\"{$baseUrl}javascripts/compatibility.js\"></script>\n";
-                       echo "{$extrahead}\n";
-                       echo "</head>\n\n";
-                       echo "<body>\n";
-                       echo "<div id=\"adminwrapper\">\n";
-                       echo "<div class=\"header\">\n";
-                       echo '<h1>' . Entity::hsc($CONF['SiteName']) . "</h1>\n";
-                       echo "</div>\n";
-                       echo "<div id=\"container\">\n";
-                       echo "<div id=\"content\">\n";
-                       echo "<div class=\"loginname\">\n";
-                       
-                       if ( !$member->isLoggedIn() )
-                       {
-                               echo '<a href="index.php?action=showlogin" title="Log in">' . _NOTLOGGEDIN . "</a><br />\n";
-                       }
-                       else
-                       {
-                               echo _LOGGEDINAS . ' ' . $member->getDisplayName() ." - <a href='index.php?action=logout'>" . _LOGOUT. "</a><br />\n";
-                               echo "<a href='index.php?action=overview'>" . _ADMINHOME . "</a> - ";
-                       }
-                       
-                       echo "<a href='".$CONF['IndexURL']."'>"._YOURSITE."</a><br />\n";
-                       echo '(';
-                       
-                       if ( !array_key_exists('codename', $nucleus) || empty($nucleus['codename']) )
-                       {
-                               $codenamestring = '';
-                       }
-                       else
-                       {
-                               $codenamestring = ' &quot;' . $nucleus['codename'].'&quot;';
-                       }
-                       
-                       if ( $member->isLoggedIn() && $member->isAdmin() )
-                       {
-                               $checkURL = sprintf(_ADMIN_SYSTEMOVERVIEW_VERSIONCHECK_URL, getNucleusVersion(), getNucleusPatchLevel());
-                               echo '<a href="' . $checkURL . '" title="' . _ADMIN_SYSTEMOVERVIEW_VERSIONCHECK_TITLE . '">Nucleus CMS ' . $nucleus['version'] . $codenamestring . '</a>';
-                               
-                               $newestVersion = getLatestVersion();
-                               $newestCompare = str_replace('/', '.', $newestVersion);
-                               $currentVersion = str_replace(array('/','v'), array('.',''), $nucleus['version']);
-                               
-                               if ( $newestVersion && version_compare($newestCompare, $currentVersion) > 0 )
-                               {
-                                       echo "<br />\n";
-                                       echo '<a style="color:red" href="http://nucleuscms.org/upgrade.php" title="' . _ADMIN_SYSTEMOVERVIEW_LATESTVERSION_TITLE . '">';
-                                       echo _ADMIN_SYSTEMOVERVIEW_LATESTVERSION_TEXT . $newestVersion;
-                                       echo "</a>";
-                               }
-                       }
-                       else
-                       {
-                               echo "Nucleus CMS {$nucleus['version']}{$codenamestring}";
-                       }
-                       echo ')';
-                       echo '</div>';
-               }
-               else
-               {
-                       $this->parser->parse($content);
-               }
-               
+                       $content = "<?xml version=\"{$xml_version_info}\" encoding=\"{$charset}\" ?>\n"
+                                 . "<!DOCTYPE {$root_element} PUBLIC \"{$formal_public_identifier}\" \"{$system_identifier}\">\n"
+                                 . "<{$root_element} xmlns=\"{$xhtml_namespace}\" xml:lang=\"{$locale}\" lang=\"{$locale}\">\n"
+                                 . "<head>\n"
+                                 . "<title><%sitevar(name)%> - Admin</title>\n"
+                                 . "<script type=\"text/javascript\" src=\"<%skinfile(/javascripts/edit.js)%>\"></script>"
+                                 . "<script type=\"text/javascript\" src=\"<%skinfile(/javascripts/admin.js)%>\"></script>"
+                                 . "<script type=\"text/javascript\" src=\"<%skinfile(/javascripts/compatibility.js)%>\"></script>"
+                                 . "<%extrahead%>"
+                                 . "</head>"
+                                 . "<body>"
+                                 . "<div id=\"adminwrapper\">"
+                                 . "<div class=\"header\">"
+                                 . "<h1><%sitevar(name)%></h1>"
+                                 . "</div>"
+                                 . "<div id=\"container\">"
+                                 . "<div id=\"content\">"
+                                 . "<div class=\"loginname\">"
+                                 . "<link rel=\"stylesheet\" title=\"Nucleus Admin Default\" type=\"text/css\" href=\"<%skinfile(admin/defaultadmin/styles/addedit.css%>\" />\n"
+                                 . "<script type=\"text/javascript\" src=\"<%skinfile(/javascripts/edit.js)%>\"></script>\n"
+                                 . "<script type=\"text/javascript\" src=\"<%skinfile(/javascripts/admin.js)%>\"></script>\n"
+                                 . "<script type=\"text/javascript\" src=\"<%skinfile(/javascripts/compatibility.js)%>\"></script>\n"
+                                 . "<%extrahead%>\n"
+                                 . "</head>\n"
+                                 . "\n"
+                                 . "<body>\n"
+                                 . "<div id=\"adminwrapper\">\n"
+                                 . "<div class=\"header\">\n"
+                                 . "<h1><%sitevar(name)%></h1>\n"
+                                 . "</div>\n"
+                                 . "<div id=\"container\">\n"
+                                 . "<div id=\"content\">\n"
+                                 . "<div class=\"loginname\">\n"
+                                 . "<%if(loggedin)%>"
+                                 . "<%text(_LOGGEDINAS)%> <%member(yourrealname)%> - <a href=\"<%adminurl%>index.php?action=logout\"><%text(_LOGOUT)%></a><br />"
+                                 . "<a href=\"<%adminurl%>index.php?action=overview\"><%text(_ADMINHOME)%></a> - "
+                                 . "<%else%>"
+                                 . "<a href=\"<%adminurl%>index.php?action=showlogin\" title=\"Log in\"><%text(_NOTLOGGEDIN)%></a><br />"
+                                 . "<%endif%>"
+                                 . "<a href=\"<%sitevar(url)%>\"><%text(_YOURSITE)%></a><br />"
+                                 . "("
+                                 . "<%if(superadmin)%>"
+                                 . "<a href=\"<%versioncheckurl%>\" title=\"<%text(_ADMIN_SYSTEMOVERVIEW_VERSIONCHECK_TITLE)%>\"><%version%><%codename%></a>"
+                                 . "<%newestcompare%><%else%><%version%><%codename%>"
+                                 . "<%endif%>"
+                                 . ")"
+                                 . "</div>";
+               }
+               
+               $this->parser->parse($content);
                return;
        }
        
@@ -5180,132 +5216,89 @@ class AdminActions extends BaseActions
                $content = $this->parser->skin->getContentFromDB('pagefoot');
                if ( !$content )
                {
-                       if ( $member->isLoggedIn() && ($action != 'showlogin') )
-                       {
-                               echo '<h2>' . _LOGOUT . "</h2>\n";
-                               echo "<ul>\n";
-                               echo '<li><a href="index.php?action=overview">' . _BACKHOME . "</a></li>\n";
-                               echo '<li><a href="index.php?action=logout">' .  _LOGOUT . "</a></li>\n";
-                               echo "</ul>\n";
-                       }
-                       
-                       echo "<div class=\"foot\">\n";
-                       echo '<a href="' . _ADMINPAGEFOOT_OFFICIALURL . '">Nucleus CMS</a> &copy; 2002-' . date('Y') . ' ' . _ADMINPAGEFOOT_COPYRIGHT;
-                       echo '-';
-                       echo '<a href="' . _ADMINPAGEFOOT_DONATEURL . '">' . _ADMINPAGEFOOT_DONATE . "</a>\n";
-                       echo "</div>\n";
-                               
-                       echo "<div id=\"quickmenu\">\n";
-                               
-                       if ( ($action != 'showlogin') && ($member->isLoggedIn()) )
-                       {
-                               echo "<ul>\n";
-                               echo '<li><a href="index.php?action=overview">' . _QMENU_HOME . "</a></li>\n";
-                               echo "</ul>\n";
-                               
-                               echo '<h2>' . _QMENU_ADD . "</h2>\n";
-                               echo "<form method=\"get\" action=\"index.php\">\n";
-                               echo "<p>\n";
-                               echo "<input type=\"hidden\" name=\"action\" value=\"createitem\" />\n";
-                               
-                               $showAll = requestVar('showall');
-                               
-                               if ( ($member->isAdmin()) && ($showAll == 'yes') )
-                               {
-                                       // Super-Admins have access to all blogs! (no add item support though)
-                                       $query = "SELECT bnumber as value, bname as text FROM %s ORDER BY bname;";
-                                       $query = sprintf($query, sql_table('blog'));
-                               }
-                               else
-                               {
-                                       $query = "SELECT bnumber as value, bname as text FROM %s, %s WHERE tblog=bnumber and tmember=%d ORDER BY bname;";
-                                       $query = sprintf($query, sql_table('blog'), sql_table('team'), (integer) $member->getID());
-                               }
-                               $template['name']               = 'blogid';
-                               $template['tabindex']   = 15000;
-                               $template['extra']              = _QMENU_ADD_SELECT;
-                               $template['selected']   = $blogid;
-                               $template['shorten']    = 10;
-                               $template['shortenel']  = '';
-                               $template['javascript'] = 'onchange="return form.submit()"';
-                               $this->parser->parse(showlist($query, 'select', $template));
-                               
-                               echo "</p>\n";
-                               echo "</form>\n";
-                               
-                               echo "<h2>{$member->getDisplayName()}</h2>\n";
-                               echo "<ul>\n";
-                               echo '<li><a href="index.php?action=editmembersettings">' . _QMENU_USER_SETTINGS . "</a></li>\n";
-                               echo '<li><a href="index.php?action=browseownitems">' . _QMENU_USER_ITEMS . "</a></li>\n";
-                               echo '<li><a href="index.php?action=browseowncomments">' . _QMENU_USER_COMMENTS . "</a></li>\n";
-                               echo "</ul>\n";
-                               
-                               if ( $member->isAdmin() )
-                               {
-                                       echo '<h2>' . _QMENU_MANAGE . "</h2>\n";
-                                       echo "<ul>\n";
-                                       echo '<li><a href="index.php?action=actionlog">' . _QMENU_MANAGE_LOG . "</a></li>\n";
-                                       echo '<li><a href="index.php?action=settingsedit">' . _QMENU_MANAGE_SETTINGS . "</a></li>\n";
-                                       echo '<li><a href="index.php?action=systemoverview">' . _QMENU_MANAGE_SYSTEM . "</a></li>\n";
-                                       echo '<li><a href="index.php?action=usermanagement">' . _QMENU_MANAGE_MEMBERS . "</a></li>\n";
-                                       echo '<li><a href="index.php?action=createnewlog">' . _QMENU_MANAGE_NEWBLOG . "</a></li>\n";
-                                       echo '<li><a href="index.php?action=backupoverview">' . _QMENU_MANAGE_BACKUPS . "</a></li>\n";
-                                       echo '<li><a href="index.php?action=pluginlist">' . _QMENU_MANAGE_PLUGINS . "</a></li>\n";
-                                       echo "</ul>\n";
-                                               
-                                       echo "<h2>" . _QMENU_LAYOUT . "</h2>\n";
-                                       echo "<ul>\n";
-                                       echo '<li><a href="index.php?action=skinoverview">' . _QMENU_LAYOUT_SKINS . "</a></li>\n";
-                                       echo '<li><a href="index.php?action=templateoverview">' . _QMENU_LAYOUT_TEMPL . "</a></li>\n";
-                                       echo '<li><a href="index.php?action=skinieoverview">' . _QMENU_LAYOUT_IEXPORT . "</a></li>\n";
-                                       echo "</ul>\n";
-                               }
-                               
-                               $data = array('options' => array());
-                               $manager->notify('QuickMenu', $data);
-                               
-                               if ( count($data['options']) > 0 )
-                               {
-                                       echo "<h2>" . _QMENU_PLUGINS . "</h2>\n";
-                                       echo "<ul>\n";
-                                       foreach ( $data['options'] as $option )
-                                       {
-                                               echo '<li><a href="' . Entity::hsc($option['url']) . '" title="' . Entity::hsc($option['tooltip']) . '">' . Entity::hsc($option['title']) . "</a></li>\n";
-                                       }
-                                       echo "</ul>\n";
-                               }
-                       }
-                       else if ( ($action == 'activate') || ($action == 'activatesetpwd') )
-                       {
-                                       
-                               echo '<h2>' . _QMENU_ACTIVATE . '</h2>' . _QMENU_ACTIVATE_TEXT;
-                       }
-                       else
-                       {
-                               echo '<h2>' . _QMENU_INTRO . '</h2>' . _QMENU_INTRO_TEXT;
-                       }
-                               
-                       echo "<!-- quickmenu -->\n";
-                       echo "</div>\n";
-                               
-                       echo "<!-- content -->\n";
-                       echo "</div>\n";
-                               
-                       echo "<!-- container -->\n";
-                       echo "</div>\n";
-                               
-                       echo "<!-- adminwrapper -->\n";
-                       echo "</div>\n";
-                               
-                       echo "</body>\n";
-                       echo "</html>\n";
-               }
-               else
-               {
-                       $this->parser->parse($content);
-                       exit;
-               }
-       
+                       $content = "<%if(loggedin)%>"
+                                . "<%ifnot(adminaction,showlogin)%>"
+                                . "<h2><%text(_LOGOUT)%></h2>"
+                                . "<ul>"
+                                . "<li><a href=\"<%adminurl%>index.php?action=overview\"><%text(_BACKHOME)%></a></li>"
+                                . "<li><a href=\"<%adminurl%>index.php?action=logout\"><%text(_LOGOUT)%></a></li>"
+                                . "</ul>"
+                                . "<%endif%>"
+                                . "<%endif%>"
+                                . "<div class=\"foot\">"
+                                . "<a href=\"<%text(_ADMINPAGEFOOT_OFFICIALURL)%>\">Nucleus CMS</a> &copy; 2002- <%date(%Y)%> <%text(_ADMINPAGEFOOT_COPYRIGHT)%>"
+                                . " - <a href=\"<%text(_ADMINPAGEFOOT_DONATEURL)%>\"><%text(_ADMINPAGEFOOT_DONATE)%></a>"
+                                . "</div>"
+                                . "</div>"
+                                . "<!-- content -->"
+                                . "<div id=\"quickmenu\">"
+                                . "<%if(loggedin)%>"
+                                . "<%ifnot(adminaction,showlogin)%>"
+                                . "<ul>"
+                                . "<li><a href=\"<%adminurl%>index.php?action=overview\"><%text(_QMENU_HOME)%></a></li>"
+                                . "</ul>"
+                                . "<h2><%text(_QMENU_ADD)%></h2>"
+                                . "<form method=\"get\" action=\"<%adminurl%>index.php\">"
+                                . "<div>"
+                                . "<input type=\"hidden\" name=\"action\" value=\"createitem\" />"
+                                . "<%qmenuaddselect(admin/default)%>"
+                                . "</div>"
+                                . "</form>"
+                                . "<h2><%member(yourrealname)%></h2>"
+                                . "<ul>"
+                                . "<li><a href=\"<%adminurl%>index.php?action=editmembersettings\"><%text(_QMENU_USER_SETTINGS)%></a></li>"
+                                . "<li><a href=\"<%adminurl%>index.php?action=browseownitems\"><%text(_QMENU_USER_ITEMS)%></a></li>"
+                                . "<li><a href=\"<%adminurl%>index.php?action=browseowncomments\"><%text(_QMENU_USER_COMMENTS)%></a></li>"
+                                . "</ul>"
+                                . "<%if(superadmin)%>"
+                                . "<h2><%text(_QMENU_MANAGE)%></h2>"
+                                . "<ul>"
+                                . "<li><a href=\"<%adminurl%>index.php?action=actionlog\"><%text(_QMENU_MANAGE_LOG)%></a></li>"
+                                . "<li><a href=\"<%adminurl%>index.php?action=settingsedit\"><%text(_QMENU_MANAGE_SETTINGS)%></a></li>"
+                                . "<li><a href=\"<%adminurl%>index.php?action=systemoverview\"><%text(_QMENU_MANAGE_SYSTEM)%></a></li>"
+                                . "<li><a href=\"<%adminurl%>index.php?action=usermanagement\"><%text(_QMENU_MANAGE_MEMBERS)%></a></li>"
+                                . "<li><a href=\"<%adminurl%>index.php?action=createnewlog\"><%text(_QMENU_MANAGE_NEWBLOG)%></a></li>"
+                                . "<li><a href=\"<%adminurl%>index.php?action=backupoverview\"><%text(_QMENU_MANAGE_BACKUPS)%></a></li>"
+                                . "<li><a href=\"<%adminurl%>index.php?action=pluginlist\"><%text(_QMENU_MANAGE_PLUGINS)%></a></li>"
+                                . "</ul>"
+                                . "<h2><%text(_QMENU_LAYOUT)%></h2>"
+                                . "<ul>"
+                                . "<li><a href=\"<%adminurl%>index.php?action=skinoverview\"><%text(_QMENU_LAYOUT_SKINS)%></a></li>"
+                                . "<li><a href=\"<%adminurl%>index.php?action=templateoverview\"><%text(_QMENU_LAYOUT_TEMPL)%></a></li>"
+                                . "<li><a href=\"<%adminurl%>index.php?action=skinieoverview\"><%text(_QMENU_LAYOUT_IEXPORT)%></a></li>"
+                                . "</ul>"
+                                . "<h2><%text(_SKINABLEADMIN_QMENU_LAYOUT)%></h2>"
+                                . "<ul>"
+                                . "<li><a href=\"<%adminurl%>index.php?action=adminskinoverview\"><%text(_QMENU_LAYOUT_SKINS)%></a></li>"
+                                . "<li><a href=\"<%adminurl%>index.php?action=admintemplateoverview\"><%text(_QMENU_LAYOUT_TEMPL)%></a></li>"
+                                . "<li><a href=\"<%adminurl%>index.php?action=adminskinieoverview\"><%text(_QMENU_LAYOUT_IEXPORT)%></a></li>"
+                                . "</ul>"
+                                . "<%endif%>"
+                                . "<%quickmenu(admin/default)%>"
+                                . "<%endif%>"
+                                . "<%elseif(adminaction,activate)%>"
+                                . "<h2><%text(_QMENU_ACTIVATE)%></h2>"
+                                . "<%text(_QMENU_ACTIVATE_TEXT)%>"
+                                . "<%elseif(adminaction,activatesetpwd)%>"
+                                . "<h2><%text(_QMENU_ACTIVATE)%></h2><%text(_QMENU_ACTIVATE_TEXT)%>"
+                                . "<%else%>"
+                                . "<h2><%text(_QMENU_INTRO)%></h2><%text(_QMENU_INTRO_TEXT)%>"
+                                . "<%endif%>"
+                                . "</div>"
+                                . "<!-- content / quickmenu container -->"
+                                . "<div class=\"clear\"></div>"
+                                . "<!-- new -->"
+                                . "</div>"
+                                . "<!-- adminwrapper -->"
+                                . "<!-- new -->"
+                                . "</div>"
+                                . "<!-- new -->"
+                                . "<p style=\"text-align:right;\"><%benchmark%></p>"
+                                . "</body>"
+                                . "</html>";
+               }
+               
+               $this->parser->parse($content);
                return;
        }
        /**