Je voudrais créer un petit dialogue sur la publication d'événements sur un élément de mon composant auto-développé.
Par exemple: Item obtient published
- le contrôleur de l'élément est appelé et la méthode rund publish
avec $task
publish
.
Mais maintenant, j'aimerais interrompre le processus de publication: l'utilisateur doit répondre à une question - par exemple:
Êtes-vous sûr? Yes (publish)
ou No (exit)
Voici la source de mon contrôleur jusqu'à présent:
/**
* publish function.
*
* @access public
* @return void
*/
public function publish()
{
$app = JFactory::getApplication();
$jinput = JFactory::getApplication()->input;
$ids = $jinput->get('cid', '', 'array');
$task = $this->getTask();
$date = JFactory::getDate();
$modelitem = $this->getModel('Item');
foreach($ids as $id)
{
switch($task)
{
case 'publish' : // do stuff
break;
case 'unpublish': // do stuff
break;
case 'archive' : // do stuff
break;
case 'trash' : // do stuff
break;
}
}
$publish = $modelitem->publish($id, $state);
$this->setRedirect('index.php?option=com_bestia&view=items', false);
return true;
}
Le moyen le plus simple d'implémenter une boîte de dialogue de confirmation est du côté client, avec la routine Javascript. Vous pouvez vérifier comment JToolbar le fait:
$bar = JToolbar::getInstance('toolbar');
// Add a trash button.
$bar->appendButton('Confirm', JText::_('COM_XXX_CONFIRM_PURGE'), 'trash', $alt, $task, $check, false);
En termes javascript:
if (confirm('....')){Joomla.submitbutton('....');}