public function insert(SimpleXMLElement $xml)
 {
     $member = Doctrine::getTable('Member')->find($this->getMemberIdByUrl((string) $xml->author->uri));
     if (!$member) {
         return false;
     }
     $comment = new CommunityEventComment();
     $comment->setMember($member);
     $comment->setCommunityEvent($this->getParentObject());
     $comment->setBody((string) $xml->content);
     $comment->save();
     return $comment;
 }
Exemplo n.º 2
0
 public function executePost(sfWebRequest $request)
 {
     $this->forward400If('' === (string) $request['body'], 'body parameter is not specified.');
     if ($limit = sfConfig::get('app_smt_comment_post_limit')) {
         $this->forward400If(mb_strlen($request['body']) > $limit, 'body parameter is too long');
     }
     $comment = new CommunityEventComment();
     $comment->setMemberId($this->member->getId());
     $comment->setCommunityEventId($request['community_event_id']);
     $this->forward400If(false === $comment->getCommunityEvent()->isCreatableCommunityEventComment($this->member->getId()), 'you are not allowed to create comments on this event');
     $comment->setBody($request['body']);
     $comment->save();
     $this->comment = $comment;
 }
Exemplo n.º 3
0
 public function executeCreate(opMailRequest $request)
 {
     $member = $this->getRoute()->getMember();
     if (!$member) {
         return sfView::NONE;
     }
     $topic = Doctrine::getTable('CommunityEvent')->find($request['id']);
     if (!$topic || !$topic->isCreatableCommunityEventComment($member->id)) {
         return sfView::NONE;
     }
     if ($topic->member_id !== $member->id) {
         $relation = Doctrine::getTable('MemberRelationship')->retrieveByFromAndTo($topic->member_id, $member->id);
         if ($relation && $relation->getIsAccessBlock()) {
             return sfView::NONE;
         }
     }
     $mailMessage = $request->getMailMessage();
     $validator = new opValidatorString(array('rtrim' => true));
     try {
         $body = $validator->clean($mailMessage->getContent());
     } catch (Exception $e) {
         return sfView::ERROR;
     }
     $topicComment = new CommunityEventComment();
     $topicComment->setCommunityEvent($topic);
     $topicComment->setMember($member);
     $topicComment->setBody($body);
     $topicComment->save();
     $num = (int) sfConfig::get('app_community_topic_comment_max_image_file_num', 3);
     $files = $this->getImageFiles($mailMessage, $num);
     $number = 0;
     foreach ($files as $file) {
         $number++;
         $image = new CommunityEventCommentImage();
         $image->setCommunityEventComment($topicComment);
         $image->setFile($file);
         $image->setNumber($number);
         $image->save();
     }
     opCommunityTopicToolkit::sendNotificationMail($topic->getCommunity(), $topic->getId(), 'event', $topicComment->getMember()->getName(), $topic->getName(), $topicComment->getBody());
     return sfView::NONE;
 }
  protected function execute($arguments = array(), $options = array())
  {
    $databaseManager = new sfDatabaseManager($this->configuration);
    $this->conn = $databaseManager->getDatabase('doctrine')->getDoctrineConnection();

    $communityIds = $this->getCommunityIds();
    for ($i=0; $i < $options['communitynumber']; ++$i)
    {
      $communityId = $this->fetchRandomCommunityId($communityIds);
      $eventIds = $this->getEventIds($communityId);
      $memberIds = $this->getMemberIds($communityId);
      for ($j=0; $j < $options['eventnumber']; ++$j)
      {
        // イベントコメント
        for ($k=0; $k < $options['number']; ++$k)
        {
          $ctc = new CommunityEventComment();
          $ctc->setMemberId(self::fetchRandomMemberId($memberIds));
          $ctc->setCommunityEventId(self::fetchRandomEventId($eventIds));
          $ctc->setBody('body');
          $ctc->save();
          $ctc->free();
          $this->logSection('created a community event comment', sprintf("%s", $communityId));
        }
        // イベント参加メンバー
        for ($k=0; $k < $options['member']; ++$k)
        {
          $ctm = new CommunityEventMember();
          $ctm->setMemberId(self::fetchRandomMemberId($memberIds));
          $ctm->setCommunityEventId(self::fetchRandomEventId($eventIds));
          $ctm->save();
          $ctm->free();
          $this->logSection('created a community event member', sprintf("%s", $communityId));
        }
      }
    }
  }