Example #1
0
$action = request_var('action', '');
switch ($action) {
    case 'add':
    case 'edit':
        $category_object = new titania_category();
        if ($action == 'edit') {
            if (!$category_id) {
                trigger_error(phpbb::$user->lang['NO_CATEGORY']);
            }
            $category_object->load($category_id);
        }
        // Load the message object
        $message_object = new titania_message($category_object);
        $message_object->set_auth(array('bbcode' => phpbb::$auth->acl_get('u_titania_bbcode'), 'smilies' => phpbb::$auth->acl_get('u_titania_smilies')));
        $message_object->set_settings(array('display_error' => false, 'display_subject' => false));
        $category_object->post_data($message_object);
        $message_object->display();
        // Define some variables for use later with keeping language-based category names the same in the DB during submit
        $old_category_name = $category_object->category_name;
        $old_category_name_clean = $category_object->category_name_clean;
        $old_category_name_lang = isset(phpbb::$user->lang[$old_category_name]) ? phpbb::$user->lang[$old_category_name] : $old_category_name;
        $error = array();
        if ($submit) {
            // Goodbye to some of the old category data...
            unset($category_object->category_name);
            $category_object->category_id = $action == 'edit' ? $category_id : '';
            $category_name = utf8_normalize_nfc(request_var('category_name', '', true));
            $category_object->category_name = $category_name == $old_category_name_lang ? $old_category_name : $category_name;
            $category_object->category_name_clean = utf8_normalize_nfc(request_var('category_name_clean', '', true));
            $category_object->parent_id = request_var('category_parent', 0);
            $category_object->category_visible = request_var('category_visible', 1);