OSDN Git Service

PDO対応
[nucleus-jp/nucleus-jp-ancient.git] / utf8 / nucleus / libs / ADMIN.php
index d7d9ec8..682ce2a 100755 (executable)
@@ -534,7 +534,7 @@ class ADMIN {
                                case 'unsetadmin':\r
                                        // there should always remain at least one super-admin\r
                                        $r = sql_query('SELECT * FROM '.sql_table('member'). ' WHERE madmin=1 and mcanlogin=1');\r
-                                       if (mysql_num_rows($r) < 2)\r
+                                       if (sql_num_rows($r) < 2)\r
                                                $error = _ERROR_ATLEASTONEADMIN;\r
                                        else\r
                                                sql_query('UPDATE ' . sql_table('member') .' SET madmin=0 WHERE mnumber='.$memberid);\r
@@ -604,7 +604,7 @@ class ADMIN {
                                case 'unsetadmin':\r
                                        // there should always remain at least one admin\r
                                        $r = sql_query('SELECT * FROM '.sql_table('team').' WHERE tadmin=1 and tblog='.$blogid);\r
-                                       if (mysql_num_rows($r) < 2)\r
+                                       if (sql_num_rows($r) < 2)\r
                                                $error = _ERROR_ATLEASTONEBLOGADMIN;\r
                                        else\r
                                                sql_query('UPDATE '.sql_table('team').' SET tadmin=0 WHERE tblog='.$blogid.' and tmember='.$memberid);\r
@@ -677,7 +677,7 @@ class ADMIN {
                                        $error = _BATCH_UNKNOWN . htmlspecialchars($action);\r
                        }\r
 \r
-                       echo '<b>',($error ? 'Error: '.$error : _BATCH_SUCCESS),'</b>';\r
+                       echo '<b>',($error ? _ERROR . ': '.$error : _BATCH_SUCCESS),'</b>';\r
                        echo '</li>';\r
                }\r
 \r
@@ -826,7 +826,7 @@ class ADMIN {
                else\r
                        $queryBlogs =  'SELECT bnumber FROM '.sql_table('blog').', '.sql_table('team').' WHERE tblog=bnumber and tmember=' . $member->getID();\r
                $rblogids = sql_query($queryBlogs);\r
-               while ($o = mysql_fetch_object($rblogids))\r
+               while ($o = sql_fetch_object($rblogids))\r
                        if ($o->bnumber != $iForcedBlogInclude)\r
                                $aBlogIds[] = intval($o->bnumber);\r
 \r
@@ -840,10 +840,10 @@ class ADMIN {
                $queryBlogs =  'SELECT bnumber, bname FROM '.sql_table('blog').' WHERE bnumber in ('.implode(',',$aBlogIds).') ORDER BY bname';\r
                $blogs = sql_query($queryBlogs);\r
                if ($mode == 'category') {\r
-                       if (mysql_num_rows($blogs) > 1)\r
+                       if (sql_num_rows($blogs) > 1)\r
                                $multipleBlogs = 1;\r
 \r
-                       while ($oBlog = mysql_fetch_object($blogs)) {\r
+                       while ($oBlog = sql_fetch_object($blogs)) {\r
                                if ($multipleBlogs)\r
                                        echo '<optgroup label="',htmlspecialchars($oBlog->bname),'">';\r
 \r
@@ -856,7 +856,7 @@ class ADMIN {
 \r
                                // 2. for each category in that blog\r
                                $categories = sql_query('SELECT cname, catid FROM '.sql_table('category').' WHERE cblog=' . $oBlog->bnumber . ' ORDER BY cname ASC');\r
-                               while ($oCat = mysql_fetch_object($categories)) {\r
+                               while ($oCat = sql_fetch_object($categories)) {\r
                                        if ($oCat->catid == $selected)\r
                                                $selectText = ' selected="selected" ';\r
                                        else\r
@@ -869,7 +869,7 @@ class ADMIN {
                        }\r
                } else {\r
                        // blog mode\r
-                       while ($oBlog = mysql_fetch_object($blogs)) {\r
+                       while ($oBlog = sql_fetch_object($blogs)) {\r
                                echo '<option value="',$oBlog->bnumber,'"';\r
                                if ($oBlog->bnumber == $selected)\r
                                        echo ' selected="selected"';\r
@@ -1199,41 +1199,6 @@ class ADMIN {
                                $wasdraft: set to 1 when the item used to be a draft item\r
                                $publish: set to 1 when the edited item is not a draft\r
                */\r
-/*<del by shizuki>\r
-               switch ($actiontype) {\r
-                       case 'adddraft':\r
-                               $publish = 0;\r
-                               $wasdraft = 1;\r
-                               $timestamp = 0;\r
-                               break;\r
-                       case 'addfuture':\r
-                               $wasdraft = 1;\r
-                               $publish = 1;\r
-                               $timestamp = mktime(intPostVar('hour'), intPostVar('minutes'), 0, intPostVar('month'), intPostVar('day'), intPostVar('year'));\r
-                               break;\r
-                       case 'addnow':\r
-                               $wasdraft = 1;\r
-                               $publish = 1;\r
-                               $timestamp = 0;\r
-                               break;\r
-                       case 'changedate':\r
-                               $timestamp = mktime(intPostVar('hour'), intPostVar('minutes'), 0, intPostVar('month'), intPostVar('day'), intPostVar('year'));\r
-                               $publish = 1;\r
-                               $wasdraft = 0;\r
-                               break;\r
-                       case 'backtodrafts':\r
-                               $wasdraft = 0;\r
-                               $publish = 0;\r
-                               $timestamp = 0;\r
-                               break;\r
-                       case 'edit':\r
-                       default:\r
-                               $publish = 1;\r
-                               $wasdraft = 0;\r
-                               $timestamp = 0;\r
-               }\r
-</del by shizuki>*/\r
-// <add by shizuki>\r
                $blogid =  getBlogIDFromItemID($itemid);\r
                $blog   =& $manager->getBlog($blogid);\r
 \r
@@ -1246,21 +1211,10 @@ class ADMIN {
                        $timestamp =0;\r
                }\r
                $doping = ($publish && $timestamp < $blog->getCorrectTime() && postVar('dosendping')) ? 1 : 0;\r
-// </add by shizuki>\r
 \r
                // edit the item for real\r
                ITEM::update($itemid, $catid, $title, $body, $more, $closed, $wasdraft, $publish, $timestamp);\r
 \r
-/* <del by shizuki>\r
-               $blogid = getBlogIDFromItemID($itemid);\r
-               $blog =& $manager->getBlog($blogid);\r
-\r
-               $isFuture = 0;\r
-               if ($timestamp > $blog->getCorrectTime(time())) {\r
-                       $isFuture = 1;\r
-               }\r
-\r
-</del by shizuki>*/\r
                $this->updateFuturePosted($blogid);\r
 \r
                if ($draftid > 0) {\r
@@ -1268,7 +1222,6 @@ class ADMIN {
                        ITEM::delete($draftid);\r
                }\r
 \r
-//             if (!$closed && $publish && $wasdraft && $blog->sendPing() && numberOfEventSubscriber('SendPing') > 0 && !$isFuture) {\r
                if (!$closed && $doping && $blog->sendPing() && numberOfEventSubscriber('SendPing') > 0) {              //<mod by shizuki />\r
                        $this->action_sendping($blogid);\r
                        return;\r
@@ -1381,7 +1334,7 @@ class ADMIN {
                $currenttime = $blog->getCorrectTime(time());\r
                $result = sql_query("SELECT * FROM ".sql_table('item').\r
                        " WHERE iblog='".$blogid."' AND iposted=0 AND itime>".mysqldate($currenttime));\r
-               if (mysql_num_rows($result) > 0) {\r
+               if (sql_num_rows($result) > 0) {\r
                                $blog->setFuturePost();\r
                }\r
                else {\r
@@ -1494,41 +1447,20 @@ class ADMIN {
 \r
                $blogid = getBlogIDFromItemID($result['itemid']);\r
                $blog =& $manager->getBlog($blogid);\r
-/* <del by shizuki>\r
-               $pingUrl = $manager->addTicketToUrl($CONF['AdminURL'] . 'index.php?action=sendping&blogid=' . intval($blogid));\r
-\r
-               if ($result['status'] == 'newcategory')\r
-                       $this->action_categoryedit(\r
-                               $result['catid'],\r
-                               $blogid,\r
-                               $blog->sendPing() && numberOfEventSubscriber('SendPing') > 0 ? $pingUrl : ''\r
-                       );\r
-               elseif ((postVar('actiontype') == 'addnow') && $blog->sendPing() && numberOfEventSubscriber('SendPing') > 0)\r
-                       $this->action_sendping($blogid);\r
-               else\r
-                       $this->action_itemlist($blogid);\r
-</del by shizuki>*/\r
-// <add by shizuki>\r
                $btimestamp = $blog->getCorrectTime();\r
-               $bPingInfo  = ($blog->sendPing() && numberOfEventSubscriber('SendPing') > 0);\r
                $item       = $manager->getItem(intval($result['itemid']), 1, 1);\r
-               $iPingInfo  = (!$item['draft'] && postVar('dosendping') && $item['timestamp'] <= $btimestamp);\r
-               if ($iPingInfo && $bPingInfo) {\r
+               if (!$item['draft'] && postVar('dosendping') && $item['timestamp'] <= $btimestamp) {\r
                        $nextAction = 'sendping';\r
                } else {\r
                        $nextAction = 'itemlist';\r
                }\r
                if ($result['status'] == 'newcategory') {\r
-//                     $distURI = ($nextAction == 'sendping') ? $manager->addTicketToUrl($CONF['AdminURL'] . 'index.php?action='\r
-//                                      . $nextAction . '&blogid=' . intval($blogid)) :\r
-//                                        '';\r
                        $distURI = $manager->addTicketToUrl($CONF['AdminURL'] . 'index.php?action=' . $nextAction . '&blogid=' . intval($blogid));\r
                        $this->action_categoryedit($result['catid'], $blogid, $distURI);\r
                } else {\r
                        $methodName = 'action_' . $nextAction;\r
                        call_user_func(array(&$this, $methodName), $blogid);\r
                }\r
-//</add by shizuki>\r
        }\r
 \r
        /**\r
@@ -1699,7 +1631,7 @@ class ADMIN {
 \r
                // get itemid\r
                $res = sql_query('SELECT citem FROM '.sql_table('comment').' WHERE cnumber=' . $commentid);\r
-               $o = mysql_fetch_object($res);\r
+               $o = sql_fetch_object($res);\r
                $itemid = $o->citem;\r
 \r
                if ($member->canAlterItem($itemid))\r
@@ -1762,7 +1694,7 @@ class ADMIN {
 \r
                // get item id first\r
                $res = sql_query('SELECT citem FROM '.sql_table('comment') .' WHERE cnumber=' . $commentid);\r
-               $o = mysql_fetch_object($res);\r
+               $o = sql_fetch_object($res);\r
                $itemid = $o->citem;\r
 \r
                $error = $this->deleteOneComment($commentid);\r
@@ -2057,6 +1989,13 @@ class ADMIN {
 \r
                        if ($password && (strlen($password) < 6))\r
                                $this->error(_ERROR_PASSWORDTOOSHORT);\r
+\r
+                       $pwdvalid = true;\r
+                       $pwderror = '';\r
+                       $manager->notify('PrePasswordSet',array('password' => $password, 'errormessage' => &$pwderror, 'valid' => &$pwdvalid));\r
+                       if (!pwdvalid) {\r
+                               $this->error($pwderror);\r
+                       }\r
                }\r
 \r
                if (!isValidMailAddress($email))\r
@@ -2076,7 +2015,7 @@ class ADMIN {
                   )\r
                {\r
                        $r = sql_query('SELECT * FROM '.sql_table('member').' WHERE madmin=1 and mcanlogin=1');\r
-                       if (mysql_num_rows($r) < 2)\r
+                       if (sql_num_rows($r) < 2)\r
                                $this->error(_ERROR_ATLEASTONEADMIN);\r
                }\r
 \r
@@ -2302,6 +2241,13 @@ class ADMIN {
                if ($password && (strlen($password) < 6))\r
                        return $this->_showActivationPage($key, _ERROR_PASSWORDTOOSHORT);\r
 \r
+               $pwdvalid = true;\r
+               $pwderror = '';\r
+               $manager->notify('PrePasswordSet',array('password' => $password, 'errormessage' => &$pwderror, 'valid' => &$pwdvalid));\r
+               if (!pwdvalid) {\r
+                       return $this->_showActivationPage($key,$pwderror);\r
+               }\r
+\r
                $error = '';\r
                global $manager;\r
                $manager->notify('ValidateForm', array('type' => 'activation', 'member' => $mem, 'error' => &$error));\r
@@ -2482,7 +2428,7 @@ class ADMIN {
                        // (check for at least two admins before deletion)\r
                        $query = 'SELECT * FROM '.sql_table('team') . ' WHERE tblog='.$blogid.' and tadmin=1';\r
                        $r = sql_query($query);\r
-                       if (mysql_num_rows($r) < 2)\r
+                       if (sql_num_rows($r) < 2)\r
                                return _ERROR_ATLEASTONEBLOGADMIN;\r
                }\r
 \r
@@ -2511,7 +2457,7 @@ class ADMIN {
                // don't allow when there is only one admin at this moment\r
                if ($mem->isBlogAdmin($blogid)) {\r
                        $r = sql_query('SELECT * FROM '.sql_table('team') . " WHERE tblog=$blogid and tadmin=1");\r
-                       if (mysql_num_rows($r) == 1)\r
+                       if (sql_num_rows($r) == 1)\r
                                $this->error(_ERROR_ATLEASTONEBLOGADMIN);\r
                }\r
 \r
@@ -2556,7 +2502,7 @@ class ADMIN {
                <?php\r
                        $res = sql_query('SELECT mname, mrealname FROM ' . sql_table('member') . ',' . sql_table('team') . ' WHERE mnumber=tmember AND tblog=' . intval($blogid));\r
                        $aMemberNames = array();\r
-                       while ($o = mysql_fetch_object($res))\r
+                       while ($o = sql_fetch_object($res))\r
                                array_push($aMemberNames, htmlspecialchars($o->mname) . ' (' . htmlspecialchars($o->mrealname). ')');\r
                        echo implode(',', $aMemberNames);\r
                ?>\r
@@ -2760,7 +2706,7 @@ class ADMIN {
 \r
                $query = 'SELECT * FROM '.sql_table('category') . ' WHERE cname=\'' . addslashes($cname).'\' and cblog=' . intval($blogid);\r
                $res = sql_query($query);\r
-               if (mysql_num_rows($res) > 0)\r
+               if (sql_num_rows($res) > 0)\r
                        $this->error(_ERROR_DUPCATEGORYNAME);\r
 \r
                $blog           =& $manager->getBlog($blogid);\r
@@ -2787,7 +2733,7 @@ class ADMIN {
                $member->blogAdminRights($blogid) or $this->disallow();\r
 \r
                $res = sql_query('SELECT * FROM '.sql_table('category')." WHERE cblog=$blogid AND catid=$catid");\r
-               $obj = mysql_fetch_object($res);\r
+               $obj = sql_fetch_object($res);\r
 \r
                $cname = $obj->cname;\r
                $cdesc = $obj->cdesc;\r
@@ -2850,7 +2796,7 @@ class ADMIN {
 \r
                $query = 'SELECT * FROM '.sql_table('category').' WHERE cname=\'' . addslashes($cname).'\' and cblog=' . intval($blogid) . " and not(catid=$catid)";\r
                $res = sql_query($query);\r
-               if (mysql_num_rows($res) > 0)\r
+               if (sql_num_rows($res) > 0)\r
                        $this->error(_ERROR_DUPCATEGORYNAME);\r
 \r
                $query =  'UPDATE '.sql_table('category').' SET'\r
@@ -2898,7 +2844,7 @@ class ADMIN {
                // check if catid is the only category left for blogid\r
                $query = 'SELECT catid FROM '.sql_table('category').' WHERE cblog=' . $blogid;\r
                $res = sql_query($query);\r
-               if (mysql_num_rows($res) == 1)\r
+               if (sql_num_rows($res) == 1)\r
                        $this->error(_ERROR_DELETELASTCATEGORY);\r
 \r
 \r
@@ -2970,7 +2916,7 @@ class ADMIN {
                // check if catid is the only category left for blogid\r
                $query = 'SELECT catid FROM '.sql_table('category').' WHERE cblog=' . $blogid;\r
                $res = sql_query($query);\r
-               if (mysql_num_rows($res) == 1)\r
+               if (sql_num_rows($res) == 1)\r
                        return _ERROR_DELETELASTCATEGORY;\r
 \r
                // change category for all items to the default category\r
@@ -3033,7 +2979,7 @@ class ADMIN {
                // update comments table (cblog)\r
                $query = 'SELECT inumber FROM '.sql_table('item').' WHERE icat='.$catid;\r
                $items = sql_query($query);\r
-               while ($oItem = mysql_fetch_object($items)) {\r
+               while ($oItem = sql_fetch_object($items)) {\r
                        sql_query('UPDATE '.sql_table('comment').' SET cblog='.$destblogid.' WHERE citem='.$oItem->inumber);\r
                }\r
 \r
@@ -3434,14 +3380,14 @@ class ADMIN {
                // create blog\r
                $query = 'INSERT INTO '.sql_table('blog')." (bname, bshortname, bdesc, btimeoffset, bdefskin) VALUES ('$bname', '$bshortname', '$bdesc', '$btimeoffset', '$bdefskin')";\r
                sql_query($query);\r
-               $blogid = mysql_insert_id();\r
+               $blogid = sql_insert_id();\r
                $blog   =& $manager->getBlog($blogid);\r
 \r
                // create new category\r
                $sql = 'INSERT INTO %s (cblog, cname, cdesc) VALUES (%d, "%s", "%s")';\r
                sql_query(sprintf($sql, sql_table('category'), $blogid, _EBLOGDEFAULTCATEGORY_NAME, _EBLOGDEFAULTCATEGORY_DESC));\r
 //             sql_query('INSERT INTO '.sql_table('category')." (cblog, cname, cdesc) VALUES ($blogid, _EBLOGDEFAULTCATEGORY_NAME, _EBLOGDEFAULTCATEGORY_DESC)");\r
-               $catid = mysql_insert_id();\r
+               $catid = sql_insert_id();\r
 \r
                // set as default category\r
                $blog->setDefaultCategory($catid);\r
@@ -3621,7 +3567,7 @@ selector();
                        </tr><tr>\r
        <?php           // show list of skins\r
                $res = sql_query('SELECT * FROM '.sql_table('skin_desc'));\r
-               while ($skinObj = mysql_fetch_object($res)) {\r
+               while ($skinObj = sql_fetch_object($res)) {\r
                        $id = 'skinexp' . $skinObj->sdnumber;\r
                        echo '<td><input type="checkbox" name="skin[',$skinObj->sdnumber,']"  id="',$id,'" />';\r
                        echo '<label for="',$id,'">',htmlspecialchars($skinObj->sdname),'</label></td>';\r
@@ -3633,7 +3579,7 @@ selector();
 \r
                // show list of templates\r
                $res = sql_query('SELECT * FROM '.sql_table('template_desc'));\r
-               while ($templateObj = mysql_fetch_object($res)) {\r
+               while ($templateObj = sql_fetch_object($res)) {\r
                        $id = 'templateexp' . $templateObj->tdnumber;\r
                        echo '<td><input type="checkbox" name="template[',$templateObj->tdnumber,']" id="',$id,'" />';\r
                        echo '<label for="',$id,'">',htmlspecialchars($templateObj->tdname),'</label></td>';\r
@@ -4133,8 +4079,8 @@ selector();
 \r
                $query = 'INSERT INTO '.sql_table('template')." (tdesc, tpartname, tcontent) "\r
                           . "VALUES ($id, '$partname', '$content')";\r
-               sql_query($query) or exit(_ADMIN_SQLDIE_QUERYERROR . mysql_error());\r
-               return mysql_insert_id();\r
+               sql_query($query) or exit(_ADMIN_SQLDIE_QUERYERROR . sql_error());\r
+               return sql_insert_id();\r
        }\r
 \r
        /**\r
@@ -4245,7 +4191,7 @@ selector();
                // 3. create clone\r
                // go through parts of old template and add them to the new one\r
                $res = sql_query('SELECT tpartname, tcontent FROM '.sql_table('template').' WHERE tdesc=' . $templateid);\r
-               while ($o = mysql_fetch_object($res)) {\r
+               while ($o = sql_fetch_object($res)) {\r
                        $this->addToTemplate($newid, $o->tpartname, $o->tcontent);\r
                }\r
 \r
@@ -4366,11 +4312,11 @@ selector();
                echo '<input type="submit" tabindex="140" value="' . _SKIN_CREATE . '" onclick="return checkSubmit();" />' . "\r\n";\r
                echo '</form>' . "\r\n";\r
 \r
-               if ($res && mysql_num_rows($res) > 0) {\r
+               if ($res && sql_num_rows($res) > 0) {\r
                        echo '<ul>';\r
                        $tabstart = 75;\r
 \r
-                       while ($row = mysql_fetch_assoc($res)) {\r
+                       while ($row = sql_fetch_assoc($res)) {\r
                                echo '<li><a tabindex="' . ($tabstart++) . '" href="index.php?action=skinedittype&amp;skinid=' . $skinid . '&amp;type=' . htmlspecialchars(strtolower($row['stype'])) . '">' . htmlspecialchars(ucfirst($row['stype'])) . '</a> (<a tabindex="' . ($tabstart++) . '" href="index.php?action=skinremovetype&amp;skinid=' . $skinid . '&amp;type=' . htmlspecialchars(strtolower($row['stype'])) . '">remove</a>)</li>';\r
                        }\r
 \r
@@ -4480,6 +4426,7 @@ selector();
                ?>\r
 \r
 \r
+               <div style="width:100%;">\r
                <form method="post" action="index.php">\r
                <div>\r
 \r
@@ -4526,7 +4473,7 @@ selector();
                echo '<br />' . _SKINEDIT_ALLOWEDTEMPLATESS;\r
                $query = 'SELECT tdname as name, tddesc as description FROM '.sql_table('template_desc');\r
                        showlist($query,'table',array('content'=>'shortnames'));\r
-               echo '</div></form>';\r
+               echo '</div></form></div>';\r
                $this->pagefoot();\r
        }\r
 \r
@@ -4565,7 +4512,7 @@ selector();
                // don't allow deletion of default skins for blogs\r
                $query = 'SELECT bname FROM '.sql_table('blog').' WHERE bdefskin=' . $skinid;\r
                $r = sql_query($query);\r
-               if ($o = mysql_fetch_object($r))\r
+               if ($o = sql_fetch_object($r))\r
                        $this->error(_ERROR_SKINDEFDELETE . htmlspecialchars($o->bname));\r
 \r
                $this->pagehead();\r
@@ -4608,7 +4555,7 @@ selector();
                // don't allow deletion of default skins for blogs\r
                $query = 'SELECT bname FROM '.sql_table('blog').' WHERE bdefskin=' . $skinid;\r
                $r = sql_query($query);\r
-               if ($o = mysql_fetch_object($r))\r
+               if ($o = sql_fetch_object($r))\r
                        $this->error(_ERROR_SKINDEFDELETE .$o->bname);\r
 \r
                $manager->notify('PreDeleteSkin', array('skinid' => $skinid));\r
@@ -4745,7 +4692,7 @@ selector();
 \r
                $query = "SELECT stype FROM " . sql_table('skin') . " WHERE sdesc = " . $skinid;\r
                $res = sql_query($query);\r
-               while ($row = mysql_fetch_assoc($res)) {\r
+               while ($row = sql_fetch_assoc($res)) {\r
                        $this->skinclonetype($skin, $newid, $row['stype']);\r
                }\r
 \r
@@ -5131,7 +5078,7 @@ selector();
                        echo "\t\t" . '<td>' . phpversion() . "</td>\n";\r
                        echo "\t</tr><tr>\n";\r
                        echo "\t\t" . '<td>' . _ADMIN_SYSTEMOVERVIEW_MYSQLVERSION . "</td>\n";\r
-                       echo "\t\t" . '<td>' . mysql_get_server_info() . ' (' . mysql_get_client_info() . ')' . "</td>\n";\r
+                       echo "\t\t" . '<td>' . sql_get_server_info() . ' (' . sql_get_client_info() . ')' . "</td>\n";\r
                        echo "\t</tr>";\r
                        echo "</table>\n";\r
 \r
@@ -5258,8 +5205,8 @@ selector();
                           . " SET value='$val'"\r
                           . " WHERE name='$name'";\r
 \r
-               sql_query($query) or die("Query error: " . mysql_error());\r
-               return mysql_insert_id();\r
+               sql_query($query) or die(_ADMIN_SQLDIE_QUERYERROR . sql_error());\r
+               return sql_insert_id();\r
        }\r
 \r
        /**\r
@@ -5323,6 +5270,7 @@ selector();
                        <?php echo $extrahead?>\r
                </head>\r
                <body>\r
+               <div id="adminwrapper">\r
                <div class="header">\r
                <h1><?php echo htmlspecialchars($CONF['SiteName'])?></h1>\r
                </div>\r
@@ -5345,6 +5293,12 @@ selector();
                        if ($member->isLoggedIn() && $member->isAdmin()) {\r
                                $checkURL = sprintf(_ADMIN_SYSTEMOVERVIEW_VERSIONCHECK_URL, getNucleusVersion(), getNucleusPatchLevel());\r
                                echo '<a href="' . $checkURL . '" title="' . _ADMIN_SYSTEMOVERVIEW_VERSIONCHECK_TITLE . '">Nucleus CMS ' . $nucleus['version'] . $codenamestring . '</a>';\r
+                               $newestVersion = getLatestVersion();\r
+                               $newestCompare = str_replace('/','.',$newestVersion);\r
+                               $currentVersion = str_replace(array('/','v'),array('.',''),$nucleus['version']);\r
+                               if ($newestVersion && version_compare($newestCompare,$currentVersion)) {\r
+                                       echo '<br /><a style="color:red" href="http://nucleuscms.org/upgrade.php" title="'._ADMIN_SYSTEMOVERVIEW_LATESTVERSION_TITLE.'">'._ADMIN_SYSTEMOVERVIEW_LATESTVERSION_TEXT.$newestVersion.'</a>';\r
+                               }\r
                        } else {\r
                                echo 'Nucleus CMS ' . $nucleus['version'] . $codenamestring;\r
                        }\r
@@ -5480,9 +5434,11 @@ selector();
                        </div>\r
 \r
                        <!-- content / quickmenu container -->\r
+                       <div class="clear"></div>    <!-- new -->\r
                        </div>\r
 \r
-\r
+                       <!-- adminwrapper -->    <!-- new -->\r
+                       </div>     <!-- new -->\r
                        </body>\r
                        </html>\r
                <?php   }\r
@@ -5993,7 +5949,7 @@ selector();
 \r
                echo '<h2>' , _PLUGS_TITLE_MANAGE , ' ', help('plugins'), '</h2>';\r
 \r
-               echo '<h3>' , _PLUGS_TITLE_INSTALLED , '</h3>';\r
+               echo '<h3>' , _PLUGS_TITLE_INSTALLED , ' &nbsp;&nbsp;<span style="font-size:smaller">', helplink('getplugins'), _PLUGS_TITLE_GETPLUGINS, '</a></span></h3>';\r
 \r
 \r
                $query =  'SELECT * FROM '.sql_table('plugin').' ORDER BY porder ASC';\r
@@ -6024,7 +5980,7 @@ selector();
                                                $name = $matches[1];\r
                                                // only show in list when not yet installed\r
                                                $res = sql_query('SELECT * FROM '.sql_table('plugin').' WHERE pfile="NP_'.addslashes($name).'"');\r
-                                               if (mysql_num_rows($res) == 0)\r
+                                               if (sql_num_rows($res) == 0)\r
                                                        array_push($candidates,$name);\r
                                        }\r
                                }\r
@@ -6082,7 +6038,7 @@ selector();
                if (($plug->supportsFeature('HelpPage') > 0) && (@file_exists($helpFile))) {\r
                        @readfile($helpFile);\r
                } else {\r
-                       echo '<p>Error: ', _ERROR_PLUGNOHELPFILE,'</p>';\r
+                       echo '<p>' . _ERROR .': ', _ERROR_PLUGNOHELPFILE,'</p>';\r
                        echo '<p><a href="index.php?action=pluginlist">(',_BACK,')</a></p>';\r
                }\r
 \r
@@ -6108,7 +6064,7 @@ selector();
 \r
                // get number of currently installed plugins\r
                $res = sql_query('SELECT * FROM '.sql_table('plugin'));\r
-               $numCurrent = mysql_num_rows($res);\r
+               $numCurrent = sql_num_rows($res);\r
 \r
                // plugin will be added as last one in the list\r
                $newOrder = $numCurrent + 1;\r
@@ -6123,7 +6079,7 @@ selector();
                // do this before calling getPlugin (in case the plugin id is used there)\r
                $query = 'INSERT INTO '.sql_table('plugin').' (porder, pfile) VALUES ('.$newOrder.',"'.addslashes($name).'")';\r
                sql_query($query);\r
-               $iPid = mysql_insert_id();\r
+               $iPid = sql_insert_id();\r
 \r
                $manager->clearCachedInfo('installedPlugins');\r
 \r
@@ -6163,7 +6119,7 @@ selector();
                {\r
 \r
                        $res = sql_query('SELECT * FROM '.sql_table('plugin') . ' WHERE pfile="' . $pluginName . '"');\r
-                       if (mysql_num_rows($res) == 0)\r
+                       if (sql_num_rows($res) == 0)\r
                        {\r
                                // uninstall plugin again...\r
                                $this->deleteOnePlugin($plugin->getID());\r
@@ -6190,7 +6146,7 @@ selector();
         * @todo document this\r
         */\r
        function action_pluginupdate() {\r
-               global $member, $manager;\r
+               global $member, $manager, $CONF;\r
 \r
                // check if allowed\r
                $member->isAdmin() or $this->disallow();\r
@@ -6200,7 +6156,7 @@ selector();
 \r
                // loop over all installed plugins\r
                $res = sql_query('SELECT pid, pfile FROM '.sql_table('plugin'));\r
-               while($o = mysql_fetch_object($res)) {\r
+               while($o = sql_fetch_object($res)) {\r
                        $pid = $o->pid;\r
                        $plug =& $manager->getPlugin($o->pfile);\r
                        if ($plug)\r
@@ -6211,7 +6167,7 @@ selector();
                        }\r
                }\r
 \r
-               redirect('?action=pluginlist');\r
+               redirect($CONF['AdminURL'] . '?action=pluginlist');\r
 //             $this->action_pluginlist();\r
        }\r
 \r
@@ -6241,14 +6197,15 @@ selector();
                        <input type="hidden" name="plugid" value="<?php echo $pid; ?>" />\r
                        <input type="submit" tabindex="10" value="<?php echo _DELETE_CONFIRM_BTN?>" />\r
                        </div></form>\r
-               <?php           $this->pagefoot();\r
+               <?php\r
+               $this->pagefoot();\r
        }\r
 \r
        /**\r
         * @todo document this\r
         */\r
        function action_plugindeleteconfirm() {\r
-               global $member, $manager;\r
+               global $member, $manager, $CONF;\r
 \r
                // check if allowed\r
                $member->isAdmin() or $this->disallow();\r
@@ -6260,7 +6217,7 @@ selector();
                        $this->error($error);\r
                }\r
 \r
-               redirect('?action=pluginlist');\r
+               redirect($CONF['AdminURL'] . '?action=pluginlist');\r
 //             $this->action_pluginlist();\r
        }\r
 \r
@@ -6285,7 +6242,7 @@ selector();
 \r
                // check dependency before delete\r
                $res = sql_query('SELECT pfile FROM '.sql_table('plugin'));\r
-               while($o = mysql_fetch_object($res)) {\r
+               while($o = sql_fetch_object($res)) {\r
                        $plug =& $manager->getPlugin($o->pfile);\r
                        if ($plug)\r
                        {\r
@@ -6315,7 +6272,7 @@ selector();
                // get OIDs from plugin_option_desc\r
                $res = sql_query('SELECT oid FROM ' . sql_table('plugin_option_desc') . ' WHERE opid=' . $pid);\r
                $aOIDs = array();\r
-               while ($o = mysql_fetch_object($res)) {\r
+               while ($o = sql_fetch_object($res)) {\r
                        array_push($aOIDs, $o->oid);\r
                }\r
 \r
@@ -6326,7 +6283,7 @@ selector();
 \r
                // update order numbers\r
                $res = sql_query('SELECT porder FROM '.sql_table('plugin').' WHERE pid=' . $pid);\r
-               $o = mysql_fetch_object($res);\r
+               $o = sql_fetch_object($res);\r
                sql_query('UPDATE '.sql_table('plugin').' SET porder=(porder - 1) WHERE porder>'.$o->porder);\r
 \r
                // delete row\r
@@ -6342,7 +6299,7 @@ selector();
         * @todo document this\r
         */\r
        function action_pluginup() {\r
-               global $member, $manager;\r
+               global $member, $manager, $CONF;\r
 \r
                // check if allowed\r
                $member->isAdmin() or $this->disallow();\r
@@ -6354,7 +6311,7 @@ selector();
 \r
                // 1. get old order number\r
                $res = sql_query('SELECT porder FROM '.sql_table('plugin').' WHERE pid='.$plugid);\r
-               $o = mysql_fetch_object($res);\r
+               $o = sql_fetch_object($res);\r
                $oldOrder = $o->porder;\r
 \r
                // 2. calculate new order number\r
@@ -6366,14 +6323,14 @@ selector();
 \r
                //$this->action_pluginlist();\r
                // To avoid showing ticket in the URL, redirect to pluginlist, instead.\r
-               redirect('?action=pluginlist');\r
+               redirect($CONF['AdminURL'] . '?action=pluginlist');\r
        }\r
 \r
        /**\r
         * @todo document this\r
         */\r
        function action_plugindown() {\r
-               global $member, $manager;\r
+               global $member, $manager, $CONF;\r
 \r
                // check if allowed\r
                $member->isAdmin() or $this->disallow();\r
@@ -6384,11 +6341,11 @@ selector();
 \r
                // 1. get old order number\r
                $res = sql_query('SELECT porder FROM '.sql_table('plugin').' WHERE pid='.$plugid);\r
-               $o = mysql_fetch_object($res);\r
+               $o = sql_fetch_object($res);\r
                $oldOrder = $o->porder;\r
 \r
                $res = sql_query('SELECT * FROM '.sql_table('plugin'));\r
-               $maxOrder = mysql_num_rows($res);\r
+               $maxOrder = sql_num_rows($res);\r
 \r
                // 2. calculate new order number\r
                $newOrder = ($oldOrder < $maxOrder) ? ($oldOrder + 1) : $maxOrder;\r
@@ -6399,7 +6356,7 @@ selector();
 \r
                //$this->action_pluginlist();\r
                // To avoid showing ticket in the URL, redirect to pluginlist, instead.\r
-               redirect('?action=pluginlist');\r
+               redirect($CONF['AdminURL'] . '?action=pluginlist');\r
        }\r
 \r
        /**\r
@@ -6439,7 +6396,7 @@ selector();
                $aOIDs = array();\r
                $query = 'SELECT * FROM ' . sql_table('plugin_option_desc') . ' WHERE ocontext=\'global\' and opid=' . $pid . ' ORDER BY oid ASC';\r
                $r = sql_query($query);\r
-               while ($o = mysql_fetch_object($r)) {\r
+               while ($o = sql_fetch_object($r)) {\r
                        array_push($aOIDs, $o->oid);\r
                        $aOptions[$o->oid] = array(\r
                                                'oid' => $o->oid,\r
@@ -6454,7 +6411,7 @@ selector();
                // fill out actual values\r
                if (count($aOIDs) > 0) {\r
                        $r = sql_query('SELECT oid, ovalue FROM ' . sql_table('plugin_option') . ' WHERE oid in ('.implode(',',$aOIDs).')');\r
-                       while ($o = mysql_fetch_object($r))\r
+                       while ($o = sql_fetch_object($r))\r
                                $aOptions[$o->oid]['value'] = $o->ovalue;\r
                }\r
 \r
@@ -6505,7 +6462,7 @@ selector();
                // (note: this might contain doubles for overlapping contextids)\r
                $aIdToValue = array();\r
                $res = sql_query('SELECT oid, ovalue FROM ' . sql_table('plugin_option') . ' WHERE ocontextid=' . intval($contextid));\r
-               while ($o = mysql_fetch_object($res)) {\r
+               while ($o = sql_fetch_object($res)) {\r
                        $aIdToValue[$o->oid] = $o->ovalue;\r
                }\r
 \r
@@ -6514,7 +6471,7 @@ selector();
                           . ' WHERE opid=pid and ocontext=\''.addslashes($context).'\' ORDER BY porder, oid ASC';\r
                $res = sql_query($query);\r
                $aOptions = array();\r
-               while ($o = mysql_fetch_object($res)) {\r
+               while ($o = sql_fetch_object($res)) {\r
                        if (in_array($o->oid, array_keys($aIdToValue)))\r
                                $value = $aIdToValue[$o->oid];\r
                        else\r
@@ -6545,7 +6502,7 @@ selector();
                        if ($iPrevPid != $aOption['pid']) {\r
                                $iPrevPid = $aOption['pid'];\r
 \r
-                               echo '<tr><th colspan="2">Options for ', htmlspecialchars($aOption['pfile']),'</th></tr>';\r
+                               echo '<tr><th colspan="2">'.sprintf(_PLUGIN_OPTIONS_TITLE, htmlspecialchars($aOption['pfile']. ENT_QUOTES)).'</th></tr>';\r
                        }\r
 \r
                        $meta = NucleusPlugin::getOptionMeta($aOption['typeinfo']);\r