web-dev-qa-db-fra.com

Créer un dialogue sur les méthodes de publication

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 $taskpublish.

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;
}   
2
MyFault

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('....');}
1
Anibal