Ce que j'essaie de faire, c'est ceci:
Mais y échouer. Les codes que j'ai essayé d'utiliser sont:
<td class="nowrap center">
<div class="btn-group">
<?php echo JHtml::_('jgrid.published', $row->state, $i, 'records.', true, 'cb'); ?>
<?php echo JHtml::_('jgrid.published', ((int) $row->state === 2 ? 1 : 2), $i, 'records.', true, true, 'cb'); ?>
<?php echo JHtml::_('jgrid.published', ((int) $row->state === -2 ? 1 : -2), $i, 'records.', true, true, 'cb'); ?>
</div>
</td>
et aussi une tentative de:
<td class="nowrap center">
<div class="btn-group">
<?php echo JHtml::_('jgrid.published', $row->state, $i, 'records.', true, 'cb'); ?>
<?php echo JHtml::_('jgrid.state', JHtml::_('grid.publishedOptions'), ((int) $row->state === 2 ? 1 : 2), $i, 'records.', true, true, 'cb'); ?>
<?php echo JHtml::_('jgrid.state', JHtml::_('grid.publishedOptions'), ((int) $row->state === -2 ? 1 : -2), $i, 'records.', true, true, 'cb'); ?>
</div>
</td>
J'ai dû examiner à nouveau et il me semble avoir trouvé une solution.
Tout comme le bouton de publication rendu avec jgrid.published
dans l'exemple ci-dessous:
<?php echo JHtml::_('jgrid.published', $row->state, $i, 'myitems.', true, 'cb', $row->publish_up, $row->publish_down); ?>
Utilisez le but plus général jgrid.action
rendu à la place, défini dans la bibliothèque joomla comme suit:
public static function action($i, $task, $prefix = '', $text = '', $active_title = '', $inactive_title = '', $tip = false, $active_class = '',
$inactive_class = '', $enabled = true, $translate = true, $checkbox = 'cb')
Bien que contrairement à jgrid.published
, ce rendu crée des boutons avec une tâche fixe singulière. Il n’est pas sensible à l’état, c’est-à-dire qu’il ne peut pas attribuer automatiquement une tâche en fonction de l’état actuel. Mais on peut toujours imiter ce comportement en utilisant un if-else
code-wrapper pour contrôler les boutons à afficher.