2017-02-19 2 views
2

Согласно this section документации OctoberCMS, должно быть возможно для меня, чтобы создать структуру каталогов, как это:Rendering компонент парциальное из кода в OctoberCMS

pluginname 
├── components 
│   ├── resumefilter 
│   │   ├── default.htm 
│   │   └── my-partial.htm 
│   ├── ResumeFilter.php 
│   ├── resumelist 
│   │   └── default.htm 
│   └── ResumeList.php 

Тогда, я должен быть в состоянии поставить функция ResumeFilter.php так:

function onFilterResumes() 
{ 
    return ['#someDiv' => $this->renderPartial('my-partial.htm')]; 
} 

Наконец, кнопка в default.htm разметке:

<button 
    class="btn btn-success" 
    data-request="onFilterResumes"> 
    Filter 
</button> 

Проблема заключается в том, когда я нажимаю кнопку, он говорит The partial 'my-partial.htm' is not found

Я попробовал его на полный путь, но это, кажется, не имеет никакого значения.

Октябрь, кажется, ищет в теме partials каталог для частичного, потому что он загружается, если я помещаю его туда. Однако префикс имени с resumefilter:, чтобы попытаться найти его в компоненте, не работает, и документы, похоже, предполагают, что он должен искать в компоненте без префикса.

Я нашел this bug on github от 2 лет назад, но похоже, что он был исправлен.

+0

Ошибка жалуется my- ' partial.html', который явно не существует. Вы уверены, что используете правильное имя файла? – Meysam

+0

Спасибо, что заметили, что @Meysam, но это была только опечатка с моей стороны. Я обновил его сейчас. Ошибка была в предупреждении javascript, которое я не мог скопировать/вставить :-) – Joseph

ответ

4

Добавить @ перед вашим частным именем, если вы хотите частично отобразить компонент. Так что ваш код должен как это,

function onFilterResumes() 
{ 
    return ['#someDiv' => $this->renderPartial('@my-partial.htm')]; 
} 

И если вы хотите, чтобы переопределить парциальное в вашей теме, положить парциальное в следующем дереве,

themes/theme-name/partials/component-name/my-partial.htm

+0

Спасибо @Surahman. Это отлично работает :-) – Joseph

Смежные вопросы