Esempio n. 1
0
 /**
  * Constructs a new forum board form
  * @param string $action URL where this form will point to
  * @param joppa\forum\model\data\ForumBoardData $board Board data to preset the form
  */
 public function __construct($action, ForumBoardData $board = null)
 {
     parent::__construct($action, self::NAME, self::TRANSLATION_SAVE);
     $modelManager = ModelManager::getInstance();
     $categoryModel = $modelManager->getModel(ForumCategoryModel::NAME);
     $profileModel = $modelManager->getModel(ForumProfileModel::NAME);
     $category = null;
     if (!$board) {
         $boardModel = $modelManager->getModel(ForumBoardModel::NAME);
         $board = $boardModel->createData();
     } elseif (isset($board->category->id)) {
         $category = $board->category->id;
     }
     $allowOptions = ForumBoardModel::getAllowOptions();
     $fieldFactory = FieldFactory::getInstance();
     $idField = $fieldFactory->createField(FieldFactory::TYPE_HIDDEN, self::FIELD_ID, $board->id);
     $categoryField = $fieldFactory->createField(FieldFactory::TYPE_LIST, self::FIELD_CATEGORY, $category);
     $categoryField->setOptions($categoryModel->getDataList());
     $nameField = $fieldFactory->createField(FieldFactory::TYPE_STRING, self::FIELD_NAME, $board->name);
     $descriptionField = $fieldFactory->createField(FieldFactory::TYPE_TEXT, self::FIELD_DESCRIPTION, $board->description);
     $allowNewTopicsField = $fieldFactory->createField(FieldFactory::TYPE_LIST, self::FIELD_ALLOW_NEW_TOPICS, $board->allowNewTopics);
     $allowNewTopicsField->setOptions($allowOptions);
     $allowNewPostsField = $fieldFactory->createField(FieldFactory::TYPE_LIST, self::FIELD_ALLOW_NEW_POSTS, $board->allowNewPosts);
     $allowNewPostsField->setOptions($allowOptions);
     $allowViewField = $fieldFactory->createField(FieldFactory::TYPE_LIST, self::FIELD_ALLOW_VIEW, $board->allowView);
     $allowViewField->setOptions($allowOptions);
     $moderatorsField = $fieldFactory->createField(FieldFactory::TYPE_LIST, self::FIELD_MODERATORS, $board->moderators);
     $moderatorsField->setOptions($profileModel->getModeratorList());
     $moderatorsField->setIsMultiple(true);
     $this->addField($idField);
     $this->addField($categoryField);
     $this->addField($nameField);
     $this->addField($descriptionField);
     $this->addField($allowViewField);
     $this->addField($allowNewTopicsField);
     $this->addField($allowNewPostsField);
     $this->addField($moderatorsField);
 }
Esempio n. 2
0
 /**
  * Checks whether the provided user is allowed to create a new topic
  * @param ForumProfileData $profile
  * @return boolean True if a new topic is allowed, false otherwise
  */
 public function isNewPostAllowed($profile)
 {
     return ForumBoardModel::isAllowed($this->allowNewPosts, $profile);
 }