片段修改静态页面中的错误(OctoberCMS)

时间:2018-02-26 16:42:15

标签: plugins code-snippets octobercms static-pages

我创建了一个可以添加不同内容(文本,地图等)的插件。我在插件中注册了Snippet。

Plugin.php

...
public function registerComponents() {
    return [
        'Author\Contents\Components\Text' => 'textContent'
    ];
}

public function registerPageSnippets() {
    return [
        'Author\Contents\Components\Text' => 'textContent'
    ];
}
...

我创建了一个文本类型组件,它创建了两个属性(contentID [现有文本内容的选择器],showTitle [selector,true或false])。

组件/ Text.php

...
public function defineProperties() {
    return [
        "contentId" => [
            "title" => "Select content",
            "type" => "dropdown",
            "placeholder" => "Please select a content..."
        ],
        "showTitle" => [
            "title" => "Show content title",
            "type" => "dropdown"
        ]
    ];
}

public function getContentIdOptions() {
    return Texts::orderBy("title")->lists("title", "id");
}

public function getShowTitleOptions() {
    return [
        "hide" => "No",
        "show" => "Yes"
    ];
}
...
public function onRender() {
    $this->contentData = $this->page["contentData"] = Texts::find($this->property("contentId"));

    foreach ($this->getProperties() as $key => $value) {
        $this->page[$key] = $value;
    }
}

组件/文本/ Default.htm的

{{ showTitle }}
{{ __SELF__ }}

<div class="row">
    <div class="col-12">
        {{ contentData.content|raw }}
    </div>
</div>

当我尝试将一个片段插入页面时(在静态页面插件中),它完美无缺。但是,如果我更改了代码段设置(例如,我将showTitle属性值从true更改为false),则内容不会显示在前端页面中。如果我改变了与创建状态相比的任何内容,则内容将消失。即使该属性未包含在代码中。

如果我不修改插入时使用的属性,它会生成html。 但是,如果我改变了,我会在检查员看到这个:

<figure data-component="Author\Contents\Components\Text" data-inspector-id="inspectorid-984837527907" data-property-contentid="6" data-property-showtitle="show" data-snippet="textContent">&nbsp;</figure>

有趣的是,Rjgallery插件的片段不起作用,也没有加载内容。

修改

如果我在更改后等待几分钟,则更改将生效。可能是缓存...如何缩短时间?

这是什么原因?

0 个答案:

没有答案