Example #1
0
 /**
  * @param |\Concrete\Core\Page\Collection $nc
  * @param bool $preserveUserID
  * @param \Concrete\Core\Entity\Site\Site $site
  *
  * @return Stack
  */
 public function duplicate($nc = null, $preserveUserID = false, TreeInterface $site = null)
 {
     if (!is_object($nc)) {
         $nc = Page::getByID($this->getCollectionParentID());
     }
     $newPage = parent::duplicate($nc, $preserveUserID, $site);
     // we have to do this because we need the area to exist before we try and add something to it.
     Area::getOrCreate($newPage, STACKS_AREA_NAME);
     $siteTreeID = is_object($site) ? $site->getSiteTreeID() : \Core::make('site')->getSite()->getSiteTreeID();
     $db = Database::connection();
     $db->executeQuery('insert into Stacks (stName, cID, stType, stMultilingualSection, siteTreeID) values (?, ?, ?, ?, ?)', [$newPage->getCollectionName(), $newPage->getCollectionID(), $this->getStackType(), $this->getMultilingualSectionID(), $siteTreeID]);
     $newStack = static::getByID($newPage->getCollectionID());
     if ($this->isNeutralStack()) {
         foreach (Section::getList() as $section) {
             $localized = $this->getLocalizedStack($section);
             if ($localized !== null) {
                 $localized->duplicate($newStack, $preserveUserID);
             }
         }
     }
     return $newStack;
 }
Example #2
0
 public function duplicate($nc, $preserveUserID = false)
 {
     return parent::duplicate($nc, $preserveUserID);
 }