A view helper не будет решением в этом случае. Скорее всего, вы захотите использовать частичный (который является помощником вида). Помощник вида - это то, что обычно используется для return
части данных для представления. partial()
или partialLoop()
используется для отображения общего HTML в представлении (фрагменты HTML, которые могут быть повторно использованы в нескольких представлениях).
Вот пример простого помощника вида, обратите внимание, что он возвращает результат:
<?php
class Zend_View_Helper_FormatDate extends Zend_View_Helper_Abstract
{
public function FormatDate($date) {
if ($date != NULL) {
$formatedDate = new DateTime($date);
$format = $formatedDate->format('M d, Y');
return $format;
} else {
return '';
}
}
}
//This is called in the view like any other function
<?php echo $this->FormatDate($date) ?>
Теперь часть будет содержать Html (я уверен, JS тоже будет работать)
Вот часть, которая использует помощники вида
fieldset><legend>Dates and Qualifications</legend>
<table>
<tr>
<td>Birth Date: </td><td><?php echo $this->escape($this->FormatDate($this->bdate)) ?></td>
</tr>
<tr>
<td>Seniority Date: </td><td><?php echo $this->escape($this->FormatDate($this->sendate)) ?></td>
</tr>
</table>
<table>
<tr>
<td>I'm a Lead:</td><td><?php echo $this->escape(ucfirst($this->ToBool($this->lead))) ?></td>
</tr>
<tr>
<td>Lead Date:</td><td><?php echo $this->escape($this->FormatDate($this->ldate)) ?></td>
</tr>
<tr>
<td>I'm an Inspector:</td><td><?php echo $this->escape(ucfirst($this->toBool($this->inspector))) ?></td>
</tr>
<tr>
<td>Admin Login:</td><td><?php echo $this->escape(ucfirst($this->toBool($this->admin))) ?></td>
</tr>
</table>
</fieldset>
вызовите это частичное в вашем скрипте вида, первый аргумент - это путь частичного
второй аргумент - данные, используемые в частичном
<?php echo $this->partial('_dates.phtml', $this->memberData) ?>
данные отправляются из действия контроллера как обычно $this->view->memberData = $memberData
Это обычное использование, но не единственный способ получить данные в частичную.
в этом примере частичное находится в местоположении по умолчанию /application/views/scripts
Надеюсь, это поможет