J'ai modifié la fonction de publication de mon sous-contrôleur comme suit
/**
* publish function.
*
* @access public
* @return void
*/
public function publish()
{
$app = JFactory::getApplication();
$jinput = JFactory::getApplication()->input;
$ids = $jinput->get('cid', '', 'array');
$task = $this->getTask();
foreach($ids as $id)
{
// do fancy stuff
}
}
Maintenant, j'aimerais vraiment changer le statut de certains éléments (-> $ ids) via un script CLI.
Est-il possible d'appeler ce contrôleur, d'obtenir la méthode "publier" et de soumettre un ensemble d'identifiants et, à cette tâche, une tâche (publier, annuler la publication, supprimer, ...)?
Récemment, j'ai créé un composant lorsque je change le statut de publication via une requête Ajax.
J'ai créé une méthode setPublish($id, $status)
sur un modèle et deux méthodes sur mon contrôleur:
public function setPublishTrue(){
$data = JRequest::get('post'); //get the item id via post
$model = $this->getModel('Promocaos');
$model->setPublish($data['id'], 1);
}
La demande ajax:
var formdata = $("#form-" + this.id).serialize();
if(state){
jQuery.ajax({
type: "POST",
dataType: "json",
timeout: 6000,
url: "index.php?option=com_mycomponent&task=setPublishTrue&controller=mycontroller",
data: formdata,
processData: false
});
Ensuite, je peux changer le statut via les requêtes Ajax
Oui, c'est possible, mais vous devez créer votre propre script CLI pour traduire la ligne de commande en commande de l'API Joomla. Par exemple:
Vous pouvez vérifier n'importe quel cli/script pour créer votre propre script.