/** * Assign template variables for a given FAQ item. * * @param array $data Item data. * @param array $auth Array in form of array(edit => (bool), delete => (bool), move => (bool)) * specifying user's permissions. * @return null */ protected function assign_item_row_vars($data, $auth) { $this->faq->__set_array($data); // @todo probably should setup an edit time or something for better read tracking in case it was edited $folder_img = $folder_alt = ''; $unread = $this->tracking->get_track(TITANIA_FAQ, $data['faq_id'], true) === 0; $this->display->topic_folder_img($folder_img, $folder_alt, 0, $unread); $this->template->assign_block_vars('faqlist', array('U_FAQ' => $this->faq->get_url(), 'SUBJECT' => $data['faq_subject'], 'VIEWS' => $data['faq_views'], 'FOLDER_STYLE' => $folder_img, 'FOLDER_IMG' => $this->user->img($folder_img, $folder_alt), 'FOLDER_IMG_SRC' => $this->user->img($folder_img, $folder_alt, false, '', 'src'), 'FOLDER_IMG_ALT' => $this->user->lang[$folder_alt], 'FOLDER_IMG_ALT' => $this->user->lang[$folder_alt], 'FOLDER_IMG_WIDTH' => $this->user->img($folder_img, '', false, '', 'width'), 'FOLDER_IMG_HEIGHT' => $this->user->img($folder_img, '', false, '', 'height'), 'U_MOVE_UP' => $auth['move'] ? $this->faq->get_url('move_up') : false, 'U_MOVE_DOWN' => $auth['move'] ? $this->faq->get_url('move_down') : false, 'U_EDIT' => $auth['edit'] ? $this->faq->get_url('edit') : false, 'U_DELETE' => $auth['delete'] ? $this->faq->get_url('delete') : false, 'S_ACCESS_TEAMS' => $this->access->is_team($data['faq_access']), 'S_ACCESS_AUTHORS' => $this->access->is_author($data['faq_access']))); }
} if (!sizeof($error)) { $faq->submit(); $message->submit($faq->faq_id); $sql = 'SELECT right_id FROM ' . TITANIA_CONTRIB_FAQ_TABLE . ' WHERE contrib_id = ' . titania::$contrib->contrib_id . ' ORDER BY right_id DESC LIMIT 1'; $result = phpbb::$db->sql_query($sql); $right_id = (string) phpbb::$db->sql_fetchfield('right_id'); phpbb::$db->sql_freeresult($result); // Update the faqs table $sql_ary = array('left_id' => $right_id + 1, 'right_id' => $right_id + 2); $sql = 'UPDATE ' . TITANIA_CONTRIB_FAQ_TABLE . ' SET ' . phpbb::$db->sql_build_array('UPDATE', $sql_ary) . ' WHERE faq_id = ' . (int) $faq->faq_id; phpbb::$db->sql_query($sql); redirect($faq->get_url()); } } $message->display(); phpbb::$template->assign_vars(array('L_POST_A' => phpbb::$user->lang[$action == 'edit' ? 'EDIT_FAQ' : 'CREATE_FAQ'], 'ERROR_MSG' => sizeof($error) ? implode('<br />', $error) : '', 'S_EDIT' => true, 'S_POST_ACTION' => $faq->get_url($action, $faq->faq_id))); titania::page_header($action == 'edit' ? 'EDIT_FAQ' : 'CREATE_FAQ'); break; case 'delete': if (!phpbb::$auth->acl_get('u_titania_mod_faq_mod') && !phpbb::$auth->acl_get('u_titania_faq_delete') && !titania::$contrib->is_author && !titania::$contrib->is_active_coauthor) { titania::needs_auth(); } if (titania::confirm_box(true)) { $faq->delete(); redirect(titania::$contrib->get_url('faq')); } else { titania::confirm_box(false, 'DELETE_FAQ', $faq->get_url('delete'));