OSDN Git Service

FIX:前回のコミットの修正忘れ
[nucleus-jp/nucleus-next.git] / nucleus / libs / AdminActions.php
index 13acc5d..c13cef3 100644 (file)
@@ -90,8 +90,8 @@ class AdminActions extends BaseActions
                'iprangeinput',
                'itemnavlist',
                'jstoolbaroptions',
-               'languageselectoptions',
                'listplugplugoptionrow',
+               'localeselectoptions',
                'mediadirwarning',
                'movedistselect',
                'moveitemid',
@@ -132,12 +132,12 @@ class AdminActions extends BaseActions
         */
        static private $default_actions = array(
                'addtickettourl',
+               'adminurl',
+               'customhelplink',
                'headmessage',
-               'ticket',
-               'sprinttext',
                'helplink',
-               'customhelplink',
-               'adminurl'
+               'sprinttext',
+               'ticket'
        );
        
        /**
@@ -353,6 +353,10 @@ class AdminActions extends BaseActions
                                        'editadminskintype',
                                );
                                break;
+                       case 'admintemplatedelete':
+                               $extra_actions = array(
+                                       'editadmintemplateinfo',
+                               );
                        case 'admintemplateedit':
                                $extra_actions = array(
                                        'editadmintemplateinfo',
@@ -467,16 +471,17 @@ class AdminActions extends BaseActions
                        case 'blogsettings':
                                $extra_actions = array(
                                        'adminbloglink',
-                                       'blogteammembers',
-                                       'requestblogid',
-                                       'blogsetting',
+                                       'blogcatlist',
                                        'blognotifysetting',
-                                       'defcatselect',
-                                       'blogtime',
+                                       'blogsetting',
                                        'blogsettingyesno',
-                                       'pluginoptions',
-                                       'blogcatlist',
+                                       'blogteammembers',
+                                       'blogtime',
+                                       'defcatselect',
+                                       'defskinselect',
                                        'pluginextras',
+                                       'pluginoptions',
+                                       'requestblogid',
                                );
                                break;
                        case 'bookmarklet':
@@ -505,6 +510,7 @@ class AdminActions extends BaseActions
                                        'requestblogid',
                                        'categorysetting',
                                        'editdesturl',
+                                       'pluginoptions'
                                );
                                break;
                        case 'commentdelete':
@@ -524,8 +530,9 @@ class AdminActions extends BaseActions
                                        'contents',
                                        'categories',
                                        'currenttime',
-                                       'pluginextras',
-                                       'itemoptions'
+                                       'init',
+                                       'itemoptions',
+                                       'pluginextras'
                                );
                                break;
                        case 'createnewlog':
@@ -542,9 +549,9 @@ class AdminActions extends BaseActions
                                break;
                        case 'editmembersettings':
                                $extra_actions = array(
-                                       'editmember',
-                                       'languageselectoptions',
                                        'adminskinselectoptions',
+                                       'editmember',
+                                       'localeselectoptions',
                                        'pluginoptions',
                                );
                                break;
@@ -663,10 +670,10 @@ class AdminActions extends BaseActions
                                        'defblogselect',
                                        'defskinselect',
                                        'configsettingsedit',
-                                       'languageselectoptions',
                                        'configsettingsyesno',
                                        'outputspecialdirs',
                                        'jstoolbaroptions',
+                                       'localeselectoptions',
                                        'mediadirwarning',
                                        'pluginextras',
                                );
@@ -1007,7 +1014,7 @@ class AdminActions extends BaseActions
                
                $selected = requestIntArray('batch');
                $action   = requestVar('batchaction');
-               
+
                switch ( $this->skintype )
                {
                        case 'batchitem':
@@ -1048,6 +1055,7 @@ class AdminActions extends BaseActions
                // walk over all selectedids and perform action
                foreach ( $selected as $selectedid )
                {
+                       echo $selectedid;
                        $error = '';
                        $selectedid = intval($selectedid);
                        
@@ -1056,7 +1064,7 @@ class AdminActions extends BaseActions
                                case 'delete':
                                        if ( $this->skintype != 'batchteam' )
                                        {
-                                               $error = Admin::deleteaction($selectedid);
+                                               $error = call_user_func_array(array('Admin', $deleteaction), array($selectedid));
                                        }
                                        else
                                        {
@@ -1064,23 +1072,23 @@ class AdminActions extends BaseActions
                                        }
                                        break;
                                case 'move':
-                                       $error = Admin::moveaction($selectedid, $destid);
+                                       $error = call_user_func_array(array('Admin', $moveaction), array($selectedid));
                                        break;
                                case 'setadmin':
                                        // always succeeds
-                                       sql_query("UPDATE {$setadminsql} {$selectedid};");
+                                       DB::execute("UPDATE {$setadminsql} {$selectedid};");
                                        $error = '';
                                        break;
                                case 'unsetadmin':
                                        // there should always remain at least one super-admin
-                                       $r = sql_query($unsetchksql);
-                                       if ( sql_num_rows($r) < 2 )
+                                       $r = DB::getResult($unsetchksql);
+                                       if ( $r->rowCount() < 2 )
                                        {
                                                $error = $unseterrmsg;
                                        }
                                        else
                                        {
-                                               sql_query("UPDATE {$setadminsql} {$selectedid};");
+                                               DB::execute("UPDATE {$setadminsql} {$selectedid};");
                                        }
                                        break;
                                default:
@@ -1102,9 +1110,9 @@ class AdminActions extends BaseActions
                        $template = ob_get_contents();
                        ob_end_clean();
                        
-                       echo Template::fill($template, $data);
-                       return;
                }
+               echo Template::fill($template, $data);
+               return;
        }
        
        /**
@@ -1192,6 +1200,7 @@ class AdminActions extends BaseActions
                                $show  = array(
                                        'content' => 'shortblognames'
                                );
+                               Showlist($query, 'table', $show, $templateName);
                                break;
                        case 'template':
                                $query = "SELECT tdname as name, tddesc as description FROM %s WHERE tdname LIKE 'admin/%%'";
@@ -1199,9 +1208,9 @@ class AdminActions extends BaseActions
                                $show  = array(
                                        'content' => 'shortnames'
                                );
+                               Showlist($query, 'table', $show, $templateName);
                                break;
                }
-               Showlist($query, 'table', $show, $templateName);
                return;
        }
        
@@ -1241,15 +1250,15 @@ class AdminActions extends BaseActions
                        case 'skin':
                                $query = "SELECT * FROM %s WHERE sdname LIKE 'admin/%%';";
                                $query = sprintf($query, sql_table('skin_desc'));
-                               $res = sql_query($query);
+                               $res = DB::getResult($query);
                                
-                               while ( $skinObj = sql_fetch_object($res) )
+                               foreach ( $res as $row )
                                {
                                        $data = array(
-                                               'typeid'        => 'skin[' . $skinObj->sdnumber . ']',
-                                               'expid'         => 'skinexp' . $skinObj->sdnumber,
-                                               'expname'       => Entity::hsc($skinObj->sdname),
-                                               'expdesc'       => Entity::hsc($skinObj->sddesc),
+                                               'typeid'        => 'skin[' . $row['sdnumber'] . ']',
+                                               'expid'         => 'skinexp' . $row['sdnumber'],
+                                               'expname'       => Entity::hsc($row['sdname']),
+                                               'expdesc'       => Entity::hsc($row['sddesc']),
                                        );
                                        echo Template::fill($template, $data);
                                }
@@ -1257,14 +1266,14 @@ class AdminActions extends BaseActions
                        case 'template':
                                $query = "SELECT * FROM %s WHERE tdname LIKE 'admin/%%';";
                                $query = sprintf($query, sql_table('template_desc'));
-                               $res = sql_query($query);
-                               while ( $templateObj = sql_fetch_object($res) )
+                               $res = DB::getResult($query);
+                               foreach ( $res as $row )
                                {
                                        $data = array(
-                                               'typeid'        => 'template[' . $templateObj->tdnumber . ']',
-                                               'expid'         => 'templateexp' . $templateObj->tdnumber,
-                                               'expname'       => Entity::hsc($templateObj->tdname),
-                                               'expdesc'       => Entity::hsc($templateObj->tddesc),
+                                               'typeid'        => 'template[' . $row['tdnumber'] . ']',
+                                               'expid'         => 'templateexp' . $row['tdnumber'],
+                                               'expname'       => Entity::hsc($row['tdname']),
+                                               'expdesc'       => Entity::hsc($row['tddesc']),
                                        );
                                        echo Template::fill($template, $data);
                                }
@@ -1298,7 +1307,7 @@ class AdminActions extends BaseActions
         * 
         * @param       void
         * @return      void
-        */
+        */     
        public function parse_adminskinselectoptions()
        {
                global $CONF;
@@ -1306,7 +1315,7 @@ class AdminActions extends BaseActions
                $query = sprintf($query, sql_table('skin_desc'));
                
                $template['name'] = 'adminskin';
-               $template['selected'] = $CONF['DefaultAdminSkin'];
+               $template['selected'] = $CONF['AdminSkin'];
                $template['tabindex'] = 110;
                Showlist($query, 'select', $template, '');
                return;
@@ -1332,8 +1341,8 @@ class AdminActions extends BaseActions
                $query = "SELECT stype FROM  %s WHERE stype NOT IN (%s) AND sdesc=%d;";
                $query = sprintf($query, sql_table('skin'), "'" . implode("', '", $nType) . "'", (integer) $skinid);
                
-               $res    = sql_query($query);
-               if ( $res && sql_num_rows($res) > 0 )
+               $res    = DB::getResult($query);
+               if ( $res && $res->rowCount() > 0 )
                {
                        /* NOTE: set templates for HEAD/BODY/FOOT */
                        if ( !array_key_exists('ADMIN_SPECIALSKINLIST_HEAD', $templates) || empty($templates['ADMIN_SPECIALSKINLIST_HEAD']) )
@@ -1373,7 +1382,7 @@ class AdminActions extends BaseActions
                        /* NOTE: do echo */
                        $data = array();
                        echo $template['head'];
-                       while ( $row = sql_fetch_assoc($res) )
+                       foreach ( $res as $row )
                        {
                                $data = array(
                                        'tabindex'      => $tabstart++,
@@ -1486,12 +1495,13 @@ class AdminActions extends BaseActions
        public function parse_banlistdeletedlist($templateName = '')
        {
                global $manager;
-               $templates = array();
                
+               $templates = array();
                if ( $templateName )
                {
                        $templates = Template::read($templateName);
                }
+               
                if ( !array_key_exists('BANLIST_DELETED_LIST', $templates) || empty($templates['BANLIST_DELETED_LIST']) )
                {
                        $template = "<li><%blogname%></li>\n";
@@ -1506,10 +1516,11 @@ class AdminActions extends BaseActions
                {
                        $blog =& $manager->getBlog($delblog);
                        $data =  array(
-                               Entity::hsc($blog->getName())
+                               'blogname' => Entity::hsc($blog->getName())
                        );
-                       Template::fill($template, $data);
+                       echo Template::fill($template, $data);
                }
+               
                return;
        }
        
@@ -1645,7 +1656,7 @@ class AdminActions extends BaseActions
                $template['content']  = 'categorylist';
                $template['tabindex'] = 200;
                
-               $batch = new Batch('member');
+               $batch = new Batch('category');
                $batch->showlist($query, 'table', $template);
                return;
        }
@@ -1657,7 +1668,7 @@ class AdminActions extends BaseActions
         * @param       void
         * @return      void
         */
-       function parse_blogid()
+       public function parse_blogid()
        {
                echo intRequestVar('blogid');
                return;
@@ -1726,38 +1737,38 @@ class AdminActions extends BaseActions
                // (only select those blogs that have the user on the team)
                $queryBlogs = "SELECT bnumber, bname FROM %s WHERE bnumber in (%s) ORDER BY bname;";
                $queryBlogs = sprintf($queryBlogs, sql_table('blog'), implode(',', $aBlogIds));
-               $blogs = sql_query($queryBlogs);
+               $blogs = DB::getResult($queryBlogs);
                
                if ( $mode == 'category' )
                {
-                       if ( sql_num_rows($blogs) > 1 )
+                       if ( $blogs->rowCount() > 1 )
                        {
                                $multipleBlogs = 1;
                        }
-                       while ( $oBlog = sql_fetch_object($blogs) )
+                       foreach ( $blogs as $rBlog )
                        {
                                if ( isset($multipleBlogs) && !empty($multipleBlogs) )
                                {
-                                       echo '<optgroup label="' . Entity::hsc($oBlog->bname) . "\>\n";
+                                       echo '<optgroup label="' . Entity::hsc($rBlog['bname']) . "\">\n";
                                }
                                
                                // show selection to create new category when allowed/wanted
                                if ( $showNewCat )
                                {
                                        // check if allowed to do so
-                                       if ( $member->blogAdminRights($oBlog->bnumber) )
+                                       if ( $member->blogAdminRights($rBlog['bnumber']) )
                                        {
-                                               echo '<option value="newcat-' . $oBlog->bnumber . '">' . _ADD_NEWCAT . "</option>\n";
+                                               echo '<option value="newcat-' . $rBlog['bnumber'] . '">' . _ADD_NEWCAT . "</option>\n";
                                        }
                                }
                                
                                // 2. for each category in that blog
                                $catQuery = "SELECT cname, catid FROM %s WHERE cblog=%d ORDER BY cname ASC;";
-                               $catQuery = sprintf($catQuery, sql_table('category'), (integer) $oBlog->bnumber);
-                               $categories = sql_query($catQuery);
-                               while ( $oCat = sql_fetch_object($categories) )
+                               $catQuery = sprintf($catQuery, sql_table('category'), (integer) $rBlog['bnumber']);
+                               $categories = DB::getResult($catQuery);
+                               foreach ( $categories as $rCat )
                                {
-                                       if ( $oCat->catid == $selected )
+                                       if ( $rCat['catid'] == $selected )
                                        {
                                                $selectText = ' selected="selected" ';
                                        }
@@ -1765,7 +1776,7 @@ class AdminActions extends BaseActions
                                        {
                                                $selectText = '';
                                        }
-                                       echo '<option value="' . $oCat->catid . '" ' . $selectText . '>' . Entity::hsc($oCat->cname) . "</option>\n";
+                                       echo '<option value="' . $rCat['catid'] . '" ' . $selectText . '>' . Entity::hsc($rCat['cname']) . "</option>\n";
                                }
                                
                                if ( isset($multipleBlogs) && !empty($multipleBlogs) )
@@ -1777,16 +1788,16 @@ class AdminActions extends BaseActions
                else
                {
                        // blog mode
-                       while ( $oBlog = sql_fetch_object($blogs) )
+                       foreach ( $blogs as $rBlog )
                        {
-                               echo '<option value="' . $oBlog->bnumber . '"';
-                               if ( $oBlog->bnumber == $selected )
+                               echo '<option value="' . $rBlog['bnumber'] . '"';
+                               if ( $rBlog['bnumber'] == $selected )
                                {
-                                       echo '<option value="' . $oBlog->bnumber . '" selected="selected">' . Entity::hsc($oBlog->bname) . "</option>\n";
+                                       echo '<option value="' . $rBlog['bnumber'] . '" selected="selected">' . Entity::hsc($rBlog['bname']) . "</option>\n";
                                }
                                else
                                {
-                                       echo '<option value="' . $oBlog->bnumber . '">' . Entity::hsc($oBlog->bname) . "</option>\n";
+                                       echo '<option value="' . $rBlog['bnumber'] . '">' . Entity::hsc($rBlog['bname']) . "</option>\n";
                                }
                        }
                }
@@ -1891,11 +1902,11 @@ class AdminActions extends BaseActions
                                . "FROM %s, %s "
                                . "WHERE mnumber=tmember AND tblog=%d;";
                $query = sprintf($query, sql_table('member'), sql_table('team'), (integer) $blogid);
-               $res = sql_query($query);
+               $res = DB::getResult($query);
                $memberNames = array();
-               while ( $o = sql_fetch_object($res) )
+               foreach ( $res as $row )
                {
-                       $memberNames[] = Entity::hsc($o->mname) . ' (' . Entity::hsc($o->mrealname). ')';
+                       $memberNames[] = Entity::hsc($row['mname']) . ' (' . Entity::hsc($row['mrealname']). ')';
                }
                echo implode(',', $memberNames);
        }
@@ -1955,15 +1966,24 @@ class AdminActions extends BaseActions
         * @param       string  $type   name of setting for category
         * @return      void
         */
-       function parse_categories($startidx = 0)
+       public function parse_categories($startidx = 0)
        {
                global $manager;
                
-               $item = false;
-               $itemid = intRequestVar('itemid');
+               $item = FALSE;
+               $itemid =  intRequestVar('itemid');
+               $item   = &$manager->getItem($itemid, 1, 1);
                
-               $item =& $manager->getItem($itemid, 1, 1);
-               $blog =& $manager->getBlog(getBlogIDFromItemID($itemid));
+               $blog = FALSE;
+               if ( !$item )
+               {
+                       $blogid =  intRequestVar('blogid');
+               }
+               else
+               {
+                       $blogid =  $item['blogid'];
+               }
+               $blog   = &$manager->getBlog($blogid);
                
                if ( $item && $blog->convertBreaks() && requestVar('action') == 'itemedit' )
                {
@@ -1976,15 +1996,20 @@ class AdminActions extends BaseActions
                {
                        $contents = $item;
                }
-               if ( isset($contents['catid']) && $contents['catid'] )
+               
+               if ( !array_key_exists('catid', $contents) || empty($contents['catid']) )
                {
-                       $catid = $contents['catid'];    // on edit item
+                       // on add item
+                       $catid = $blog->getDefaultCategory();
                }
                else
                {
-                       $catid = $blog->getDefaultCategory();   // on add item
+                       // on edit item
+                       $catid = $contents['catid'];
                }
+               
                Admin::selectBlogCategory('catid', $catid, $startidx, 1, $blog->getID());
+               
                return;
        }
        
@@ -2019,16 +2044,15 @@ class AdminActions extends BaseActions
                $blogid = intRequestVar('blogid');
                $query  = "SELECT * FROM %s WHERE cblog = %d AND catid = %d;";
                $query  = sprintf($query, sql_table('category'), (integer) $blogid, (integer) $catid);
-               $res    = sql_query($query);
-               $obj    = sql_fetch_object($res);
+               $row    = DB::getRow($query);
                
-               if ( $type != desc )
+               if ( $type != 'name' )
                {
-                       echo Entity::hsc($obj->cdesc);
+                       echo Entity::hsc($row['cdesc']);
                }
                else
                {
-                       echo Entity::hsc($obj->cname);
+                       echo Entity::hsc($row['cname']);
                }
                
                return;
@@ -2042,7 +2066,7 @@ class AdminActions extends BaseActions
         * @param       $name
         * 
         */
-       function parse_checkedonval($value, $name)
+       public function parse_checkedonval($value, $name)
        {
                global $manager;
                
@@ -2158,7 +2182,7 @@ class AdminActions extends BaseActions
                $search = postVar('search');
                if ( !empty($search) )
                {
-                       $query .= ' and cbody LIKE "%' . sql_real_escape_string($search) . '%"';
+                       $query .= ' and cbody LIKE ' . DB::quoteValue('%'.$search.'%');
                }
                
                $query .= " ORDER BY ctime ASC LIMIT {$start},{$amount}";
@@ -2187,7 +2211,7 @@ class AdminActions extends BaseActions
                                {
                                        $query = "INSERT INTO %s VALUES (DefaultListSize, 10);";
                                        $query = sprintf($query, sql_table('config'));
-                                       sql_query($query);
+                                       DB::execute($query);
                                        $CONF['DefaultListSize'] = 10;
                                }
                                elseif ( intval($CONF['DefaultListSize']) < 1 )
@@ -2243,7 +2267,7 @@ class AdminActions extends BaseActions
         * @param       string  $which          part for item
         * @return      void
         */
-       function parse_contents($which)
+       public function parse_contents($which)
        {
                global $manager;
                
@@ -2291,7 +2315,7 @@ class AdminActions extends BaseActions
         * @param       string  $what
         */
        // for future items
-       function parse_currenttime($what)
+       public function parse_currenttime($what)
        {
                global $manager;
                if ( requestVar('action') == 'itemedit' )
@@ -2466,16 +2490,15 @@ class AdminActions extends BaseActions
         */
        public function parse_defskinselect($type = 'blog', $templateName = '')
        {
-               global $manager;
+               global $CONF, $manager;
                
-               $query  = "SELECT sdname as text, sdnumber as value FROM %s;";
+               $query  = "SELECT sdname as text, sdnumber as value FROM %s WHERE sdname NOT LIKE 'admin/%%';";
                $query = sprintf($query, sql_table('skin_desc'));
                
                $blogid = intRequestVar('blogid');
                
                if ( !$blogid )
                {
-                       global $CONF;
                        $template['selected'] = $CONF['BaseSkin'];
                }
                else
@@ -2713,6 +2736,13 @@ class AdminActions extends BaseActions
                                $comment['body'] = str_replace('<br />', '', $comment['body']);
                                $comment['body'] = preg_replace("#<a href=['\"]([^'\"]+)['\"]( rel=\"nofollow\")?>[^<]*</a>#", "\\1", $comment['body']);
                                echo $comment['body'];
+                               break;
+                       case 'cmail':
+                               echo $comment['userid'];
+                               break;
+                       case 'url':
+                               echo $comment['userid'];
+                               break;
                        default:
                                echo $comment[$type];
                                break;
@@ -2857,18 +2887,18 @@ class AdminActions extends BaseActions
                
                $query  = "SELECT * FROM %s WHERE ocontext='global' AND opid=%d ORDER BY oid ASC;";
                $query = sprintf($query, sql_table('plugin_option_desc'), (integer) $pid);
-               $resource = sql_query($query);
-               
-               while ( $o = sql_fetch_object($resource) )
-               {
-                       array_push($aOIDs, $o->oid);
-                       $aOptions[$o->oid] = array(
-                               'oid'                   => $o->oid,
-                               'value'                 => $o->odef,
-                               'name'                  => $o->oname,
-                               'description'   => $o->odesc,
-                               'type'                  => $o->otype,
-                               'typeinfo'              => $o->oextra,
+               $resource = DB::getResult($query);
+               
+               foreach ( $resource as $row )
+               {
+                       array_push($aOIDs, $row['oid']);
+                       $aOptions[$row['oid']] = array(
+                               'oid'                   => $row['oid'],
+                               'value'                 => $row['odef'],
+                               'name'                  => $row['oname'],
+                               'description'   => $row['odesc'],
+                               'type'                  => $row['otype'],
+                               'typeinfo'              => $row['oextra'],
                                'contextid'             => 0
                        );
                }
@@ -2879,11 +2909,11 @@ class AdminActions extends BaseActions
                        $query = 'SELECT oid, ovalue FROM %s WHERE oid in (%s)';
                        $query = sprintf($query, sql_table('plugin_option'), implode(',', $aOIDs));
                        
-                       $result = sql_query($query);
+                       $result = DB::getResult($query);
                        
-                       while ( $o = sql_fetch_object($result) )
+                       foreach ( $result as $row )
                        {
-                               $aOptions[$o->oid]['value'] = $o->ovalue;
+                               $aOptions[$row['oid']]['value'] = $row['ovalue'];
                        }
                }
                
@@ -3359,7 +3389,7 @@ class AdminActions extends BaseActions
         */
        public function parse_getblogsetting($which)
        {
-               global $blog;
+               global $blog, $manager;
                
                if ( $blog )
                {
@@ -3367,7 +3397,6 @@ class AdminActions extends BaseActions
                }
                elseif ( $bid = intRequestVar('blogid') )
                {
-                       global $manager;
                        $b = $manager->getBlog($bid);
                }
                else
@@ -3604,11 +3633,13 @@ class AdminActions extends BaseActions
         * some init stuff for all forms
         * 
         * @param       void
+        * @return      void
         */
-       function parse_init()
+       public function parse_init()
        {
                global $manager;
-               $item   = false;
+               
+               $item = false;
                if ( requestVar('action') == 'itemedit' )
                {
                        $itemid = intRequestVar('itemid');
@@ -3625,10 +3656,12 @@ class AdminActions extends BaseActions
                }
                elseif ( requestVar('action') == 'createitem' )
                {
-                       $blog =& $manager->getBlog(intRequestVar($blogid));
+                       $blogid = intRequestVar('blogid');
+                       $blog =& $manager->getBlog($blogid);
                        $authorid = '';
                }
                $blog->insertJavaScriptInfo($authorid);
+               return;
        }
        
        /**
@@ -3792,33 +3825,7 @@ class AdminActions extends BaseActions
        public function parse_itemnavlist()
        {
                global $CONF, $manager, $member;
-               if ( $this->skintype == 'itemlist' )
-               {
-                       $blogid =  intRequestVar('blogid');
-                       $blog   =& $manager->getBlog($blogid);
-               }
-               if ( postVar('start') )
-               {
-                       $start = intPostVar('start');
-               }
-               else
-               {
-                       $start = 0;
-               }
                
-               // amount of items to show
-               if ( postVar('amount') )
-               {
-                       $amount = intPostVar('amount');
-               }
-               else
-               {
-                       $amount = intval($CONF['DefaultListSize']);
-                       if ( $amount < 1 )
-                       {
-                               $amount = 10;
-                       }
-               }
                $query  = "SELECT bshortname, cname, mname, ititle, ibody, inumber, idraft, itime"
                        . " FROM %s, %s, %s, %s"
                        . " WHERE iblog=bnumber AND iauthor=mnumber AND icat=catid";
@@ -3827,7 +3834,20 @@ class AdminActions extends BaseActions
                
                if ( $this->skintype == 'itemlist' )
                {
-                       $query .= ' AND iblog   = ' . $blogid;
+                       $blog = FALSE;
+                       if ( array_key_exists('blogid', $_REQUEST) )
+                       {
+                               $blogid = intRequestVar('blogid');
+                       }
+                       else if ( array_key_exists('itemid', $_REQUEST) )
+                       {
+                               $itemid =  intRequestVar('itemid');
+                               $item   = &$manager->getItem($itemid, 1, 1);
+                               $blogid =  (integer) $item['blogid'];
+                       }
+                       $blog =& $manager->getBlog($blogid);
+                       
+                       $query .= " AND iblog={$blogid}";
                        $template['now'] = $blog->getCorrectTime(time());
                        
                        // non-blog-admins can only edit/delete their own items
@@ -3848,10 +3868,34 @@ class AdminActions extends BaseActions
                
                if ( !empty($search) )
                {
-                       $query .= ' AND ((ititle LIKE "%' . sql_real_escape_string($search) . '%") '
-                               . '  OR  (ibody LIKE "%' . sql_real_escape_string($search) . '%") '
-                               . '  OR  (imore LIKE "%' . sql_real_escape_string($search) . '%"))';
+                       $query .= ' AND ((ititle LIKE ' . DB::quoteValue('%'.$search.'%') . ') '
+                               . '  OR  (ibody LIKE ' . DB::quoteValue('%'.$search.'%') . ') '
+                               . '  OR  (imore LIKE ' . DB::quoteValue('%'.$search.'%') . '))';
+               }
+               
+               if ( postVar('start') )
+               {
+                       $start = intPostVar('start');
+               }
+               else
+               {
+                       $start = 0;
+               }
+               
+               // amount of items to show
+               if ( postVar('amount') )
+               {
+                       $amount = intPostVar('amount');
                }
+               else
+               {
+                       $amount = (integer) $CONF['DefaultListSize'];
+                       if ( $amount < 1 )
+                       {
+                               $amount = 10;
+                       }
+               }
+               
                $query .= ' ORDER BY itime DESC'
                        . " LIMIT {$start},{$amount}";
                
@@ -3868,7 +3912,7 @@ class AdminActions extends BaseActions
         * Adds the itemOptions of a plugin to a page
         * @author TeRanEX
         */
-       function parse_itemoptions()
+       public function parse_itemoptions()
        {
                $this->parse_pluginoptions('item');
                return;
@@ -3883,7 +3927,7 @@ class AdminActions extends BaseActions
         * Adds the itemOptions of a plugin to a page
         * @author TeRanEX
         */
-       function parse_itemtime($what)
+       public function parse_itemtime($what)
        {
                global $manager;
                
@@ -3944,61 +3988,6 @@ class AdminActions extends BaseActions
                return;
        }
        /**
-        * Parse skinvar languageselectoptions
-        */
-       function parse_languageselectoptions()
-       {
-               $locales = i18n::get_available_locale_list();
-               $memid = intRequestVar('memberid');
-               
-               if ($memid)
-               {
-                       $mem = MEMBER::createFromID($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";
-                       }
-               }
-               else
-               {
-                       if ( !i18n::get_current_locale() || !in_array(i18n::get_current_locale(), $locales) )
-                       {
-                               echo "<option value=\"\" selected=\"selected\">en_Latn_US</option>\n";
-                       }
-               }
-               foreach ( $locales as $locale )
-               {
-                       if ($memid)
-                       {
-                               if ( $locale == $mem->getLocale() )
-                               {
-                                       echo "<option value=\"{$locale}\" selected=\"selected\">{$locale}</option>\n";
-                               }
-                               else
-                               {
-                                       echo "<option value=\"{$locale}\">{$locale}</option>\n";
-                               }
-                       }
-                       else
-                       {
-                               if ( $locale == i18n::get_current_locale() )
-                               {
-                                       echo "<option value=\"{$locale}\" selected=\"selected\">{$locale}</option>\n";
-                               }
-                               else
-                               {
-                                       echo "<option value=\"{$locale}\">{$locale}</option>\n";
-                               }
-                       }
-               }
-               return;
-       }
-       
-       /**
         * AdminActions::parse_localeselectoptions()
         * Parse skinvar localeselectoptions
         * 
@@ -4028,10 +4017,18 @@ class AdminActions extends BaseActions
                        {
                                echo "<option value=\"\" selected=\"selected\">en_Latn_US</option>\n";
                        }
+                       else
+                       {
+                               echo "<option value=\"\">en_Latn_US</option>\n";
+                       }
                }
                foreach ( $locales as $locale )
                {
-                       if ($memid)
+                       if ( $locale == 'en_Latn_US' )
+                       {
+                               continue;
+                       }
+                       else if ($memid)
                        {
                                if ( $locale == $mem->getLocale() )
                                {
@@ -4115,7 +4112,7 @@ class AdminActions extends BaseActions
                                {
                                        $query  = "SELECT icat as result FROM %s WHERE inumber=%d;";
                                        $query = sprintf($query, sql_table('item'), intRequestVar('itemid'));
-                                       $catid  = quickQuery(sprintf($query, intRequestVar('itemid')));
+                                       $catid  = DB::getValue(sprintf($query, intRequestVar('itemid')));
                                        Admin::selectBlogCategory('catid', $catid, 10, 1);
                                }
                                break;
@@ -4172,12 +4169,12 @@ class AdminActions extends BaseActions
                
                $query = "SELECT tmember FROM %s WHERE tblog=%d;";
                $query = sprintf($query, sql_table('team'), (integer) $blogid);
-               $res = sql_query($query);
+               $res = DB::getResult($query);
                
                $tmem = array();
-               while ( $tmember = sql_fetch_object($res) ) 
+               foreach ( $res as $row ) 
                {
-                       $tmem[] = intval($tmember->tmember);
+                       $tmem[] = intval($row['tmember']);
                }
                
                $query  = "SELECT mname as text, mnumber as value FROM %s WHERE mnumber NOT IN (%s);";
@@ -4626,26 +4623,27 @@ class AdminActions extends BaseActions
                switch ( $type )
                {
                        case 'skin':
-                               $res = sql_query('SELECT * FROM ' . sql_table('skin_desc'));
-                               while ( $skinObj = sql_fetch_object($res) )
+                               $res = DB::getResult('SELECT * FROM ' . sql_table('skin_desc'));
+                               foreach ( $res as $row )
                                {
                                        $data = array(
-                                               'typeid'        => 'skin[' . $skinObj->sdnumber . ']',
-                                               'expid'         => 'skinexp' . $skinObj->sdnumber,
-                                               'expname'       => Entity::hsc($skinObj->sdname),
-                                               'expdesc'       => Entity::hsc($skinObj->sddesc),
+                                               'typeid'        => 'skin[' . $row['sdnumber'] . ']',
+                                               'expid'         => 'skinexp' . $row['sdnumber'],
+                                               'expname'       => Entity::hsc($row['sdname']),
+                                               'expdesc'       => Entity::hsc($row['sddesc'])
                                        );
                                        echo Template::fill($template, $data);
                                }
                                break;
                        case 'template':
-                               $res = sql_query('SELECT * FROM '.sql_table('template_desc'). " WHERE tdname NOT LIKE 'admin/%%';");
-                               while ($templateObj = sql_fetch_object($res)) {
+                               $res = DB::getResult('SELECT * FROM '.sql_table('template_desc'). " WHERE tdname NOT LIKE 'admin/%%';");
+                               foreach ( $res as $row )
+                               {
                                        $data = array(
-                                               'typeid'        => 'template[' . $templateObj->tdnumber . ']',
-                                               'expid'         => 'templateexp' . $templateObj->tdnumber,
-                                               'expname'       => Entity::hsc($templateObj->tdname),
-                                               'expdesc'       => Entity::hsc($templateObj->tddesc),
+                                               'typeid'        => 'template[' . $row['tdnumber'] . ']',
+                                               'expid'         => 'templateexp' . $row['tdnumber'],
+                                               'expname'       => Entity::hsc($row['tdname']),
+                                               'expdesc'       => Entity::hsc($row['tddesc'])
                                        );
                                        echo Template::fill($template, $data);
                                }
@@ -4738,8 +4736,8 @@ class AdminActions extends BaseActions
                $query  = "SELECT stype FROM %s WHERE stype NOT IN ('%s') AND sdesc = %d;";
                $query = sprintf($query, sql_table('skin'), implode("', '", $nType), $skinid);
                
-               $res    = sql_query($query);
-               if ( $res && sql_num_rows($res) > 0 )
+               $res    = DB::getResult($query);
+               if ( $res && $res->rowCount() > 0 )
                {
                        $data = array();
                        if ( array_key_exists('SPECIALSKINLIST_HEAD', $templates) && !empty($templates['SPECIALSKINLIST_HEAD']) )
@@ -4763,7 +4761,7 @@ class AdminActions extends BaseActions
                        }
                        
                        $tabstart = 75;
-                       while ( $row = sql_fetch_assoc($res) )
+                       foreach ( $res as $row )
                        {
                                $data = array(
                                        'tabindex'      => $tabstart++,
@@ -4854,10 +4852,10 @@ class AdminActions extends BaseActions
                                echo phpversion();
                                break;
                        case 'sqlserverinfo':
-                               echo sql_get_server_info();
+                               echo DB::getAttribute(PDO::ATTR_SERVER_VERSION);
                                break;
                        case 'sqlclientinfo':
-                               echo sql_get_client_info();
+                               echo DB::getAttribute(PDO::ATTR_CLIENT_VERSION);
                                break;
                        case 'magicquotesgpc':
                                echo ini_get('magic_quotes_gpc') ? 'On' : 'Off';
@@ -5025,7 +5023,7 @@ class AdminActions extends BaseActions
                {
                        $query = 'SELECT COUNT(*) as result FROM ' . sql_table('blog');
                        
-                       $total = quickQuery($query);
+                       $total = DB::getValue($query);
                        if ( $total > $amount )
                        {
                                echo '<p><a href="index.php?action=overview&amp;showall=yes">' . _OVERVIEW_SHOWALL . '</a></p>';
@@ -5715,11 +5713,11 @@ class AdminActions extends BaseActions
                        if ( preg_match("#^NP_(.*)\.php$#", $file, $matches) )
                        {
                                $name = $matches[1];
-                               $query = "SELECT * FROM %s WHERE pfile='%s';";
-                               $query = sprintf($query, sql_table('plugin'), sql_real_escape_string("{NP_{$name}"));
-                               $res  = sql_query($query);
+                               $query = "SELECT * FROM %s WHERE pfile=%s;";
+                               $query = sprintf($query, sql_table('plugin'), DB::quoteValue("{NP_{$name}"));
+                               $res  = DB::getResult($query);
                                
-                               if ( sql_num_rows($res) == 0 )
+                               if ( $res->rowCount() == 0 )
                                {
                                        $candidates[] = $name;
                                }