function editForum($id, $option) { $kunena_app = JFactory::getApplication(); $kunena_my = JFactory::getUser(); kimport('category'); $category = KunenaCategory::getInstance($id); if ($category->isCheckedOut($kunena_my->id)) { $kunena_app->enqueueMessage(JText::sprintf('COM_KUNENA_A_CATEGORY_CHECKED_OUT', $category->id), 'notice'); while (@ob_end_clean()) { } $kunena_app->redirect(JURI::base() . "index.php?option={$option}&task=showAdministration"); } $kunena_db = JFactory::getDBO(); $kunena_acl = JFactory::getACL(); $kunena_config = KunenaFactory::getConfig(); if ($category->exists()) { $category->checkout($kunena_my->id); } else { // New category is by default child of the first section -- this will help new users to do it right $kunena_db->setQuery("SELECT a.id, a.name FROM #__kunena_categories AS a WHERE parent='0' AND id!='{$category->id}' ORDER BY ordering"); $sections = $kunena_db->loadObjectList(); KunenaError::checkDatabaseError(); $category->parent = empty($sections) ? 0 : $sections[0]->id; $category->published = 0; $category->ordering = 9999; $category->pub_recurse = 1; $category->admin_recurse = 1; if (KUNENA_JOOMLA_COMPAT == '1.5') { $category->accesstype = 'none'; $category->access = 0; $category->pub_access = 0; $category->admin_access = 0; } else { $category->accesstype = 'joomla.level'; $category->access = 1; $category->pub_access = 1; $category->admin_access = 8; } $category->moderated = 1; } $catList = array(); $catList[] = JHTML::_('select.option', 0, JText::_('COM_KUNENA_TOPLEVEL')); $categoryList = CKunenaTools::KSelectList('parent', $catList, 'class="inputbox"', true, 'parent', $category->parent); // make a standard yes/no list $yesno = array(); $yesno[] = JHTML::_('select.option', '0', JText::_('COM_KUNENA_ANN_NO')); $yesno[] = JHTML::_('select.option', '1', JText::_('COM_KUNENA_ANN_YES')); //Create all kinds of Lists $lists = array(); $accessLists = array(); //create custom group levels to include into the public group selectList if (KUNENA_JOOMLA_COMPAT == '1.5') { $pub_groups = array(); $pub_groups[] = JHTML::_('select.option', 1, JText::_('COM_KUNENA_NOBODY')); $pub_groups[] = JHTML::_('select.option', 0, JText::_('COM_KUNENA_PUBLIC')); $pub_groups[] = JHTML::_('select.option', -1, JText::_('COM_KUNENA_ALLREGISTERED')); $adm_groups = array(); $adm_groups[] = JHTML::_('select.option', 0, JText::_('COM_KUNENA_NOBODY')); $joomlagroups = $kunena_acl->get_group_children_tree(null, 'USERS', false); foreach ($joomlagroups as &$group) { $group->text = preg_replace('/(^ |\\. | )/', '- ', $group->text); } $pub_groups = array_merge($pub_groups, $joomlagroups); $adm_groups = array_merge($adm_groups, $joomlagroups); // Create the access control lists for Joomla 1.5 $accessLists['pub_access'] = JHTML::_('select.genericlist', $pub_groups, 'pub_access', 'class="inputbox" size="10"', 'value', 'text', $category->pub_access); $accessLists['admin_access'] = JHTML::_('select.genericlist', $adm_groups, 'admin_access', 'class="inputbox" size="10"', 'value', 'text', $category->admin_access); } else { // Create the access control lists for Joomla 1.6 $accessLists['pub_access'] = JHTML::_('access.usergroup', 'pub_access', $category->pub_access, 'class="inputbox" size="10"', false); $accessLists['admin_access'] = JHTML::_('access.usergroup', 'admin_access', $category->admin_access, 'class="inputbox" size="10"', false); } // Anonymous posts default $post_anonymous = array(); $post_anonymous[] = JHTML::_('select.option', '0', JText::_('COM_KUNENA_CATEGORY_ANONYMOUS_X_REG')); $post_anonymous[] = JHTML::_('select.option', '1', JText::_('COM_KUNENA_CATEGORY_ANONYMOUS_X_ANO')); $lists['accesstypes'] = KunenaFactory::getAccessControl()->getAccessTypesList($category); $lists['accesslevels'] = KunenaFactory::getAccessControl()->getAccessLevelsList($category); $lists['pub_recurse'] = JHTML::_('select.genericlist', $yesno, 'pub_recurse', 'class="inputbox" size="1"', 'value', 'text', $category->pub_recurse); $lists['admin_recurse'] = JHTML::_('select.genericlist', $yesno, 'admin_recurse', 'class="inputbox" size="1"', 'value', 'text', $category->admin_recurse); $lists['forumLocked'] = JHTML::_('select.genericlist', $yesno, 'locked', 'class="inputbox" size="1"', 'value', 'text', $category->locked); $lists['forumModerated'] = JHTML::_('select.genericlist', $yesno, 'moderated', 'class="inputbox" size="1"', 'value', 'text', $category->moderated); $lists['forumReview'] = JHTML::_('select.genericlist', $yesno, 'review', 'class="inputbox" size="1"', 'value', 'text', $category->review); $lists['allow_polls'] = JHTML::_('select.genericlist', $yesno, 'allow_polls', 'class="inputbox" size="1"', 'value', 'text', $category->allow_polls); $lists['allow_anonymous'] = JHTML::_('select.genericlist', $yesno, 'allow_anonymous', 'class="inputbox" size="1"', 'value', 'text', $category->allow_anonymous); $lists['post_anonymous'] = JHTML::_('select.genericlist', $post_anonymous, 'post_anonymous', 'class="inputbox" size="1"', 'value', 'text', $category->post_anonymous); //get a list of moderators, if forum/category is moderated $moderatorList = array(); if ($category->moderated == 1 && $category->exists()) { $kunena_db->setQuery("SELECT * FROM #__kunena_moderation AS a INNER JOIN #__users as u ON a.userid=u.id where a.catid={$category->id}"); $moderatorList = $kunena_db->loadObjectList(); KunenaError::checkDatabaseError(); } html_Kunena::editForum($category, $categoryList, $moderatorList, $lists, $accessLists, $option, $kunena_config); }
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 "<pre>"; print_r ($row); echo "</pre>"; 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); }