concrete5 - 使用事件以多种语言环境/语言发布
问题描述
我正在尝试挂钩发布页面类型事件,以便我可以使用页面属性同时在多个语言站点中发布同一页面以选择要使用的语言。下面的代码运行良好,没有错误,但是我没有用目标语言创建一个页面副本,而是得到一个原始语言的新页面草稿。我在这里想念什么?
代码
<?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);
}
});
解决方案
推荐阅读
- android - 找不到用于 Android 项目的 build.gradle
- python - 从一个文本中获取值到另一个文本文件
- python - 在 Python 中实现复合高斯求积
- html - 如何创建正确的表?
- android-camera - 我在 P30 pro 上使用 ToF 的 Camera2 API 从 DEPTH16 格式获取深度信息时遇到问题
- javascript - React 与 mongo 兼容的日期时间选择器
- c# - 在 C# 中,如何始终将 DateTime 值视为在 DateTime 表示的时间是欧洲/伦敦的本地值,并将其转换为 UTC?
- powerbi - 一位用户的“无法加载此视觉对象的数据”Power BI
- c# - 与 Sammy.js 相关的返回视图问题
- angular - 过滤器选项不适用于角度的 ngx-datatables