/** * 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_milestone_add_links event * * @param Milestone $milestone * @param User $user * @param array $links * @return null */ function discussions_handle_on_milestone_add_links($milestone, $user, &$links) { if ($user->getProjectPermission('discussion', $milestone->getProject()) >= PROJECT_PERMISSION_CREATE) { $links[lang('Discussion')] = discussions_module_add_discussion_url($milestone->getProject(), array('milestone_id' => $milestone->getId())); } // if }