X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=nucleus%2Flibs%2FAdminActions.php;h=84e8e8d7139c48af8fde6e62870dbc33161361ff;hb=5201ce84818bdc8d4045173eb674314d4850ebb5;hp=9549d1b28d96b2ec7c9716aa9ea4284740898fda;hpb=155a75d7431a7c1b6fa1614cbfe04d0f21669369;p=nucleus-jp%2Fnucleus-next.git diff --git a/nucleus/libs/AdminActions.php b/nucleus/libs/AdminActions.php index 9549d1b..84e8e8d 100644 --- a/nucleus/libs/AdminActions.php +++ b/nucleus/libs/AdminActions.php @@ -3,143 +3,37 @@ if ( !class_exists('BaseActions') ) { include $DIR_LIBS . 'BaseActions.php'; } + + class AdminActions extends BaseActions { - // reference to the skin object for which a part is being parsed - private $skin; - - // an instance of parser class -// private $parser; - protected $parser; - private $skintype; - /* NOTE: list of whole available action names for tags - 'actionloglist', - 'activationmessage', + /** + * AdminActions::$default_actions + * list of whole action names with which this class can deal + */ + static private $default_actions = array( + 'actionurl', 'addtickettourl', - 'adminbanlist', - 'adminbatchaction', - 'adminbatchlist', - 'adminbloglink', - 'adminerrormesg', - 'adminskineditallowedlist', - 'adminskinielist', - 'adminskinoverview', - 'adminskinselectoptions', - 'adminspecialskinlist', - 'admintemplateoverview', - 'allowedadminskinactions', - 'allowedskinactions', - 'banlistdeletedlist', - 'batchdeletelist', - 'batchdeletetype', - 'batchmovebtn', - 'batchmovelist', - 'batchmovetitle', - 'batchmovetype', - 'blogcatlist', - 'blognotifysetting', - 'blogselectbox', - 'blogsetting', - 'blogsettingyesno', - 'blogteamlist', - 'blogteammembers', - 'blogtime', - 'bookmarkletadmin', - 'category', - 'categorysetting', + 'adminurl', 'codename', - 'commentnavlist', - 'configsettingsedit', - 'configsettingsyesno', 'customhelplink', 'date', - 'defaultadminskintypes', - 'defblogselect', - 'defcatselect', - 'defskinselect', - 'deletecomment', - 'deleteitembody', - 'deleteitemid', - 'deleteitemtitle', - 'editadminskin', - 'editadminskintype', - 'editadmintemplateinfo', - 'editcomment', - 'editdesturl', - 'editmember', - 'editmemberlist', - 'editpluginfo', - 'editplugoptionslist', - 'editskin', - 'editskintype', - 'edittemplateinfo', - 'eventformextra', 'extrahead', - 'getblogsetting', - 'geteditpluginfo', - 'getmember', 'headmessage', 'helplink', - 'helpplugname', - 'ilistaddnew', - 'importskininfo', - 'inputyesno', - 'insertpluginfo', - 'insertpluginoptions', - 'insplugoptcontent', - 'iprangeinput', - 'itemnavlist', - 'jstoolbaroptions', - 'languageselectoptions', - 'listplugplugoptionrow', - 'mediadirwarning', - 'movedistselect', - 'moveitemid', + 'member', 'newestcompare', - 'newmemberselect', - 'newpluginlist', - 'outputspecialdirs', - 'passrequestvars', - 'pluginextras', - 'pluginhelp', - 'pluginlistlist', - 'pluginoptions', + 'pagehead', + 'pagefoot', 'qmenuaddselect', 'quickmenu', - 'requestblogid', - 'requestiprange', - 'selectlocaladminskinfiles', - 'selectlocalskinfiles', - 'skineditallowedlist', - 'skinfile', - 'skinielist', - 'skinoverview', - 'skintypehelp', - 'specialskinlist', + 'sitevar', 'sprinttext', - 'systemsettings', - 'templateoverview', - 'text', - 'ticket', - 'versioncheckurl', - 'yrbloglist' - ); - */ - - /** - * AdminActions::$default_actions - * list of whole action names with which this class can deal - */ - static private $default_actions = array( - 'addtickettourl', - 'headmessage', 'ticket', - 'sprinttext', - 'helplink', - 'customhelplink', - 'adminurl' + 'version', + 'versioncheckurl' ); /** @@ -175,9 +69,9 @@ class AdminActions extends BaseActions 'batchitem' => _ADM_SKPRT_BATCHITEM, 'batchmember' => _ADM_SKPRT_BATCHMEMBER, 'batchmove' => _ADM_SKPRT_BATCHMOVE, + 'batchmovecat' => _ADM_SKPRT_BATCHMOVECAT, 'batchteam' => _ADM_SKPRT_BATCHTEAM, 'blogcommentlist' => _ADM_SKPRT_BLOGCOMMENTLIST, - 'blogselectbox' => _ADM_SKPRT_BLOGSELECTBOX, 'blogsettings' => _ADM_SKPRT_BLOGSETTINGS, 'bookmarklet' => _ADM_SKPRT_BOOKMARKLET, 'browseowncomments' => _ADM_SKPRT_BROWSEOWNCOMMENTS, @@ -188,9 +82,12 @@ class AdminActions extends BaseActions 'commentedit' => _ADM_SKPRT_COMMENTEDIT, 'createitem' => _ADM_SKPRT_CREATEITEM, 'createnewlog' => _ADM_SKPRT_CREATENEWLOG, + 'createaccountinput' => _ADM_SKPRT_CREATEACCOUNTINPUT, /* not yet */ + 'createaccountsuccess' => _ADM_SKPRT_CREATEACCOUNTSUCCESS, /* not yet */ + 'createaccountdisable' => _ADM_SKPRT_CREATEACCOUNTDISALLOWED, /* not yet */ 'deleteblog' => _ADM_SKPRT_DELETEBLOG, 'editmembersettings' => _ADM_SKPRT_EDITMEMBERSETTINGS, - 'insertpluginoptions' => _ADM_SKPRT_INSERTPLUGINO, + 'forgotpassword' => _ADM_SKPRT_FORGOTPASSWORD, /* not yet */ 'itemcommentlist' => _ADM_SKPRT_ITEMCOMMENTLIST, 'itemdelete' => _ADM_SKPRT_ITEMDELETE, 'itemedit' => _ADM_SKPRT_ITEMEDIT, @@ -227,509 +124,559 @@ class AdminActions extends BaseActions ); /** - * AdminActions::getDefinedActions() - * + * AdminActions::getAvailableSkinTypes() + * + * @static + * @param void + * @return array list of friendly names for page actions + */ + static public function getAvailableSkinTypes() + { + return self::$default_skin_types; + } + + /** + * AdminActions::getDefaultTypes() + * * @static - * @param string $type page type + * @param void + * @return array list of friendly names for page actions + */ + static public function getDefaultTypes() + { + return self::$default_skin_types; + } + + /** + * AdminActions::__construct() + * Constructor for a new Actions object + * + * @param string $type + * @return void + */ + public function __construct($type) + { + // call constructor of superclass first + parent::__construct(); + + /* alias */ + if ( $type == 'admntemplateoverview' ) + { + $this->skintype = 'admintemplateoverview'; + } + else + { + $this->skintype = $type; + } + + return; + } + + /** + * AdminActions::getAvailableActions() + * + * @param void * @return array allowed actions for the page type */ - static public function getDefinedActions($type = '') + public function getAvailableActions() { $extra_actions = array(); - switch ( $type ) + switch ( $this->skintype ) { case 'actionlog': $extra_actions = array( - 'actionloglist', + 'actionloglist', ); break; case 'activate': $extra_actions = array( - 'activationmessage', - 'eventformextra', + 'activationmessage', + 'eventformextra', ); break; case 'activatesetpwd': $extra_actions = array( + /* nothing special */ ); break; case 'addnewlog': $extra_actions = array( - 'getblogsetting', - 'blogsetting', - 'requestblogid', - ); + 'getblogsetting', + 'blogsetting', + 'requestblogid', + ); break; case 'adminerrorpage': $extra_actions = array( + /* nothing special */ ); break; case 'adminskindelete': $extra_actions = array( - 'editadminskintype', + 'editskintype', ); break; case 'adminskinedit': $extra_actions = array( - 'editadminskin', - 'defaultadminskintypes', - 'adminspecialskinlist', + 'editskin', + 'normalskinlist', + 'specialskinlist', ); break; case 'adminskinedittype': $extra_actions = array( - 'editadminskintype', - 'skintypehelp', - 'allowedadminskinactions', - 'adminskineditallowedlist', + 'editskintype', + 'skintypehelp', + 'allowedskinactions', + 'skineditallowedlist', ); break; case 'adminskiniedoimport': $extra_actions = array( - 'importskininfo', + 'importskininfo', ); break; case 'adminskinieimport': $extra_actions = array( - 'importskininfo', + 'importskininfo', ); break; case 'adminskinieoverview': $extra_actions = array( - 'selectlocaladminskinfiles', - 'adminskinielist', + 'selectlocalskinfiles', + 'skinielist', ); break; case 'adminskinoverview': $extra_actions = array( - 'adminskinoverview', + 'skinoverview', ); break; case 'adminskinremovetype': $extra_actions = array( - 'editadminskintype', + 'editskintype', ); break; + case 'admintemplatedelete': + $extra_actions = array( + 'editadmintemplateinfo', + ); case 'admintemplateedit': $extra_actions = array( - 'editadmintemplateinfo', + 'edittemplateinfo', ); break; case 'admintemplateoverview': $extra_actions = array( - 'admintemplateoverview', + 'templateoverview', ); break; case 'backupoverview': $extra_actions = array( + /* nothing special */ ); break; case 'backuprestore': $extra_actions = array( + /* nothing special */ ); break; case 'banlist': $extra_actions = array( - 'adminbloglink', - 'adminbanlist', - 'requestblogid', + 'adminbloglink', + 'adminbanlist', + 'requestblogid', ); break; case 'banlistdelete': $extra_actions = array( - 'requestiprange', - 'requestblogid', + 'requestiprange', + 'requestblogid', ); break; case 'banlistdeleteconfirm': $extra_actions = array( - 'banlistdeletedlist', - 'requestblogid', + 'banlistdeletedlist', + 'requestblogid', ); break; case 'banlistnew': $extra_actions = array( - 'iprangeinput', - 'requestblogid', - 'blogsetting', + 'iprangeinput', + 'requestblogid', + 'blogsetting', ); break; case 'batchcategory': $extra_actions = array( - 'adminbatchaction', - 'adminbatchlist', + 'adminbatchaction', + 'adminbatchlist', ); break; case 'batchcomment': $extra_actions = array( - 'adminbatchaction', - 'adminbatchlist', + 'adminbatchaction', + 'adminbatchlist', ); break; case 'batchdelete': $extra_actions = array( - 'batchdeletetype', - 'batchdeletelist', + 'batchdeletetype', + 'batchdeletelist', ); break; case 'batchitem': $extra_actions = array( - 'adminbatchaction', - 'adminbatchlist', + 'adminbatchaction', + 'adminbatchlist', ); break; case 'batchmember': $extra_actions = array( - 'adminbatchaction', - 'adminbatchlist', + 'adminbatchaction', + 'adminbatchlist', ); break; case 'batchmove': $extra_actions = array( - 'batchmovetitle', - 'batchmovetype', - 'batchmovelist', - 'movedistselect', - 'batchmovebtn', + 'batchmovetitle', + 'batchmovetype', + 'batchmovelist', + 'movedistselect', + 'batchmovebtn', ); break; case 'batchmovecat': $extra_actions = array( - 'batchmovetitle', - 'batchmovetype', - 'batchmovelist', - 'movedistselect', - 'batchmovebtn', + 'batchmovetitle', + 'batchmovetype', + 'batchmovelist', + 'movedistselect', + 'batchmovebtn', ); break; case 'batchteam': $extra_actions = array( - 'requestblogid', - 'adminbatchaction', - 'adminbatchlist', + 'requestblogid', + 'adminbatchaction', + 'adminbatchlist', ); break; case 'blogcommentlist': $extra_actions = array( - 'adminbloglink', - 'commentnavlist', - 'adminbatchlist', - ); - break; - case 'blogselectbox': - $extra_actions = array( - 'blogselectbox', + 'adminbloglink', + 'commentnavlist', + 'adminbatchlist', ); break; case 'blogsettings': $extra_actions = array( - 'adminbloglink', - 'blogteammembers', - 'requestblogid', - 'blogsetting', - 'blognotifysetting', - 'defcatselect', - 'blogtime', - 'blogsettingyesno', - 'pluginoptions', - 'blogcatlist', - 'pluginextras', + 'adminbloglink', + 'blogcatlist', + 'blognotifysetting', + 'blogsetting', + 'blogsettingyesno', + 'blogteammembers', + 'blogtime', + 'defcatselect', + 'defskinselect', + 'pluginextras', + 'pluginoptions', + 'requestblogid', ); break; case 'bookmarklet': $extra_actions = array( - 'bookmarkletadmin', + 'bookmarkletadmin', ); break; case 'browseowncomments': $extra_actions = array( - 'commentnavlist', + 'commentnavlist', ); break; case 'browseownitems': $extra_actions = array( - 'itemnavlist', + 'itemnavlist', ); break; case 'categorydelete': $extra_actions = array( - 'categorysetting', - 'requestblogid', + 'categorysetting', + 'requestblogid', ); break; case 'categoryedit': $extra_actions = array( - 'requestblogid', - 'categorysetting', - 'editdesturl', + 'requestblogid', + 'categorysetting', + 'editdesturl', + 'pluginoptions' ); break; case 'commentdelete': $extra_actions = array( - 'deletecomment', + 'deletecomment', ); break; case 'commentedit': $extra_actions = array( - 'editcomment', + 'editcomment', ); break; + case 'createaccountinput': + $extra_actions = array( + 'contents', + 'pluginextras', + 'eventformextra', + ); + break; + case 'createaccountsuccess': + $extra_actions = array( + 'contents', + ); + break; + case 'createaccountdisable': + $extra_actions = array( + /* nothing special */ + ); + break; case 'createitem': $extra_actions = array( - 'adminbloglink', - 'blogid', - 'jsinput', - 'jsbuttonbar', - 'contents', - 'categories', - 'currenttime', - 'pluginextras', - 'itemoptions' + 'adminbloglink', + 'blogid', + 'contents', + 'categories', + 'currenttime', + 'init', + 'pluginoptions', + 'pluginextras' ); break; case 'createnewlog': $extra_actions = array( - 'defskinselect', - 'blogtime', + 'defskinselect', + 'blogtime', ); break; case 'deleteblog': $extra_actions = array( - 'blogsetting', - 'requestblogid', + 'blogsetting', + 'requestblogid', ); break; case 'editmembersettings': $extra_actions = array( - 'editmember', - 'languageselectoptions', - 'adminskinselectoptions', - 'pluginoptions', + 'defskinselect', + 'editmember', + 'localeselectoptions', + 'pluginoptions', + 'defadminskinselect', + 'defbookmarkletselect', ); break; - case 'insertpluginoptions': + case 'forgotpassword': $extra_actions = array( - 'insertpluginoptions', + /* nothing special */ ); break; case 'itemcommentlist': $extra_actions = array( - 'requestblogid', - 'commentnavlist', + 'requestblogid', + 'commentnavlist', ); break; case 'itemdelete': $extra_actions = array( - 'deleteitemtitle', - 'deleteitembody', - 'deleteitemid', + 'deleteitemtitle', + 'deleteitembody', + 'deleteitemid', ); break; case 'itemedit': $extra_actions = array( - 'init', - 'contents', - 'jsinput', - 'jsbuttonbar', - 'checkedonval', - 'categories', - 'currenttime', - 'itemtime', - 'pluginextras', - 'itemoptions' + 'init', + 'contents', + 'checkedonval', + 'categories', + 'currenttime', + 'itemtime', + 'pluginoptions', + 'pluginextras' ); break; case 'itemlist': $extra_actions = array( - 'adminbloglink', - 'ilistaddnew', - 'itemnavlist', + 'adminbloglink', + 'ilistaddnew', + 'itemnavlist', ); break; case 'itemmove': $extra_actions = array( - 'moveitemid', - 'movedistselect', + 'moveitemid', + 'movedistselect', ); break; case 'manage': $extra_actions = array( + /* nothing special */ ); break; case 'manageteam': $extra_actions = array( - 'requestblogid', - 'blogsetting', - 'blogteamlist', - 'newmemberselect', - 'inputyesno', + 'requestblogid', + 'blogsetting', + 'blogteamlist', + 'newmemberselect', + 'inputyesno', ); break; case 'memberdelete': $extra_actions = array( - 'editmember', + 'editmember', ); break; case 'overview': $extra_actions = array( - 'yrbloglist', - ); - break; - case 'pagefoot': - $extra_actions = array( - 'date', - 'qmenuaddselect', - 'member', - 'quickmenu', - ); - break; - case 'pagehead': - $extra_actions = array( - 'charset', - 'sitevar', - 'adminurl', - 'extrahead', - 'member', - 'versioncheckurl', - 'version', - 'codename', - 'newestcompare', + 'yrbloglist', ); break; case 'plugindelete': $extra_actions = array( - 'editpluginfo', + 'editpluginfo', ); break; case 'pluginhelp': $extra_actions = array( - 'helpplugname', - 'pluginhelp', + 'helpplugname', + 'pluginhelp', ); break; case 'pluginlist': $extra_actions = array( - 'pluginlistlist', - 'newpluginlist', + 'pluginlistlist', + 'newpluginlist', ); break; case 'pluginoptions': $extra_actions = array( - 'editpluginfo', - 'editplugoptionslist', + 'editpluginfo', + 'editplugoptionslist', ); break; case 'settingsedit': $extra_actions = array( - 'defblogselect', - 'defskinselect', - 'configsettingsedit', - 'languageselectoptions', - 'configsettingsyesno', - 'outputspecialdirs', - 'jstoolbaroptions', - 'mediadirwarning', - 'pluginextras', + 'defblogselect', + 'defskinselect', + 'configsettingsedit', + 'configsettingsyesno', + 'outputspecialdirs', + 'jstoolbaroptions', + 'localeselectoptions', + 'mediadirwarning', + 'pluginextras', + 'defadminskinselect', + 'defbookmarkletselect', ); break; case 'showlogin': $extra_actions = array( - 'passrequestvars', + 'passrequestvars', ); break; case 'skindelete': $extra_actions = array( - 'editskintype', + 'editskintype', ); break; case 'skinedit': $extra_actions = array( - 'editskin', - 'specialskinlist', + 'editskin', + 'normalskinlist', + 'specialskinlist' ); break; case 'skinedittype': $extra_actions = array( - 'editskintype', - 'skintypehelp', - 'allowedskinactions', - 'skineditallowedlist', - 'skineditallowedlist', + 'editskintype', + 'skintypehelp', + 'allowedskinactions', + 'skineditallowedlist' ); break; case 'skiniedoimport': $extra_actions = array( - 'importskininfo', + 'importskininfo', ); break; case 'skinieimport': $extra_actions = array( - 'importskininfo', + 'importskininfo', ); break; case 'skinieoverview': $extra_actions = array( - 'selectlocalskinfiles', - 'skinielist', + 'selectlocalskinfiles', + 'skinielist', ); break; case 'skinoverview': $extra_actions = array( - 'skinoverview', + 'skinoverview', ); break; case 'skinremovetype': $extra_actions = array( - 'editskintype', + 'editskintype', ); break; case 'systemoverview': $extra_actions = array( - 'systemsettings', + 'systemsettings', ); break; case 'teamdelete': $extra_actions = array( - 'editmember', - 'blogsetting', - 'requestblogid', + 'editmember', + 'blogsetting', + 'requestblogid', ); break; case 'templatedelete': $extra_actions = array( - 'edittemplateinfo', + 'edittemplateinfo', ); break; case 'templateedit': $extra_actions = array( - 'edittemplateinfo', + 'edittemplateinfo', ); break; case 'templateoverview': $extra_actions = array( - 'templateoverview', + 'templateoverview', ); break; case 'usermanagement': $extra_actions = array( - 'editmemberlist', - 'inputyesno', + 'editmemberlist', + 'inputyesno', ); break; case 'importAdmin': $extra_actions = array( - 'charset', - 'sitevar', - 'adminurl', - 'extrahead', - 'member', - 'versioncheckurl', - 'version', - 'codename', - 'newestcompare', - 'selectlocaladminskinfiles', - 'adminskinielist', + 'charset', + 'adminurl', + 'extrahead', + 'member', + 'versioncheckurl', + 'version', + 'codename', + 'newestcompare', + 'selectlocalskinfiles', + 'skinielist', ); break; default: @@ -738,96 +685,51 @@ class AdminActions extends BaseActions $defined_actions = array_merge(self::$default_actions, $extra_actions); - return array_merge($defined_actions, parent::getDefinedActions()); - } - - /** - * AdminActions::getDefaultSkinTypes() - * - * @static - * @param void - * @return array list of friendly names for page actions - */ - static public function getDefaultSkinTypes() - { - return self::$default_skin_types; - } - - /** - * AdminActions::__construct() - * Constructor for a new Actions object - * - * @param string $type - * @return void - */ - public function __construct($type) - { - // call constructor of superclass first - parent::__construct(); - $this->skintype = $type; - return; - } - - /** - * AdminActions::setSkin() - * Set the skin - * @param object $skin an instance of Skin class - * @return void - */ - public function setSkin(&$skin) - { - $this->skin =& $skin; - return; - } - - /** - * AdminActions::setParser() - * Set the parser - * - * @param object $parser an instance of Parser class - * @return void - */ - public function setParser(&$parser) - { - $this->parser =& $parser; - return; + return array_merge($defined_actions, parent::getAvailableActions()); } /** * AdminActions::parse_actionloglist() * Parse skinvar actionloglist - * - * @param string $templateName name of template to use + * + * @param string $template_name name of template to use * @return void */ - public function parse_actionloglist($templateName = '') + public function parse_actionloglist($template_name = '') { - $query = "SELECT * FROM %s ORDER BY timestamp DESC"; - $query = sprintf($query, sql_table('actionlog')); + $query = "SELECT * FROM %s ORDER BY timestamp DESC;"; + $query = sprintf($query, sql_table('actionlog')); - $template['content'] = 'actionlist'; - $amount = showlist($query, 'table', $template, $templateName); + $resource = DB::getResult($query); + if ( $resource->rowCount() > 0 ) + { + $template['content'] = 'actionlist'; + $this->parser->parse(showlist($resource, 'table', $template, $template_name)); + } + else + { + /* TODO: nothing to be shown */ + } return; } - /** * AdminActions::parse_activationmessage() * Parse skinvar activationmessage - * + * * @param string $type type of message - * @param string $templateName name of template to use + * @param string $template_name name of template to use * @return void */ - public function parse_activationmessage($type, $templateName = '') + public function parse_activationmessage($type, $template_name = '') { global $CONF, $manager; $template = array(); - if ( !empty($templateName)) + if ( !empty($template_name)) { - $template = Template::read($templateName); + $template =& $manager->getTemplate($template_name); } $key = postVar('ackey'); @@ -842,7 +744,7 @@ class AdminActions extends BaseActions Admin::error(_ERROR_ACTIVATE); } - $mem = MEMBER::createFromId($info->vmember); + $mem =& $manager->getMember($info->vmember); if ( !$mem ) { Admin::error(_ERROR_ACTIVATE); @@ -911,10 +813,10 @@ class AdminActions extends BaseActions switch ( $type ) { case 'title': - echo TEMPLATE::fill($title, $aVars); + echo Template::fill($title, $aVars); break; case 'text': - echo TEMPLATE::fill($text, $aVars); + echo Template::fill($text, $aVars); break; case 'ackey': echo Entity::hsc($key); @@ -926,7 +828,7 @@ class AdminActions extends BaseActions /** * AdminActions::parse_addtickettourl() * Parse skinvar addtickettourl - * + * * @param string $url URI for ticket * @return void */ @@ -941,22 +843,24 @@ class AdminActions extends BaseActions /** * AdminActions::parse_adminbanlist() * Parse skinvar adminbanlist - * - * @param string $templateName name of template to use + * + * @param string $template_name name of template to use * @return void */ - public function parse_adminbanlist($templateName = '') + public function parse_adminbanlist($template_name = '') { $blogid = intRequestVar('blogid'); $query = "SELECT * FROM %s WHERE blogid=%d ORDER BY iprange;"; $query = sprintf($query, sql_table('ban'), (integer) $blogid); - $template['content'] = 'banlist'; - - $amount = Showlist($query, 'table', $template, $templateName); - - if ( $amount == 0 ) + $resource = DB::getResult($query); + if ( $resource->rowCount() > 0 ) + { + $template['content'] = 'banlist'; + $this->parser-parse(showlist($resource, 'table', $template, $template_name)); + } + else { echo _BAN_NONE; } @@ -966,7 +870,7 @@ class AdminActions extends BaseActions /** * AdminActions::parse_adminbatchaction() * Parse skinvar adminbatchaction - * + * * @param void * @return void */ @@ -979,34 +883,36 @@ class AdminActions extends BaseActions /** * AdminActions::parse_adminbatchlist() * Parse skinvar adminbatchlist - * - * @param string $templateName name of template to use + * + * @param string $template_name name of template to use * @return void */ - public function parse_adminbatchlist($templateName = '') + public function parse_adminbatchlist($template_name = '') { global $manager; $templates = array(); - if ( !empty($templateName) ) + + if ( !empty($template_name) ) { - $templates = Template::read($templateName); + $templates =& $manager->getTemplate($template_name); } - if ( isset($templates['ADMIN_BATCHLIST']) || !empty($templates['ADMIN_BATCHLIST']) ) + + if ( !array_key_exists('ADMIN_BATCHLIST', $templates) || empty($templates['ADMIN_BATCHLIST']) ) { - $template = $templates['ADMIN_BATCHLIST']; + $template = '
  • <%text(_BATCH_EXECUTING)%> ' + . '<%adminbatchaction%> ' + . '<%batchlisttype%> ' + . '<%batchid%>... ' + . '<%batchlistmsg%>' + . "
  • \n"; } else { - $template = '
  • <%text(_BATCH_EXECUTING)%>' - . '<%adminbatchaction%>' - . '<%batchlisttype%>' - . '<%batchid%>...' - . '<%batchlistmsg%>' - . '
  • ' . "\n"; + $template = $templates['ADMIN_BATCHLIST']; } $selected = requestIntArray('batch'); - $action = requestVar('batchaction'); + $action = requestVar('batchaction'); switch ( $this->skintype ) { @@ -1048,88 +954,83 @@ class AdminActions extends BaseActions // walk over all selectedids and perform action foreach ( $selected as $selectedid ) { - $error = ''; + $error = ''; $selectedid = intval($selectedid); switch ( $action ) { case 'delete': if ( $this->skintype != 'batchteam' ) { - $error = Admin::$deleteaction($selectedid); + $error = call_user_func_array(array('Admin', $deleteaction), array($selectedid)); } else { - $error = Admin::deleteOneTeamMember($blogid, $selectedid); + $error = Admin::deleteOneTeamMember($blogid, $selectedid); } break; case 'move': - $error = Admin::moveaction($selectedid, $destid); + $error = call_user_func_array(array('Admin', $moveaction), array($selectedid, $destid)); 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 ' . $unsetupsql . $selectedid); + DB::execute("UPDATE {$unsetupsql} {$selectedid};"); } break; default: $error = _BATCH_UNKNOWN . Entity::hsc($action); } + $data = array( 'batchid' => $selectedid, 'batchlisttype' => Entity::hsc($batchlisttype), 'adminbatchaction' => Entity::hsc($action), 'batchlistmsg' => $error ? $error : _BATCH_SUCCESS, ); - $handler = new Actions('template', $template, new ADMIN); - $parser = new Parser($handler); - - ob_start(); - $parser->parse($template); - $template = ob_get_contents(); - ob_end_clean(); - - echo TEMPLATE::fill($template, $data); - return; + + $this->parser->parse(Template::fill($template, $data)); + echo '
    '; } + return; } /** * AdminActions::parse_adminbloglink() * Parse skinvar adminbloglink - * - * @param string $templateName name of template to use + * + * @param string $template_name name of template to use * @return void */ - public function parse_adminbloglink($templateName = '') + public function parse_adminbloglink($template_name = '') { global $manager; $blogid = intRequestVar('blogid'); $blog =& $manager->getBlog($blogid); $templates = array(); - if ( !empty($templateName) ) + if ( !empty($template_name) ) { - $templates = Template::read($templateName); + $templates =& $manager->getTemplate($template_name); } - if ( isset($templates['ADMIN_BLOGLINK']) || !empty($templates['ADMIN_BLOGLINK']) ) + if ( !array_key_exists('ADMIN_BLOGLINK', $templates) || empty($templates['ADMIN_BLOGLINK']) ) { - $template = $templates['ADMIN_BLOGLINK']; + $template = '<%blogname%>'; } else { - $template = '<%blogname%>'; + $template = $templates['ADMIN_BLOGLINK']; } $data = array( @@ -1138,14 +1039,14 @@ class AdminActions extends BaseActions 'blogname' => Entity::hsc($blog->getName()) ); - echo TEMPLATE::fill($template, $data); + echo Template::fill($template, $data); return; } /** * AdminActions::parse_adminerrormesg() * Parse skinvar adminerrormesg - * + * * @param void * @return void */ @@ -1171,364 +1072,162 @@ class AdminActions extends BaseActions } /** - * AdminActions::parse_adminskineditallowedlist() - * Parse skinvar adminskineditallowedlist - * - * @param string $type template/blog - * @param string $templateName name of template to use + * AdminActions::parse_allowedskinactions() + * Parse skinvar allowedskinactions + * + * @param void * @return void */ - public function parse_adminskineditallowedlist($type = 'template', $templateName = '') + public function parse_allowedskinactions() { - switch ( $type ) + global $manager; + + $type = strtolower(trim(requestVar('type'))); + $skinid = intRequestVar('skinid'); + + if ( !preg_match('#^admin#', $this->skintype) ) { - /* TODO: blog seems not to be used */ - case 'blog': - $query = "SELECT bshortname, bname FROM %s"; - $query = sprintf($query, sql_table('blog')); - $show = array( - 'content' => 'shortblognames' - ); - break; - case 'template': - $query = "SELECT tdname as name, tddesc as description FROM %s;"; - $query = sprintf($query, sql_table('admintemplate_desc')); - $show = array( - 'content' => 'shortnames' - ); - break; + $skin =& $manager->getSkin($skinid); + $tag = 'skinvar'; + } + else + { + $skin =& $manager->getSkin($skinid, 'AdminActions'); + $tag = 'adminskinvar'; + } + + $actions = $skin->getAllowedActionsForType($type); + sort($actions); + + while ( $current = array_shift($actions) ) + { + echo helplink("{$tag}-{$current}") . "$current\n"; + + if ( count($actions) != 0 ) + { + echo ", "; + } } - Showlist($query, 'table', $show, $templateName); return; } /** - * AdminActions::parse_adminskinielist() - * Parse skinvar adminskinielist - * - * @param string $type skin/template - * @param string $templateName name of template to use + * AdminActions::parse_banlistdeletedlist() + * Parse skinvar banlistdeletedlist + * + * @param string $template_name name of template to use * @return void */ - public function parse_adminskinielist($type, $templateName = '') + public function parse_banlistdeletedlist($template_name = '') { + global $manager; + $templates = array(); - if ( $templateName ) + if ( $template_name ) { - $templates = Template::read($templateName); + $templates =& $manager->getTemplate($template_name); } - if ( isset($templates['SKINIE_EXPORT_LIST']) && !empty($templates['SKINIE_EXPORT_LIST']) ) + + if ( !array_key_exists('BANLIST_DELETED_LIST', $templates) || empty($templates['BANLIST_DELETED_LIST']) ) { - $template = $templates['SKINIE_EXPORT_LIST']; + $template = "
  • <%blogname%>
  • \n"; } else { - $template = '' . "\n" - . "<%expdesc%>\n" - . "\n"; + $template = $templates['BANLIST_DELETED_LIST']; } - switch ( $type ) + + $deleted = requestArray('delblogs'); + foreach ( $deleted as $delblog ) { - case 'skin': - $query = "SELECT * FROM %s WHERE sdincmode = 'admin';"; - $query = sprintf($query, sql_table('skin_desc')); - $res = sql_query($query); - - while ( $skinObj = sql_fetch_object($res) ) - { - $data = array( - 'typeid' => 'skin[' . $skinObj->sdnumber . ']', - 'expid' => 'skinexp' . $skinObj->sdnumber, - 'expname' => Entity::hsc($skinObj->sdname), - 'expdesc' => Entity::hsc($skinObj->sddesc), - ); - echo TEMPLATE::fill($template, $data); - } - break; - case 'template': - $query = "SELECT * FROM %s;"; - $query = sprintf($query, sql_table('admintemplate_desc')); - $res = sql_query($query); - while ( $templateObj = sql_fetch_object($res) ) - { - $data = array( - 'typeid' => 'template[' . $templateObj->tdnumber . ']', - 'expid' => 'templateexp' . $templateObj->tdnumber, - 'expname' => Entity::hsc($templateObj->tdname), - 'expdesc' => Entity::hsc($templateObj->tddesc), - ); - echo TEMPLATE::fill($template, $data); - } - break; + $blog =& $manager->getBlog($delblog); + $data = array( + 'blogname' => Entity::hsc($blog->getName()) + ); + echo Template::fill($template, $data); } + return; } /** - * AdminActions::parse_adminskinoverview() - * Parse skinvar adminskinoverview - * - * @param string $templateName name of template to use + * AdminActions::parse_batchdeletelist() + * Parse skinvar batchdeletelist + * + * @param void * @return void */ - public function parse_adminskinoverview($templateName = '') + public function parse_batchdeletelist() { - $query = "SELECT * FROM %s WHERE sdincmode = 'admin' ORDER BY sdname;"; - $query = sprintf($query, sql_table('skin_desc')); + $selected = requestIntArray('batch'); + $index = 0; - $template['content'] = 'adminskinlist'; - $template['tabindex'] = 10; - $template['friendly_names'] = Skin::getFriendlyNames('AdminActions'); - Showlist($query, 'table', $template, $templateName); + foreach ( $selected as $select ) + { + echo '\n"; + } + // add hidden vars for team & comment + if ( requestVar('action') == 'batchteam' ) + { + echo '\n"; + } + if ( requestVar('action') == 'batchcomment' ) + { + echo '\n"; + } return; } - + /** - * AdminActions::parse_adminskinselectoptions() - * Parse skinvar adminskinselectoptions - * - * @param void + * AdminActions::parse_defadminskinselect() + * Parse skinvar defadminskinselect + * + * @param string $template_name name of template to use * @return void */ - public function parse_adminskinselectoptions() + public function parse_defadminskinselect($template_name) { global $CONF; - $query = "SELECT sdname as text, sdnumber as value FROM %s WHERE sdincmode = 'admin';"; + + $query = "SELECT sdname as text, sdnumber as value FROM %s WHERE sdname LIKE 'admin/%%'"; $query = sprintf($query, sql_table('skin_desc')); - - $template['name'] = 'adminskin'; - $template['selected'] = $CONF['DefaultAdminSkin']; - $template['tabindex'] = 110; - Showlist($query, 'select', $template, ''); + + $template = array( + 'name' => 'adminskin', + 'tabindex' => 10080, + 'selected' => $CONF['AdminSkin'] + ); + $this->parser->parse(showlist($query, 'select', $template, $template_name)); return; } /** - * AdminActions::parse_adminspecialskinlist() - * Parse skinvar adminspecialskinlist - * - * @param string $templateName name of template to use + * AdminActions::parse_defbookmarkletselect() + * Parse skinvar defbookmarkletselect + * + * @param string $template_name name of template to use + * @return void */ - public function parse_adminspecialskinlist($templateName = '') + public function parse_defbookmarkletselect($template_name) { - $templates = array(); - if ( $templateName ) - { - $templates = Template::read($templateName); - } - - $nType = Skin::getFriendlyNames('AdminActions'); - $skinid = intRequestVar('skinid'); - - $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 ) - { - $data = array(); - if ( array_key_exists('ADMIN_SPECIALSKINLIST_HEAD', $templates) && !empty($templates['ADMIN_SPECIALSKINLIST_HEAD']) ) - { - $template['head'] = $templates['ADMIN_SPECIALSKINLIST_HEAD']; - } - else - { - $template['head'] = "\n"; - } - echo TEMPLATE::fill($template['foot'], $data); - } - return; - } - - /** - * AdminActions::parse_admintemplateoverview() - * Parse skinvar admintemplateoverview - * - * @param string $templateName name of template to use - * @return void - */ - public function parse_admintemplateoverview($templateName = '') - { - $query = "SELECT * FROM %s ORDER BY tdname;"; - $query = sprintf($query, sql_table('admintemplate_desc')); - - $template['content'] = 'admintemplatelist'; - $template['tabindex'] = 10; - - Showlist($query, 'table', $template, $templateName); - return; - } - - /** - * AdminActions::parse_allowedadminskinactions() - * Parse skinvar allowedadminskinactions - * - * @param void - * @return void - */ - public function parse_allowedadminskinactions() - { - global $DIR_ADMINSKINS; - $skinType = strtolower(trim(requestVar('type'))); - $actions = Skin::getAllowedActionsForType($skinType); - sort($actions); - - while ( $current = array_shift($actions) ) - { - // skip deprecated vars - if ($current == 'ifcat' || $current == 'imagetext' || $current == 'vars') - { - continue; - } - - echo helplink("adminskinvar-{$current}") . "$current\n"; -// echo "{$current}\n"; - - if ( count($actions) != 0 ) - { - echo ", "; - } - } - return; - } - - /** - * AdminActions::parse_allowedskinactions() - * Parse skinvar allowedskinactions - * - * @param void - * @return void - */ - public function parse_allowedskinactions() - { - $skinType = strtolower(trim(requestVar('type'))); - $actions = SKIN::getAllowedActionsForType($skinType); - sort($actions); - - while ( $current = array_shift($actions) ) - { - // skip deprecated vars - if ( $current == 'ifcat' || $current == 'imagetext' || $current == 'vars' ) - { - continue; - } - - /* TODO: alternative function should be used or not? */ - echo helplink("skinvar-{$current}") . "$current\n"; - - if ( count($actions) != 0 ) - { - echo ", "; - } - } - return; - } + global $CONF; - /** - * AdminActions::parse_banlistdeletedlist() - * Parse skinvar banlistdeletedlist - * - * @param string $templateName name of template to use - * @return void - */ - public function parse_banlistdeletedlist($templateName = '') - { - global $manager; - $templates = array(); - - if ( $templateName ) - { - $templates = Template::read($templateName); - } - if ( isset($templates['BANLIST_DELETED_LIST']) && !empty($templates['BANLIST_DELETED_LIST']) ) - { - $template = $templates['BANLIST_DELETED_LIST']; - } - else - { - $template = "
  • <%blogname%>
  • \n"; - } - $deleted = requestArray('delblogs'); - foreach ( $deleted as $delblog ) - { - $blog =& $manager->getBlog($delblog); - $data = array( - Entity::hsc($blog->getName()) - ); - TEMPLATE::fill($template, $data); - } - return; - } + $query = "SELECT sdname as text, sdnumber as value FROM %s WHERE sdname LIKE 'admin/%%'"; + $query = sprintf($query, sql_table('skin_desc')); - /** - * AdminActions::parse_batchdeletelist() - * Parse skinvar batchdeletelist - * - * @param void - * @return void - */ - public function parse_batchdeletelist() - { - $selected = requestIntArray('batch'); - $index = 0; - - foreach ( $selected as $select ) - { - echo '\n"; - } - // add hidden vars for team & comment - if ( requestVar('action') == 'batchteam' ) - { - echo '\n"; - } - if ( requestVar('action') == 'batchcomment' ) - { - echo '\n"; - } + $template = array( + 'name' => 'bookmarklet', + 'tabindex' => 10085, + 'selected' => $CONF['BookmarkletSkin'] + ); + $this->parser->parse(showlist($query, 'select', $template, $template_name)); return; } /** * AdminActions::parse_batchdeletetype() * Parse skinvar batchdeletetype - * + * * @param void * @return void */ @@ -1537,11 +1236,11 @@ class AdminActions extends BaseActions echo Entity::hsc(requestVar('action')); return; } - + /** * AdminActions::parse_batchmovebtn() * Parse skinvar batchmovebtn - * + * * @param void * @return void */ @@ -1563,16 +1262,18 @@ class AdminActions extends BaseActions /** * AdminActions::parse_batchmovelist() * Parse skinvar batchmovelist - * + * * @param void * @param void */ public function parse_batchmovelist() { $selected = requestIntArray('batch'); + $count = 0; foreach ( $selected as $select ) { - echo '\n"; + echo '\n"; + $count++; } return; } @@ -1580,7 +1281,7 @@ class AdminActions extends BaseActions /** * AdminActions::parse_batchmovetitle() * Parse skinvar batchmovetitle - * + * * @param void * @return void */ @@ -1602,7 +1303,7 @@ class AdminActions extends BaseActions /** * AdminActions::parse_batchmovetype() * Parse skinvar batchmovetype - * + * * @param void * @return void */ @@ -1615,37 +1316,58 @@ class AdminActions extends BaseActions /** * AdminActions::parse_blogcatlist() * Parse skinvar blogcatlist - * + * * @param void * @return void */ - public function parse_blogcatlist() + public function parse_blogcatlist($template_name = '') { global $manager; $blogid = intRequestVar('blogid'); - $query = "SELECT * FROM %s WHERE cblog = %d ORDER BY cname;"; + $query = "SELECT * FROM %s WHERE cblog = %d ORDER BY cname;"; $query = sprintf($query, sql_table('category'), (integer) $blogid); - $template['content'] = 'categorylist'; - $template['tabindex'] = 200; + $resource = DB::getResult($query); + if ( $resource->rowCount() > 0 ) + { + $template['content'] = 'categorylist'; + $template['tabindex'] = 200; + $this->parser->parse(listplug_batchlist('category', $resource, 'table', $template)); + } + else + { + /* TODO: nothing to be shown */ + } + $resource->closeCursor(); - $batch = new Batch('member'); - $batch->showlist($query, 'table', $template); + return; + } + + /** + * AdminActions::parse_blogid() + * Parse skinvar blogid + * + * @param void + * @return void + */ + public function parse_blogid() + { + echo intRequestVar('blogid'); return; } /** * AdminActions::parse_blognotifysetting() * Parse skinvar blognotifysetting - * + * * @param void * @return void */ public function parse_blognotifysetting($type) { global $manager; - $blogid = intRequestVar('blogid'); - $blog = $manager->getBlog($blogid); + $blogid = intRequestVar('blogid'); + $blog =& $manager->getBlog($blogid); switch ( $type ) { @@ -1673,102 +1395,9 @@ class AdminActions extends BaseActions } /** - * AdminActions::parse_blogselectbox() - * Parse skinvar blogselectbox - * - * @param void - * @return void - */ - public function parse_blogselectbox() - { - global $member; - - $selectData = requestVar('selectData'); - $mode = $selectData['mode']; - $name = Entity::hsc($selectData['name']); - $tabindex = Entity::hsc($selectData['tabindex']); - $aBlogIds = array_map('intval', $selectData['aBlogIds']); - $showNewCat = intval($selectData['showNewCat']); - $selected = intval($selectData['selected']); - - echo "\n"; - return; - } - - /** * AdminActions::parse_blogsetting() * Parse skinvar blogsetting - * + * * @param string $which name of weblog setting * @return void */ @@ -1781,18 +1410,18 @@ class AdminActions extends BaseActions /** * AdminActions::parse_blogsettingyesno() * Parse skinvar blogsettingyesno - * + * * @param string $type type of weblog setting - * @param string $templateName name of template to use + * @param string $template_name name of template to use * @return void */ - public function parse_blogsettingyesno($type, $templateName = '') + public function parse_blogsettingyesno($type, $template_name = '') { global $manager; - - $blogid = intRequestVar('blogid'); - $blog = $manager->getBlog($blogid); - + + $blogid = intRequestVar('blogid'); + $blog =& $manager->getBlog($blogid); + switch ( $type ) { case 'convertbreaks': @@ -1820,38 +1449,47 @@ class AdminActions extends BaseActions $tabindex = 122; break; } - $this->parse_inputyesno($type, $checkedval, $tabindex, 1, 0, _YES, _NO, 0, $templateName); + $this->parse_inputyesno($type, $checkedval, $tabindex, 1, 0, _YES, _NO, 0, $template_name); return; } /** * AdminActions::parse_blogteamlist() * Parse skinvar blogteamlist - * - * @param string $templateName name of template to use + * + * @param string $template_name name of template to use * @return void */ - public function parse_blogteamlist($templateName = '') + public function parse_blogteamlist($template_name = '') { global $manager; $blogid = intRequestVar('blogid'); - $query = "SELECT tblog, tmember, mname, mrealname, memail, tadmin " - . "FROM %s, %s " - . "WHERE tmember=mnumber AND tblog= %d"; + $query = "SELECT tblog, tmember, mname, mrealname, memail, tadmin " + . "FROM %s, %s " + . "WHERE tmember=mnumber AND tblog= %d"; $query = sprintf($query, sql_table('member'), sql_table('team'), (integer) $blogid); - $template['content'] = 'teamlist'; - $template['tabindex'] = 10; - - $batch = new Batch('team'); - $batch->showlist($query, 'table', $template, _LISTS_NOMORE, $templateName); + $resource = DB::getResult($query); + if ( $resource->rowCount() > 0 ) + { + $template['content'] = 'teamlist'; + $template['tabindex'] = 10; + + $this->parser->parse(listplug_batchlist('team', $resource, 'table', $template)); + } + else + { + echo _LISTS_NOMORE; + } + $resource->closeCursor(); + return; } /** * AdminActions::parse_blogteammembers() * Parse skinvar blogteammembers - * + * * @param void * @return void */ @@ -1859,13 +1497,14 @@ class AdminActions extends BaseActions { $blogid = intRequestVar('blogid'); $query = "SELECT mname, mrealname " - . "FROM %s, %s " - . "WHERE mnumber=tmember AND tblog=%d;"; + . "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)) { - $memberNames[] = Entity::hsc($o->mname) . ' (' . Entity::hsc($o->mrealname). ')'; + foreach ( $res as $row ) + { + $memberNames[] = Entity::hsc($row['mname']) . ' (' . Entity::hsc($row['mrealname']). ')'; } echo implode(',', $memberNames); } @@ -1873,7 +1512,7 @@ class AdminActions extends BaseActions /** * AdminActions::parse_blogtime() * Parse skinvar blogtime - * + * * @param string $type type of time * @param string $format format for time expression * @param integer $offset offset of time @@ -1890,9 +1529,9 @@ class AdminActions extends BaseActions } else { - $bid = intRequestVar('blogid'); - $b = $manager->getBlog($bid); - $timestamp = $b->getCorrectTime() + $offset; + $bid = intRequestVar('blogid'); + $b =& $manager->getBlog($bid); + $timestamp = $b->getCorrectTime() + $offset; } echo i18n::formatted_datetime($format, $timestamp); @@ -1902,7 +1541,7 @@ class AdminActions extends BaseActions /** * AdminActions::parse_bookmarkletadmin() * Parse skinvar bookmarkletadmin - * + * * @param void * @return void */ @@ -1917,22 +1556,36 @@ class AdminActions extends BaseActions } /** - * AdminActions::parse_category() - * Parse skinvar category - * + * AdminActions::parse_categories() + * Parse skinvar categories + * + * create category dropdown box + * * @param string $type name of setting for category * @return void */ - public function parse_category($type = 'name') + public function parse_categories($startidx = 0) { - echo $this->parse_getcategory($type); - return; - } - + global $manager; + + if ( !array_key_exists('catid', Admin::$contents) || empty(Admin::$contents['catid']) ) + { + $catid = Admin::$blog->getDefaultCategory(); + } + else + { + $catid = Admin::$contents['catid']; + } + + $this->selectBlog('catid', 'category', $catid, $startidx, 1, Admin::$blog->getID()); + + return; + } + /** * AdminActions::parse_categorysetting() * Parse skinvar categorysetting - * + * * @param string $type type in category setting * @return void */ @@ -1947,28 +1600,70 @@ 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; + } + + /** + * AdminActions::parse_codename() + * Parse templatevar codename + * + * @param $value + * @param $name + * + */ + public function parse_checkedonval($value, $name) + { + 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; + } + if ( !isset($contents[$name]) ) + { + $contents[$name] = ''; + } + if ($contents[$name] == $value) + { + echo 'checked="checked"'; + } return; } /** * AdminActions::parse_codename() * Parse templatevar codename - * + * * @param void * @return void - * + * * TODO: is this need??? */ public function parse_codename() @@ -1981,7 +1676,7 @@ class AdminActions extends BaseActions /** * AdminActions::parse_commentnavlist() * Parse skinvar commentnavlist - * + * * @param void * @return void */ @@ -2046,22 +1741,40 @@ 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}"; - $template['content'] = 'commentlist'; + $resource = DB::getResult($query); + if ( $resource->rowCount() > 0 ) + { + $template['action'] = $this->skintype; + $template['start'] = $start; + $template['amount'] = $amount; + $template['minamount'] = 0; + $template['maxamount'] = 1000; + $template['blogid'] = $bid; + $template['search'] = $search; + $template['itemid'] = $itemid; + + $template['content'] = 'commentlist'; + + $this->parser->parse(listplug_navlist('comment', $resource, 'table', $template)); + } + else + { + /* TODO: nothing to be shown */ + } + $resource->closeCursor(); - $navList = new Navlist($this->skintype, $start, $amount, 0, 1000, $bid, $search, $itemid); - $navList->showBatchList('comment', $query, 'table', $template, $nonComments); return; } /** * AdminActions::parse_configsettingsedit() * Parse skinvar configsettingsedit - * + * * @param string $type type of global configuration * @return void */ @@ -2075,7 +1788,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 ) @@ -2109,7 +1822,7 @@ class AdminActions extends BaseActions /** * AdminActions::parse_configsettingsyesno() * Parse skinvar configsettingsyesno - * + * * @param string $type type of global setting * @param integer $tabindex tabindex attribute of input element * @return void @@ -2125,9 +1838,38 @@ class AdminActions extends BaseActions } /** + * AdminActions::parse_contents() + * Parse skinvar contents + * + * @param string $which part for item + * @return void + */ + public function parse_contents($which) + { + if ( !array_key_exists($which, Admin::$contents) ) + { + Admin::$contents[$which] = ''; + } + echo Entity::hsc(Admin::$contents[$which]); + } + + /** + * AdminActions::parse_currenttime() + * Parse skinvar currenttime + * + * @param string $what + */ + // for future items + public function parse_currenttime($what) + { + $nu = getdate(Admin::$blog->getCorrectTime()); + echo $nu[$what]; + } + + /** * AdminActions::parse_customhelplink() * Parse skinvar customhelplink - * + * * @param string $topic name of topic * @param string $tplName name of template * @param string $url string as URI @@ -2149,164 +1891,157 @@ class AdminActions extends BaseActions public function parse_date($format = 'c') { global $CONF, $manager; - echo i18n::formatted_datetime($format, time(), 'iso8601', $manager->getBlog((integer) $CONF['DefaultBlog'])); + /* TODO: offset is based on i18n::get_current_locale()? */ + echo i18n::formatted_datetime($format, time()); return; } /** - * AdminActions::parse_defaultadminskintypes() + * AdminActions::parse_normalskinlist() * Parse skinvar defaultadminskintypes - * - * @param string $tabindex index number for tabindex attribute of input element - * @param string $templateName name of template + * + * @param string $template_name name of template * @return void */ - public function parse_defaultadminskintypes($tabindex, $templateName = '') + public function parse_normalskinlist($template_name = '') { - $templates = array(); - if ( $templateName ) - { - $templates = Template::read($templateName); - } - - $types = Skin::getFriendlyNames('AdminActions'); - ksort($types); - - if ( array_key_exists('ADMINSKINTYPELIST_HEAD', $templates) && !empty($templates['ADMINSKINTYPELIST_HEAD']) ) - { - $template['head'] = $templates['ADMINSKINTYPELIST_HEAD']; - } - else - { - $template['head'] = "\n"; - } - echo $template['foot']; + + $template['tabindex'] = 10; + $template['skinid'] = $skin->getID(); + $template['skinname'] = $skin->getName(); + $this->parser->parse(showlist($normal_skintype, 'list_normalskinlist', $template, $template_name)); + return; } /** * AdminActions::parse_defblogselect() * Parse skinvar defblogselect - * - * @param string $templateName name of template + * + * @param string $template_name name of template * @return void */ - public function parse_defblogselect($templateName = '') + public function parse_defblogselect($template_name = '') { global $CONF; - $query = "SELECT bname as text, bnumber as value FROM %s;"; + + $query = "SELECT bname as text, bnumber as value FROM %s;"; $query = sprintf($query, sql_table('blog')); - $template['name'] = 'DefaultBlog'; + + $template['name'] = 'DefaultBlog'; $template['selected'] = $CONF['DefaultBlog']; $template['tabindex'] = 10; - Showlist($query, 'select', $template, $templateName); + $this->parser->parse(showlist($query, 'select', $template, $template_name)); + return; } /** * AdminActions::parse_defcatselect() * Parse skinvar defcatselect - * - * @param string $templateName name of template + * + * @param string $template_name name of template * @return void */ - public function parse_defcatselect($templateName = '') + public function parse_defcatselect($template_name = '') { global $manager; + $blogid = intRequestVar('blogid'); - $blog = $manager->getBlog($blogid); - $query = "SELECT cname as text, catid as value FROM %s WHERE cblog=%d;"; + $blog =& $manager->getBlog($blogid); + + $query = "SELECT cname as text, catid as value FROM %s WHERE cblog=%d;"; $query = sprintf($query, sql_table('category'), (integer) $blog->getID()); + $template['name'] = 'defcat'; $template['selected'] = $blog->getDefaultCategory(); $template['tabindex'] = 110; - Showlist($query, 'select', $template, $templateName); + + $this->parser->parse(showlist($query, 'select', $template, $template_name)); + return; } /** * AdminActions::parse_defskinselect() * Parse skinvar defskinselect - * + * * @param string $type type of skin - * @param string $templateName name of template + * @param string $template_name name of template * @return void */ - public function parse_defskinselect($type = 'blog', $templateName = '') + public function parse_defskinselect($type = 'blog', $template_name = '') { - global $manager; - $query = "SELECT sdname as text, sdnumber as value FROM %s;"; - $query = sprintf($query, sql_table('skin_desc')); - - $blogid = intRequestVar('blogid'); - - if ( !$blogid ) - { - global $CONF; - $template['selected'] = $CONF['BaseSkin']; - } - else - { - $blog = $manager->getBlog($blogid); - $template['selected'] = $blog->getDefaultSkin(); - } + global $CONF, $manager, $member; - if ( $type != 'blog' ) + if ( !preg_match('#^admin#', $this->skintype) ) { - $nname = 'BaseSkin'; + $blogid = intRequestVar('blogid'); + if ( !$blogid ) + { + $template['selected'] = $CONF['BaseSkin']; + } + else + { + $blog =& $manager->getBlog($blogid); + $template['selected'] = $blog->getDefaultSkin(); + } + + if ( $type != 'blog' ) + { + $template['name'] = 'BaseSkin'; + } + else + { + $template['name'] = 'defskin'; + } + + $query = "SELECT sdname as text, sdnumber as value FROM %s WHERE sdname NOT LIKE 'admin/%%';"; } else { - $nname = 'defskin'; + /* TODO: member object will have its own adminskin id */ + $template['selected'] = $CONF['AdminSkin']; + $template['name'] = 'AdminSkin'; + $query = "SELECT sdname as text, sdnumber as value FROM %s WHERE sdname LIKE 'admin/%%';"; } - $template['name'] = $nname; + $query = sprintf($query, sql_table('skin_desc')); $template['tabindex'] = 50; - Showlist($query, 'select', $template, $templateName); + + $this->parser->parse(showlist($query, 'select', $template, $template_name)); + return; } /** * AdminActions::parse_deletecomment() * Parse skinvar deletecomment - * + * * @param string $type type of infomation for comment * @return void */ @@ -2340,24 +2075,28 @@ class AdminActions extends BaseActions /** * AdminActions::parse_deleteitembody() * Parse skinvar deleteitembody - * + * * @param void * @return void */ public function parse_deleteitembody() { global $manager; + $itemid = intRequestVar('itemid'); - $item =& $manager->getItem($itemid, 1, 1); - $body = strip_tags($item['body']); + $item =& $manager->getItem($itemid, 1, 1); + + $body = strip_tags($item['body']); + echo Entity::hsc(shorten($body, 300, '...')); + return; } /** * AdminActions::parse_deleteitemid() * Parse skinvar deleteitemid - * + * * @param void * @return void */ @@ -2370,195 +2109,34 @@ class AdminActions extends BaseActions /** * AdminActions::parse_deleteitemtitle() * Parse skinvar deleteitemtitle - * + * * @param void * @return void */ public function parse_deleteitemtitle() { global $manager; + $itemid = intRequestVar('itemid'); - $item =& $manager->getItem($itemid, 1, 1); + $item =& $manager->getItem($itemid, 1, 1); + echo Entity::hsc(strip_tags($item['title'])); - return; - } - - /** - * AdminActions::parse_editadminskin() - * Parse skinvar editadminskin - * - * @param string $type type of skin setting - * @return void - */ - public function parse_editadminskin($type = 'id') - { - $skinid = intRequestVar('skinid'); - $skin = new Skin($skinid); - switch ( $type ) - { - case 'id': - echo intRequestVar('skinid'); - break; - case 'name': - echo Entity::hsc($skin->getName()); - break; - case 'desc': - echo Entity::hsc($skin->getDescription()); - break; - case 'type': - echo Entity::hsc($skin->getContentType()); - break; - case 'prefix': - echo Entity::hsc($skin->getIncludePrefix()); - break; - case 'mode': - $this->parse_inputyesno('inc_mode', $skin->getIncludeMode(), 120, 'skindir', 'normal', _PARSER_INCMODE_SKINDIR, _PARSER_INCMODE_NORMAL); - default: - break; - } - return; - } - - /** - * AdminActions::parse_editadminskintype() - * Parse skinvar editadminskintype - * - * @param string $type name of skin type - * @return void - */ - public function parse_editadminskintype($type = 'id') - { - global $CONF, $manager, $member; - $skinid = intRequestVar('skinid'); - $skin = new Skin($skinid); - $fNames = Skin::getFriendlyNames(); - $sType = strtolower(trim(requestVar('type'))); - switch ( $type ) - { - case 'id': - echo intRequestVar('skinid'); - break; - case 'name': - echo Entity::hsc($skin->getName()); - break; - case 'desc': - echo Entity::hsc($skin->getDescription()); - break; - case 'type': - echo Entity::hsc($skin->getContentType()); - break; - case 'content': - echo Entity::hsc($skin->getContent($sType)); - break; - case 'skintype': - $skinType = !array_key_exists($sType, $fNames) ? ucfirst($sType) : $fNames[$sType]; - echo Entity::hsc($skinType); - break; - case 'skintyperaw': - echo Entity::hsc($sType); - break; - case 'prefix': - echo Entity::hsc($skin->getIncludePrefix()); - break; - case 'mode': - $incMode = $skin->getIncludeMode() ? _PARSER_INCMODE_SKINDIR : _PARSER_INCMODE_NORMAL; - echo Entity::hsc($incMode); - break; - default: - break; - } - return; - } - - /** - * AdminActions::parse_editadmintemplateinfo() - * Parse skinvar editadmintemplateinfo - * - * @param string $type type of skin template - * @param string $description description of template - * @param string $name name of stemplate - * @param string $tabindex index number for tabindex attribute of input element - * @param string $big - * @param string $tplt - */ - public function parse_editadmintemplateinfo($type, $description = '', $name = '', $help = '', $tabindex = 0, $big = 0, $tplt = '') - { - global $manager; - $templateid = intRequestVar('templateid'); - $templatename = Template::getNameFromId($templateid); - $templatedescription = Template::getDesc($templateid); - $template =& Template::read($templatename); - switch ( $type ) - { - case 'id': - echo intval($templateid); - break; - case 'name': - echo Entity::hsc($templatename); - break; - case 'desc': - echo Entity::hsc($templatedescription); - break; - case 'extratemplate': - $tabidx = 600; - $pluginfields = array(); - $manager->notify( - 'AdminTemplateExtraFields', - array( - 'fields' => &$pluginfields - ) - ); - $tmplt = array(); - if ( $description ) - { - $tmplt = Template::read($description); - } - if ( array_key_exists('TEMPLATE_EDIT_EXPLUGNAME', $tmplt) && !empty($tmplt['TEMPLATE_EDIT_EXPLUGNAME']) ) - { - $base = $tmplt['TEMPLATE_EDIT_EXPLUGNAME']; - } - else - { - $base = "\n" - . "\n" - . "\t" . '<%explugtplname%>' . "\n"; - } - foreach ( $pluginfields as $pfkey => $pfvalue ) - { - $data = array( - 'explugtplname' => Entity::hsc($pfkey) - ); - echo TEMPLATE::fill($base, $data); - foreach ( $pfvalue as $pffield => $pfdesc ) - { - $this->_templateEditRow($template, $pfdesc, $pffield, '', ++$tabidx, 0, $name); - } - } - break; - default: - $desc = defined($description) ? constant($description) : $description; - $name = defined($name) ? constant($name) : $name; - $this->_templateEditRow($template, $desc, $name, $help, $tabindex, $big, $tplt); - break; - } return; } /** * AdminActions::parse_editcomment() * Parse skinvar editcomment - * + * * @param string $type type of comment setting * @return void */ public function parse_editcomment($type = 'id') { global $manager; - $commentid = intRequestVar('commentid'); - $comment = COMMENT::getComment($commentid); - $manager->notify('PrepareCommentForEdit', array('comment' => &$comment)); + $comment = Admin::$contents; switch ( $type ) { @@ -2566,13 +2144,13 @@ class AdminActions extends BaseActions echo intRequestVar('commentid'); break; case 'user': - if (array_key_exists('member', $comment) && !empty($comment['member']) ) + if ( !array_key_exists('member', $comment) || empty($comment['member']) ) { - echo $comment['member'] . " (" . _EDITC_MEMBER . ")"; + echo $comment['user'] . " (" . _EDITC_NONMEMBER . ")"; } else { - echo $comment['user'] . " (" . _EDITC_NONMEMBER . ")"; + echo $comment['member'] . " (" . _EDITC_MEMBER . ")"; } break; case 'date': @@ -2582,8 +2160,18 @@ class AdminActions extends BaseActions $comment['body'] = str_replace('
    ', '', $comment['body']); $comment['body'] = preg_replace("#[^<]*#", "\\1", $comment['body']); echo $comment['body']; + break; + case 'cmail': + echo $comment['userid']; + break; + case 'url': + echo $comment['userid']; + break; default: - echo $comment[$type]; + if ( array_key_exists($type, $comment) && !empty($comment[$type]) ) + { + echo $comment[$type]; + } break; } return; @@ -2605,36 +2193,48 @@ class AdminActions extends BaseActions /** * AdminActions::parse_editmemberlist() * Parse skinvar editmemberlist - * - * @param string $templateName name of template + * + * @param string $template_name name of template * @return void */ - public function parse_editmemberlist($templateName = '') + public function parse_editmemberlist($template_name = '') { global $manager; // show list of members with actions - $query = 'SELECT * FROM '.sql_table('member'); - $template['content'] = 'memberlist'; - $template['tabindex'] = 10; + $query = 'SELECT * FROM %s;'; + $query = sprintf($query, sql_table('member')); - $batch = new Batch('member'); - $batch->showlist($query, 'table', $template, _LISTS_NOMORE, $templateName); - return; - } + $resource = DB::getResult($query); + if ( $resource->rowCount() > 0 ) + { + $template['content'] = 'memberlist'; + $template['tabindex'] = 10; + + $this->parser->parse(listplug_batchlist('member', $resource, 'table', $template)); + } + else + { + echo _LISTS_NOMORE; + } + $resource->closeCursor(); + + return; + } /** * AdminActions::parse_editmember() * Parse skinvar editmember - * + * * @param string $type type of information for member * @return string $tempateName name of template to use * @return void */ - public function parse_editmember($type = 'id', $templateName = '') + public function parse_editmember($type = 'id', $template_name = '') { global $CONF, $manager, $member; - $memberid = intRequestVar('memberid'); - $mem = MEMBER::createFromID($memberid); + + $memberid = intRequestVar('memberid'); + $mem =& $manager->getMember($memberid); switch ( $type ) { @@ -2669,16 +2269,16 @@ class AdminActions extends BaseActions echo Entity::hsc($mem->getURL()); break; case 'admin': - $this->parse_inputyesno('admin', $mem->isAdmin(), 60, 1, 0, _YES, _NO, 0, $templateName); + $this->parse_inputyesno('admin', $mem->isAdmin(), 60, 1, 0, _YES, _NO, 0, $template_name); break; case 'canlogin': - $this->parse_inputyesno('canlogin', $mem->canLogin(), 70, 1, 0, _YES, _NO, $mem->isAdmin(), $templateName); + $this->parse_inputyesno('canlogin', $mem->canLogin(), 70, 1, 0, _YES, _NO, $mem->isAdmin(), $template_name); break; case 'notes': echo Entity::hsc($mem->getNotes()); break; case 'autosave': - $this->parse_inputyesno('autosave', $mem->getAutosave(), 87, 1, 0, _YES, _NO, 0, $templateName); + $this->parse_inputyesno('autosave', $mem->getAutosave(), 87, 1, 0, _YES, _NO, 0, $template_name); break; default: break; @@ -2689,12 +2289,14 @@ class AdminActions extends BaseActions /** * AdminActions::parse_editpluginfo() * Parse skinvar editpluginfo - * + * * @param string $type type of plugin info * @return void */ public function parse_editpluginfo($type) { + global $manager; + $pid = intRequestVar('plugid'); switch ( $type ) { @@ -2702,7 +2304,7 @@ class AdminActions extends BaseActions echo $pid; break; case 'name': - echo Entity::hsc(getPluginNameFromPid($pid)); + echo Entity::hsc($manager->getPluginNameFromPid($pid)); break; } return; @@ -2711,11 +2313,11 @@ class AdminActions extends BaseActions /** * AdminActions::parse_editplugoptionslist() * Parse skinvar editplugoptionslist - * - * @param string $templateName name of template + * + * @param string $template_name name of template * @return void */ - public function parse_editplugoptionslist($templateName = '') + public function parse_editplugoptionslist($template_name = '') { global $manager; @@ -2723,21 +2325,20 @@ class AdminActions extends BaseActions $aOptions = array(); $aOIDs = array(); - $query = "SELECT * FROM %s WHERE ocontext='global' AND opid=%d ORDER BY oid ASC"; + $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); + $resource = DB::getResult($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, + foreach ( $resource as $row ) + { + $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 ); } @@ -2747,28 +2348,28 @@ 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); - - while ( $o = sql_fetch_object($result) ) + + $result = DB::getResult($query); + foreach ( $result as $row ) { - $aOptions[$o->oid]['value'] = $o->ovalue; + $aOptions[$row['oid']]['value'] = $row['ovalue']; } } - + // call plugins - $manager->notify( - 'PrePluginOptionsEdit', - array( - 'context' => 'global', - 'plugid' => $pid, - 'options' => &$aOptions - ) + $data = array( + 'context' => 'global', + 'plugid' => $pid, + 'options' => &$aOptions ); + $manager->notify('PrePluginOptionsEdit', $data); - $template['content'] = 'plugoptionlist'; - $amount = Showlist($aOptions, 'table', $template, $templateName); - if ( $amount == 0 ) + if ( sizeof($aOptions) > 0 ) + { + $template['content'] = 'plugoptionlist'; + $this->parser->parse(showlist($aOptions, 'table', $template, $template_name)); + } + else { echo '

    ' . _ERROR_NOPLUGOPTIONS . "

    \n"; } @@ -2778,14 +2379,25 @@ class AdminActions extends BaseActions /** * AdminActions::parse_editskin() * Parse skinvar editskin - * + * * @param string $type type of skin * @return void */ public function parse_editskin($type = 'id') { + global $manager; + $skinid = intRequestVar('skinid'); - $skin = new SKIN($skinid); + + if ( !preg_match('#^admin#', $this->skintype) ) + { + $skin =& $manager->getSKIN($skinid); + } + else + { + $skin =& $manager->getSKIN($skinid, 'AdminActions'); + } + switch ( $type ) { case 'id': @@ -2814,22 +2426,39 @@ class AdminActions extends BaseActions /** * AdminActions::parse_editskintype() * Parse skinvar editskintype - * + * * @param string $type name of type for skin type * @return void */ - public function parse_editskintype($type = 'id') + public function parse_editskintype($stype = 'id') { - global $CONF, $manager, $member; - $skinid = intRequestVar('skinid'); - $skin = new SKIN($skinid); - $fNames = SKIN::getFriendlyNames('Actions'); - $sType = strtolower(trim(requestVar('type'))); + global $manager; - switch ( $type ) + static $skin = NULL; + static $types = array(); + + if ( $skin == NULL ) + { + $skinid = intRequestVar('skinid'); + + if ( !preg_match('#^admin#', $this->skintype) ) + { + $skin =& $manager->getSkin($skinid); + } + else + { + $skin =& $manager->getSkin($skinid, 'AdminActions'); + } + + $types = $skin->getDefaultTypes(); + } + + $type = strtolower(trim(requestVar('type'))); + + switch ( $stype ) { case 'id': - echo intRequestVar('skinid'); + echo $skin->getID(); break; case 'name': echo Entity::hsc($skin->getName()); @@ -2841,20 +2470,34 @@ class AdminActions extends BaseActions echo Entity::hsc($skin->getContentType()); break; case 'content': - echo Entity::hsc($skin->getContent($sType)); + echo Entity::hsc($skin->getContentFromDB($type)); break; case 'skintype': - $skinType = !array_key_exists($sType, $fNames) ? ucfirst($sType) : $fNames[$sType]; + if ( !array_key_exists($type, $types) ) + { + $skinType = ucfirst($type); + } + else + { + $skinType = $types[$type]; + } echo Entity::hsc($skinType); break; case 'skintyperaw': - echo Entity::hsc($sType); + echo Entity::hsc($type); break; case 'prefix': echo Entity::hsc($skin->getIncludePrefix()); break; case 'mode': - $incMode = $skin->getIncludeMode() ? _PARSER_INCMODE_SKINDIR : _PARSER_INCMODE_NORMAL; + if ( !$skin->getIncludeMode() != 'skindir' ) + { + $incMode = _PARSER_INCMODE_NORMAL; + } + else + { + $incMode = _PARSER_INCMODE_SKINDIR; + } echo Entity::hsc($incMode); break; default: @@ -2880,87 +2523,134 @@ class AdminActions extends BaseActions /** * AdminActions::parse_edittemplateinfo() * Parse skinvar edittemplateinfo - * - * @param string $type name of type for skin - * @param string $description description for skin - * @param string $name name of skin - * @param string $help - * @param string $tabindex index value for tabindex attribute of input element - * @param string $big - * @param string $tplt name of template + * + * @param string $format format to output + * @param string $typedesc type of template + * @param string $typename type name of template + * @param string $help help text + * @param string $tabindex index value for tabindex attribute of input element + * @param string $big textarea size + * @param string $tplt name of template to be filled + * @return boolean */ - public function parse_edittemplateinfo($type, $description = '', $name = '', $help = '', $tabindex = 0, $big = 0, $tplt = '') + public function parse_edittemplateinfo($format, $typedesc = '', $typename = '', $help = '', $tabindex = 0, $big = 0, $template_name = '') { global $manager; - $templateid = intRequestVar('templateid'); - $templatename = TEMPLATE::getNameFromId($templateid); - $templatedescription = TEMPLATE::getDesc($templateid); - $template =& $manager->getTemplate($templatename); - switch ( $type ) + static $id = NULL; + static $name = NULL; + static $desc = NULL; + + if ( $id == NULL ) + { + $id = intRequestVar('templateid'); + } + + if ( $name == NULL ) + { + $name = Template::getNameFromId($id); + } + + if ( $desc == NULL ) + { + $desc = Template::getDesc($id); + } + + $template =& $manager->getTemplate($name); + + switch ( $format ) { case 'id': - echo intval($templateid); + echo (integer) $id; break; case 'name': - echo Entity::hsc($templatename); + echo Entity::hsc($name); break; case 'desc': - echo Entity::hsc($templatedescription); + echo Entity::hsc($desc); break; case 'extratemplate': - $tabidx = 600; + $tabidx = 600; $pluginfields = array(); - $manager->notify( - 'TemplateExtraFields', - array( - 'fields' => &$pluginfields - ) - ); - $tmplt = array(); - if ( $description ) - { - $tmplt = Template::read($description); - } - if ( array_key_exists('TEMPLATE_EDIT_EXPLUGNAME', $tmplt) && !empty($tmplt['TEMPLATE_EDIT_EXPLUGNAME']) ) + if ( !preg_match('#^admin/#', $this->skintype) ) { - $base = $tmplt['TEMPLATE_EDIT_EXPLUGNAME']; + $manager->notify('TemplateExtraFields', array('fields' => &$pluginfields)); } else { - $base = "\n" - . "\t" . '<%explugtplname%>' . "\n"; + $manager->notify('AdminTemplateExtraFields', array('fields' => &$pluginfields)); } - foreach ( $pluginfields as $pfkey => $pfvalue ) + + foreach ( $pluginfields as $ptkey => $ptvalue ) { + $tmplt = array(); + if ( $desc ) + { + $tmplt =& $manager->getTemplate($desc); + } + + /* extra plugin field */ + if ( !array_key_exists('TEMPLATE_EDIT_EXPLUGNAME', $tmplt) || empty($tmplt['TEMPLATE_EDIT_EXPLUGNAME']) ) + { + $base = "\n" + . "\n" + . "<%explugtplname%>\n"; + } + else + { + $base = $tmplt['TEMPLATE_EDIT_EXPLUGNAME']; + } $data = array( - 'explugtplname' => Entity::hsc($pfkey) + 'explugtplname' => Entity::hsc($ptkey) ); - echo TEMPLATE::fill($base, $data); - foreach ( $pfvalue as $pffield => $pfdesc ) + echo Template::fill($base, $data); + + foreach ( $ptvalue as $ptname => $ptdesc ) { - $this->_templateEditRow($template, $pfdesc, $pffield, '', ++$tabidx, 0, $name); + if ( !array_key_exists($ptname, $template) ) + { + $content = ''; + } + else + { + $content = $template[$ptname]; + } + $this->parser->parse(listplug_templateEditRow($content, $ptdesc, $ptname, $help, $tabidx++, $big, $template_name)); + continue; } } break; default: - $desc = defined($description) ? constant($description) : $description; - $name = defined($name) ? constant($name) : $name; - $this->_templateEditRow($template, $desc, $name, $help, $tabindex, $big, $tplt); + $typedesc = defined($typedesc) ? constant($typedesc) : $typedesc; + $typename = defined($typename) ? constant($typename) : $typename; + + if ( !array_key_exists($typename, $template) ) + { + $content = ''; + } + else + { + $content = $template[$typename]; + } + $this->parser->parse(listplug_templateEditRow($content, $typedesc, $typename, $help, $tabindex, $big, $template_name)); break; } + return; } /** * AdminActions::parse_eventformextra() * Parse skinvar eventformextra - * + * * @param string $type name of type for event form extra * @return void */ public function parse_eventformextra($type = 'activation') { global $manager; + + $data = array(); + switch ( $type ) { case 'activation': @@ -2974,20 +2664,18 @@ class AdminActions extends BaseActions { Admin::error(_ERROR_ACTIVATE); } - $mem = MEMBER::createFromId($info->vmember); + $mem =& $manager->getMember($info->vmember); if ( !$mem ) { Admin::error(_ERROR_ACTIVATE); } $data = array( - 'type' => 'activation', - 'member' => $mem + 'type' => 'activation', + 'member' => $mem ); break; case 'membermailform-notloggedin': - $data = array( - 'type' => 'membermailform-notloggedin', - ); + $data = array('type' => 'membermailform-notloggedin',); break; } $manager->notify('FormExtra', $data); @@ -3001,24 +2689,24 @@ class AdminActions extends BaseActions public function parse_extrahead() { global $manager; + $extrahead = Admin::getAdminextrahead(); - $manager->notify( - 'AdminPrePageHead', - array( - 'extrahead' => &$extrahead, - 'action' => Admin::getAdminAction() - ) + + $data = array( + 'extrahead' => &$extrahead, + 'action' => Admin::getAdminAction() ); + + $manager->notify('AdminPrePageHead', $data); echo $extrahead; return; } - /** * AdminActions::parse_member() * Parse skinvar member * (includes a member info thingie) - * + * * @param string $what which memberdata is needed * @return void */ @@ -3076,10 +2764,14 @@ class AdminActions extends BaseActions echo $member->getID(); break; case 'yourprofileurl': - if ($CONF['URLMode'] == 'pathinfo') + if ( $CONF['URLMode'] == 'pathinfo' ) + { echo Link::create_member_link($member->getID()); + } else + { echo $CONF['IndexURL'] . Link::create_member_link($member->getID()); + } break; } } @@ -3125,20 +2817,22 @@ class AdminActions extends BaseActions break; case 'adminurl': echo $CONF['AdminURL']; + break; } return; } /** - * AdminActions::parse_charset() - * Parse skinvar charset + * AdminActions::parse_actionurl() + * Parse $CONF; * * @param void * @return void */ - public function parse_charset() + public function parse_actionurl() { - echo i18n::get_current_charset(); + global $CONF; + echo Entity::hsc($CONF['ActionURL']); return; } @@ -3148,7 +2842,7 @@ class AdminActions extends BaseActions */ public function parse_getblogsetting($which) { - global $blog; + global $blog, $manager; if ( $blog ) { @@ -3156,14 +2850,13 @@ class AdminActions extends BaseActions } elseif ( $bid = intRequestVar('blogid') ) { - global $manager; - $b = $manager->getBlog($bid); + $b =& $manager->getBlog($bid); } else { return; } - + switch ( $which ) { case 'id': @@ -3200,12 +2893,13 @@ class AdminActions extends BaseActions /** * AdminActions::parse_geteditpluginfo() * Parse skinvar geteditpluginfo - * + * * @param string $type name of setting for edit plugin info * @return void */ public function parse_geteditpluginfo($type) { + global $manager; $pid = intRequestVar('plugid'); switch ( $type ) { @@ -3213,7 +2907,7 @@ class AdminActions extends BaseActions return $pid; break; case 'name': - return Entity::hsc(getPluginNameFromPid($pid)); + return Entity::hsc($manager->getPluginNameFromPid($pid)); break; } return; @@ -3223,7 +2917,7 @@ class AdminActions extends BaseActions * AdminActions::parse_getmember() * Parse skinvar getmember * (includes a member info thingie) - * + * * @param string $what name of setting for member * @return void */ @@ -3286,7 +2980,7 @@ class AdminActions extends BaseActions /** * AdminActions::parse_headmessage() * Parse skinvar headmessage - * + * * @param void * @return void */ @@ -3302,38 +2996,37 @@ class AdminActions extends BaseActions /** * AdminActions::parse_helplink() * Parse skinvar helplink - * + * * @param string $topic name of topic for help * @return void */ public function parse_helplink($topic = '') { - if ( empty($topic) ) + if ( !empty($topic) ) { - return; + help($topic); } - help($topic); return; } /** * AdminActions::parse_helpplugname() * Parse skinvar helpplugname - * + * * @param void * @return void */ public function parse_helpplugname() { $plugid = intGetVar('plugid'); - Entity::hsc(getPluginNameFromPid($plugid)); + Entity::hsc($manager->getPluginNameFromPid($plugid)); return; } /** * AdminActions::parse_ilistaddnew() * Parse skinvar ilistaddnew - * + * * @param void * @return void */ @@ -3350,7 +3043,7 @@ class AdminActions extends BaseActions /** * AdminActions::parse_importskininfo() * Parse skinvar importskininfo - * + * * @param string $type name of information for imported skin * @return void */ @@ -3388,23 +3081,44 @@ class AdminActions extends BaseActions } /** + * AdminActions::parse_init() + * some init stuff for all forms + * + * @param void + * @return void + */ + public function parse_init() + { + global $manager; + + $authorid = ''; + if ( requestVar('action') == 'itemedit' ) + { + $authorid = Admin::$contents['authorid']; + } + + Admin::$blog->insertJavaScriptInfo($authorid); + return; + } + + /** * AdminActions::parse_inputyesno() * Parse skinvar inputyesno - * - * @param string $name - * @param string $checkedval - * @param string $tabindex - * @param string $value1 - * @param string $value2 - * @param string $yesval - * @param string $noval - * @param string $isAdmin - * @param string $templateName + * + * @param string $name + * @param string $checkedval + * @param string $tabindex + * @param string $value1 + * @param string $value2 + * @param string $yesval + * @param string $noval + * @param string $isAdmin + * @param string $template_name * @return void */ - public function parse_inputyesno($name, $checkedval, $tabindex = 0, $value1 = 1, $value2 = 0, $yesval = _YES, $noval = _NO, $isAdmin = 0, $templateName = '') + public function parse_inputyesno($name, $checkedval, $tabindex = 0, $value1 = 1, $value2 = 0, $yesval = _YES, $noval = _NO, $isAdmin = 0, $template_name = '') { - self::input_yesno($name, $checkedval, $tabindex, $value1, $value2, $yesval, $noval, $isAdmin, $templateName ); + $this->parser->parse(listplug_input_yesno($name, $checkedval, $tabindex, $value1, $value2, $yesval, $noval, $isAdmin, $template_name)); return; } @@ -3414,7 +3128,7 @@ class AdminActions extends BaseActions */ public function parse_insertpluginfo($type) { - $option = Admin::$aOptions; + $option = Admin::getAdminaOption(); switch ( $type ) { case 'id': @@ -3428,73 +3142,18 @@ class AdminActions extends BaseActions } /** - * AdminActions::parse_insertpluginoptions() - * Parse skinvar insertpluginoptions - * - * @param string $templateName name of template - * @return void - */ - public function parse_insertpluginoptions($templateName = '') - { - $options = Admin::$aOptions; - $template = array(); - $templats = array(); - - if ( $templateName ) - { - $templates = Template::read($templateName); - } - if (array_key_exists('INSERT_PLUGOPTION_TITLE', $templates) && !empty($templates['INSERT_PLUGOPTION_TITLE']) ) - { - $template['title'] = $templates['INSERT_PLUGOPTION_TITLE']; - } - else - { - $template['title'] = '<%sprinttext(_PLUGIN_OPTIONS_TITLE, <|%insertpluginfo(name)%|>)%>' . "\n"; - } - if ( array_key_exists('INSERT_PLUGOPTION_BODY', $templates) && !empty($templates['INSERT_PLUGOPTION_BODY']) ) - { - $template['body'] = $templates['INSERT_PLUGOPTION_BODY']; - } - else - { - $template['body'] = '<%listplugplugoptionrow%>' . "\n"; - } - - $prevPid = -1; - - foreach ( $options as $option ) - { - $handler = new Actions($this->skintype, $template, $option); - $parser = new PARSER(Actions::getDefinedActions(), $handler); - // new plugin? - if ( $prevPid != $option['pid'] ) - { - $prevPid = $option['pid']; - $parser->parse($template['title']); - } - $meta = NucleusPlugin::getOptionMeta($option['typeinfo']); - if ( @$meta['access'] != 'hidden' ) - { - $parsed = $parser->parse($template['body']); - } - } - return; - } - - /** * AdminActions::parse_insplugoptcontent() * Parse skinvar insplugoptcontent - * + * * @param void * @return void */ public function parse_insplugoptcontent() { - $option = Admin::$aOption; + $option = Admin::getAdminaOption(); - $meta = NucleusPlugin::getOptionMeta($option['typeinfo']); - if (array_key_exists('access', $meta) && $meta['access'] != 'hidden') + $meta = NucleusPlugin::getOptionMeta($option['typeinfo']); + if ( array_key_exists('access', $meta) && $meta['access'] != 'hidden' ) { echo ''; listplug_plugOptionRow($option); @@ -3506,7 +3165,7 @@ class AdminActions extends BaseActions /** * AdminActions::parse_iprangeinput() * Parse skinvar iprangeinput - * + * * @param void * @return void */ @@ -3515,11 +3174,11 @@ class AdminActions extends BaseActions if ( requestVar('ip') ) { $iprangeVal = Entity::hsc(requestVar('ip')); - echo '' . "\n"; - echo '
    \n"; + echo "\n"; + echo "
    \n"; echo '' . "\n"; echo '' . "\n"; - echo '' . "\n"; + echo "\n"; } else { @@ -3532,18 +3191,61 @@ class AdminActions extends BaseActions /** * AdminActions::parse_itemnavlist() * Parse skinvar itemnavlist - * + * * @param void * @return void */ - public function parse_itemnavlist() + public function parse_itemnavlist($template_name) { global $CONF, $manager, $member; + + $query = "SELECT bshortname, cname, mname, ititle, ibody, inumber, idraft, itime" + . " FROM %s, %s, %s, %s" + . " WHERE iblog=bnumber AND iauthor=mnumber AND icat=catid"; + + $query = sprintf($query, sql_table('item'), sql_table('blog'), sql_table('member'), sql_table('category')); + if ( $this->skintype == 'itemlist' ) { - $blogid = intRequestVar('blogid'); - $blog =& $manager->getBlog($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 + if ( !$member->blogAdminRights($blogid) ) + { + $query .= ' AND iauthor = ' . $member->getID(); + } + } + elseif ( $this->skintype == 'browseownitems' ) + { + $query .= ' AND iauthor = ' . $member->getID(); + $blogid = 0; + $template['now'] = time(); + } + + // search through items + $search = postVar('search'); + + if ( !empty($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'); @@ -3560,59 +3262,89 @@ class AdminActions extends BaseActions } else { - $amount = intval($CONF['DefaultListSize']); + $amount = (integer) $CONF['DefaultListSize']; if ( $amount < 1 ) { $amount = 10; } } - $query = "SELECT bshortname, cname, mname, ititle, ibody, inumber, idraft, itime" - . " FROM %s, %s, %s" - . " WHERE iblog=bnumber AND iauthor=mnumber AND icat=catid;"; - $query = sprintf($query, sql_table('item'), sql_table('blog'), sql_table('member'), sql_table('category')); + $query .= ' ORDER BY itime DESC' + . " LIMIT {$start},{$amount}"; - if ( $this->skintype == 'itemlist' ) + $resource = DB::getResult($query); + if ( $resource->rowCount() > 0 ) + { + $template['action'] = $this->skintype; + $template['start'] = $start; + $template['amount'] = $amount; + $template['minamount'] = 0; + $template['maxamount'] = 1000; + $template['blogid'] = $blogid; + $template['search'] = $search; + $template['itemid'] = 0; + + $template['content'] = 'itemlist'; + + $this->parser->parse(listplug_navlist('item', $query, 'table', $template)); + } + else { - $query .= 'and iblog = ' . $blogid; - $template['now'] = $blog->getCorrectTime(time()); + /* TODO: nothing to be shown */ + } + $resource->closeCursor(); + + return; + } + + /** + * AdminActions::parse_itemtime() + * date change on edit item + * + * @param string $key key of PHP's getDate() + * @return void + */ + public function parse_itemtime($key) + { + global $manager; + + $item = false; + $itemid = intRequestVar('itemid'); + $item =& $manager->getItem($itemid, 1, 1); + + if ( $item ) + { + $blog =& $manager->getBlog($item['blogid']); - // non-blog-admins can only edit/delete their own items - if ( !$member->blogAdminRights($blogid) ) + if ( $blog->convertBreaks() && requestVar('action') == 'itemedit' ) { - $query .= ' and iauthor = ' . $member->getID(); + $item['body'] = removeBreaks($item['body']); + $item['more'] = removeBreaks($item['more']); } } - elseif ( $this->skintype == 'browseownitems' ) + + $contents = array(); + if ( requestVar('action') == 'itemedit' ) { - $query .= 'and iauthor = ' . $member->getID(); - $blogid = 0; - $template['now'] = time(); + $contents = $item; } - - // search through items - $search = postVar('search'); - - if ( !empty($search) ) + elseif ( requestVar('action') == 'createitem' ) { - $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) . '%"))'; + $data = array( + 'contents' => &$contents, + 'blog' => &$this->blog + ); + $manager->notify('PreAddItemForm', $data); } - $query .= ' ORDER BY itime DESC' - . " LIMIT {$start},{$amount}"; - - $template['content'] = 'itemlist'; - - $navList = new Navlist($this->skintype, $start, $amount, 0, 1000, $blogid, $search, 0); - $navList->showBatchList('item', $query, 'table', $template); + $itemtime = getdate($contents['timestamp']); + echo $itemtime[$key]; return; } /** * AdminActions::parse_jstoolbaroptions() * Parse skinvar jstoolbaroptions - * + * * @param void * @return void */ @@ -3624,6 +3356,7 @@ class AdminActions extends BaseActions _SETTINGS_JSTOOLBAR_SIMPLE, _SETTINGS_JSTOOLBAR_FULL ); + $i = 1; foreach ( $options as $option ) { @@ -3634,21 +3367,23 @@ class AdminActions extends BaseActions } return; } - /** * AdminActions::parse_localeselectoptions() * Parse skinvar localeselectoptions - * + * * @param void * @return void */ public function parse_localeselectoptions() { + global $manager; + $locales = i18n::get_available_locale_list(); - $memid = intRequestVar('memberid'); + + $memid = intRequestVar('memberid'); if ( $memid ) { - $mem = MEMBER::createFromID($memid); + $mem =& $manager->getMember($memid); if ( !$mem->getLocale() || !in_array($mem->getLocale(), $locales) ) { echo "\n"; @@ -3664,10 +3399,18 @@ class AdminActions extends BaseActions { echo "\n"; } - } + else + { + echo "\n"; + } + } foreach ( $locales as $locale ) { - if ($memid) + if ( $locale == 'en_Latn_US' ) + { + continue; + } + else if ($memid) { if ( $locale == $mem->getLocale() ) { @@ -3696,20 +3439,20 @@ class AdminActions extends BaseActions /** * AdminActions::parse_listplugplugoptionrow() * Parse templatevar listplugplugoptionrow - * - * @param string $templateName name of template + * + * @param string $template_name name of template * @return void */ - public function parse_listplugplugoptionrow($templateName = '') + public function parse_listplugplugoptionrow($template_name = '') { - echo listplug_plugOptionRow(Admin::$aOptions, $templateName); + echo listplug_plugOptionRow(Admin::getAdminaOption(), $template_name); return; } /** * AdminActions::parse_mediadirwarning() * Parse skinvar mediadirwarning - * + * * @param void * @return void */ @@ -3741,18 +3484,18 @@ class AdminActions extends BaseActions switch ( $actionType ) { case 'batchitem': - Admin::selectBlogCategory('destcatid'); + $this->selectBlog('destcatid', 'category'); break; case 'batchcategory': - Admin::selectBlog('destblogid'); + $this->selectBlog('destblogid'); break; default: if ( $this->skintype == 'itemmove' ) { $query = "SELECT icat as result FROM %s WHERE inumber=%d;"; - $query = spriintf($query, sql_table('item'), intRequestVar('itemid')); - $catid = quickQuery(sprintf($query, intRequestVar('itemid'))); - Admin::selectBlogCategory('catid', $catid, 10, 1); + $query = sprintf($query, sql_table('item'), intRequestVar('itemid')); + $catid = DB::getValue(sprintf($query, intRequestVar('itemid'))); + $this->selectBlog('catid', 'category', $catid, 10, 1); } break; } @@ -3762,7 +3505,7 @@ class AdminActions extends BaseActions /** * AdminActions::parse_moveitemid() * Parse skinvar moveitemid - * + * * @param void * @return void */ @@ -3775,16 +3518,18 @@ class AdminActions extends BaseActions /** * AdminActions::parse_newestcompare() * Parse skinvar newestcompare - * + * * @param void * @return void */ public function parse_newestcompare() { global $nucleus; + $newestVersion = getLatestVersion(); $newestCompare = str_replace('/', '.', $newestVersion); $currentVersion = str_replace(array('/', 'v'), array('.', ''), $nucleus['version']); + if ( $newestVersion && version_compare($newestCompare, $currentVersion, '>') ) { echo '
    '; @@ -3796,37 +3541,40 @@ class AdminActions extends BaseActions /** * AdminActions::parse_newmemberselect() * Parse skinvar newmemberselect - * - * @param string $templateName name of template to use + * + * @param string $template_name name of template to use * @return void */ - public function parse_newmemberselect($templateName = '') + public function parse_newmemberselect($template_name = '') { $blogid = intRequestVar('blogid'); - $query = "SELECT tmember FROM %s WHERE tblog=%d;"; + $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);"; $query = sprintf($query, sql_table('member'), implode(', ', $tmem)); - $template['name'] = 'memberid'; - $template['tabindex'] = 10000; - Showlist($query, 'select', $template, $templateName); + $template = array( + 'name' => 'memberid', + 'tabindex' => 10000, + 'selected' => 0 + ); + $this->parser->parse(showlist($query, 'select', $template, $template_name)); return; } /** * AdminActions::parse_newpluginlist() * Parse skinvar newpluginlist - * + * * @param void * @return void */ @@ -3843,20 +3591,20 @@ class AdminActions extends BaseActions /** * AdminActions::parse_outputspecialdirs() * Parse skinvar outputspecialdirs - * + * * @param string $type type of setting for directory * @return void */ public function parse_outputspecialdirs($type) { + global $DIR_MEDIA, $DIR_NUCLEUS; + switch ( $type ) { case 'nucleusdir': - global $DIR_NUCLEUS; echo Entity::hsc($DIR_NUCLEUS); break; case 'mediadir': - global $DIR_MEDIA; echo Entity::hsc($DIR_MEDIA); break; } @@ -3866,17 +3614,19 @@ class AdminActions extends BaseActions /** * AdminActions::parse_passrequestvars() * Parse skinvar passrequestvars - * + * * @param void * @return void */ public function parse_passrequestvars() { + $passvar = Admin::getAdminpassvar(); $oldaction = postVar('oldaction'); + if ( ($oldaction != 'logout') - && ($oldaction != 'login') - && Admin::passvar - && !postVar('customaction') ) + && ($oldaction != 'login') + && $passvar + && !postVar('customaction') ) { passRequestVars(); } @@ -3886,41 +3636,38 @@ class AdminActions extends BaseActions /** * AdminActions::parse_pluginextras() * Parse skinvar pluginextras - * + * * @param string $type type of plugin context * @return void */ public function parse_pluginextras($type = 'global') { global $manager; + switch ( $type ) { case 'member': $id = intRequestVar('memberid'); - $mem = MEMBER::createFromID($id); - $manager->notify( - 'MemberSettingsFormExtras', - array( - 'member' => &$mem - ) - ); + $mem =& $manager->getMember($id); + $manager->notify('MemberSettingsFormExtras', array('member' => &$mem)); break; case 'blog': $id = intRequestVar('blogid'); - $blg = $manager->getBlog($id); - $manager->notify( - 'BlogSettingsFormExtras', - array( - 'member' => &$blg - ) + $blg =& $manager->getBlog($id); + $manager->notify('BlogSettingsFormExtras', array('member' => &$blg)); + break; + case 'createaccount': + $data = array( + 'type' => 'createaccount.php', + 'prelabel' => '', + 'postlabel' => '
    ', + 'prefield' => '', + 'postfield' => '

    ' ); + $manager->notify('RegistrationFormExtraFields', $data); break; default: - $manager->notify( - 'GeneralSettingsFormExtras', - array( - ) - ); + $manager->notify('GeneralSettingsFormExtras', array()); break; } return; @@ -3929,15 +3676,16 @@ class AdminActions extends BaseActions /** * AdminActions::parse_pluginhelp() * Parse skinvar pluginhelp - * + * * @param void * @return void */ public function parse_pluginhelp() { global $manager, $DIR_PLUGINS; + $plugid = intGetVar('plugid'); - $plugName = getPluginNameFromPid($plugid); + $plugName = $manager->getPluginNameFromPid($plugid); $plug =& $manager->getPlugin($plugName); if ( $plug->supportsFeature('HelpPage') > 0 ) @@ -3962,138 +3710,234 @@ class AdminActions extends BaseActions /** * AdminActions::parse_pluginlistlist() * Parse skinvar pluginlistlist - * - * @param string $templateName name of template to use + * + * @param string $template_name name of template to use * @return void */ - public function parse_pluginlistlist($templateName = '') + public function parse_pluginlistlist($template_name = '') { - $query = "SELECT * FROM %s ORDER BY porder ASC;"; + $query = "SELECT * FROM %s ORDER BY porder ASC;"; $query = sprintf($query, sql_table('plugin')); + $template['content'] = 'pluginlist'; $template['tabindex'] = 10; - Showlist($query, 'table', $template, $templateName); + + $this->parser->parse(showlist($query, 'table', $template, $template_name)); + return; } /** * AdminActions::parse_pluginoptions() * Parse skinvar pluginoptions - * + * * @param string $type type of plugin option * @return void */ - public function parse_pluginoptions($type = 'global') + public function parse_pluginoptions($context='global', $template_name='') { - switch ( $type ) + global $itemid, $manager; + + switch ( $context ) { case 'member': - $id = intRequestVar('memberid'); + $contextid = intRequestVar('memberid'); break; case 'blog': - $id = intRequestVar('blogid'); + $contextid = intRequestVar('blogid'); break; case 'category': - $id = intRequestVar('catid'); + $contextid = intRequestVar('catid'); + break; + case 'item': + $contextid = $itemid; break; } - Admin::insertPluginOptions($type, $id); + + /* Actually registererd plugin options */ + $aIdToValue = array(); + $query = "SELECT oid, ovalue FROM %s WHERE ocontextid=%d;"; + $query = sprintf($query, sql_table('plugin_option'), (integer) $contextid); + $res = DB::getResult($query); + foreach ( $res as $row ) + { + $aIdToValue[$row['oid']] = $row['ovalue']; + } + + /* Currently available plugin options */ + $query = "SELECT * FROM %s, %s WHERE opid=pid and ocontext= %s ORDER BY porder, oid ASC;"; + $query = sprintf($query, sql_table('plugin_option_desc'), sql_table('plugin'), DB::quoteValue($context)); + $res = DB::getResult($query); + + $options = array(); + foreach ($res as $row ) + { + if ( !array_key_exists($row['oid'], $aIdToValue) ) + { + $value = $row['odef']; + } + else + { + $value = $aIdToValue[$row['oid']]; + } + + $options[] = array( + 'pid' => $row['pid'], + 'pfile' => $row['pfile'], + 'oid' => $row['oid'], + 'value' => $value, + 'name' => $row['oname'], + 'description' => $row['odesc'], + 'type' => $row['otype'], + 'typeinfo' => $row['oextra'], + 'contextid' => $contextid, + 'extra' => '' + ); + } + + $data = array( + 'context' => $context, + 'contextid' => $contextid, + 'options' => &$options + ); + $manager->notify('PrePluginOptionsEdit', $data); + + $template = array(); + if ( $template_name ) + { + $templates =& $manager->getTemplate($template_name); + if ( !array_key_exists('INSERT_PLUGOPTION_TITLE', $templates) || empty($templates['INSERT_PLUGOPTION_TITLE']) ) + { + $template['title'] = "" + . "<%sprinttext(_PLUGIN_OPTIONS_TITLE, <|%insertpluginfo(name)%|>)%>" + . "\n"; + } + else + { + $template['title'] = $templates['INSERT_PLUGOPTION_TITLE']; + } + + if ( !array_key_exists('INSERT_PLUGOPTION_BODY', $templates) || empty($templates['INSERT_PLUGOPTION_BODY']) ) + { + $template['body'] = "" + . "<%listplugplugoptionrow%>" + . "\n"; + } + else + { + $template['body'] = $templates['INSERT_PLUGOPTION_BODY']; + } + } + + $prevPid = -1; + + foreach ( $options as $option ) + { + // new plugin? + if ( $prevPid != $option['pid'] ) + { + $prevPid = $option['pid']; + $this->parser->parse($template['title']); + } + + $meta = NucleusPlugin::getOptionMeta($option['typeinfo']); + + if ( @$meta['access'] != 'hidden' ) + { + $parsed = $this->parser->parse($template['body']); + } + } + return; } /** * AdminActions::parse_qmenuaddselect() * Parse skinvar qmanuaddselect - * - * @param string $templateName name of template to use + * + * @param string $template_name name of template to use * @return void */ - public function parse_qmenuaddselect($templateName = '') + public function parse_qmenuaddselect($template_name = '') { - global $member; + global $member, $blogid; $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 ' . sql_table('blog') - . ' ORDER BY bname'; + $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 ' . sql_table('blog') . ', ' . sql_table('team') - . ' WHERE tblog=bnumber and tmember=' . $member->getID() - . ' ORDER BY bname'; + $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'] = -1; + + $template['name'] = 'blogid'; + $template['tabindex'] = 15000; + $template['extra'] = _QMENU_ADD_SELECT; + $template['selected'] = 0; $template['shorten'] = 10; - $template['shortenel'] = ''; - $template['javascript'] = 'onchange="return form.submit()"'; - Showlist($query, 'select', $template, $templateName); + $template['shortenel'] = ''; + $template['javascript'] = 'onchange="return form.submit()"'; + + $this->parser->parse(showlist($query, 'select', $template, $template_name)); + return; } - + /** * AdminActions::parse_quickmenu() * Parse skinvar quickmenu - * - * @param string $templateName name of template to use + * + * @param string $template_name name of template to use * @return void */ - public function parse_quickmenu($templateName = '') + public function parse_quickmenu($template_name = '') { global $manager; $templates = array(); - $template = array(); - if ( !empty($templateName) ) + + if ( !empty($template_name) ) { - $templates = Template::read($templateName); + $templates = & $manager->getTemplate($template_name); } $pluginExtras = array(); - $manager->notify( - 'QuickMenu', - array( - 'options' => &$pluginExtras - ) - ); + $manager->notify('QuickMenu', array('options' => &$pluginExtras)); + + $template = array(); if ( count($pluginExtras) > 0 ) { - if ( array_key_exists('PLUGIN_QUICKMENU_TITLE', $templates) || !empty($templates['PLUGIN_QUICKMENU_TITLE']) ) + if ( !array_key_exists('PLUGIN_QUICKMENU_HEAD', $templates) || empty($templates['PLUGIN_QUICKMENU_HEAD']) ) { - $template['title'] = $templates['PLUGIN_QUICKMENU_TITLE']; + $template['head'] = "

    <%text(_QMENU_PLUGINS)%>

    \n" + . "
    '; + $this->parser->parse(Template::fill($template['body'], $data)); } - echo $template['foot']; + $this->parser->parse($template['foot']); } return; } @@ -4119,7 +3955,7 @@ class AdminActions extends BaseActions /** * AdminActions::parse_requestblogid() * Parse skinvar requestblogid - * + * * @param void * @return void */ @@ -4132,7 +3968,7 @@ class AdminActions extends BaseActions /** * AdminActions::parse_requestiprange() * Parse skinvar requestiprange - * + * * @param void * @return void */ @@ -4150,125 +3986,152 @@ class AdminActions extends BaseActions } /** - * AdminActions::parse_selectlocaladminskinfiles() - * Parse skinvar selectlocaladminskinfiles - * - * @param void - * @return void - */ - public function parse_selectlocaladminskinfiles() - { - global $DIR_ADMINSKINS, $manager; - $candidates = SkinImport::searchForCandidates($DIR_ADMINSKINS); - foreach ( $candidates as $skinname => $skinfile ) - { - $html = Entit::hsc($skinfile); - echo '\n"; - } - return; - } - - /** * AdminActions::parse_selectlocalskinfiles() * Parse skinvar selectlocalskinfiles - * + * * @param void * @return void */ public function parse_selectlocalskinfiles() { global $DIR_SKINS; - $candidates = SkinImport::searchForCandidates($DIR_SKINS); + + if ( !class_exists('SkinImport', FALSE) ) + { + include_libs('skinie.php'); + } + + if ( !preg_match('#^admin#', $this->skintype) && $this->skintype != 'importAdmin' ) + { + $skindir = $DIR_SKINS; + } + else + { + $skindir = "{$DIR_SKINS}admin/"; + } + + $candidates = SkinImport::searchForCandidates($skindir); foreach ( $candidates as $skinname => $skinfile ) { - $html = Entity::hsc($skinfile); - echo '\n"; + $skinfile = Entity::hsc($skinfile); + $skinname = Entity::hsc($skinname); + echo "\n"; } + return; } /** * AdminActions::parse_skineditallowedlist() * Parse skinvar skineditallowedlist - * + * * @param string $type type of skin - * @param string $templateName name of template + * @param string $template_name name of template * @return void */ - public function parse_skineditallowedlist($type, $templateName = '') + public function parse_skineditallowedlist($type, $template_name = '') { switch ( $type ) { case 'blog': - $query = "SELECT bshortname, bname FROM %s"; + $query = "SELECT bshortname, bname FROM %s;"; $show = array( 'content' => 'shortblognames' ); $query = sprintf($query, sql_table('blog')); - Showlist($query, 'table', $show, $templateName); break; case 'template': - $query = "SELECT tdname as name, tddesc as description FROM %s"; + if ( !preg_match('#^admin#', $this->skintype) ) + { + $query = "SELECT tdname as name, tddesc as description FROM %s WHERE tdname NOT LIKE 'admin/%%';"; + } + else + { + $query = "SELECT tdname as name, tddesc as description FROM %s WHERE tdname LIKE 'admin/%%';"; + } $show = array( 'content' => 'shortnames' ); $query = sprintf($query, sql_table('template_desc')); - Showlist($query, 'table', $show, $templateName); break; } + + $this->parser->parse(showlist($query, 'table', $show, $template_name)); return; } /** * AdminActions::parse_skinielist() * Parse skinvar skinielist - * + * * @param string $type type of skin - * @param string $templateName name of template to use + * @param string $template_name name of template to use * @return void */ - public function parse_skinielist($type, $templateName = '') + public function parse_skinielist($type, $template_name = '') { + global $manager; + $templates = array(); - if ( $templateName ) + if ( $template_name ) { - $templates = Template::read($templateName); + $templates =& $manager->getTemplate($template_name); } - if ( array_key_exists('SKINIE_EXPORT_LIST', $templates) && !empty($templates['SKINIE_EXPORT_LIST']) ) + if ( !array_key_exists('SKINIE_EXPORT_LIST', $templates) || empty($templates['SKINIE_EXPORT_LIST']) ) { - $template = $templates['SKINIE_EXPORT_LIST']; + $template = "" + . "\" id=\"<%expid%>\" />\n" + . "\n" + . "\n" + . "<%expdesc%>\n" + . "\n" + . "\n"; } else { - $template = '' . "\n" - . "<%expdesc%>\n" - . "\n"; + $template = $templates['SKINIE_EXPORT_LIST']; } + switch ( $type ) { case 'skin': - $res = sql_query('SELECT * FROM ' . sql_table('skin_desc')); - while ( $skinObj = sql_fetch_object($res) ) + if ( !preg_match('#^admin#', $this->skintype) ) + { + $res = DB::getResult('SELECT * FROM ' . sql_table('skin_desc'). " WHERE sdname NOT LIKE 'admin/%%';"); + } + else + { + $res = DB::getResult('SELECT * FROM ' . sql_table('skin_desc'). " WHERE sdname LIKE 'admin/%%';"); + } + 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); + echo Template::fill($template, $data); } break; case 'template': - $res = sql_query('SELECT * FROM '.sql_table('template_desc')); - while ($templateObj = sql_fetch_object($res)) { + if ( !preg_match('#^admin#', $this->skintype) ) + { + $res = DB::getResult('SELECT * FROM '.sql_table('template_desc'). " WHERE tdname NOT LIKE 'admin/%%';"); + } + else + { + $res = DB::getResult('SELECT * FROM '.sql_table('template_desc'). " WHERE tdname 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); + echo Template::fill($template, $data); } break; } @@ -4278,43 +4141,75 @@ class AdminActions extends BaseActions /** * AdminActions::parse_skinoverview() * Parse skinvar skinoverview - * - * @param string $templateName name of template to use + * + * @param string $template_name name of template to use * @return void */ - public function parse_skinoverview($templateName = '') + public function parse_skinoverview($template_name = '') { - $query = "SELECT * FROM %s ORDER BY sdname"; + global $CONF; + + $template = array(); + if ( !preg_match('#^admin#', $this->skintype) ) + { + $query = "SELECT * FROM %s WHERE sdname NOT LIKE 'admin/%%' ORDER BY sdname;"; + $template['editaction'] = 'skinedit'; + $template['cloneaction'] = 'skinclone'; + $template['deleteaction'] = 'skindelete'; + $template['edittypeaction'] = 'skinedittype'; + $template['default'] = $CONF['BaseSkin']; + } + else + { + $query = "SELECT * FROM %s WHERE sdname LIKE 'admin/%%' ORDER BY sdname;"; + $template['editaction'] = 'adminskinedit'; + $template['cloneaction'] = 'adminskinclone'; + $template['deleteaction'] = 'adminskindelete'; + $template['edittypeaction'] = 'adminskinedittype'; + $template['default'] = $CONF['AdminSkin']; + } $query = sprintf($query, sql_table('skin_desc')); - $template['content'] = 'skinlist'; $template['tabindex'] = 10; - $template['friendly_names'] = Skin::getFriendlyNames('Actions'); + $template['content'] = 'skinlist'; + + $this->parser->parse(showlist($query, 'table', $template, $template_name)); - Showlist($query, 'table', $template, $templateName); return; } /** * AdminActions::parse_skintypehelp() * Check editing skintypehelp - * + * * @param void * @return void */ public function parse_skintypehelp() { $nowSkinType = strtolower(trim(requestVar('type'))); - $regularType = array( - 'index', - 'item', - 'archivelist', - 'archive', - 'search', - 'error', - 'member', - 'imagepopup' - ); + $pageAction = strtolower(trim(requestVar('action'))); + if ( preg_match('/^admin.*/', $pageAction) ) + { + $regularType = self::$default_skin_types; + unset($regularType['memberedit']); + unset($regularType['login']); + $regularType = array_keys($regularType); + } + else + { + /* TODO: use Skin class */ + $regularType = array( + 'index', + 'item', + 'archivelist', + 'archive', + 'search', + 'error', + 'member', + 'imagepopup' + ); + } if ( in_array($nowSkinType, $regularType) ) { @@ -4330,84 +4225,66 @@ class AdminActions extends BaseActions /** * AdminActions::parse_specialskinlist() * Parse skinvar specialskinlist - * - * @param string $templateName name of template to use + * + * @param string $template_name name of template to use * @return void */ - public function parse_specialskinlist($templateName = '') + public function parse_specialskinlist($template_name = '') { - $templates = array(); - if ( $templateName ) - { - $templates = Template::read($templateName); - } - $nType = array( - 'index', - 'item', - 'error', - 'search', - 'archive', - 'archivelist', - 'imagepopup', - 'member' - ); + global $CONF, $manager; + + $template = array(); + $skinid = intRequestVar('skinid'); - $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 ) + if ( !preg_match('#^admin#', $this->skintype) ) { - $data = array(); - if ( array_key_exists('SPECIALSKINLIST_HEAD', $templates) && !empty($templates['SPECIALSKINLIST_HEAD']) ) - { - $template['head'] = $templates['SPECIALSKINLIST_HEAD']; - } - else - { - $template['head'] = "\n"; } - echo TEMPLATE::fill($template['foot'], $data); - return; } + + if ( sizeof($special_skintypes) > 0 ) + { + $template['tabindex'] = 75; + $template['skinid'] = $skin->getID(); + $template['skinname'] = $skin->getName(); + $this->parser->parse(showlist($special_skintypes, 'list_specialskinlist', $template, $template_name)); + } + else + { + /* TODO: nothing to be shown */ + } + + return; } /** * AdminActions::parse_sprinttext() * Parse sprinttext - * - * @param string $which - * @param string $val + * + * @param string $which + * @param string $val * @return void */ public function parse_sprinttext($which, $val) @@ -4450,14 +4327,14 @@ class AdminActions extends BaseActions /** * AdminActions::parse_systemsettings() * Parse skinvar systemsettings - * + * * @param string $type type of settings for system - * @param string $templateName name of template to use + * @param string $template_name name of template to use * @return void */ - public function parse_systemsettings($type = 'phpinfo', $templateName = '') + public function parse_systemsettings($type = 'phpinfo', $template_name = '') { - global $member, $CONF, $nucleus; + global $manager, $member, $CONF, $nucleus; $member->isAdmin() or Admin::disallow(); @@ -4470,10 +4347,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'; @@ -4486,17 +4363,20 @@ class AdminActions extends BaseActions break; case 'gdinfo': $templates = array(); - if ( $templateName ) + if ( $template_name ) { - $templates = Template::read($templateName); + $templates =& $manager->getTemplate($template_name); } - if ( array_key_exists('SYSTEMINFO_GDSETTINGS', $templates) && !empty($templates['SYSTEMINFO_GDSETTINGS']) ) + if ( !array_key_exists('SYSTEMINFO_GDSETTINGS', $templates) || empty($templates['SYSTEMINFO_GDSETTINGS']) ) { - $template = $templates['SYSTEMINFO_GDSETTINGS']; + $template = "\n" + . "<%key%>\n" + . "<%value%>\n" + . "\n"; } else { - $template = "\n\t\t" . '' . "<%key%><%value%>\n\n"; + $template = $templates['SYSTEMINFO_GDSETTINGS']; } $gdinfo = gd_info(); @@ -4515,7 +4395,7 @@ class AdminActions extends BaseActions 'key' => $key, 'value' => $value, ); - echo TEMPLATE::fill($template, $data); + echo Template::fill($template, $data); } break; case 'modrewrite': @@ -4556,24 +4436,40 @@ class AdminActions extends BaseActions /** * AdminActions::parse_templateoverview() * Parse skinvar templateoverview - * - * @param string $templateName name of template to use + * + * @param string $template_name name of template to use * @return void */ - public function parse_templateoverview($templateName = '') + public function parse_templateoverview($template_name = '') { - $query = "SELECT * FROM %s ORDER BY tdname"; + if ( !preg_match('#^admin#', $this->skintype) ) + { + $query = "SELECT * FROM %s WHERE tdname NOT LIKE 'admin/%%' ORDER BY tdname;"; + $template['deleteaction'] = 'templatedelete'; + $template['editaction'] = 'templateedit'; + $template['cloneaction'] = 'templateclone'; + } + else + { + $query = "SELECT * FROM %s WHERE tdname LIKE 'admin/%%' ORDER BY tdname;"; + $template['deleteaction'] = 'admintemplatedelete'; + $template['editaction'] = 'admintemplateedit'; + $template['cloneaction'] = 'admintemplateclone'; + } $query = sprintf($query, sql_table('template_desc')); - $template['content'] = 'templatelist'; + $template['tabindex'] = 10; - Showlist($query, 'table', $template, $templateName); + $template['content'] = 'templatelist'; + + $this->parser->parse(showlist($query, 'table', $template, $template_name)); + return; } /** * AdminActions::parse_ticket() * Parse ticket - * + * * @param void * @return void */ @@ -4587,7 +4483,7 @@ class AdminActions extends BaseActions /** * AdminActions::parse_versioncheckurl() * Parse skinvar versioncheckurl - * + * * @param void * @return void */ @@ -4600,11 +4496,11 @@ class AdminActions extends BaseActions /** * AdminActions::parse_yrbloglist() * Parse skinvar yrbloglist - * - * @param string $templateName name of template to use + * + * @param string $template_name name of template to use * @return void */ - public function parse_yrbloglist($templateName = '') + public function parse_yrbloglist($template_name = '') { global $member; $showAll = requestVar('showall'); @@ -4613,58 +4509,64 @@ class AdminActions extends BaseActions { // Super-Admins have access to all blogs! (no add item support though) $query = "SELECT bnumber, bname, 1 as tadmin, burl, bshortname" - . " FROM %s" - . " ORDER BY bnumber"; + . " FROM %s" + . " ORDER BY bnumber;"; $query = sprintf($query, sql_table('blog')); } else { - $query = "SELECT bnumber, bname, tadmin, burl, bshortname" - . " FROM %s,%s" - . " WHERE tblog=bnumber and tmember=%d" - . " ORDER BY bnumber"; + $query = "SELECT bnumber, bname, tadmin, burl, bshortname" + . " FROM %s,%s" + . " WHERE tblog=bnumber and tmember=%d" + . " ORDER BY bnumber;"; $query = sprintf($query, sql_table('blog'), sql_table('team'), (integer) $member->getID()); } - $template['content'] = 'bloglist'; - $template['superadmin'] = $member->isAdmin(); - - $amount = Showlist($query, 'table', $template, $templateName); - - if ( ($showAll != 'yes') && ($member->isAdmin()) ) + $resource = DB::getResult($query); + if ( ($showAll != 'yes') && $member->isAdmin() ) { $query = 'SELECT COUNT(*) as result FROM ' . sql_table('blog'); - - $total = quickQuery($query); - if ( $total > $amount ) + $total = DB::getValue($query); + + if ( $total > $resource->rowCount() ) { echo '

    ' . _OVERVIEW_SHOWALL . '

    '; } } - if ( $amount == 0 ) - { - echo _OVERVIEW_NOBLOGS; - } - elseif( $amount != 0 ) + if ( $resource->rowCount() > 0 ) { + $template['content'] = 'bloglist'; + $template['superadmin'] = $member->isAdmin(); + + $this->parser->parse(showlist($resource, 'table', $template, $template_name)); + $resource->closeCursor(); + echo '

    ' . _OVERVIEW_YRDRAFTS . '

    '; - - $query = "SELECT ititle, inumber, bshortname" - . " FROM %s,%s" - . ' WHERE iauthor=%d AND iblog=bnumber AND idraft=1'; + + $query = 'SELECT ititle, inumber, bshortname FROM %s, %s ' + . 'WHERE iauthor=%d AND iblog=bnumber AND idraft=1;'; $query = sprintf($query, sql_table('item'), sql_table('blog'), (integer) $member->getID()); - - $template['content'] = 'draftlist'; - - $amountdrafts = Showlist($query, 'table', $template, $templateName); - if ( $amountdrafts == 0 ) + + $resource = DB::getResult($query); + if ( $resource->rowCount() > 0 ) + { + $template['content'] = 'draftlist'; + $this->parser->parse(showlist($resource, 'table', $template, $template_name)); + } + else { echo _OVERVIEW_NODRAFTS; } } - return; - } + else + { + echo _OVERVIEW_NOBLOGS; + } + $resource->closeCursor(); + + return; + } /** * AdminActions::checkCondition() @@ -4677,7 +4579,7 @@ class AdminActions extends BaseActions */ protected function checkCondition($field, $name='', $value = '') { - global $CONF, $catid, $blog, $member, $itemidnext, $itemidprev, $manager, $archiveprevexists, $archivenextexists; + global $CONF, $archiveprevexists, $archivenextexists, $blog, $catid, $itemidnext, $itemidprev, $manager, $member; $condition = 0; switch ( $field ) @@ -4687,20 +4589,17 @@ class AdminActions extends BaseActions { if ( $blogid ) { - global $manager; $blog =& $manager->getBlog($blogid); } elseif ( $catid ) { $blogid = getBlogIDFromCatID($catid); - global $manager; $blog =& $manager->getBlog($blogid); } elseif ( intRequestVar('catid') ) { $catid = intRequestVar('catid'); $blogid = getBlogIDFromCatID($catid); - global $manager; $blog =& $manager->getBlog($blogid); } else @@ -4710,9 +4609,6 @@ class AdminActions extends BaseActions } $condition = ($blog && $this->ifCategory($name, $value)); break; - case 'blogsetting': - $condition = ($blog && ($blog->getSetting($name) == $value)); - break; case 'loggedin': $condition = $member->isLoggedIn(); break; @@ -4747,10 +4643,10 @@ class AdminActions extends BaseActions $condition = $this->ifHasPlugin($name, $value); break; case 'adminaction': - $condition = ($this->objAdmin->action == $name); + $condition = (Admin::getAdminAction() == $name); break; case 'adminoldaction': - $condition = ($this->objAdmin->action == $name); + $condition = (Admin::getAdminAction() == $name); break; case 'addresschange': $condition = ($this->ifAddresscange()); @@ -4768,8 +4664,29 @@ class AdminActions extends BaseActions $condition = ($this->existsNewPlugin()); break; case 'autosave': + if ( $value == '' ) + { + $value = 1; + } $condition = (boolean) ($member->getAutosave() == $value); break; + case 'blogsetting': + if ( $value == '' ) + { + $value = 1; + } + $condition = (Admin::$blog->getSetting($name) == $value); + break; + case 'itemproperty': + if ( $value == '' ) + { + $value = 1; + } + if ( array_key_exists($name, Admin::$contents) ) + { + $condition = (boolean) (Admin::$contents[$name] == $value); + } + break; default: $condition = $manager->pluginInstalled("NP_{$field}") && $this->ifPlugin($field, $name, $value); break; @@ -4778,7 +4695,7 @@ class AdminActions extends BaseActions } /** - * Actions::_ifHasPlugin() + * AdminActions::_ifHasPlugin() * hasplugin,PlugName * -> checks if plugin exists * hasplugin,PlugName,OptionName @@ -4787,8 +4704,8 @@ class AdminActions extends BaseActions * -> checks if the option OptionName from plugin PlugName is set to value * * @param string $name name of plugin - * @param string $value - * @return + * @param string $value + * @return */ private function ifHasPlugin($name, $value) { @@ -4822,8 +4739,8 @@ class AdminActions extends BaseActions } /** - * Actions::beChangePassword() - * + * AdminActions::beChangePassword() + * * @param void * @return void */ @@ -4833,11 +4750,12 @@ class AdminActions extends BaseActions } /** - * Actions::ifSkincandidates() + * AdminActions::ifSkincandidates() * Checks if a plugin exists and call its doIf function - * + * * @param void * @return void + * @return boolean */ private function ifSkincandidates() { @@ -4847,40 +4765,50 @@ class AdminActions extends BaseActions } /** - * Actions::ifPlugin() + * AdminActions::ifPlugin() * Checks if a plugin exists and call its doIf function + * + * @param string $name name of plugin + * @param string $key + * @param string $value + * @return callback */ private function ifPlugin($name, $key = '', $value = '') { global $manager; - + $plugin =& $manager->getPlugin("NP_{$name}"); if ( !$plugin ) { return; } - + $params = func_get_args(); array_shift($params); - + return call_user_func_array(array(&$plugin, 'doIf'), $params); } - + /** + * AdminActions::ifCategory() * Different checks for a category + * + * @param string $key key for information of category + * @param string $value value for information of category + * @return boolean */ - private function ifCategory($name = '', $value='') + private function ifCategory($key = '', $value='') { global $blog, $catid; - + // when no parameter is defined, just check if a category is selected - if (($name != 'catname' && $name != 'catid') || ($value == '')) + if (($key != 'catname' && $key != 'catid') || ($value == '')) { return $blog->isValidCategory($catid); } - + // check category name - if ( $name == 'catname' ) + if ( $key == 'catname' ) { $value = $blog->getCategoryIdFromName($value); if ($value == $catid) @@ -4888,23 +4816,27 @@ class AdminActions extends BaseActions return $blog->isValidCategory($catid); } } - + // check category id - if (($name == 'catid') && ($value == $catid)) + if (($key == 'catid') && ($value == $catid)) { return $blog->isValidCategory($catid); } - + return FALSE; } - + /** - * Checks if a member is on the team of a blog and return his rights + * AdminActions::ifOnTeam() + * Checks if a member is on the team of a blog and return his rights + * + * @param string $blogName name of weblog + * @return boolean */ private function ifOnTeam($blogName = '') { global $blog, $member, $manager; - + // when no blog found if ( ($blogName == '') && !is_object($blog) ) { @@ -4916,7 +4848,7 @@ class AdminActions extends BaseActions { $blogid = getBlogIDFromName($blogName); } - + if (($blogName == '') || !$manager->existsBlogID($blogid)) { // use current blog @@ -4924,40 +4856,50 @@ class AdminActions extends BaseActions } return $member->teamRights($blogid); } - + /** - * Checks if a member is admin of a blog + * AdminActions::ifAdmin() + * Checks if a member is admin of a blog + * + * @param string $blogName name of weblog + * @return boolean */ private function ifAdmin($blogName = '') { global $blog, $member, $manager; - + // when no blog found if (($blogName == '') && (!is_object($blog))) { return 0; } - + // explicit blog selection if ($blogName != '') { $blogid = getBlogIDFromName($blogName); } - + if (($blogName == '') || !$manager->existsBlogID($blogid)) { // use current blog $blogid = $blog->getID(); } - + return $member->isBlogAdmin($blogid); } - + /** + * AdminActions::ifAddresscange() * Check e-Mail address is changed + * + * @param void + * @return boolean */ private function ifAddresscange() { + global $manager; + $key = $this->objAdmin->sessionVar("{$CONF['CookiePrefix']}ackey"); if ( !$key ) { @@ -4968,7 +4910,7 @@ class AdminActions extends BaseActions { return FALSE; } - $mem = MEMBER::createFromId($info->vmember); + $mem =& $manager->getMember($info->vmember); if ( !$mem ) { return FALSE; @@ -4981,62 +4923,120 @@ class AdminActions extends BaseActions } /** + * TODO: move * AdminActions::customHelp() * shows a link to custom help file - * - * @param integer $id - * @param string $tplName - * @param string $url - * @param string $iconURL - * @param string $alt - * @param string $title + * + * @param string $id + * @param string $tplName + * @param string $url + * @param string $iconURL + * @param string $alt + * @param string $title * @param $onclick - * + * */ private function customHelp($id, $tplName = '', $url = '', $iconURL = '', $alt = '', $title = '', $onclick = '') { - echo self::customHelpHtml($id, $tplName, $url, $iconURL, $alt, $title, $onclick); + echo $this->customHelpHtml($id, $tplName, $url, $iconURL, $alt, $title, $onclick); } /** + * TODO: move + * AdminActions::customHelp() + * shows a link to custom help file + * + * @param string $id + * @param string $tplName + * @param string $url + * @param string $iconURL + * @param string $alt + * @param string $title + * @param $onclick + * + */ + static function customHelplink($id, $tplName = '', $url = '', $title = '', $onclick = '') + { + global $CONF, $manager; + + $templates = array(); + + if ( $tplName ) + { + $templates =& $manager->getTemplate($tplName); + } + + if ( !array_key_exists('ADMIN_CUSTOMHELPLINK_ANCHOR', $templates) || empty($templates['ADMIN_CUSTOMHELPLINK_ANCHOR']) ) + { + $template = "#<%helptarget%>\" title=\"<%title%>\" <%onclick%>>\n"; + } + else + { + $template = $templates['ADMIN_CUSTOMHELPLINK_ANCHOR']; + } + + if ( empty($url) ) + { + $url = $CONF['AdminURL'] . 'documentation/customHelp.html'; + } + + if ( empty($onclick) ) + { + $onclick = 'onclick="if (event && event.preventDefault) event.preventDefault(); return help(this.href);"'; + } + elseif ( preg_match('#^onclick#', $onclick) ) + { + $onclick = $onclick; + } + else + { + $onclick = 'onclick="' . $onclick . '"'; + } + + $data = array( + 'helpurl' => $url, + 'helptarget' => $id, + 'onclick' => $onclick, + 'title' => (isset($title) && !empty($title)) ? $title : _HELP_TT, + ); + return Template::fill($template, $data); + } + + /** + * TODO: move * AdminActions::customHelpHtml() - * - * @param integer $id - * @param string $tplName - * @param string $url - * @param string $iconURL - * @param string $alt - * @param string $title - * @param string $onclick - * @return string anchor element with help uri */ private function customHelpHtml($id, $tplName = '', $url = '', $iconURL = '', $alt = '', $title = '', $onclick = '') { + global $CONF, $manager; + $templates = array(); + if ( $tplName ) { - $templates = Template::read($tplName); + $templates =& $manager->getTemplate($tplName); } - if ( array_key_exists('ADMIN_CUSTOMHELPLINK_ICON', $templates) && !empty($templates['ADMIN_CUSTOMHELPLINK_ICON']) ) + if ( !array_key_exists('ADMIN_CUSTOMHELPLINK_ICON', $templates) || !empty($templates['ADMIN_CUSTOMHELPLINK_ICON']) ) { - $template = $templates['ADMIN_CUSTOMHELPLINK_ICON']; + $template = "\" <%width%><%height%>alt=\"<%alt%>\" title=\"<%title%>\" />\n"; } else { - $template = '<%height%>alt="<%alt%>" title="<%title%>" />'; + $template = $templates['ADMIN_CUSTOMHELPLINK_ICON']; } if ( empty($iconURL) ) { - global $CONF; $iconURL = $CONF['AdminURL'] . 'documentation/icon-help.gif'; } + if ( function_exists('getimagesize') ) { $size = getimagesize($iconURL); $width = 'width="' . $size[0] . '" '; $height = 'height="' . $size[1] . '" '; } + $data = array( 'iconurl' => $iconURL, 'width' => $width, @@ -5044,105 +5044,443 @@ class AdminActions extends BaseActions 'alt' => (isset($alt) && !empty($alt)) ? $alt : _HELP_TT, 'title' => (isset($title) && !empty($title)) ? $title : _HELP_TT, ); - $icon = TEMPLATE::fill($template, $data); - $help = self::customHelplink($id, $tplName, $url, $title, $onclick); + + $icon = Template::fill($template, $data); + $help = $this->customHelplink($id, $tplName, $url, $title, $onclick); + return $help . $icon; } /** - * AdminActions::input_yesno - * - * @param $name - * @param $checkedval - * @param $tabindex - * @param $value1 - * @param $value2 - * @param $yesval - * @param $noval - * @param $isAdmin - * @param $templateName - * @param $showlist - */ - private function input_yesno($name, - $checkedval, - $tabindex = 0, - $value1 = 1, - $value2 = 0, - $yesval = _YES, - $noval = _NO, - $isAdmin = 0, - $templateName = '', - $showlist = false) + * AdminActions::existsNewPlugin() + * Check exists new plugin + * + * @param void + * @return boolean exists or not + */ + private function existsNewPlugin() { - $templates = array(); - if ( $templateName ) + global $DIR_PLUGINS; + + $query = "SELECT * FROM %s;"; + $query = sprintf($query, sql_table('plugin')); + $res = DB::getResult($query); + + $installed = array(); + foreach( $res as $row ) { - $templates = Template::read($templateName); + $installed[] = $row['pfile']; } - if ( $name == 'admin' ) + $files = scandir($DIR_PLUGINS); + + $candidates = array(); + foreach ( $files as $file ) { - if ( array_key_exists('INPUTYESNO_TEMPLATE_ADMIN', $templates) && !empty($templates['INPUTYESNO_TEMPLATE_ADMIN']) ) + if ( preg_match("#^(NP_.*)\.php$#", $file, $matches) ) + { + if ( !in_array($matches[1], $installed) ) + { + $candidates[] = preg_replace("#^NP_#", "", $matches[1]); + } + } + } + $this->newPlugCandidates = $candidates; + return (count($candidates) > 0); + } + + /** + * AdminActions::pagehead() + * Output admin page head + * + * @param void + * @return void + */ + public function parse_pagehead() + { + global $member, $nucleus, $CONF, $manager; + + $extrahead = Admin::getAdminextrahead(); + $data = array( + 'extrahead' => &$extrahead, + 'action' => Admin::getAdminAction() + ); + $manager->notify('AdminPrePageHead', $data); + + $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()); + $xml_version_info = self::$xml_version_info; + $formal_public_identifier = self::$formal_public_identifier; + $system_identifier = self::$system_identifier; + $xhtml_namespace = self::$xhtml_namespace; + + echo "\n"; + echo "\n"; + echo "<{$root_element} xmlns=\"{$xhtml_namespace}\" xml:lang=\"{$locale}\" lang=\"{$locale}\">\n"; + echo "\n"; + echo '' . Entity::hsc($CONF['SiteName']) . " - Admin\n"; + /* + * TODO: obsoleted + echo "\n"; + */ + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "{$extrahead}\n"; + echo "\n\n"; + echo "\n"; + echo "
    \n"; + echo "
    \n"; + echo '

    ' . Entity::hsc($CONF['SiteName']) . "

    \n"; + echo "
    \n"; + echo "
    \n"; + echo "
    \n"; + echo "
    \n"; + + if ( !$member->isLoggedIn() ) + { + echo '' . _NOTLOGGEDIN . "
    \n"; + } + else + { + echo _LOGGEDINAS . ' ' . $member->getDisplayName() ." - " . _LOGOUT. "
    \n"; + echo "" . _ADMINHOME . " - "; + } + + echo ""._YOURSITE."
    \n"; + echo '('; + + if ( !array_key_exists('codename', $nucleus) || empty($nucleus['codename']) ) { - $template = $templates['INPUTYESNO_TEMPLATE_ADMIN']; + $codenamestring = ''; + } + else + { + $codenamestring = ' "' . $nucleus['codename'].'"'; + } + + if ( $member->isLoggedIn() && $member->isAdmin() ) + { + $checkURL = sprintf(_ADMIN_SYSTEMOVERVIEW_VERSIONCHECK_URL, getNucleusVersion(), getNucleusPatchLevel()); + echo 'Nucleus CMS ' . $nucleus['version'] . $codenamestring . ''; + + $newestVersion = getLatestVersion(); + $newestCompare = str_replace('/', '.', $newestVersion); + $currentVersion = str_replace(array('/','v'), array('.',''), $nucleus['version']); + + if ( $newestVersion && version_compare($newestCompare, $currentVersion) > 0 ) + { + echo "
    \n"; + echo ''; + echo _ADMIN_SYSTEMOVERVIEW_LATESTVERSION_TEXT . $newestVersion; + echo ""; + } } else { - $template = ' id="<%yesid%>" />' . "\n" - . '' . "\n" - . ' id="<%noid%>"<%disabled%> />' . "\n" - . '' . "\n"; + echo "Nucleus CMS {$nucleus['version']}{$codenamestring}"; } + echo ')'; + echo '
    '; } else { - if ( array_key_exists('INPUTYESNO_TEMPLATE_NORMAL', $templates) && !empty($templates['INPUTYESNO_TEMPLATE_NORMAL']) ) + $this->parser->parse($content); + } + + return; + } + + /** + * AdminActionss::pagefoot() + * Output admin page foot include quickmenu + * + * @param void + * @return void + */ + public function parse_pagefoot() + { + global $action, $member, $manager, $blogid; + + $data = array( + 'action' => Admin::getAdminAction() + ); + $manager->notify('AdminPrePageFoot', $data); + + $content = $this->parser->skin->getContentFromDB('pagefoot'); + if ( !$content ) + { + if ( $member->isLoggedIn() && ($action != 'showlogin') ) { - $template = $templates['INPUTYESNO_TEMPLATE_NORMAL']; + echo '

    ' . _LOGOUT . "

    \n"; + echo "\n"; } - if ( $showlist ) + + echo "
    \n"; + echo 'Nucleus CMS © 2002-' . date('Y') . ' ' . _ADMINPAGEFOOT_COPYRIGHT; + echo '-'; + echo '' . _ADMINPAGEFOOT_DONATE . "\n"; + echo "
    \n"; + + echo "
    \n"; + + if ( ($action != 'showlogin') && ($member->isLoggedIn()) ) { - if ( array_key_exists('SHOWLIST_LISTPLUG_TABLE_PLGOPT_OYESNO', $templates) && !empty($templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OYESNO']) ) + echo "\n"; + + echo '

    ' . _QMENU_ADD . "

    \n"; + echo "
    \n"; + echo "

    \n"; + echo "\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 "

    \n"; + echo "
    \n"; + + echo "

    {$member->getDisplayName()}

    \n"; + echo "\n"; + + if ( $member->isAdmin() ) + { + echo '

    ' . _QMENU_MANAGE . "

    \n"; + echo "\n"; + + echo "

    " . _QMENU_LAYOUT . "

    \n"; + echo "\n"; + } + + $data = array('options' => array()); + $manager->notify('QuickMenu', $data); + + if ( count($data['options']) > 0 ) { - $template = $templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OYESNO']; + echo "

    " . _QMENU_PLUGINS . "

    \n"; + echo "\n"; } } - if ( !isset($template) ) + else if ( ($action == 'activate') || ($action == 'activatesetpwd') ) + { + + echo '

    ' . _QMENU_ACTIVATE . '

    ' . _QMENU_ACTIVATE_TEXT; + } + else { - $template = ' id="<%yesid%>" />' . "\n" - . '' . "\n" - . ' id="<%noid%>"<%disabled%> />' . "\n" - . '' . "\n"; + echo '

    ' . _QMENU_INTRO . '

    ' . _QMENU_INTRO_TEXT; } + + echo "\n"; + echo "
    \n"; + + echo "\n"; + echo "
    \n"; + + echo "\n"; + echo "
    \n"; + + echo "\n"; + echo "
    \n"; + + echo "\n"; + echo "\n"; } + else + { + $this->parser->parse($content); + exit; + } + + return; + } + /** + * AdminActions::selectBlog() + * Inserts a HTML select element with choices for all blogs to which the user has access + * mode = 'blog' => shows blognames and values are blogids + * mode = 'category' => show category names and values are catids + * + * @param string $name + * @param string $mode + * @param integer $selected + * @param integer $tabindex + * @param integer $showNewCat + * @param integer $iForcedBlogInclude ID for weblog always included + * @param $iForcedBlogInclude + * ID of a blog that always needs to be included, without checking if the + * member is on the blog team (-1 = none) + * @return void + */ + private function selectBlog($name, $mode='blog', $selected = 0, $tabindex = 0, $showNewCat = 0, $iForcedBlogInclude = -1) + { + global $member, $CONF; - //echo $template; - $id = Entity::hsc($name); - $id = str_replace('[', '-', $id); - $id = str_replace(']', '-', $id); - $id1 = $id . Entity::hsc($value1); - $id2 = $id . Entity::hsc($value2); - $dat = array( - 'name' => Entity::hsc($name), - 'yesval' => Entity::hsc($value1), - 'noval' => Entity::hsc($value2), - 'yesid' => $id1, - 'noid' => $id2, - 'yesvaltext' => $yesval, - 'novaltext' => $noval, - 'yescheckedval' => ($checkedval == $value1) ? ' checked="checked" tabindex="' . $tabindex . '"': '', - 'nocheckedval' => ($checkedval != $value1) ? ' checked="checked" tabindex="' . $tabindex . '"': '', - 'disabled' => ($isAdmin && $name == 'canlogin') ? ' disabled="disabled"' : '', - ); + // 0. get IDs of blogs to which member can post items (+ forced blog) + $aBlogIds = array(); + if ( $iForcedBlogInclude != -1 ) + { + $aBlogIds[] = intval($iForcedBlogInclude); + } - if ( $showlist ) + if ( $member->isAdmin() && array_key_exists('ShowAllBlogs', $CONF) && $CONF['ShowAllBlogs'] ) { - return Template::fill($template, $dat); + $query = "SELECT bnumber FROM %s ORDER BY bname;"; + $query = sprintf($query, sql_table('blog')); } else { - echo TEMPLATE::fill($template, $dat); + $query = "SELECT bnumber FROM %s, %s WHERE tblog=bnumber AND tmember=%d;"; + $query = sprintf($query, sql_table('blog'), sql_table('team'), (integer) $member->getID()); + } + + $rblogids = DB::getResult($query); + foreach ( $rblogids as $row ) + { + if ( $row['bnumber'] != $iForcedBlogInclude ) + { + $aBlogIds[] = intval($row['bnumber']); + } } + + if ( count($aBlogIds) == 0 ) + { + return; + } + + echo "\n"; return; } }