我使用dnadesign / silverstripe-elemental 2.x-dev和Silverstripe 4.0.1。
我为页面创建了一个模块来保存所有页面。这就是我将扩展添加到HomePage的方式。
XYPage\Model\HomePage:
extensions:
- DNADesign\Elemental\Extensions\ElementalPageExtension
这是我的HomePageController:
namespace XYpage\Controller;
use PageController;
class HomePageController extends PageController
{
}
这是我的HomePageModel:
namespace XYpage\Model;
use Page;
use XYpage\Controller\HomePageController;
class HomePage extends Page
{
private static $table_name = 'HomePage';
/**
* As our controller resides in a different namespace we have to
overwrite this method
*
* @return string
*/
public function getControllerName()
{
return HomePageController::class;
}
}
我将模板变量更改为$ ElementalArea。我在BackEnd中看到了预期的用户界面。
现在如果我在后端保存一个元素,我总是会被重定向到404页面的前端。
当我切换回后端时,元素链接到页面。
如果我在内容元素上向WYSIWYG编辑器填写内容并保存,则内容将显示在前端页面上。
如果我尝试编辑该元素,则会错过内容的WYSIWYG编辑器。
我努力解决这个问题,红色文档,但我看不出我做错了什么。
答案 0 :(得分:1)
我有两个问题可以立即看到:
1:您的YAML配置引用XYPage\HomePage
,其中类的命名空间实际上是XYPage\Model\HomePage
。我怀疑这实际上是一个错误,而不是你的实际项目,因为你说元素编辑器在CMS中工作。
2:您的getControllerName()
方法正在返回HomePageController::class
,该方法未在类中导入,因此它将解析为与模型(XYPage\Model\HomePageController
)相同的命名空间。虽然SiteTree控制器为this is the default/expected location,但重载此代码意味着它全部在你身上!将use XYPage\Controller\HomePageController;
添加到您的班级定义中。
答案 1 :(得分:1)
BetterButtons& DNADesign Elemental。
在此期间,只需添加此项即可禁用ElementContent的BetterButtons。
DNADesign\Elemental\Models\ElementContent:
better_buttons_enabled: false
答案 2 :(得分:0)