/** * Construct discussions controller * * @param Request $request * @return DiscussionsController */ function __construct($request) { parent::__construct($request); if ($this->logged_user->getProjectPermission('discussion', $this->active_project) < PROJECT_PERMISSION_ACCESS) { $this->httpError(HTTP_ERR_FORBIDDEN); } // if $discussions_url = discussions_module_url($this->active_project); $this->wireframe->addBreadCrumb(lang('Discussions'), $discussions_url); $add_discussion_url = false; if (Discussion::canAdd($this->logged_user, $this->active_project)) { if ($this->active_category->isLoaded()) { $add_discussion_url = discussions_module_add_discussion_url($this->active_project, array('category_id' => $this->active_category->getId())); } else { $add_discussion_url = discussions_module_add_discussion_url($this->active_project); } // if $this->wireframe->addPageAction(lang('New Discussion'), $add_discussion_url); } // if $discussion_id = $this->request->getId('discussion_id'); if ($discussion_id) { $this->active_discussion = ProjectObjects::findById($discussion_id); } // if if (instance_of($this->active_discussion, 'Discussion')) { $this->wireframe->addBreadCrumb($this->active_discussion->getName(), $this->active_discussion->getViewUrl()); } else { $this->active_discussion = new Discussion(); } // if $this->smarty->assign(array('active_discussion' => $this->active_discussion, 'discussions_url' => $discussions_url, 'add_discussion_url' => $add_discussion_url, 'page_tab' => 'discussions')); }
/** * Handle on prepare project overview event * * @param NamedList $tabs * @param User $logged_user * @param Project $project * @return null */ function discussions_handle_on_project_tabs(&$tabs, &$logged_user, &$project) { if ($logged_user->getProjectPermission('discussion', $project) >= PROJECT_PERMISSION_ACCESS) { $tabs->add('discussions', array('text' => lang('Discussions'), 'url' => discussions_module_url($project))); } // if }