protected function execute($arguments = array(), $options = array())
  {
    $databaseManager = new sfDatabaseManager($this->configuration);
    $this->conn = $databaseManager->getDatabase('doctrine')->getDoctrineConnection();

    $sql = 'SELECT id FROM member WHERE is_active != 0';
    $where = array();
    if ( $options['min'] && $options['max']  && $options['min'] <= $options['max'])
    {
        $sql .= ' AND id BETWEEN ? AND ?';
        $where = array(intval($options['min']),intval($options['max']));
    }
    $memberIds = $this->conn->fetchColumn($sql, $where);

    $this->setContents();
    foreach ($memberIds as $memberid)
    {
      $randomtime = $this->makeRandomTime($options['date'],$options['number']);
      for ($i=0; $i<$options['number']; ++$i)
      {
        $title=$this->makeRandomContents('title',$options['titlecount']);
        $body=$this->makeRandomContents('body',$options['bodycount']);
        $diary = new Diary();
        $diary->setMemberId($memberid);
        $diary->setTitle($title);
        $diary->setBody($body);
        $diary->setPublicFlag(1);
        $diary->setCreatedAt($randomtime[$i]);
        $diary->setUpdatedAt($randomtime[$i]);
        $diary->save();
        $diary->free();
        $this->logSection('posted a diary', sprintf('%s %s', $memberid, $randomtime[$i]));
      }
    }
  }
Пример #2
0
 public function executePost(sfWebRequest $request)
 {
     $this->forward400If('' === (string) $request['title'], 'title parameter is not specified.');
     $this->forward400If('' === (string) $request['body'], 'body parameter is not specified.');
     $this->forward400If(!isset($request['public_flag']) || '' === (string) $request['public_flag'], 'public flag is not specified');
     if (isset($request['id']) && '' !== $request['id']) {
         $diary = Doctrine::getTable('Diary')->findOneById($request['id']);
         $this->forward400If(false === $diary, 'the specified diary does not exit.');
         $this->forward400If(false === $diary->isAuthor($this->member->getId()), 'this diary is not yours.');
     } else {
         $diary = new Diary();
         $diary->setMemberId($this->member->getId());
     }
     $diary->setTitle($request['title']);
     $diary->setBody($request['body']);
     $diary->setPublicFlag($request['public_flag']);
     $diary->save();
     $this->diary = $diary;
     for ($i = 1; $i <= 3; $i++) {
         $diaryImage = Doctrine::getTable('DiaryImage')->retrieveByDiaryIdAndNumber($diary->getId(), $i);
         $filename = basename($_FILES['diary_photo_' . $i]['name']);
         if (!is_null($filename) && '' !== $filename) {
             try {
                 $validator = new opValidatorImageFile(array('required' => false));
                 $validFile = $validator->clean($_FILES['diary_photo_' . $i]);
             } catch (Exception $e) {
                 $this->forward400($e->getMessage());
             }
             $f = new File();
             $f->setFromValidatedFile($validFile);
             $f->setName(hash('md5', uniqid((string) $i) . $filename));
             if ($stream = fopen($_FILES['diary_photo_' . $i]['tmp_name'], 'r')) {
                 if (!is_null($diaryImage)) {
                     $diaryImage->delete();
                 }
                 $bin = new FileBin();
                 $bin->setBin(stream_get_contents($stream));
                 $f->setFileBin($bin);
                 $f->save();
                 $di = new DiaryImage();
                 $di->setDiaryId($diary->getId());
                 $di->setFileId($f->getId());
                 $di->setNumber($i);
                 $di->save();
                 $diary->updateHasImages();
             } else {
                 $this->forward400(__('Failed to write file to disk.'));
             }
         }
         $deleteCheck = $request['diary_photo_' . $i . '_photo_delete'];
         if ('on' === $deleteCheck && !is_null($diaryImage)) {
             $diaryImage->delete();
         }
     }
 }
Пример #3
0
 public function actionAdd_diary()
 {
     $diary = new Diary();
     $diary->title = $_POST['title'];
     $diary->content = $_POST['content'];
     $diary->boat = $_POST['boat'];
     $diary->save();
     //$this->redirect(Yii::app()->request->urlReferrer);
     echo 1;
     //                        echo CJSON::encode(array('title'=>$_POST['title'], 'area'=>$_POST['area'], 'port'=>$_POST['port']));//Yii 的方法将数组处理成json数据
 }
Пример #4
0
 public function insert(SimpleXMLElement $xml)
 {
     $member = Doctrine::getTable('Member')->find($xml->author->id);
     if (!$member) {
         return false;
     }
     $diary = new Diary();
     $diary->setTitle($xml->title);
     $diary->setBody($xml->content);
     $diary->setMember($member);
     $diary->save();
     return $diary;
 }
 protected function executeTransaction($conn, $arguments = array(), $options = array())
 {
     $members = Doctrine::getTable('Member')->findAll(Doctrine::HYDRATE_ARRAY);
     foreach ($members as $member) {
         for ($i = 0; $i < $options['number']; ++$i) {
             $diary = new Diary();
             $diary->setMemberId($member['id']);
             $diary->setTitle('title');
             $diary->setBody('body');
             $diary->setPublicFlag(1);
             $diary->save();
             $diary->free();
             $this->logSection('posted a diary', sprintf('%s', $member['id']));
         }
     }
 }
Пример #6
0
$t->ok($second->isViewable(2), 'OK friend');
$t->ok(!$second->isViewable(10), 'NG others');
// PUBLIC_FLAG_PRIVATE
$t->ok($last->isViewable(1), 'OK self');
$t->ok(!$last->isViewable(2), 'NG friend');
$t->ok(!$last->isViewable(10), 'NG others');
$t->diag('Diary::getDiaryImagesJoinFile()');
$t->is($first->getDiaryImagesJoinFile()->count(), 1, 'count 1');
$t->is($second->getDiaryImagesJoinFile()->count(), 0, 'count 0');
$t->diag('Diary::countDiaryComments()');
$t->is($first->countDiaryComments(), 21, 'count 21');
$t->is($second->countDiaryComments(), 0, 'count 0');
$t->diag('Diary::save()');
$conn = Doctrine::getTable('Diary')->getConnection();
$conn->beginTransaction();
$new = new Diary();
$new->member_id = 1;
$new->public_flag = DiaryTable::PUBLIC_FLAG_OPEN;
$new->save();
$t->is($new->public_flag, DiaryTable::PUBLIC_FLAG_SNS, 'modified public flag');
$t->ok($new->is_open, 'modified is_open flag');
$conn->rollback();
$t->diag('Diary::delete()');
$conn = Doctrine::getTable('Diary')->getConnection();
$conn->beginTransaction();
$file_id = $first->DiaryImages[0]->file_id;
$first->delete();
$t->ok(!Doctrine::getTable('DiaryImage')->find(1), 'DiaryImage is deleted');
$t->ok(!Doctrine::getTable('File')->find($file_id), 'File is deleted');
$t->ok(!Doctrine::getTable('FileBin')->find($file_id), 'FileBin is deleted');
$conn->rollback();