public function assign() { $pr = new PageEditResponse(); if ($this->request->request->get('destID') == $this->page->getCollectionID()) { throw new \Exception(t("You cannot assign this page to itself.")); } $destPage = \Page::getByID($_POST['destID']); if (Section::isMultilingualSection($destPage)) { $ms = Section::getByID($destPage->getCollectionID()); } else { $ms = Section::getBySectionOfSite($destPage); } if (is_object($ms)) { // we need to assign/relate the source ID too, if it doesn't exist if (!Section::isAssigned($this->page)) { Section::registerPage($this->page); } Section::relatePage($this->page, $destPage, $ms->getLocale()); $ih = Core::make('multilingual/interface/flag'); $icon = (string) $ih->getSectionFlagIcon($ms); $pr->setAdditionalDataAttribute('name', $destPage->getCollectionName()); $pr->setAdditionalDataAttribute('link', $destPage->getCollectionLink()); $pr->setAdditionalDataAttribute('icon', $icon); $pr->setMessage(t('Page assigned.')); $pr->outputJSON(); } else { throw new \Exception(t("The destination page doesn't appear to be in a valid multilingual section.")); } }
$messages = $q->receive(Config::get('concrete.limits.copy_pages')); foreach ($messages as $key => $p) { // delete the page here $page = unserialize($p->body); $oc = Page::getByID($page['cID']); // this is the page we're going to copy. // now we check to see if the parent ID of the current record has already been duplicated somewhere. $newCID = $db->GetOne('select cID from QueuePageDuplicationRelations where originalCID = ? and queue_name = ?', array($page['cParentID'], 'copy_page')); if ($newCID > 0) { $dc = Page::getByID($newCID); } else { $dc = Page::getByID($page['destination']); } if ($_POST['multilingual']) { // Find multilingual section of the destination if (Section::isMultilingualSection($dc)) { $ms = Section::getByID($dc->getCollectionID()); } else { $ms = Section::getBySectionOfSite($dc); } // Is page already copied? $existingCID = Section::getRelatedCollectionIDForLocale($page['cID'], $ms->getLocale()); if ($existingCID) { $nc = Page::getById($existingCID); if ($dc->getCollectionID() != $nc->getCollectionParentID()) { $nc->move($dc); } } else { $nc = $oc->duplicate($dc); } } else {