load(); // Class structure should be used after this and all the common task should be moved to this class require_once (KUNENA_PATH .DS. 'class.kunena.php'); require_once (KUNENA_PATH_ADMIN .DS. 'admin.kunena.html.php'); $kn_tables = CKunenaTables::getInstance(); if ($kn_tables->installed() === false) { $app->enqueueMessage(_KUNENA_ERROR_INCOMPLETE_ERROR, 'error'); $app->enqueueMessage(_KUNENA_ERROR_INCOMPLETE_OFFLINE, 'notice'); $app->enqueueMessage(_KUNENA_ERROR_INCOMPLETE_REASONS); $app->enqueueMessage(_KUNENA_ERROR_INCOMPLETE_1); $app->enqueueMessage(_KUNENA_ERROR_INCOMPLETE_2); $app->enqueueMessage(_KUNENA_ERROR_INCOMPLETE_3); $app->enqueueMessage(_KUNENA_ERROR_INCOMPLETE_SUPPORT.' www.kunena.com'); html_Kunena::showFbFooter(); return; } $cid = JRequest::getVar('cid', array ( 0 )); if (!is_array($cid)) { $cid = array ( 0 ); } $uid = JRequest::getVar('uid', array ( 0 )); if (!is_array($uid)) { $uid = array ( $uid ); } // ERROR: global scope mix global $order; $order = JRequest::getVar('order', ''); // initialise some request directives (specifically for J1.5 compatibility) $no_html = intval(JRequest::getVar('no_html', 0)); $id = intval(JRequest::getVar('id', 0)); $pt_stop = "0"; if (!$no_html) { html_Kunena::showFbHeader(); } $option = JRequest::getCmd('option'); switch ($task) { case "new": editForum(0, $option); break; case "edit": editForum($cid[0], $option); break; case "edit2": editForum($uid[0], $option); break; case "save": saveForum ($option); break; case "cancel": cancelForum ($option); break; case "publish": publishForum($cid, 1, $option); break; case "unpublish": publishForum($cid, 0, $option); break; case "remove": deleteForum($cid, $option); break; case "orderup": orderForum($cid[0], -1, $option); break; case "orderdown": orderForum($cid[0], 1, $option); break; case "showconfig": showConfig ($option); break; case "saveconfig": saveConfig ($option); break; case "newmoderator": newModerator($option, $id); break; case "addmoderator": addModerator($option, $id, $cid, 1); break; case "removemoderator": addModerator($option, $id, $cid, 0); break; case "showprofiles": showProfiles($kunena_db, $option, $lang, $order); break; case "profiles": showProfiles($kunena_db, $option, $lang, $order); break; case "userprofile": editUserProfile($uid); break; case "showinstructions": showInstructions($kunena_db, $option, $lang); break; case "showCss": showCss ($option); break; case "saveeditcss": $file =JRequest::getVar( 'file', 1); $csscontent = JRequest::getVar( 'csscontent', 1); saveCss($file, $csscontent, $option); break; case "instructions": showInstructions($kunena_db, $option, $lang); break; case "saveuserprofile": saveUserProfile ($option); break; case "upgradetables": upgradeTables ($option); break; case "pruneforum": pruneforum($kunena_db, $option); break; case "doprune": doprune($kunena_db, $option); break; case "douserssync": douserssync($kunena_db, $option); break; case "syncusers": syncusers($kunena_db, $option); break; case "browseImages": browseUploaded($kunena_db, $option, 1); break; case "browseFiles": browseUploaded($kunena_db, $option, 0); break; case "replaceImage": replaceImage($kunena_db, $option, JRequest::getVar('img', ''), JRequest::getInt('OxP', 1)); break; case "deleteFile": deleteFile($kunena_db, $option, JRequest::getVar('fileName', '')); break; case "showAdministration": showAdministration ($option); break; case 'recount': CKunenaTools::reCountUserPosts(); CKunenaTools::reCountBoards(); // Also reset the name info stored with messages //CKunenaTools::updateNameInfo(); $app->redirect( JURI::base() .'index.php?option=com_kunena', _KUNENA_RECOUNTFORUMS_DONE); break; case "showsmilies": showsmilies($option); break; case "editsmiley": editsmiley($option, $cid[0]); break; case "savesmiley": savesmiley($option, $id); break; case "deletesmiley": deletesmiley($option, $cid); break; case "newsmiley": newsmiley($option); break; case 'ranks': showRanks($option); break; case "editRank": editRank($option, $cid[0]); break; case "saveRank": saveRank($option, $id); break; case "deleteRank": deleteRank($option, $cid); break; case "newRank": newRank($option); break; case 'cpanel': default: html_Kunena::controlPanel(); break; } $kn_version = CKunenaVersion::versionArray(); if ($kn_version->versionname == '@kunenaversionname@') { $kn_version_name = _KUNENA_VERSION_SVN; $kn_version_warning = _KUNENA_VERSION_SVN_WARNING; } else if ($kn_version->versionname == 'NOT UPGRADED') { $app->enqueueMessage(sprintf(_KUNENA_ERROR_UPGRADE, $kn_version->version), 'notice'); $app->enqueueMessage(_KUNENA_ERROR_UPGRADE_WARN); $app->enqueueMessage(sprintf(_KUNENA_ERROR_UPGRADE_AGAIN, $kn_version->version)); $app->enqueueMessage(_KUNENA_ERROR_INCOMPLETE_SUPPORT.' www.kunena.com'); } if (strpos($kn_version->version, 'RC') !== false) { $kn_version_name = _KUNENA_VERSION_RC; $kn_version_warning = _KUNENA_VERSION_RC_WARNING; } else if (strpos($kn_version->version, 'BETA') !== false) { $kn_version_name = _KUNENA_VERSION_BETA; $kn_version_warning = _KUNENA_VERSION_BETA_WARNING; } else if (strpos($kn_version->version, 'ALPHA') !== false) { $kn_version_name = _KUNENA_VERSION_ALPHA; $kn_version_warning = _KUNENA_VERSION_ALPHA_WARNING; } else if (strpos($kn_version->version, 'DEV') !== false) { $kn_version_name = _KUNENA_VERSION_DEV; $kn_version_warning = _KUNENA_VERSION_DEV_WARNING; } if (!empty($kn_version_warning)) { $app->enqueueMessage(sprintf(_KUNENA_VERSION_INSTALLED, $kn_version->version, $kn_version_name).' '.$kn_version_warning, 'notice'); } // Detect errors in CB integration if (is_object($kunenaProfile)) { $kunenaProfile->enqueueErrors(); //$kunenaProfile->close(); } html_Kunena::showFbFooter(); function showAdministration($option) { $app =& JFactory::getApplication(); $kunena_db = &JFactory::getDBO(); $limit = $app->getUserStateFromRequest("global.list.limit", 'limit', $app->getCfg('list_limit'), 'int'); $limitstart = $app->getUserStateFromRequest("{$option}.limitstart", 'limitstart', 0, 'int'); $levellimit = $app->getUserStateFromRequest("{$option}.limit", 'levellimit', 10, 'int'); /* * danial */ $kunena_db->setQuery("SELECT a.*, a.name AS category, u.name AS editor, g.name AS groupname, h.name AS admingroup" . "\nFROM #__fb_categories AS a" . "\nLEFT JOIN #__users AS u ON u.id = a.checked_out" . "\nLEFT JOIN #__core_acl_aro_groups AS g ON g.id = a.pub_access" . "\nLEFT JOIN #__core_acl_aro_groups AS h ON h.id = a.admin_access" . "\n GROUP BY a.id" . "\n ORDER BY a.ordering, a.name"); $rows = $kunena_db->loadObjectList(); check_dberror("Unable to load categories."); // establish the hierarchy of the categories $children = array (); // first pass - collect children foreach ($rows as $v) { $pt = $v->parent; $list = isset($children[$pt]) ? $children[$pt] : array (); $v->location = count($list); array_push($list, $v); $children[$pt] = $list; } // second pass - get an indent list of the items $list = fbTreeRecurse(0, '', array (), $children, max(0, $levellimit - 1)); $total = count($list); if ($limitstart >= $total) $limitstart = 0; jimport('joomla.html.pagination'); $pageNav = new JPagination( $total, $limitstart, $limit ); $levellist = JHTML::_('select.integerList' , 1, 20, 1, 'levellimit', 'size="1" onchange="document.adminForm.submit();"', $levellimit); // slice out elements based on limits $list = array_slice($list, $pageNav->limitstart, $pageNav->limit); /** *@end */ html_Kunena::showAdministration($list, $children, $pageNav, $option); } //--------------------------------------- //-E D I T F O R U M------------------- //--------------------------------------- function editForum($uid, $option) { $kunena_db = &JFactory::getDBO(); $kunena_acl = &JFactory::getACL(); $kunena_my = &JFactory::getUser(); $row = new fbForum($kunena_db); // load the row from the db table $row->load($uid); //echo "
"; print_r ($row); echo ""; if ($uid) { $row->checkout($kunena_my->id); $categories = array (); } else { // initialise new record $categories[] = JHTML::_('select.option', '0', _KUNENA_TOPLEVEL, 'value', 'text'); $row->parent = 0; $row->published = 0; $row->ordering = 9999; } // get a list of just the categories $kunena_db->setQuery("SELECT a.id AS value, a.name AS text FROM #__fb_categories AS a WHERE parent='0' AND id<>'$row->id' ORDER BY ordering"); $categories = array_merge($categories, $kunena_db->loadObjectList()); check_dberror("Unable to load categories."); if ($row->parent == 0) { //make sure the Top Level Category is available in edit mode as well: $kunena_db->setQuery("SELECT distinct '0' AS value, '"._KUNENA_TOPLEVEL."' AS text FROM #__fb_categories AS a WHERE parent='0' AND id<>'$row->id' ORDER BY ordering"); $categories = array_merge($categories, (array)$kunena_db->loadObjectList()); check_dberror("Unable to load categories."); //build the select list: $categoryList = JHTML::_('select.genericlist',$categories, 'parent', 'class="inputbox" size="1"', 'value', 'text', $row->parent); } else { $categoryList = JHTML::_('select.genericlist',$categories, 'parent', 'class="inputbox" size="1"', 'value', 'text', $row->parent); } $categoryList = showCategories($row->parent, "parent", "", "4"); // make a standard yes/no list $yesno = array (); $yesno[] = JHTML::_('select.option', '0', _ANN_NO); $yesno[] = JHTML::_('select.option', '1', _ANN_YES); // make a standard no/yes list $noyes = array (); $noyes[] = JHTML::_('select.option', '1', _ANN_YES); $noyes[] = JHTML::_('select.option', '0', _ANN_NO); //Create all kinds of Lists $lists = array (); $accessLists = array (); //create custom group levels to include into the public group selectList $pub_groups = array (); $pub_groups[] = JHTML::_('select.option',0, _KUNENA_EVERYBODY); $pub_groups[] = JHTML::_('select.option', -1, _KUNENA_ALLREGISTERED); $pub_groups = array_merge($pub_groups, $kunena_acl->get_group_children_tree(null, _KUNENA_REGISTERED, true)); //create admin groups array for use in selectList: $adm_groups = array (); $adm_groups = array_merge($adm_groups, $kunena_acl->get_group_children_tree(null, _KUNENA_PUBLICBACKEND, true)); //create the access control list $accessLists['pub_access'] = JHTML::_('select.genericlist',$pub_groups, 'pub_access', 'class="inputbox" size="4"', 'value', 'text', $row->pub_access); $accessLists['admin_access'] = JHTML::_('select.genericlist',$adm_groups, 'admin_access', 'class="inputbox" size="4"', 'value', 'text', $row->admin_access); $lists['pub_recurse'] = JHTML::_('select.genericlist',$yesno, 'pub_recurse', 'class="inputbox" size="1"', 'value', 'text', $row->pub_recurse); $lists['admin_recurse'] = JHTML::_('select.genericlist',$yesno, 'admin_recurse', 'class="inputbox" size="1"', 'value', 'text', $row->admin_recurse); $lists['forumLocked'] = JHTML::_('select.genericlist',$yesno, 'locked', 'class="inputbox" size="1"', 'value', 'text', $row->locked); $lists['forumModerated'] = JHTML::_('select.genericlist',$noyes, 'moderated', 'class="inputbox" size="1"', 'value', 'text', $row->moderated); $lists['forumReview'] = JHTML::_('select.genericlist',$yesno, 'review', 'class="inputbox" size="1"', 'value', 'text', $row->review); //get a list of moderators, if forum/category is moderated $moderatorList = array (); if ($row->moderated == 1) { $kunena_db->setQuery("SELECT * FROM #__fb_moderation AS a LEFT JOIN #__users as u ON a.userid=u.id where a.catid=$row->id"); $moderatorList = $kunena_db->loadObjectList(); check_dberror("Unable to load moderator list."); } html_Kunena::editForum($row, $categoryList, $moderatorList, $lists, $accessLists, $option); } function saveForum($option) { $kunena_db = &JFactory::getDBO(); $app =& JFactory::getApplication(); $kunena_my = &JFactory::getUser(); $row = new fbForum($kunena_db); $id = JRequest::getInt('id', 0, 'post'); if ($id) { $row->load($id); } if (!$row->save($_POST, 'parent')) { echo "\n"; $app->close(); } $row->reorder(); $kunena_db->setQuery("UPDATE #__fb_sessions SET allowed='na'"); $kunena_db->query() or trigger_dberror("Unable to update sessions."); $app->redirect( JURI::base() ."index.php?option=$option&task=showAdministration"); } function publishForum($cid = null, $publish = 1, $option) { $kunena_db = &JFactory::getDBO(); $app =& JFactory::getApplication(); $kunena_my = &JFactory::getUser(); if (!is_array($cid) || count($cid) < 1) { $action = $publish ? 'publish' : 'unpublish'; echo "\n"; exit; } $cids = implode(',', $cid); $kunena_db->setQuery("UPDATE #__fb_categories SET published='$publish'" . "\nWHERE id IN ($cids) AND (checked_out=0 OR (checked_out='$kunena_my->id'))"); $kunena_db->query() or trigger_dberror("Unable to update categories."); if (count($cid) == 1) { $row = new fbForum($kunena_db); $row->checkin($cid[0]); } // we must reset fbSession->allowed, when forum record was changed $kunena_db->setQuery("UPDATE #__fb_sessions SET allowed='na'"); $kunena_db->query() or trigger_dberror("Unable to update sessions."); $app->redirect( JURI::base() ."index.php?option=$option&task=showAdministration"); } function deleteForum($cid = null, $option) { $kunena_db = &JFactory::getDBO(); $app =& JFactory::getApplication(); $kunena_my = &JFactory::getUser(); if (!is_array($cid) || count($cid) < 1) { $action = 'delete'; echo "\n"; exit; } $cids = implode(',', $cid); $kunena_db->setQuery("DELETE FROM #__fb_categories" . "\nWHERE id IN ($cids) AND (checked_out=0 OR (checked_out='$kunena_my->id'))"); $kunena_db->query() or trigger_dberror("Unable to delete categories."); $kunena_db->setQuery("SELECT id, parent FROM #__fb_messages where catid in ($cids)"); $mesList = $kunena_db->loadObjectList(); check_dberror("Unable to load messages."); if (count($mesList) > 0) { foreach ($mesList as $ml) { $kunena_db->setQuery("DELETE FROM #__fb_messages WHERE id = $ml->id"); $kunena_db->query() or trigger_dberror("Unable to delete messages."); $kunena_db->setQuery("DELETE FROM #__fb_messages_text WHERE mesid=$ml->id"); $kunena_db->query() or trigger_dberror("Unable to delete message text."); //and clear up all subscriptions as well if ($ml->parent == 0) { //this was a topic message to which could have been subscribed $kunena_db->setQuery("DELETE FROM #__fb_subscriptions WHERE thread=$ml->id"); $kunena_db->query() or trigger_dberror("Unable to delete subscriptions."); } } } $kunena_db->setQuery("UPDATE #__fb_sessions SET allowed='na'"); $kunena_db->query() or trigger_dberror("Unable to update sessions."); $app->redirect( JURI::base() ."index.php?option=$option&task=showAdministration"); } function cancelForum($option) { $app =& JFactory::getApplication(); $kunena_db = &JFactory::getDBO(); $row = new fbForum($kunena_db); $row->bind($_POST); $row->checkin(); $app->redirect( JURI::base() ."index.php?option=$option&task=showAdministration"); } function orderForum($uid, $inc, $option) { $app =& JFactory::getApplication(); $kunena_db = &JFactory::getDBO(); $row = new fbForum($kunena_db); $row->load($uid); // Ensure that we have the right ordering $where = $row->_db->nameQuote('parent') .'='. $row->_db->quote($row->parent); $row->reorder($where); $row->load($uid); $row->move($inc, $where); $app->redirect( JURI::base() ."index.php?option=$option&task=showAdministration"); } //=============================== // Config Functions //=============================== function showConfig($option) { $kunena_db = &JFactory::getDBO(); $fbConfig =& CKunenaConfig::getInstance(); $lists = array (); // the default page when entering Kunena $defpagelist = array (); $defpagelist[] = JHTML::_('select.option', 'recent', _COM_A_FBDEFAULT_PAGE_RECENT); $defpagelist[] = JHTML::_('select.option', 'my', _COM_A_FBDEFAULT_PAGE_MY); $defpagelist[] = JHTML::_('select.option', 'categories',_COM_A_FBDEFAULT_PAGE_CATEGORIES); // build the html select list $lists['fbdefaultpage'] = JHTML::_('select.genericlist', $defpagelist ,'cfg_fbdefaultpage', 'class="inputbox" size="1" ','value', 'text', $fbConfig->fbdefaultpage); // build the html select list $rsslist = array (); $rsslist[] = JHTML::_('select.option', 'thread',_COM_A_RSS_BY_THREAD); $rsslist[] = JHTML::_('select.option', 'post',_COM_A_RSS_BY_POST); // build the html select list $lists['rsstype'] = JHTML::_('select.genericlist', $rsslist ,'cfg_rsstype', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->rsstype); $rsshistorylist = array (); $rsshistorylist[] =JHTML::_('select.option', 'week',_COM_A_RSS_HISTORY_WEEK); $rsshistorylist[] =JHTML::_('select.option', 'month',_COM_A_RSS_HISTORY_MONTH); $rsshistorylist[] =JHTML::_('select.option', 'year',_COM_A_RSS_HISTORY_YEAR); // build the html select list $lists['rsshistory'] = JHTML::_('select.genericlist', $rsshistorylist ,'cfg_rsshistory', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->rsshistory); // source of avatar picture $avlist = array (); $avlist[] = JHTML::_('select.option', 'fb',_KUNENA_KUNENA); $avlist[] = JHTML::_('select.option', 'cb',_KUNENA_CB); $avlist[] = JHTML::_('select.option', 'jomsocial',_KUNENA_JOMSOCIAL); $avlist[] = JHTML::_('select.option', 'clexuspm',_KUNENA_CLEXUS); $avlist[] = JHTML::_('select.option', 'aup', _KUNENA_AUP_ALPHAUSERPOINTS); // INTEGRATION ALPHAUSERPOINTS // build the html select list $lists['avatar_src'] = JHTML::_('select.genericlist', $avlist,'cfg_avatar_src', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->avatar_src); // private messaging system to use $pmlist = array (); $pmlist[] = JHTML::_('select.option', 'no',_COM_A_NO); $pmlist[] = JHTML::_('select.option', 'cb',_KUNENA_CB); $pmlist[] = JHTML::_('select.option', 'jomsocial',_KUNENA_JOMSOCIAL); $pmlist[] = JHTML::_('select.option', 'pms',_KUNENA_MYPMS); $pmlist[] = JHTML::_('select.option', 'pms',_KUNENA_MYPMS); $pmlist[] = JHTML::_('select.option', 'clexuspm',_KUNENA_CLEXUS); $pmlist[] = JHTML::_('select.option', 'uddeim',_KUNENA_UDDEIM); $pmlist[] = JHTML::_('select.option', 'jim',_KUNENA_JIM); $pmlist[] = JHTML::_('select.option', 'missus',_KUNENA_MISSUS); $lists['pm_component'] = JHTML::_('select.genericlist', $pmlist, 'cfg_pm_component', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->pm_component); //redundant $lists['pm_component'] = JHTML::_('select.genericlist',$pmlist, 'cfg_pm_component', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->pm_component); // Profile select $prflist = array (); $prflist[] = JHTML::_('select.option', 'fb',_KUNENA_KUNENA); $prflist[] = JHTML::_('select.option', 'cb',_KUNENA_CB); $prflist[] = JHTML::_('select.option', 'jomsocial',_KUNENA_JOMSOCIAL); $prflist[] = JHTML::_('select.option', 'clexuspm',_KUNENA_CLEXUS); $prflist[] = JHTML::_('select.option', 'aup', _KUNENA_AUP_ALPHAUSERPOINTS); // INTEGRATION ALPHAUSERPOINTS $lists['fb_profile'] = JHTML::_('select.genericlist', $prflist, 'cfg_fb_profile', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->fb_profile); // build the html select list // make a standard yes/no list $yesno = array (); $yesno[] = JHTML::_('select.option','0', _COM_A_NO); $yesno[] = JHTML::_('select.option', '1', _COM_A_YES); /* Build the templates list*/ // This function was modified from the one posted to PHP.net by rockinmusicgv // It is available under the readdir() entry in the PHP online manual //function get_dirs($directory, $select_name, $selected = "") { $listitems[] = JHTML::_('select.option', '1',_KUNENA_SELECTTEMPLATE); if ($dir = @opendir(KUNENA_PATH_TEMPLATE)) { while (($file = readdir($dir)) !== false) { if ($file != ".." && $file != ".") { if (is_dir(KUNENA_PATH_TEMPLATE .DS. $file)) { if (!($file[0] == '.') && ($file != 'default' || $fbConfig->template == 'default') && is_file(KUNENA_PATH_TEMPLATE .DS. $file .DS. 'kunena.forum.css')) { $templatelist[] = $file; } if (!($file[0] == '.') && ($file != 'default' || $fbConfig->templateimagepath == 'default') && is_dir(KUNENA_PATH_TEMPLATE .DS. $file .DS. 'images' .DS. 'english')) { $imagesetlist[] = $file; } } } } closedir ($dir); } asort ($templatelist); asort ($imagesetlist); while (list($key, $val) = each($templatelist)) { $templatelistitems[] = JHTML::_('select.option', $val, $val); } while (list($key, $val) = each($imagesetlist)) { $imagesetlistitems[] = JHTML::_('select.option', $val, $val); } $lists['jmambot'] = JHTML::_('select.genericlist', $yesno, 'cfg_jmambot', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->jmambot); $lists['disemoticons'] = JHTML::_('select.genericlist', $yesno, 'cfg_disemoticons', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->disemoticons); $lists['template'] = JHTML::_('select.genericlist', $templatelistitems, 'cfg_template', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->template); $lists['templateimagepath'] = JHTML::_('select.genericlist', $imagesetlistitems, 'cfg_templateimagepath', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->templateimagepath); $lists['regonly'] = JHTML::_('select.genericlist', $yesno, 'cfg_regonly', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->regonly); $lists['board_offline'] = JHTML::_('select.genericlist', $yesno, 'cfg_board_offline', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->board_offline); $lists['pubwrite'] = JHTML::_('select.genericlist', $yesno, 'cfg_pubwrite', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->pubwrite); $lists['useredit'] = JHTML::_('select.genericlist', $yesno, 'cfg_useredit', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->useredit); $lists['showhistory'] = JHTML::_('select.genericlist', $yesno, 'cfg_showhistory', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->showhistory); $lists['joomlastyle'] = JHTML::_('select.genericlist', $yesno,'cfg_joomlastyle', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->joomlastyle); $lists['showannouncement'] = JHTML::_('select.genericlist', $yesno,'cfg_showannouncement', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->showannouncement); $lists['avataroncat'] = JHTML::_('select.genericlist', $yesno,'cfg_avataroncat', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->avataroncat); $lists['showlatest'] = JHTML::_('select.genericlist', $yesno,'cfg_showlatest', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->showlatest); $lists['latestsinglesubject'] = JHTML::_('select.genericlist', $yesno,'cfg_latestsinglesubject', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->latestsinglesubject); $lists['latestreplysubject'] = JHTML::_('select.genericlist', $yesno,'cfg_latestreplysubject', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->latestreplysubject); $lists['latestshowdate'] = JHTML::_('select.genericlist', $yesno,'cfg_latestshowdate', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->latestshowdate); $lists['showchildcaticon'] = JHTML::_('select.genericlist', $yesno,'cfg_showchildcaticon', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->showchildcaticon); $lists['latestshowhits'] = JHTML::_('select.genericlist', $yesno,'cfg_latestshowhits', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->latestshowhits); $lists['showuserstats'] = JHTML::_('select.genericlist', $yesno, 'cfg_showuserstats', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->showuserstats); $lists['showwhoisonline'] = JHTML::_('select.genericlist', $yesno, 'cfg_showwhoisonline', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->showwhoisonline); $lists['showpopsubjectstats'] = JHTML::_('select.genericlist', $yesno, 'cfg_showpopsubjectstats', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->showpopsubjectstats); $lists['showgenstats'] = JHTML::_('select.genericlist', $yesno, 'cfg_showgenstats', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->showgenstats); $lists['showpopuserstats'] = JHTML::_('select.genericlist', $yesno, 'cfg_showpopuserstats', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->showpopuserstats); $lists['allowsubscriptions'] = JHTML::_('select.genericlist', $yesno, 'cfg_allowsubscriptions', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->allowsubscriptions); $lists['subscriptionschecked'] = JHTML::_('select.genericlist', $yesno, 'cfg_subscriptionschecked', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->subscriptionschecked); $lists['allowfavorites'] = JHTML::_('select.genericlist', $yesno, 'cfg_allowfavorites', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->allowfavorites); $lists['mailmod'] = JHTML::_('select.genericlist', $yesno, 'cfg_mailmod', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->mailmod); $lists['mailadmin'] = JHTML::_('select.genericlist', $yesno, 'cfg_mailadmin', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->mailadmin); $lists['showemail'] = JHTML::_('select.genericlist', $yesno, 'cfg_showemail', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->showemail); $lists['askemail'] = JHTML::_('select.genericlist', $yesno, 'cfg_askemail', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->askemail); $lists['changename'] = JHTML::_('select.genericlist', $yesno, 'cfg_changename', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->changename); $lists['allowavatar'] = JHTML::_('select.genericlist', $yesno, 'cfg_allowavatar', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->allowavatar); $lists['allowavatarupload'] = JHTML::_('select.genericlist', $yesno, 'cfg_allowavatarupload', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->allowavatarupload); $lists['allowavatargallery'] = JHTML::_('select.genericlist', $yesno, 'cfg_allowavatargallery', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->allowavatargallery); $lists['avatar_src'] = JHTML::_('select.genericlist', $avlist, 'cfg_avatar_src', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->avatar_src); $ip_opt[] = JHTML::_('select.option', 'gd2', 'GD2'); $ip_opt[] = JHTML::_('select.option', 'gd1', 'GD1'); $ip_opt[] = JHTML::_('select.option', 'none', _KUNENA_IMAGE_PROCESSOR_NONE); $lists['imageprocessor'] = JHTML::_('select.genericlist', $ip_opt, 'cfg_imageprocessor', 'class="inputbox"', 'value', 'text', $fbConfig->imageprocessor ); $lists['showstats'] = JHTML::_('select.genericlist', $yesno, 'cfg_showstats', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->showstats); $lists['showranking'] = JHTML::_('select.genericlist', $yesno, 'cfg_showranking', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->showranking); $lists['rankimages'] = JHTML::_('select.genericlist', $yesno, 'cfg_rankimages', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->rankimages); $lists['username'] = JHTML::_('select.genericlist', $yesno, 'cfg_username', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->username); $lists['shownew'] = JHTML::_('select.genericlist', $yesno, 'cfg_shownew', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->shownew); $lists['allowimageupload'] = JHTML::_('select.genericlist', $yesno, 'cfg_allowimageupload', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->allowimageupload); $lists['allowimageregupload'] = JHTML::_('select.genericlist', $yesno, 'cfg_allowimageregupload', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->allowimageregupload); $lists['allowfileupload'] = JHTML::_('select.genericlist', $yesno, 'cfg_allowfileupload', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->allowfileupload); $lists['allowfileregupload'] = JHTML::_('select.genericlist', $yesno, 'cfg_allowfileregupload', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->allowfileregupload); $lists['editmarkup'] = JHTML::_('select.genericlist', $yesno, 'cfg_editmarkup', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->editmarkup); $lists['discussbot'] = JHTML::_('select.genericlist', $yesno, 'cfg_discussbot', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->discussbot); $lists['enablerss'] = JHTML::_('select.genericlist', $yesno, 'cfg_enablerss', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->enablerss); $lists['poststats'] = JHTML::_('select.genericlist', $yesno, 'cfg_poststats', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->poststats); $lists['showkarma'] = JHTML::_('select.genericlist', $yesno, 'cfg_showkarma', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->showkarma); $lists['cb_profile'] = JHTML::_('select.genericlist', $yesno, 'cfg_cb_profile', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->cb_profile); $lists['enablepdf'] = JHTML::_('select.genericlist', $yesno, 'cfg_enablepdf', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->enablepdf); $lists['enablerulespage'] = JHTML::_('select.genericlist', $yesno, 'cfg_enablerulespage', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->enablerulespage); $lists['rules_infb'] = JHTML::_('select.genericlist', $yesno, 'cfg_rules_infb', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->rules_infb); $lists['enablehelppage'] = JHTML::_('select.genericlist', $yesno, 'cfg_enablehelppage', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->enablehelppage); $lists['help_infb'] = JHTML::_('select.genericlist', $yesno, 'cfg_help_infb', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->help_infb); $lists['enableforumjump'] = JHTML::_('select.genericlist', $yesno, 'cfg_enableforumjump', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->enableforumjump); $lists['userlist_online'] = JHTML::_('select.genericlist', $yesno, 'cfg_userlist_online', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->userlist_online); $lists['userlist_avatar'] = JHTML::_('select.genericlist', $yesno, 'cfg_userlist_avatar', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->userlist_avatar); $lists['userlist_name'] = JHTML::_('select.genericlist', $yesno, 'cfg_userlist_name', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->userlist_name); $lists['userlist_username'] = JHTML::_('select.genericlist', $yesno, 'cfg_userlist_username', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->userlist_username); $lists['userlist_posts'] = JHTML::_('select.genericlist', $yesno, 'cfg_userlist_posts', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->userlist_posts); $lists['userlist_karma'] = JHTML::_('select.genericlist', $yesno, 'cfg_userlist_karma', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->userlist_karma); $lists['userlist_email'] = JHTML::_('select.genericlist', $yesno, 'cfg_userlist_email', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->userlist_email); $lists['userlist_usertype'] = JHTML::_('select.genericlist', $yesno, 'cfg_userlist_usertype', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->userlist_usertype); $lists['userlist_joindate'] = JHTML::_('select.genericlist', $yesno, 'cfg_userlist_joindate', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->userlist_joindate); $lists['userlist_lastvisitdate'] = JHTML::_('select.genericlist', $yesno, 'cfg_userlist_lastvisitdate', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->userlist_lastvisitdate); $lists['userlist_userhits'] = JHTML::_('select.genericlist', $yesno, 'cfg_userlist_userhits', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->userlist_userhits); $lists['usernamechange'] = JHTML::_('select.genericlist', $yesno, 'cfg_usernamechange', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->usernamechange); $lists['reportmsg'] = JHTML::_('select.genericlist', $yesno, 'cfg_reportmsg', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->reportmsg); $lists['captcha'] = JHTML::_('select.genericlist', $yesno, 'cfg_captcha', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->captcha); $lists['mailfull'] = JHTML::_('select.genericlist', $yesno, 'cfg_mailfull', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->mailfull); // New for 1.0.5 $lists['showspoilertag'] = JHTML::_('select.genericlist', $yesno, 'cfg_showspoilertag', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->showspoilertag); $lists['showvideotag'] = JHTML::_('select.genericlist', $yesno, 'cfg_showvideotag', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->showvideotag); $lists['showebaytag'] = JHTML::_('select.genericlist', $yesno, 'cfg_showebaytag', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->showebaytag); $lists['trimlongurls'] = JHTML::_('select.genericlist', $yesno, 'cfg_trimlongurls', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->trimlongurls); $lists['autoembedyoutube'] = JHTML::_('select.genericlist', $yesno, 'cfg_autoembedyoutube', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->autoembedyoutube); $lists['autoembedebay'] = JHTML::_('select.genericlist', $yesno, 'cfg_autoembedebay', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->autoembedebay); $lists['highlightcode'] = JHTML::_('select.genericlist', $yesno, 'cfg_highlightcode', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->highlightcode); // New for 1.5.7 -> integration AlphaUserPoints $lists['alphauserpoints'] = JHTML::_('select.genericlist', $yesno, 'cfg_alphauserpoints', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->alphauserpoints); $lists['alphauserpointsrules'] = JHTML::_('select.genericlist', $yesno, 'cfg_alphauserpointsrules', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->alphauserpointsrules); // New for 1.5.8 -> SEF $lists['sef'] = JHTML::_('select.genericlist', $yesno, 'cfg_sef', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->sef); $lists['sefcats'] = JHTML::_('select.genericlist', $yesno, 'cfg_sefcats', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->sefcats); $lists['sefutf8'] = JHTML::_('select.genericlist', $yesno, 'cfg_sefutf8', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->sefutf8); // New for 1.5.10: hide ip $lists['hide_ip'] = JHTML::_('select.genericlist', $yesno, 'cfg_hide_ip', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->hide_ip); //New for 1.5.10: Joomsocial Activity Stream Integration disable/enable $lists['js_actstr_integration'] = JHTML::_('select.genericlist', $yesno, 'cfg_js_actstr_integration', 'class="inputbox" size="1"', 'value', 'text', $fbConfig->js_actstr_integration); html_Kunena::showConfig($fbConfig, $lists, $option); } function saveConfig($option) { $app =& JFactory::getApplication(); $fbConfig =& CKunenaConfig::getInstance(); $kunena_db = &JFactory::getDBO(); foreach ($_POST as $postsetting => $postvalue) { if (strpos($postsetting, 'cfg_') === 0) { //remove cfg_ and force lower case $postname = strtolower(substr($postsetting, 4)); $postvalue = addslashes($postvalue); // No matter what got posted, we only store config parameters defined // in the config class. Anything else posted gets ignored. if(array_key_exists($postname , $fbConfig->GetClassVars())) { if (is_numeric($postvalue)) { eval ("\$fbConfig->".$postname." = ".$postvalue.";"); } else { // Rest is treaded as strings eval ("\$fbConfig->".$postname." = '".$postvalue."';"); } } else { // This really should not happen if assertions are enable // fail it and display the current scope of variables for debugging. // echo debug_vars(get_defined_vars()); trigger_error ('Unknown configuration variable posted.'); assert(0); } } } $fbConfig->backup(); $fbConfig->remove(); $fbConfig->create(); $kunena_db->setQuery("UPDATE #__fb_sessions SET allowed='na'"); $kunena_db->query() or trigger_dberror("Unable to update sessions."); $app->redirect( JURI::base() . "index.php?option=$option&task=showconfig", _KUNENA_CONFIGSAVED); } function showInstructions($kunena_db, $option, $lang) { $kunena_db = &JFactory::getDBO(); html_Kunena::showInstructions($kunena_db, $option, $lang); } //=============================== // CSS functions //=============================== function showCss($option) { require_once(KUNENA_PATH_LIB .DS. 'kunena.file.class.php'); $fbConfig =& CKunenaConfig::getInstance(); $file = KUNENA_PATH_TEMPLATE .DS. $fbConfig->template .DS. "kunena.forum.css"; $permission = CKunenaPath::isWritable($file); if (!$permission) { echo "