default.html не отображается при создании компонента в octobercms
У меня проблема с отображением файла default.htm созданного мной компонента. Я могу перетащить компонент на страницу или частично, но ничего не буду отображать.
Что у меня сейчас есть:
- Компонент называется
{% component 'researchResources' %}
- он уже указан в меню компонентов
Проблема: когда я перетаскиваю компонент в определенную часть страницы, он ничего не показывает.
Шаги при тестировании файла «author / plugin / component / default.htm»:
Статический:
<h1>Test component</h1>
Динамический:
<ul>
{% for item in __SELF__.resources %}
<li> {{ item.name }} </li>
{% endfor %}
</ul>
в любом случае не отображаются на той части, где компонент был зарегистрирован или размещен. Я что-то пропустил? Или я ошибся?
Другие файлы
Файл "Автор / Плагин / Компоненты / Resources.php":
<?php namespace Author\Researchresources\Components;
use Cms\Classes\ComponentBase;
use Author\Researchresources\Models\ResearchResource;
class Resources extends ComponentBase
{
public function componentDetails(){
return [
'name' => 'Resources List',
'description' => 'List of Research Resources'
];
}
public function onRun(){
$this->resources = $this->loadResources();
}
protected function loadResources(){
return ResearchResource::all();
}
public $resources;
}
Файл "Автор / Плагин / Plugin.php":
<?php
namespace Author\Researchresources;
use System\Classes\PluginBase;
class Plugin extends PluginBase
{
public function registerComponents(){
return [
'Author\Researchresources\Components\Resources' => 'researchResources'
];
}
public function registerSettings()
{
}
public function boot(){
\Event::listen('offline.sitesearch.query', function ($query) {
$controller = \Cms\Classes\Controller::getController() ?? new \Cms\Classes\Controller();
$research_resources = ResearchResource::where('name', 'like', "%${query}%")->orWhere('description', 'like', "%${query}%")->get();
$results = $research_resources->map(function ($item) use ($query, $controller) {
$relevance = mb_stripos($item->name, $query) !== false ? 2 : 1;
return [
'title' => $item->name,
'text' => $item->description,
'url' => ($item->content_url != null) ? $item->content_url : "",
'relevance' => $relevance,
];
});
return [
'provider' => 'Document', // The badge to display for this result
'results' => $results,
];
});
}
}