1

我使用 dnadesign/silverstripe-elemental 2.x-dev 和 Silverstripe 4.0.1。

我为页面创建了一个模块来保存所有页面。这就是我将扩展添加到主页的方式。

    XYPage\Model\HomePage:
      extensions: 
        - DNADesign\Elemental\Extensions\ElementalPageExtension

这是我的主页控制器:

    namespace XYpage\Controller;

    use PageController;

    class HomePageController extends PageController
    {
    }

这是我的主页模型:

    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。我在后端看到了预期的 UI。

现在,如果我在后端保存一个元素,我总是会被重定向到前端到 404 页面。

当我切换回后端时,元素链接到页面。

如果我在 Content Element 上向 WYSIWYG 编辑器填写内容并将其保存,则内容将显示在前端的页面上。

如果我尝试编辑该元素,则会错过内容的所见即所得编辑器。

我努力解决这个问题,红色的文档,但我不明白我做错了什么。

4

3 回答 3

1

你有两个我可以立即看到的问题:

1:您的 YAML 配置引用XYPage\HomePage,其中类的命名空间实际上是XYPage\Model\HomePage。我怀疑这实际上是您的示例中的错误,而不是您的实际项目,因为您说元素编辑器正在 CMS 中工作。

2:您的getControllerName()方法正在返回HomePageController::class,该方法未在类中导入,因此它将解析为与模型(XYPage\Model\HomePageController)相同的命名空间。虽然这是 SiteTree 控制器的默认/预期位置,但重载此代码意味着一切都取决于您!添加use XYPage\Controller\HomePageController;到您的类定义中。

于 2018-01-17T12:57:22.697 回答
1

BetterButtons 和 DNADesign Elemental 存在问题。

只需添加它以同时禁用 ElementContent 的 BetterButtons。

DNADesign\Elemental\Models\ElementContent:
  better_buttons_enabled: false
于 2018-01-29T04:56:06.177 回答
0

经过大量调试后,我发现了导致这种行为的原因。就我而言,一个问题是我使用 unclecheese/silverstripe-gridfield-betterbuttons 和 elemental。

下一个问题是反应错误:错误信息:

于 2018-01-23T12:47:43.907 回答