コード例 #1
0
ファイル: admin.kunena.php プロジェクト: vuchannguyen/hoctap
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);
}
コード例 #2
0
ファイル: admin.kunena.php プロジェクト: kaantunc/MYK-BOR
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);
}