Beispiel #1
0
 /**
  * Create a new content.
  *
  * Here pre and post insert event are fired
  *
  * @param $defaultFolderId
  * @throws \Exception
  */
 public function create($defaultFolderId)
 {
     $con = Propel::getWriteConnection(ContentTableMap::DATABASE_NAME);
     $con->beginTransaction();
     $this->dispatchEvent(TheliaEvents::BEFORE_CREATECONTENT, new ContentEvent($this));
     try {
         $this->save($con);
         $cf = new ContentFolder();
         $cf->setContentId($this->getId())->setFolderId($defaultFolderId)->setDefaultFolder(1)->save($con);
         $this->setPosition($this->getNextPosition())->save($con);
         $con->commit();
         $this->dispatchEvent(TheliaEvents::AFTER_CREATECONTENT, new ContentEvent($this));
     } catch (\Exception $ex) {
         $con->rollback();
         throw $ex;
     }
 }
Beispiel #2
0
 /**
  * @param    Folder $folder The folder object to add.
  */
 protected function doAddFolder($folder)
 {
     $contentFolder = new ChildContentFolder();
     $contentFolder->setFolder($folder);
     $this->addContentFolder($contentFolder);
     // set the back reference to this object directly as using provided method either results
     // in endless loop or in multiple relations
     if (!$folder->getContents()->contains($this)) {
         $foreignCollection = $folder->getContents();
         $foreignCollection[] = $this;
     }
 }
Beispiel #3
0
 /**
  * @depends testAddFolderToContent
  */
 public function testRemoveFolder(ContentFolder $association)
 {
     $event = new ContentRemoveFolderEvent($association->getContent(), $association->getFolder()->getId());
     $event->setDispatcher($this->dispatcher);
     $contentAction = new Content($this->getContainer());
     $contentAction->removeFolder($event);
     $testAssociation = ContentFolderQuery::create()->filterByContent($association->getContent())->filterByFolder($association->getFolder())->findOne();
     $this->assertNull($testAssociation);
 }
Beispiel #4
0
 /**
  *
  * associate a folder to a content if the association already does not exists
  *
  * @param ContentAddFolderEvent $event
  */
 public function addFolder(ContentAddFolderEvent $event)
 {
     if (ContentFolderQuery::create()->filterByContent($event->getContent())->filterByFolderId($event->getFolderId())->count() <= 0) {
         $contentFolder = new ContentFolder();
         $contentFolder->setFolderId($event->getFolderId())->setContent($event->getContent())->setDefaultFolder(false)->save();
     }
 }
 /**
  * Adds an object to the instance pool.
  *
  * Propel keeps cached copies of objects in an instance pool when they are retrieved
  * from the database. In some cases you may need to explicitly add objects
  * to the cache in order to ensure that the same objects are always returned by find*()
  * and findPk*() calls.
  *
  * @param \Thelia\Model\ContentFolder $obj A \Thelia\Model\ContentFolder object.
  * @param string $key             (optional) key to use for instance map (for performance boost if key was already calculated externally).
  */
 public static function addInstanceToPool($obj, $key = null)
 {
     if (Propel::isInstancePoolingEnabled()) {
         if (null === $key) {
             $key = serialize(array((string) $obj->getContentId(), (string) $obj->getFolderId()));
         }
         // if key === null
         self::$instances[$key] = $obj;
     }
 }
Beispiel #6
0
 /**
  * Filter the query by a related \Thelia\Model\ContentFolder object
  *
  * @param \Thelia\Model\ContentFolder|ObjectCollection $contentFolder  the related object to use as filter
  * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
  *
  * @return ChildFolderQuery The current query, for fluid interface
  */
 public function filterByContentFolder($contentFolder, $comparison = null)
 {
     if ($contentFolder instanceof \Thelia\Model\ContentFolder) {
         return $this->addUsingAlias(FolderTableMap::ID, $contentFolder->getFolderId(), $comparison);
     } elseif ($contentFolder instanceof ObjectCollection) {
         return $this->useContentFolderQuery()->filterByPrimaryKeys($contentFolder->getPrimaryKeys())->endUse();
     } else {
         throw new PropelException('filterByContentFolder() only accepts arguments of type \\Thelia\\Model\\ContentFolder or Collection');
     }
 }
Beispiel #7
0
 /**
  * Exclude object from result
  *
  * @param   ChildContentFolder $contentFolder Object to remove from the list of results
  *
  * @return ChildContentFolderQuery The current query, for fluid interface
  */
 public function prune($contentFolder = null)
 {
     if ($contentFolder) {
         $this->addCond('pruneCond0', $this->getAliasedColName(ContentFolderTableMap::CONTENT_ID), $contentFolder->getContentId(), Criteria::NOT_EQUAL);
         $this->addCond('pruneCond1', $this->getAliasedColName(ContentFolderTableMap::FOLDER_ID), $contentFolder->getFolderId(), Criteria::NOT_EQUAL);
         $this->combine(array('pruneCond0', 'pruneCond1'), Criteria::LOGICAL_OR);
     }
     return $this;
 }