我创建了一个可以添加不同内容(文本,地图等)的插件。我在插件中注册了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"> </figure>
有趣的是,Rjgallery插件的片段不起作用,也没有加载内容。
修改
如果我在更改后等待几分钟,则更改将生效。可能是缓存...如何缩短时间?
这是什么原因?