From 1bbaf52b1b93a1f92fd4f70897ee0e85cb7b3ee8 Mon Sep 17 00:00:00 2001 From: Andrew Embler Date: Fri, 29 Jul 2016 07:19:27 -0700 Subject: [PATCH] Multilingual fixes --- .../controllers/panel/detail/page/composer.php | 15 +++++++++------ .../src/Multilingual/Page/Section/Section.php | 10 ++++++---- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/web/concrete/controllers/panel/detail/page/composer.php b/web/concrete/controllers/panel/detail/page/composer.php index f7a1b22cbdf..0a68d72fa58 100644 --- a/web/concrete/controllers/panel/detail/page/composer.php +++ b/web/concrete/controllers/panel/detail/page/composer.php @@ -122,14 +122,17 @@ protected function save() { $c = $c->getVersionToModify(); $this->page = $c; + if ($c->isPageDraft()) { /// set the target - $configuredTarget = $pagetype->getPageTypePublishTargetObject(); - $targetPageID = $configuredTarget->getPageTypePublishTargetConfiguredTargetParentPageID(); - if (!$targetPageID) { - $targetPageID = $_POST['cParentID']; - } + $configuredTarget = $pagetype->getPageTypePublishTargetObject(); + $targetPageID = $configuredTarget->getPageTypePublishTargetConfiguredTargetParentPageID(); + if (!$targetPageID) { + $targetPageID = $_POST['cParentID']; + } + - $c->setPageDraftTargetParentPageID($targetPageID); + $c->setPageDraftTargetParentPageID($targetPageID); + } $outputControls = $pagetype->savePageTypeComposerForm($c); } $ptr->setError($e); diff --git a/web/concrete/src/Multilingual/Page/Section/Section.php b/web/concrete/src/Multilingual/Page/Section/Section.php index f32fea5a204..6de4a5fb667 100644 --- a/web/concrete/src/Multilingual/Page/Section/Section.php +++ b/web/concrete/src/Multilingual/Page/Section/Section.php @@ -446,14 +446,16 @@ public static function relatePage($oldPage, $newPage, $locale) $db = Database::get(); $mpRelationID = self::getMultilingualPageRelationID($oldPage->getCollectionID()); - if ($mpRelationID) { - $v = array($mpRelationID, $newPage->getCollectionID(), $locale); + $section = Section::getByLocale($locale); + + if ($mpRelationID && $section) { + $v = array($mpRelationID, $newPage->getCollectionID(), $section->getLocale(), $section->getLanguage()); $db->Execute( 'delete from MultilingualPageRelations where mpRelationID = ? and mpLocale = ?', - array($mpRelationID, $locale) + array($mpRelationID, $section->getLocale()) ); $db->Execute('delete from MultilingualPageRelations where cID = ?', array($newPage->getCollectionID())); - $db->Execute('insert into MultilingualPageRelations (mpRelationID, cID, mpLocale) values (?, ?, ?)', $v); + $db->Execute('insert into MultilingualPageRelations (mpRelationID, cID, mpLocale, mpLanguage) values (?, ?, ?, ?)', $v); $pde = new Event($newPage); $pde->setLocale($locale); \Events::dispatch('on_multilingual_page_relate', $pde);