J'essaie de comprendre la logique MVC de Joomla. aidez-moi s'il vous plaît à comprendre le traitement de la tâche
Le code non édité d'un package Joomla a le formulaire d'édition d'article frontal avec le champ de tâche, mais sa valeur est manquante (fichier racine/composants/com_content/views/form/tmpl/edit.php):
<input type="hidden" name="task" value="" />
Par défaut, l'URL de l'action du formulaire n'a pas de paramètre de tâche. Voici comment je vois l'URL de l'action:
JRoute::_('index.php?option=com_content&a_id=' . (int) $this->item->id); ?>
Je ne suis pas sûr, mais je pense que lorsque le flux atteint le point d'entrée du composant, dans ce cas le fichier racine/composants/com_content/content.php, l'entrée inclut une tâche article.save.
Les données d'entrée que je reçois sont:
["data":protected]=>
&array(13) {
["a_id"]=>
string(1) "7"
["jform"]=>
array(12) {
["title"]=>
string(69) "Test 1"
["version_note"]=>
string(0) ""
["state"]=>
string(1) "1"
["publish_up"]=>
string(19) "2018-05-23 05:37:29"
["publish_down"]=>
string(0) ""
["tags"]=>
array(3) {
[0]=>
string(1) "2"
[1]=>
string(1) "4"
[2]=>
string(1) "6"
}
["metadesc"]=>
string(0) ""
["metakey"]=>
string(0) ""
["articletext"]=>
string(181) "<p>TEST This is some text</p>
<p>Line 1</p>
<p>Line 2</p>
<p> </p>
<p>Line 3</p>
<p> </p>
<p>Line 7</p>"
["com_fields"]=>
array(1) {
["testfield"]=>
string(27) "<span class="star">@</span>"
}
["catid"]=>
string(1) "8"
["language"]=>
string(1) "*"
}
["task"]=>
string(12) "article.save"
["return"]=>
string(180) "aW5kZXgucGhwP29wdGlvbj1jb21fY29udGVudCZ0YXNrPWFydGljbGUuZWRpdCZhX2lkPTcmcmV0dXJuPWFIUjBjSE02THk5c2IyTmhiR2h2YzNRdmMyaHZjblJ6ZEc5eWVTNXpjR0ZqWlM5d2RXSnNhV05mYUhSdGJDOTBaWE4wTFRFPQ=="
["13456789"]=>
string(1) "1"
["option"]=>
string(11) "com_content"
["view"]=>
string(8) "category"
["layout"]=>
string(4) "blog"
["id"]=>
string(1) "8"
["Itemid"]=>
string(3) "101"
}
Où est la tâche définie?
Étant donné que le fichier edit.php d'origine ne contient pas de valeur pour le champ de tâche, existe-t-il un autre champ dans ce formulaire qui influence le paramétrage de la tâche dans un fichier appelé lorsque je clique sur le bouton Enregistrer?
Comme j'essaie de communiquer ci-dessus, l'entrée du composant indique ["task"] => string (12) "article.save" lorsque le fichier de point d'entrée du composant est appelé (c'est-à-dire, root/components/com_content/content.php "
Étant donné que le paramètre de tâche URL est absent de l'action du formulaire, l'URL à partir de laquelle je fais la demande influence-t-elle le code qui définit la tâche?
Je me félicite de toute information en aidant à comprendre la logique MVC de Joomla
Si vous inspectez le bouton à l’arrière, vous remarquerez qu’il s’agit généralement de <button onclick="Joomla.submitbutton('view.task');"></button>
. Quand Joomla.submitbutton
est appelé, la valeur qui y est passée est automatiquement transférée dans <input type="hidden" name="task" />
si trouvé à l'intérieur d'un <form>
avec l'ID adminForm
.
Sinon, les contrôleurs font automatiquement passer toutes les tâches à view.display
si aucune tâche n’est donnée.