Файл шаблона не наследуется от моего шаблона блока расширения основного блока Mage?
Я создал модуль, в котором я могу добавлять изображения в администраторе, а затем они будут отображаться в интерфейсе в виде слайдера баннера.
Все мои административные функции работают нормально, Они добавляют изображения и т. Д. и т. Д., Поэтому я создал блок (/app/code/local/Nublue/Slidemanager/Block/bannerslider.php), который состоит из следующего:
public function CreateSliderHtml()
{
$html = '';
$slideimage = Mage::getModel('nublue_slidemanager/slideimage');
foreach ($slideimage as $slide) {
$image = $slide->getImage();
if ($slide->getUrl() != null || '') {
$url = $slide->getUrl();
}
$html .= '<li><img src="'$image'" href="' if (isset($url)){'$url"'} 'width="600" height="400" alt=""></li>'
}
return $html;
}
}
И мой класс называется "nublue_slidemanager_block_bannerslider", и он расширяет 'Табличка Mage_Core_Block_Template'
В моем файле шаблона
(приложение/дизайн/интерфейс/база/по умолчанию/шаблон/nublue_slidemanager/bannerslider.phtml)
У меня есть это:
<!-- Carousel -->
<div class="jcarousel">
<ul>
<?php echo $this->CreateSliderHtml(); ?>
</ul>
</div>
Но эхо $this->createsliderhtml();выдает ошибку
Недопустимый метод Mage_Core_Block_Template::createsliderhtml(Массив ( ) )
И я знаю, что файл шаблона вызывается, потому что, если я удалю php-код из шаблона и жестко закодирую некоторые изображения, они появятся.
Является есть XML-файл, который мне нужно где-то отредактировать? Я думал, что пока я определяю, где я получаю блоки, помощников и прочее, это будет работать. Поэтому, чтобы уточнить, у меня есть Nublue_Slidemanager.xml и config.xml в их правильных папках
1 answers
- Имя класса должно быть
Nublue_Slidemanager_Block_Bannerslider
с заглавной буквы B (также измените имя файла) -
Ваш config.xml необходимо определить префикс псевдонима класса для ваших блоков, например:
<global> <blocks> <slidemanager> <class>Nublue_Slidemanager</class> </slidemanager> </blocks> </global>
-
Где бы вы ни интегрировали блок (CMS или XML макета), вам необходимо указать тип (т.е. псевдоним класса):
-
CMS:
{{block type="slidemanager/bannerslider" template="Nublue_Slidemanager/bannerslider.phtml"}}
-
XML-формат макета:
<block name="bannerslider" type="slidemanager/bannerslider" template="Nublue_Slidemanager/bannerslider.phtml" />
-