Skip to content
Snippets Groups Projects
Commit a1939288 authored by pbarroca's avatar pbarroca
Browse files

Possibilité de passer des callback de rendu des valeurs dans la liste back scaffoldée

parent 8460130d
Branches
Tags
No related merge requests found
......@@ -24,13 +24,13 @@ class ZendAfi_View_Helper_TagModelTable extends Zend_View_Helper_HtmlElement {
/** @var int */
protected $_cols_count = 0;
public function tagModelTable($models, $cols, $attribs, $actions, $id, $group_by = null) {
public function tagModelTable($models, $cols, $attribs, $actions, $id, $group_by = null, $callbacks = []) {
$this->_hasActions = 0 < count($actions);
$this->_cols_count = count($attribs) + ($this->_hasActions ? 1 : 0);
return '<table id="'.$id.'" class="models">'
.$this->head($cols)
.$this->tbody($models, $attribs, $actions, $group_by)
.$this->tbody($models, $attribs, $actions, $group_by, $callbacks)
.'</table>';
}
......@@ -48,7 +48,7 @@ class ZendAfi_View_Helper_TagModelTable extends Zend_View_Helper_HtmlElement {
}
public function tbody($models, $attribs, $actions, $group_by) {
public function tbody($models, $attribs, $actions, $group_by, $callbacks) {
$rows = '';
$groups = array();
......@@ -64,38 +64,42 @@ class ZendAfi_View_Helper_TagModelTable extends Zend_View_Helper_HtmlElement {
}
$rows = $this->renderGroupsAsTableRows($groups, $attribs, $actions);
$rows = $this->renderGroupsAsTableRows($groups, $attribs, $actions, $callbacks);
return '<tbody>'.$rows.'</tbody>';
}
public function renderGroupsAsTableRows($groups, $attribs, $actions) {
public function renderGroupsAsTableRows($groups, $attribs, $actions, $callbacks) {
$rows = '';
foreach ($groups as $name => $groupModels) {
if ('no_group' != $name && '' != $name)
$rows .= '<tr><td style="background-color:#888;color:white;font-size:120%;padding:2px 10px;font-weight:bold;" colspan="' . $this->_cols_count . '">' . $this->view->escape($name) . '</td></tr>';
$rows .= $this->renderModelsAsTableRows($groupModels, $attribs, $actions);
$rows .= $this->renderModelsAsTableRows($groupModels, $attribs, $actions, $callbacks);
}
return $rows;
}
public function renderModelsAsTableRows($groupModels, $attribs, $actions) {
public function renderModelsAsTableRows($groupModels, $attribs, $actions, $callbacks) {
$rows = '';
foreach ($groupModels as $model)
$rows .= $this->renderModelAsTableRow($model, $attribs, $actions);
$rows .= $this->renderModelAsTableRow($model, $attribs, $actions, $callbacks);
return $rows;
}
public function renderModelAsTableRow($model, $attribs, $actions) {
public function renderModelAsTableRow($model, $attribs, $actions, $callbacks) {
$cols = '';
foreach ($attribs as $attrib)
$cols .= '<td>'.$this->view->escape($model->callGetterByAttributeName($attrib)).'</td>';
$default_callback = function ($value) {return $this->view->escape($value);};
foreach ($attribs as $attrib) {
$callback = (array_key_exists($attrib, $callbacks)) ? $callbacks[$attrib] : $default_callback;
$cols .= '<td>' . $callback($model->callGetterByAttributeName($attrib)) . '</td>';
}
$row = '<tr>'.$cols.'<td>';
if ($this->_hasActions)
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment