首页 > 解决方案 > 使用事件以多种语言环境/语言发布

问题描述

我正在尝试挂钩发布页面类型事件,以便我可以使用页面属性同时在多个语言站点中发布同一页面以选择要使用的语言。下面的代码运行良好,没有错误,但是我没有用目标语言创建一个页面副本,而是得到一个原始语言的新页面草稿。我在这里想念什么?

代码

<?php

Events::addListener('on_page_type_publish',
function($event) {
    $page = $event->getPageObject();

    if ($page->getPageTypeHandle() == 'blog_entry') {

        $multilingualController = Core::make('\Concrete\Controller\Backend\Page\Multilingual');
        $multilingualController->setPageObject($page);

        $pageCollection = $page->getCollectionID();
        $pageSection = \Concrete\Core\Multilingual\Page\Section\Section::getBySectionOfSite($page);
        $pageLocaleText = $pageSection->getLanguageText();

        $targetLocale = \Concrete\Core\Multilingual\Page\Section\Section::getByLocale('nb_NO'); //Will be set from page attribute
        $targetLocaleCollection = $targetLocale->getCollectionID();

        $createNewData = array(
        'section' => $targetLocaleCollection,
        'cID' => $pageCollection
        );

        $action = $multilingualController->action('create_new', $createNewData);
        $theResult = $multilingualController->runAction($action, $createNewData);

    }
});

标签: concrete5

解决方案


推荐阅读