return;\r
}\r
\r
-}
\ No newline at end of file
+ /**\r
+ * Actions::parse_commentnavlist()\r
+ * Parse skinvar commentnavlist\r
+ * \r
+ * @param void\r
+ * @return void\r
+ */\r
+ public function parse_commentnavlist()\r
+ {\r
+ global $CONF, $manager, $member;\r
+ \r
+ // start index\r
+ if ( postVar('start') )\r
+ {\r
+ $start = intPostVar('start');\r
+ }\r
+ else\r
+ {\r
+ $start = 0;\r
+ }\r
+ \r
+ // amount of items to show\r
+ if ( postVar('amount') )\r
+ {\r
+ $amount = intPostVar('amount');\r
+ }\r
+ else\r
+ {\r
+ $amount = (integer) $CONF['DefaultListSize'];\r
+ if ( $amount < 1 )\r
+ {\r
+ $amount = 10;\r
+ }\r
+ }\r
+ $query = 'SELECT cbody, cuser, cmail, cemail, mname, ctime, chost, cnumber, cip, citem '\r
+ . 'FROM %s '\r
+ . 'LEFT OUTER JOIN %s ON mnumber=cmember '\r
+ . 'WHERE ';\r
+ $query = sprintf($query, sql_table('comment'), sql_table('member'));\r
+ \r
+ if ( $this->skintype == 'itemcommentlist' )\r
+ {\r
+ $itemid = intRequestVar('itemid');\r
+ $query .= " citem={$itemid}";\r
+ $template['canAddBan'] = $member->blogAdminRights(intRequestVar('blogid'));\r
+ $bid = 0;\r
+ $nonComments = _NOCOMMENTS;\r
+ }\r
+ elseif ( $this->skintype == 'browseowncomments' )\r
+ {\r
+ $itemid = 0;\r
+ $query .= ' cmember=' . $member->getID();\r
+ $template['canAddBan'] = 0;\r
+ $bid = 0;\r
+ $nonComments = _NOCOMMENTS_YOUR;\r
+ }\r
+ elseif ( $this->skintype == 'blogcommentlist' )\r
+ {\r
+ $itemid = 0;\r
+ $query .= ' cblog=' . intRequestVar('blogid');\r
+ $template['canAddBan'] = $member->blogAdminRights(intRequestVar('blogid'));\r
+ $bid = intRequestVar('blogid');\r
+ $nonComments = _NOCOMMENTS_BLOG;\r
+ }\r
+ \r
+ $search = postVar('search');\r
+ if ( !empty($search) )\r
+ {\r
+ $query .= ' and cbody LIKE "%' . sql_real_escape_string($search) . '%"';\r
+ }\r
+ \r
+ $query .= " ORDER BY ctime ASC LIMIT {$start},{$amount}";\r
+ \r
+ $template['content'] = 'commentlist';\r
+ \r
+ $navList = new skinableNAVLIST($this->skintype, $start, $amount, 0, 1000, $bid, $search, $itemid);\r
+ $navList->showBatchList('comment', $query, 'table', $template, $nonComments);\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_configsettingsedit()\r
+ * Parse skinvar configsettingsedit\r
+ * \r
+ * @param string $type type of global configuration\r
+ * @return void\r
+ */\r
+ public function parse_configsettingsedit($type)\r
+ {\r
+ global $CONF;\r
+ switch ( $type )\r
+ {\r
+ case 'DefaultListSize':\r
+ if ( !array_key_exists('DefaultListSize', $CONF) )\r
+ {\r
+ $query = "INSERT INTO %s VALUES (DefaultListSize, 10);";\r
+ $query = sprintf($query, sql_table('config'));\r
+ sql_query($query);\r
+ $CONF['DefaultListSize'] = 10;\r
+ }\r
+ elseif ( intval($CONF['DefaultListSize']) < 1 )\r
+ {\r
+ $CONF['DefaultListSize'] = 10;\r
+ }\r
+ echo intval($CONF['DefaultListSize']);\r
+ break;\r
+ case 'SessionCookie':\r
+ $value = $CONF['SessionCookie'];\r
+ $txt1 = _SETTINGS_COOKIESESSION;\r
+ $txt2 = _SETTINGS_COOKIEMONTH;\r
+ $this->parse_inputyesno('SessionCookie', $value, 10190, 1, 0, $txt1, $txt2);\r
+ break;\r
+ case 'URLMode':\r
+ $value = $CONF['URLMode'];\r
+ $txt1 = _SETTINGS_URLMODE_NORMAL;\r
+ $txt2 = _SETTINGS_URLMODE_PATHINFO;\r
+ $this->parse_inputyesno('URLMode', $value, 10077, 'normal', 'pathinfo', $txt1, $txt2);\r
+ break;\r
+ default:\r
+ if ( array_key_exists($type, $CONF) && is_string($CONF[$type]) )\r
+ {\r
+ echo Entity::hsc($CONF[$type]);\r
+ }\r
+ break;\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_configsettingsyesno()\r
+ * Parse skinvar configsettingsyesno\r
+ * \r
+ * @param string $type type of global setting\r
+ * @param integer $tabindex tabindex attribute of input element\r
+ * @return void\r
+ */\r
+ function parse_configsettingsyesno($type, $tabindex)\r
+ {\r
+ global $CONF;\r
+ if ( array_key_exists($type, $CONF) )\r
+ {\r
+ $this->parse_inputyesno($type, $CONF[$type], $tabindex);\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_customhelplink()\r
+ * Parse skinvar customhelplink\r
+ * \r
+ * @param string $topic name of topic\r
+ * @param string $tplName name of template\r
+ * @param string $url string as URI\r
+ * @param string $iconURL string as URI for icon\r
+ * @param string $alt alternative text for image element\r
+ * @param string $title title for anchor element\r
+ * @return void\r
+ */\r
+ public function parse_customhelplink($topic, $tplName = '', $url = '', $iconURL = '', $alt = '', $title = '', $onclick = '')\r
+ {\r
+ $this->customHelp($topic, $url, $iconURL);\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_date()\r
+ * Parse skinvar date\r
+ */\r
+ public function parse_date($format = 'c')\r
+ {\r
+ global $CONF, $manager;\r
+ echo i18n::formatted_datetime($format, time(), 'iso8601', $manager->getBlog((integer) $CONF['DefaultBlog']));\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_defaultadminskintypes()\r
+ * Parse skinvar defaultadminskintypes\r
+ * \r
+ * @param string $tabindex index number for tabindex attribute of input element\r
+ * @param string $templateName name of template\r
+ * @return void\r
+ */\r
+ public function parse_defaultadminskintypes($tabindex, $templateName = '')\r
+ {\r
+ $templates = array();\r
+ if ( $templateName )\r
+ {\r
+ $templates = skinableTEMPLATE::read($templateName);\r
+ }\r
+ \r
+ $types = skinableSKIN::getAdminskinDefaultTypeFriendlyNames();\r
+ ksort($types);\r
+ \r
+ if ( array_key_exists('ADMINSKINTYPELIST_HEAD', $templates) && !empty($templates['ADMINSKINTYPELIST_HEAD']) )\r
+ {\r
+ $template['head'] = $templates['ADMINSKINTYPELIST_HEAD'];\r
+ }\r
+ else\r
+ {\r
+ $template['head'] = "<ul>\n";\r
+ }\r
+ \r
+ echo $template['head'];\r
+ \r
+ if ( array_key_exists('ADMINSKINTYPELIST_BODY', $templates) && !empty($templates['ADMINSKINTYPELIST_BODY']) )\r
+ {\r
+ $template['body'] = $templates['ADMINSKINTYPELIST_BODY'];\r
+ }\r
+ else\r
+ {\r
+ $template['body'] = '<li><a tabindex="<%tabindex%>" href="index.php?action=adminskinedittype&skinid=<%skinid%>&type=<%skintype%>">'\r
+ . "<%name%></a> <%help%></li>\n";\r
+ }\r
+ $handler = new skinableACTIONS('template', $template, new ADMIN);\r
+ $parser = new PARSER(skinableACTIONS::getDefinedActions(), $handler);\r
+ \r
+ foreach ( $types as $type => $fName )\r
+ {\r
+ $helplink = $this->customHelpHtml('skinpart' . $type, $templateName);\r
+ $data = array(\r
+ 'tabindex' => $tabindex,\r
+ 'skintype' => $type,\r
+ 'name' => $fName,\r
+ 'help' => $helplink,\r
+ 'skinid' => intrequestVar('skinid'),\r
+ );\r
+ $templateBody = skinableTEMPLATE::fill($template['body'], $data);\r
+ $parser->parse($templateBody);\r
+ $tabindex++;\r
+ }\r
+ if ( array_key_exists('ADMINSKINTYPELIST_FOOT', $templates) && !empty($templates['ADMINSKINTYPELIST_FOOT']) )\r
+ {\r
+ $template['foot'] = $templates['ADMINSKINTYPELIST_FOOT'];\r
+ }\r
+ else\r
+ {\r
+ $template['foot'] = " </ul>\n";\r
+ }\r
+ echo $template['foot'];\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_defblogselect()\r
+ * Parse skinvar defblogselect\r
+ * \r
+ * @param string $templateName name of template\r
+ * @return void\r
+ */\r
+ public function parse_defblogselect($templateName = '')\r
+ {\r
+ global $CONF;\r
+ $query = "SELECT bname as text, bnumber as value FROM %s;";\r
+ $query = sprintf($query, sql_table('blog'));\r
+ $template['name'] = 'DefaultBlog';\r
+ $template['selected'] = $CONF['DefaultBlog'];\r
+ $template['tabindex'] = 10;\r
+ skinableShowlist($query, 'select', $template, $templateName);\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_defcatselect()\r
+ * Parse skinvar defcatselect\r
+ * \r
+ * @param string $templateName name of template\r
+ * @return void\r
+ */\r
+ public function parse_defcatselect($templateName = '')\r
+ {\r
+ global $manager;\r
+ $blogid = intRequestVar('blogid');\r
+ $blog = $manager->getBlog($blogid);\r
+ $query = "SELECT cname as text, catid as value FROM %s WHERE cblog=%d;";\r
+ $query = sprintf($query, sql_table('category'), (integer) $blog->getID());\r
+ $template['name'] = 'defcat';\r
+ $template['selected'] = $blog->getDefaultCategory();\r
+ $template['tabindex'] = 110;\r
+ skinableShowlist($query, 'select', $template, $templateName);\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_defskinselect()\r
+ * Parse skinvar defskinselect\r
+ * \r
+ * @param string $type type of skin\r
+ * @param string $templateName name of template\r
+ * @return void\r
+ */\r
+ public function parse_defskinselect($type = 'blog', $templateName = '')\r
+ {\r
+ global $manager;\r
+ $query = "SELECT sdname as text, sdnumber as value FROM %s;";\r
+ $query = sprintf($query, sql_table('skin_desc'));\r
+ \r
+ $blogid = intRequestVar('blogid');\r
+ \r
+ if ( !$blogid )\r
+ {\r
+ global $CONF;\r
+ $template['selected'] = $CONF['BaseSkin'];\r
+ }\r
+ else\r
+ {\r
+ $blog = $manager->getBlog($blogid);\r
+ $template['selected'] = $blog->getDefaultSkin();\r
+ }\r
+ \r
+ if ( $type != 'blog' )\r
+ {\r
+ $nname = 'BaseSkin';\r
+ }\r
+ else\r
+ {\r
+ $nname = 'defskin';\r
+ }\r
+ \r
+ $template['name'] = $nname;\r
+ $template['tabindex'] = 50;\r
+ skinableShowlist($query, 'select', $template, $templateName);\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_deleteitembody()\r
+ * Parse skinvar deleteitembody\r
+ * \r
+ * @param void\r
+ * @return void\r
+ */\r
+ public function parse_deleteitembody()\r
+ {\r
+ global $manager;\r
+ $itemid = intRequestVar('itemid');\r
+ $item =& $manager->getItem($itemid, 1, 1);\r
+ $body = strip_tags($item['body']);\r
+ echo Entity::hsc(shorten($body, 300, '...'));\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_deleteitemid()\r
+ * Parse skinvar deleteitemid\r
+ * \r
+ * @param void\r
+ * @return void\r
+ */\r
+ public function parse_deleteitemid()\r
+ {\r
+ echo (integer) intRequestVar('itemid');\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_deleteitemtitle()\r
+ * Parse skinvar deleteitemtitle\r
+ * \r
+ * @param void\r
+ * @return void\r
+ */\r
+ public function parse_deleteitemtitle()\r
+ {\r
+ global $manager;\r
+ $itemid = intRequestVar('itemid');\r
+ $item =& $manager->getItem($itemid, 1, 1);\r
+ echo Entity::hsc(strip_tags($item['title']));\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_editadminskin()\r
+ * Parse skinvar editadminskin\r
+ * \r
+ * @param string $type type of skin setting\r
+ * @return void\r
+ */\r
+ public function parse_editadminskin($type = 'id')\r
+ {\r
+ $skinid = intRequestVar('skinid');\r
+ $skin = new skinableSKIN($skinid);\r
+ switch ( $type )\r
+ {\r
+ case 'id':\r
+ echo intRequestVar('skinid');\r
+ break;\r
+ case 'name':\r
+ echo Entity::hsc($skin->getName());\r
+ break;\r
+ case 'desc':\r
+ echo Entity::hsc($skin->getDescription());\r
+ break;\r
+ case 'type':\r
+ echo Entity::hsc($skin->getContentType());\r
+ break;\r
+ case 'prefix':\r
+ echo Entity::hsc($skin->getIncludePrefix());\r
+ break;\r
+ case 'mode':\r
+ $this->parse_inputyesno('inc_mode', $skin->getIncludeMode(), 120, 'skindir', 'normal', _PARSER_INCMODE_SKINDIR, _PARSER_INCMODE_NORMAL);\r
+ default:\r
+ break;\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_editadminskintype()\r
+ * Parse skinvar editadminskintype\r
+ * \r
+ * @param string $type name of skin type\r
+ * @return void\r
+ */\r
+ public function parse_editadminskintype($type = 'id')\r
+ {\r
+ global $CONF, $manager, $member;\r
+ $skinid = intRequestVar('skinid');\r
+ $skin = new skinableSKIN($skinid);\r
+ $fNames = skinableSKIN::getFriendlyNames();\r
+ $sType = strtolower(trim(requestVar('type')));\r
+ \r
+ switch ( $type )\r
+ {\r
+ case 'id':\r
+ echo intRequestVar('skinid');\r
+ break;\r
+ case 'name':\r
+ echo Entity::hsc($skin->getName());\r
+ break;\r
+ case 'desc':\r
+ echo Entity::hsc($skin->getDescription());\r
+ break;\r
+ case 'type':\r
+ echo Entity::hsc($skin->getContentType());\r
+ break;\r
+ case 'content':\r
+ echo Entity::hsc($skin->getContent($sType));\r
+ break;\r
+ case 'skintype':\r
+ $skinType = isset($fNames[$sType]) ? $fNames[$sType] : ucfirst($sType);\r
+ echo Entity::hsc($skinType);\r
+ break;\r
+ case 'skintyperaw':\r
+ echo Entity::hsc($sType);\r
+ break;\r
+ case 'prefix':\r
+ echo Entity::hsc($skin->getIncludePrefix());\r
+ break;\r
+ case 'mode':\r
+ $incMode = $skin->getIncludeMode() ? _PARSER_INCMODE_SKINDIR : _PARSER_INCMODE_NORMAL;\r
+ echo Entity::hsc($incMode);\r
+ break;\r
+ default:\r
+ break;\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_editadmintemplateinfo()\r
+ * Parse skinvar editadmintemplateinfo\r
+ * \r
+ * @param string $type type of skin template\r
+ * @param string $description description of template\r
+ * @param string $name name of stemplate\r
+ * @param string $tabindex index number for tabindex attribute of input element\r
+ * @param string $big \r
+ * @param string $tplt \r
+ */\r
+ function parse_editadmintemplateinfo($type, $description = '', $name = '', $help = '', $tabindex = 0, $big = 0, $tplt = '')\r
+ {\r
+ global $manager;\r
+ $templateid = intRequestVar('templateid');\r
+ $templatename = skinableTEMPLATE::getNameFromId($templateid);\r
+ $templatedescription = skinableTEMPLATE::getDesc($templateid);\r
+ $template =& skinableTEMPLATE::read($templatename);\r
+ switch ( $type )\r
+ {\r
+ case 'id':\r
+ echo intval($templateid);\r
+ break;\r
+ case 'name':\r
+ echo Entity::hsc($templatename);\r
+ break;\r
+ case 'desc':\r
+ echo Entity::hsc($templatedescription);\r
+ break;\r
+ case 'extratemplate':\r
+ $tabidx = 600;\r
+ $pluginfields = array();\r
+ $manager->notify(\r
+ 'AdminTemplateExtraFields',\r
+ array(\r
+ 'fields' => &$pluginfields\r
+ )\r
+ );\r
+ $tmplt = array();\r
+ if ( $description )\r
+ {\r
+ $tmplt = skinableTEMPLATE::read($description);\r
+ }\r
+ if ( array_key_exists('TEMPLATE_EDIT_EXPLUGNAME', $tmplt) && !empty($tmplt['TEMPLATE_EDIT_EXPLUGNAME']) )\r
+ {\r
+ $base = $tmplt['TEMPLATE_EDIT_EXPLUGNAME'];\r
+ }\r
+ else\r
+ {\r
+ $base = "</tr>\n"\r
+ . "<tr>\n"\r
+ . "\t" . '<th colspan="2"><%explugtplname%>' . "</th>\n";\r
+ }\r
+ foreach ( $pluginfields as $pfkey => $pfvalue )\r
+ {\r
+ $data = array(\r
+ 'explugtplname' => Entity::hsc($pfkey)\r
+ );\r
+ echo TEMPLATE::fill($base, $data);\r
+ foreach ( $pfvalue as $pffield => $pfdesc )\r
+ {\r
+ $this->_templateEditRow($template, $pfdesc, $pffield, '', ++$tabidx, 0, $name);\r
+ }\r
+ }\r
+ break;\r
+ default:\r
+ $desc = defined($description) ? constant($description) : $description;\r
+ $name = defined($name) ? constant($name) : $name;\r
+ $this->_templateEditRow($template, $desc, $name, $help, $tabindex, $big, $tplt);\r
+ break;\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_editcomment()\r
+ * Parse skinvar editcomment\r
+ * \r
+ * @param string $type type of comment setting\r
+ * @return void\r
+ */\r
+ public function parse_editcomment($type = 'id')\r
+ {\r
+ global $manager;\r
+ $commentid = intRequestVar('commentid');\r
+ $comment = COMMENT::getComment($commentid);\r
+ \r
+ $manager->notify('PrepareCommentForEdit', array('comment' => &$comment));\r
+ \r
+ switch ( $type )\r
+ {\r
+ case 'id':\r
+ echo intRequestVar('commentid');\r
+ break;\r
+ case 'user':\r
+ if (array_key_exists('member', $comment) && !empty($comment['member']) )\r
+ {\r
+ echo $comment['member'] . " (" . _EDITC_MEMBER . ")";\r
+ }\r
+ else\r
+ {\r
+ echo $comment['user'] . " (" . _EDITC_NONMEMBER . ")";\r
+ }\r
+ break;\r
+ case 'date':\r
+ echo date("Y-m-d @ H:i", $comment['timestamp']);\r
+ break;\r
+ case 'body':\r
+ $comment['body'] = str_replace('<br />', '', $comment['body']);\r
+ $comment['body'] = preg_replace("#<a href=['\"]([^'\"]+)['\"]( rel=\"nofollow\")?>[^<]*</a>#", "\\1", $comment['body']);\r
+ echo $comment['body'];\r
+ default:\r
+ echo $comment[$type];\r
+ break;\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_editdesturl()\r
+ * Parse skinvar editdesturl\r
+ */\r
+ public function parse_editdesturl()\r
+ {\r
+ if ( requestVar('desturl') )\r
+ {\r
+ echo Entity::hsc(requestVar('desturl'));\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_editmemberlist()\r
+ * Parse skinvar editmemberlist\r
+ * \r
+ * @param string $templateName name of template\r
+ * @return void\r
+ */\r
+ public function parse_editmemberlist($templateName = '')\r
+ {\r
+ global $manager;\r
+ // show list of members with actions\r
+ $query = 'SELECT * FROM '.sql_table('member');\r
+ $template['content'] = 'memberlist';\r
+ $template['tabindex'] = 10;\r
+ \r
+ $batch = new skinableBATCH('member');\r
+ $batch->showlist($query, 'table', $template, _LISTS_NOMORE, $templateName);\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_editmemberlist()\r
+ * Parse skinvar editmemberlist\r
+ * \r
+ * @param string $templateName name of template\r
+ * @return void\r
+ */\r
+ public function parse_editmemberlist($templateName = '')\r
+ {\r
+ global $manager;\r
+ // show list of members with actions\r
+ $query = 'SELECT * FROM '. sql_table('member');\r
+ $template['content'] = 'memberlist';\r
+ $template['tabindex'] = 10;\r
+ \r
+ $batch = new skinableBATCH('member');\r
+ $batch->showlist($query, 'table', $template, _LISTS_NOMORE, $templateName);\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_editpluginfo()\r
+ * Parse skinvar editpluginfo\r
+ * \r
+ * @param string $type type of plugin info\r
+ * @return void\r
+ */\r
+ public function parse_editpluginfo($type)\r
+ {\r
+ $pid = intRequestVar('plugid');\r
+ switch ( $type )\r
+ {\r
+ case 'id':\r
+ echo $pid;\r
+ break;\r
+ case 'name':\r
+ echo Entity::hsc(getPluginNameFromPid($pid));\r
+ break;\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_editplugoptionslist()\r
+ * Parse skinvar editplugoptionslist\r
+ * \r
+ * @param string $templateName name of template\r
+ * @return void\r
+ */\r
+ public function parse_editplugoptionslist($templateName = '')\r
+ {\r
+ global $manager;\r
+ \r
+ $pid = intRequestVar('plugid');\r
+ $aOptions = array();\r
+ $aOIDs = array();\r
+ \r
+ $query = "SELECT * FROM %s WHERE ocontext='global' AND opid=%d ORDER BY oid ASC";\r
+ $query = sprintf($query, sql_table('plugin_option_desc'), (integer) $pid);\r
+ $resource = sql_query($query);\r
+ \r
+ while ( $o = sql_fetch_object($resource) )\r
+ {\r
+ array_push($aOIDs, $o->oid);\r
+ $aOptions[$o->oid] = array(\r
+ \r
+ 'oid' => $o->oid,\r
+ 'value' => $o->odef,\r
+ 'name' => $o->oname,\r
+ 'description' => $o->odesc,\r
+ 'type' => $o->otype,\r
+ 'typeinfo' => $o->oextra,\r
+ 'contextid' => 0\r
+ );\r
+ }\r
+ \r
+ // fill out actual values\r
+ if ( count($aOIDs) > 0 )\r
+ {\r
+ $query = 'SELECT oid, ovalue FROM %s WHERE oid in (%s)';\r
+ $query = sprintf($query, sql_table('plugin_option'), implode(',', $aOIDs));\r
+ \r
+ $result = sql_query($query);\r
+ \r
+ while ( $o = sql_fetch_object($result) )\r
+ {\r
+ $aOptions[$o->oid]['value'] = $o->ovalue;\r
+ }\r
+ }\r
+ \r
+ // call plugins\r
+ $manager->notify(\r
+ 'PrePluginOptionsEdit',\r
+ array(\r
+ 'context' => 'global',\r
+ 'plugid' => $pid,\r
+ 'options' => &$aOptions\r
+ )\r
+ );\r
+ \r
+ $template['content'] = 'plugoptionlist';\r
+ $amount = skinableShowlist($aOptions, 'table', $template, $templateName);\r
+ if ( $amount == 0 )\r
+ {\r
+ echo '<p>' . _ERROR_NOPLUGOPTIONS . "</p>\n";\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_editskin()\r
+ * Parse skinvar editskin\r
+ * \r
+ * @param string $type type of skin\r
+ * @return void\r
+ */\r
+ public function parse_editskin($type = 'id')\r
+ {\r
+ $skinid = intRequestVar('skinid');\r
+ $skin = new SKIN($skinid);\r
+ switch ( $type )\r
+ {\r
+ case 'id':\r
+ echo intRequestVar('skinid');\r
+ break;\r
+ case 'name':\r
+ echo Entity::hsc($skin->getName());\r
+ break;\r
+ case 'desc':\r
+ echo Entity::hsc($skin->getDescription());\r
+ break;\r
+ case 'type':\r
+ echo Entity::hsc($skin->getContentType());\r
+ break;\r
+ case 'prefix':\r
+ echo Entity::hsc($skin->getIncludePrefix());\r
+ break;\r
+ case 'mode':\r
+ $this->parse_inputyesno('inc_mode', $skin->getIncludeMode(), 120, 'skindir', 'normal', _PARSER_INCMODE_SKINDIR, _PARSER_INCMODE_NORMAL);\r
+ default:\r
+ break;\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_editskintype()\r
+ * Parse skinvar editskintype\r
+ * \r
+ * @param string $type name of type for skin type\r
+ * @return void\r
+ */\r
+ function parse_editskintype($type = 'id')\r
+ {\r
+ global $CONF, $manager, $member;\r
+ $skinid = intRequestVar('skinid');\r
+ $skin = new SKIN($skinid);\r
+ $fNames = SKIN::getFriendlyNames();\r
+ $sType = strtolower(trim(requestVar('type')));\r
+ \r
+ switch ( $type )\r
+ {\r
+ case 'id':\r
+ echo intRequestVar('skinid');\r
+ break;\r
+ case 'name':\r
+ echo Entity::hsc($skin->getName());\r
+ break;\r
+ case 'desc':\r
+ echo Entity::hsc($skin->getDescription());\r
+ break;\r
+ case 'type':\r
+ echo Entity::hsc($skin->getContentType());\r
+ break;\r
+ case 'content':\r
+ echo Entity::hsc($skin->getContent($sType));\r
+ break;\r
+ case 'skintype':\r
+ $skinType = isset($fNames[$sType]) ? $fNames[$sType] : ucfirst($sType);\r
+ echo Entity::hsc($skinType);\r
+ break;\r
+ case 'skintyperaw':\r
+ echo Entity::hsc($sType);\r
+ break;\r
+ case 'prefix':\r
+ echo Entity::hsc($skin->getIncludePrefix());\r
+ break;\r
+ case 'mode':\r
+ $incMode = $skin->getIncludeMode() ? _PARSER_INCMODE_SKINDIR : _PARSER_INCMODE_NORMAL;\r
+ echo Entity::hsc($incMode);\r
+ break;\r
+ default:\r
+ break;\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_edittemplateinfo()\r
+ * Parse skinvar edittemplateinfo\r
+ * \r
+ * @param string $type name of type for skin\r
+ * @param string $description description for skin\r
+ * @param string $name name of skin\r
+ * @param string $help \r
+ * @param string $tabindex index value for tabindex attribute of input element\r
+ * @param string $big \r
+ * @param string $tplt name of template\r
+ */\r
+ public function parse_edittemplateinfo($type, $description = '', $name = '', $help = '', $tabindex = 0, $big = 0, $tplt = '')\r
+ {\r
+ global $manager;\r
+ $templateid = intRequestVar('templateid');\r
+ $templatename = TEMPLATE::getNameFromId($templateid);\r
+ $templatedescription = TEMPLATE::getDesc($templateid);\r
+ $template =& $manager->getTemplate($templatename);\r
+ switch ( $type )\r
+ {\r
+ case 'id':\r
+ echo intval($templateid);\r
+ break;\r
+ case 'name':\r
+ echo Entity::hsc($templatename);\r
+ break;\r
+ case 'desc':\r
+ echo Entity::hsc($templatedescription);\r
+ break;\r
+ case 'extratemplate':\r
+ $tabidx = 600;\r
+ $pluginfields = array();\r
+ $manager->notify(\r
+ 'TemplateExtraFields',\r
+ array(\r
+ 'fields' => &$pluginfields\r
+ )\r
+ );\r
+ $tmplt = array();\r
+ if ( $description )\r
+ {\r
+ $tmplt = skinableTEMPLATE::read($description);\r
+ }\r
+ if ( array_key_exists('TEMPLATE_EDIT_EXPLUGNAME', $tmplt) && !empty($tmplt['TEMPLATE_EDIT_EXPLUGNAME']) )\r
+ {\r
+ $base = $tmplt['TEMPLATE_EDIT_EXPLUGNAME'];\r
+ }\r
+ else\r
+ {\r
+ $base = "</tr><tr>\n"\r
+ . "\t" . '<th colspan="2"><%explugtplname%>' . "</th>\n";\r
+ }\r
+ foreach ( $pluginfields as $pfkey => $pfvalue )\r
+ {\r
+ $data = array(\r
+ 'explugtplname' => Entity::hsc($pfkey)\r
+ );\r
+ echo TEMPLATE::fill($base, $data);\r
+ foreach ( $pfvalue as $pffield => $pfdesc )\r
+ {\r
+ $this->_templateEditRow($template, $pfdesc, $pffield, '', ++$tabidx, 0, $name);\r
+ }\r
+ }\r
+ break;\r
+ default:\r
+ $desc = defined($description) ? constant($description) : $description;\r
+ $name = defined($name) ? constant($name) : $name;\r
+ $this->_templateEditRow($template, $desc, $name, $help, $tabindex, $big, $tplt);\r
+ break;\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_eventformextra()\r
+ * Parse skinvar eventformextra\r
+ * \r
+ * @param string $type name of type for event form extra\r
+ * @return void\r
+ */\r
+ public function parse_eventformextra($type = 'activation')\r
+ {\r
+ global $manager;\r
+ switch ( $type )\r
+ {\r
+ case 'activation':\r
+ $key = requestVar('ackey');\r
+ if ( !$key )\r
+ {\r
+ $this->objAdmin->error(_ERROR_ACTIVATE);\r
+ }\r
+ $info = MEMBER::getActivationInfo($key);\r
+ if ( !$info )\r
+ {\r
+ $this->objAdmin->error(_ERROR_ACTIVATE);\r
+ }\r
+ $mem = MEMBER::createFromId($info->vmember);\r
+ if ( !$mem )\r
+ {\r
+ $this->objAdmin->error(_ERROR_ACTIVATE);\r
+ }\r
+ $data = array(\r
+ 'type' => 'activation',\r
+ 'member' => $mem\r
+ );\r
+ break;\r
+ case 'membermailform-notloggedin':\r
+ $data = array(\r
+ 'type' => 'membermailform-notloggedin',\r
+ );\r
+ break;\r
+ }\r
+ $manager->notify('FormExtra', $data);\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_extrahead()\r
+ * Parse skinvar extrahead\r
+ */\r
+ public function parse_extrahead()\r
+ {\r
+ global $manager;\r
+ $extrahead = $this->objAdmin->extrahead;\r
+ $manager->notify(\r
+ 'AdminPrePageHead',\r
+ array(\r
+ 'extrahead' => &$extrahead,\r
+ 'action' => $this->objAdmin->action\r
+ )\r
+ );\r
+ echo $extrahead;\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_blogsetting()\r
+ * Parse skinvar blogsetting\r
+ * \r
+ * @param string $which name of setting for blog\r
+ * @return void\r
+ */\r
+ public function parse_blogsetting($which)\r
+ {\r
+ echo $this->parse_getblogsetting($which);\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_category()\r
+ * Parse skinvar category\r
+ * \r
+ * @param string $type name of setting for category\r
+ * @return void\r
+ */\r
+ public function parse_category($type = 'name')\r
+ {\r
+ echo $this->parse_getcategory($type);\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_geteditpluginfo()\r
+ * Parse skinvar geteditpluginfo\r
+ * \r
+ * @param string $type name of setting for edit plugin info\r
+ * @return void\r
+ */\r
+ public function parse_geteditpluginfo($type)\r
+ {\r
+ $pid = intRequestVar('plugid');\r
+ switch ( $type )\r
+ {\r
+ case 'id':\r
+ return $pid;\r
+ break;\r
+ case 'name':\r
+ return Entity::hsc(getPluginNameFromPid($pid));\r
+ break;\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_getmember()\r
+ * Parse skinvar getmember\r
+ * (includes a member info thingie)\r
+ * \r
+ * @param string $what name of setting for member\r
+ * @return void\r
+ */\r
+ public function parse_getmember($what)\r
+ {\r
+ global $memberinfo, $member;\r
+ // 1. only allow the member-details-page specific variables on member pages\r
+ if ( $this->skintype == 'member' )\r
+ {\r
+ switch ( $what )\r
+ {\r
+ case 'name':\r
+ return Entity::hsc($memberinfo->getDisplayName());\r
+ break;\r
+ case 'realname':\r
+ return Entity::hsc($memberinfo->getRealName());\r
+ break;\r
+ case 'notes':\r
+ return Entity::hsc($memberinfo->getNotes());\r
+ break;\r
+ case 'url':\r
+ return Entity::hsc($memberinfo->getURL());\r
+ break;\r
+ case 'email':\r
+ return Entity::hsc($memberinfo->getEmail());\r
+ break;\r
+ case 'id':\r
+ return Entity::hsc($memberinfo->getID());\r
+ break;\r
+ }\r
+ }\r
+ // 2. the next bunch of options is available everywhere, as long as the user is logged in\r
+ if ( $member->isLoggedIn() )\r
+ {\r
+ switch ( $what )\r
+ {\r
+ case 'yourname':\r
+ return $member->getDisplayName();\r
+ break;\r
+ case 'yourrealname':\r
+ return $member->getRealName();\r
+ break;\r
+ case 'yournotes':\r
+ return $member->getNotes();\r
+ break;\r
+ case 'yoururl':\r
+ return $member->getURL();\r
+ break;\r
+ case 'youremail':\r
+ return $member->getEmail();\r
+ break;\r
+ case 'yourid':\r
+ return $member->getID();\r
+ break;\r
+ }\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_headmessage()\r
+ * Parse skinvar headmessage\r
+ * \r
+ * @param void\r
+ * @return void\r
+ */\r
+ public function parse_headmessage()\r
+ {\r
+ if ( !empty($this->objAdmin->headMess) )\r
+ {\r
+ echo '<p>' . _MESSAGE . ': ' . Entity::hsc($this->objAdmin->headMess) . "</p>\n";\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_helplink()\r
+ * Parse skinvar helplink\r
+ * \r
+ * @param string $topic name of topic for help\r
+ * @return void\r
+ */\r
+ public function parse_helplink($topic = '')\r
+ {\r
+ if ( empty($topic) )\r
+ {\r
+ return;\r
+ }\r
+ help($topic);\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_helpplugname()\r
+ * Parse skinvar helpplugname\r
+ * \r
+ * @param void\r
+ * @return void\r
+ */\r
+ public function parse_helpplugname()\r
+ {\r
+ $plugid = intGetVar('plugid');\r
+ Entity::hsc(getPluginNameFromPid($plugid));\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_ilistaddnew()\r
+ * Parse skinvar ilistaddnew\r
+ * \r
+ * @param void\r
+ * @return void\r
+ */\r
+ public function parse_ilistaddnew()\r
+ {\r
+ $blogid = intRequestVar('blogid');\r
+ if ( intPostVar('start') == 0 )\r
+ {\r
+ echo '<p><a href="index.php?action=createitem&blogid=' . $blogid . '">' . _ITEMLIST_ADDNEW . "</a></p>\n";\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_importskininfo()\r
+ * Parse skinvar importskininfo\r
+ * \r
+ * @param string $type name of information for imported skin\r
+ * @return void\r
+ */\r
+ public function parse_importskininfo($type)\r
+ {\r
+ switch ( $type )\r
+ {\r
+ case 'info':\r
+ echo Entity::hsc(requestVar('skininfo'));\r
+ break;\r
+ case 'snames':\r
+ $dataArr = requestArray('skinnames');\r
+ echo implode(' <em>' . _AND . '</em> ', $dataArr);\r
+ break;\r
+ case 'tnames':\r
+ $dataArr = requestArray('tpltnames');\r
+ echo implode(' <em>' . _AND . '</em> ', $dataArr);\r
+ break;\r
+ case 'sclashes':\r
+ $dataArr = requestArray('skinclashes');\r
+ echo implode(' <em>' . _AND . '</em> ', $dataArr);\r
+ break;\r
+ case 'tclashes':\r
+ $dataArr = requestArray('tpltclashes');\r
+ echo implode(' <em>' . _AND . '</em> ', $dataArr);\r
+ break;\r
+ case 'skinfile':\r
+ echo Entity::hsc(requestVar('skinfile'));\r
+ break;\r
+ case 'mode':\r
+ echo Entity::hsc(requestVar('mode'));\r
+ break;\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_inputyesno()\r
+ * Parse skinvar inputyesno\r
+ * \r
+ * @param string $name \r
+ * @param string $checkedval \r
+ * @param string $tabindex \r
+ * @param string $value1 \r
+ * @param string $value2 \r
+ * @param string $yesval \r
+ * @param string $noval \r
+ * @param string $isAdmin \r
+ * @param string $templateName \r
+ * @return void\r
+ */\r
+ public function parse_inputyesno($name, $checkedval, $tabindex = 0, $value1 = 1, $value2 = 0, $yesval = _YES, $noval = _NO, $isAdmin = 0, $templateName = '')\r
+ {\r
+ self::input_yesno($name, $checkedval, $tabindex, $value1, $value2, $yesval, $noval, $isAdmin, $templateName );\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_insertpluginfo()\r
+ * Parse templatevar insertpluginfo\r
+ */\r
+ public function parse_insertpluginfo($type)\r
+ {\r
+ $option = $this->objAdmin;\r
+ switch ( $type )\r
+ {\r
+ case 'id':\r
+ return $option['pid'];\r
+ break;\r
+ case 'name':\r
+ return Entity::hsc($option['pfile']);\r
+ break;\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_insertpluginoptions()\r
+ * Parse skinvar insertpluginoptions\r
+ * \r
+ * @param string $templateName name of template\r
+ * @return void\r
+ */\r
+ public function parse_insertpluginoptions($templateName = '')\r
+ {\r
+ $options = $this->objAdmin->aOptions;\r
+ $template = array();\r
+ $templats = array();\r
+ \r
+ if ( $templateName )\r
+ {\r
+ $templates = skinableTEMPLATE::read($templateName);\r
+ }\r
+ if (array_key_exists('INSERT_PLUGOPTION_TITLE', $templates) && !empty($templates['INSERT_PLUGOPTION_TITLE']) )\r
+ {\r
+ $template['title'] = $templates['INSERT_PLUGOPTION_TITLE'];\r
+ }\r
+ else\r
+ {\r
+ $template['title'] = '<tr><th colspan="2"><%sprinttext(_PLUGIN_OPTIONS_TITLE, <|%insertpluginfo(name)%|>)%></th></tr>' . "\n";\r
+ }\r
+ if ( array_key_exists('INSERT_PLUGOPTION_BODY', $templates) && !empty($templates['INSERT_PLUGOPTION_BODY']) )\r
+ {\r
+ $template['body'] = $templates['INSERT_PLUGOPTION_BODY'];\r
+ }\r
+ else\r
+ {\r
+ $template['body'] = '<tr><%listplugplugoptionrow%></tr>' . "\n";\r
+ }\r
+ \r
+ $prevPid = -1;\r
+ \r
+ foreach ( $options as $option )\r
+ {\r
+ $handler = new skinableACTIONS($this->skintype, $template, $option);\r
+ $parser = new PARSER(skinableACTIONS::getDefinedActions(), $handler);\r
+ // new plugin?\r
+ if ( $prevPid != $option['pid'] )\r
+ {\r
+ $prevPid = $option['pid'];\r
+ $parser->parse($template['title']);\r
+ }\r
+ $meta = NucleusPlugin::getOptionMeta($option['typeinfo']);\r
+ if ( @$meta['access'] != 'hidden' )\r
+ {\r
+ $parsed = $parser->parse($template['body']);\r
+ }\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_insplugoptcontent()\r
+ * Parse skinvar insplugoptcontent\r
+ * \r
+ * @param void\r
+ * @return void\r
+ */\r
+ public function parse_insplugoptcontent()\r
+ {\r
+ $option = $this->objAdmin->aOption;\r
+ \r
+ $meta = NucleusPlugin::getOptionMeta($option['typeinfo']);\r
+ if (array_key_exists('access', $meta) && $meta['access'] != 'hidden')\r
+ {\r
+ echo '<tr>';\r
+ skinableListplug_plugOptionRow($option);\r
+ echo '</tr>';\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_iprangeinput()\r
+ * Parse skinvar iprangeinput\r
+ * \r
+ * @param void\r
+ * @return void\r
+ */\r
+ function parse_iprangeinput()\r
+ {\r
+ if ( requestVar('ip') )\r
+ {\r
+ $iprangeVal = Entity::hsc(requestVar('ip'));\r
+ echo '<input name="iprange" type="radio" value="' . $iprangeVal . '" checked="checked" id="ip_fixed" />' . "\n";\r
+ echo '<label for="ip_fixed">' . $iprangeVal . "</label><br />\n";\r
+ echo '<input name="iprange" type="radio" value="custom" id="ip_custom" />' . "\n";\r
+ echo '<label for="ip_custom">' . _BAN_IP_CUSTOM . '</label>' . "\n";\r
+ echo '<input name="customiprange" value="' . $iprangeVal . '" maxlength="15" size="15" />' . "\n";\r
+ }\r
+ else\r
+ {\r
+ echo '<input name="iprange" value="custom" type="hidden" />' . "\n";\r
+ echo '<input name="customiprange" value="" maxlength="15" size="15" />' . "\n";\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_itemnavlist()\r
+ * Parse skinvar itemnavlist\r
+ * \r
+ * @param void\r
+ * @return void\r
+ */\r
+ public function parse_itemnavlist()\r
+ {\r
+ global $CONF, $manager, $member;\r
+ if ( $this->skintype == 'itemlist' )\r
+ {\r
+ $blogid = intRequestVar('blogid');\r
+ $blog =& $manager->getBlog($blogid);\r
+ }\r
+ if ( postVar('start') )\r
+ {\r
+ $start = intPostVar('start');\r
+ }\r
+ else\r
+ {\r
+ $start = 0;\r
+ }\r
+ \r
+ // amount of items to show\r
+ if ( postVar('amount') )\r
+ {\r
+ $amount = intPostVar('amount');\r
+ }\r
+ else\r
+ {\r
+ $amount = intval($CONF['DefaultListSize']);\r
+ if ( $amount < 1 )\r
+ {\r
+ $amount = 10;\r
+ }\r
+ }\r
+ $query = "SELECT bshortname, cname, mname, ititle, ibody, inumber, idraft, itime"\r
+ . " FROM %s, %s, %s"\r
+ . " WHERE iblog=bnumber AND iauthor=mnumber AND icat=catid;";\r
+ \r
+ $query = sprintf($query, sql_table('item'), sql_table('blog'), sql_table('member'), sql_table('category'));\r
+ \r
+ if ( $this->skintype == 'itemlist' )\r
+ {\r
+ $query .= 'and iblog = ' . $blogid;\r
+ $template['now'] = $blog->getCorrectTime(time());\r
+ \r
+ // non-blog-admins can only edit/delete their own items\r
+ if ( !$member->blogAdminRights($blogid) )\r
+ {\r
+ $query .= ' and iauthor = ' . $member->getID();\r
+ }\r
+ }\r
+ elseif ( $this->skintype == 'browseownitems' )\r
+ {\r
+ $query .= 'and iauthor = ' . $member->getID();\r
+ $blogid = 0;\r
+ $template['now'] = time();\r
+ }\r
+ \r
+ // search through items\r
+ $search = postVar('search');\r
+ \r
+ if ( !empty($search) )\r
+ {\r
+ $query .= ' AND ((ititle LIKE "%' . sql_real_escape_string($search) . '%") '\r
+ . ' OR (ibody LIKE "%' . sql_real_escape_string($search) . '%") '\r
+ . ' OR (imore LIKE "%' . sql_real_escape_string($search) . '%"))';\r
+ }\r
+ $query .= ' ORDER BY itime DESC'\r
+ . " LIMIT {$start},{$amount}";\r
+ \r
+ $template['content'] = 'itemlist';\r
+ \r
+ $navList = new skinableNAVLIST($this->skintype, $start, $amount, 0, 1000, $blogid, $search, 0);\r
+ $navList->showBatchList('item', $query, 'table', $template);\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_jstoolbaroptions()\r
+ * Parse skinvar jstoolbaroptions\r
+ * \r
+ * @param void\r
+ * @return void\r
+ */\r
+ public function parse_jstoolbaroptions()\r
+ {\r
+ global $CONF;\r
+ $options = array(\r
+ _SETTINGS_JSTOOLBAR_NONE,\r
+ _SETTINGS_JSTOOLBAR_SIMPLE,\r
+ _SETTINGS_JSTOOLBAR_FULL\r
+ );\r
+ $i = 1;\r
+ foreach ( $options as $option )\r
+ {\r
+ $text = "<option value=\"%d\"%s>%s</option>\n";\r
+ $extra = ($CONF['DisableJsTools'] == $i) ? ' selected="selected"' : '';\r
+ echo sprintf($text, $i, $extra, $option);\r
+ $i++;\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_localeselectoptions()\r
+ * Parse skinvar localeselectoptions\r
+ * \r
+ * @param void\r
+ * @return void\r
+ */\r
+ public function parse_localeselectoptions()\r
+ {\r
+ $locales = i18n::get_available_locale_list();\r
+ $memid = intRequestVar('memberid');\r
+ if ( $memid )\r
+ {\r
+ $mem = MEMBER::createFromID($memid);\r
+ if ( !$mem->getLocale() || !in_array($mem->getLocale(), $locales) )\r
+ {\r
+ echo "<option value=\"\" selected=\"selected\">" . Entity::hsc(_MEMBERS_USESITELANG) . "</option>\n";\r
+ }\r
+ else\r
+ {\r
+ echo "<option value=\"\">" . Entity::hsc(_MEMBERS_USESITELANG) . "</option>\n";\r
+ }\r
+ }\r
+ else\r
+ {\r
+ if ( !i18n::get_current_locale() || !in_array(i18n::get_current_locale(), $locales) )\r
+ {\r
+ echo "<option value=\"\" selected=\"selected\">en_Latn_US</option>\n";\r
+ }\r
+ }\r
+ foreach ( $locales as $locale )\r
+ {\r
+ if ($memid)\r
+ {\r
+ if ( $locale == $mem->getLocale() )\r
+ {\r
+ echo "<option value=\"{$locale}\" selected=\"selected\">{$locale}</option>\n";\r
+ }\r
+ else\r
+ {\r
+ echo "<option value=\"{$locale}\">{$locale}</option>\n";\r
+ }\r
+ }\r
+ else\r
+ {\r
+ if ( $locale == i18n::get_current_locale() )\r
+ {\r
+ echo "<option value=\"{$locale}\" selected=\"selected\">{$locale}</option>\n";\r
+ }\r
+ else\r
+ {\r
+ echo "<option value=\"{$locale}\">{$locale}</option>\n";\r
+ }\r
+ }\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_listplugplugoptionrow()\r
+ * Parse templatevar listplugplugoptionrow\r
+ * \r
+ * @param string $templateName name of template\r
+ * @return void\r
+ */\r
+ public function parse_listplugplugoptionrow($templateName = '')\r
+ {\r
+ $option = $this->objAdmin;\r
+ echo skinableListplug_plugOptionRow($option, $templateName);\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_mediadirwarning()\r
+ * Parse skinvar mediadirwarning\r
+ * \r
+ * @param void\r
+ * @return void\r
+ */\r
+ public function parse_mediadirwarning()\r
+ {\r
+ global $DIR_MEDIA;\r
+ if ( !is_dir($DIR_MEDIA) )\r
+ {\r
+ echo "<br /><b>" . _WARNING_NOTADIR . "</b>\n";\r
+ }\r
+ if ( !is_readable($DIR_MEDIA) )\r
+ {\r
+ echo "<br /><b>" . _WARNING_NOTREADABLE . "</b>\n";\r
+ }\r
+ if ( !is_writeable($DIR_MEDIA) )\r
+ {\r
+ echo "<br /><b>" . _WARNING_NOTWRITABLE . "</b>\n";\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_movedistselect()\r
+ * Parse skinvar movedistselect\r
+ */\r
+ function parse_movedistselect()\r
+ {\r
+ $actionType = requestVar('action');\r
+ switch ( $actionType )\r
+ {\r
+ case 'batchitem':\r
+ $this->objAdmin->selectBlogCategory('destcatid');\r
+ break;\r
+ case 'batchcategory':\r
+ $this->objAdmin->selectBlog('destblogid');\r
+ break;\r
+ default:\r
+ if ( $this->skintype == 'itemmove' )\r
+ {\r
+ $query = "SELECT icat as result FROM %s WHERE inumber=%d;";\r
+ $query = spriintf($query, sql_table('item'), intRequestVar('itemid'));\r
+ $catid = quickQuery(sprintf($query, intRequestVar('itemid')));\r
+ $this->objAdmin->selectBlogCategory('catid', $catid, 10, 1);\r
+ }\r
+ break;\r
+ }\r
+ return;\r
+ }\r
+ \r
+ /**\r
+ * Actions::parse_moveitemid()\r
+ * Parse skinvar moveitemid\r
+ * \r
+ * @param void\r
+ * @return void\r
+ */\r
+ public function parse_moveitemid()\r
+ {\r
+ echo intRequestVar('itemid');\r
+ return;\r
+ }\r
+}\r