Bonjour,
Je suis en train de développer une (application / module) sencha (en EXTJS 4.0) intégré dans Joomla.
Jusqu'ici, même étant débutant en Joomla et novice sur Sencha, je suis parvenu à réaliser un arbre de dossiers et sous dossiers et l'affichage d'un formulaire affichant les données en fonction du noeud cliqué.
Maintenant, mon problème est le suivant :
Une fois mon formulaire sencha affiché avec les champs pré-remplis en fonction du noeud de l'arbre cliqué, je souhaiterais, après modification de ces champs, sauvegarder ces nouvelles données dans ma base de données.
Précédemment, pour faire la sauvegarde d'un formulaire dans l'interface Joomla, l'action 'maClasse.save' était appelée.
Pour essayer d'illustrer mon problème, voilà quelques "bouts de codes"
Coté Sencha, la vue représentant mon formulaire
entity_code, entity_id & entity_description sont les champs de mon formulaire que l'on retrouve dans Joomla et dans ma Base de données.
Coté Joomla, "l'ancienne vue" du formulaire était :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 Ext.define('module_contracts.view.Entity', { extend : 'Ext.form.Panel', alias : 'widget.entityView', id : 'entityView', html : '<p>Step 2 of 3</p>', items: [{ xtype: 'fieldset', title: 'Détails de l\'entité', defaultType: 'textfield', defaults: { width: 280 }, items: [ { fieldLabel: 'First Name', emptyText: 'First Name', name: 'entity_code' }, { fieldLabel: 'Last Name', emptyText: 'Last Name', name: 'entity_id' }, { fieldLabel: 'Company', name: 'entity_description' } ] }], buttons: [ { text: 'Save', handler: function () { var form = Ext.getCmp('contentPanel').layout.activeItem.getForm(); form.submit ({ url : 'index.php', params : {task: "entity.save", option: "com_projidcontracts"}, waitMsg: 'Saving...', success: function () { Ext.MessageBox.alert ('Message','Data has been saved'); form.reset(); }, failure: function () { Ext.MessageBox.alert ('Message','Saving data failed'); } }); } }, { text: 'Cancel', handler: function () { var form = Ext.getCmp('contentPanel').layout.activeItem.getForm(); form.reset(); } } ] });
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 class ProjidContractsViewEntity extends JView { protected $form; protected $item; protected $param; public function display($tpl = null) { // get the Data $form = $this->get('Form'); $item = $this->get('Item'); $param = $this->get('Param'); // Check for errors. if (count($errors = $this->get('Errors'))) { JError::raiseError(500, implode('<br />', $errors)); return false; } // Assign the Data $this->form = $form; $this->item = $item; $this->params = $param; // Set the toolbar $this->addToolBar(); // Display the template parent::display($tpl); // Set the document $this->setDocument(); } /** * Setting the toolbar */ protected function addToolBar() { JRequest::setVar('hidemainmenu', true); $isNew = ($this->item->entity_id == 0); JToolBarHelper::title($isNew ? JText::_('COM_PROJID_ENTITY_NEW') : JText::_('COM_PROJID_ENTITY_EDIT')); JToolBarHelper::apply('entity.apply'); JToolBarHelper::save('entity.save'); JToolBarHelper::cancel('entity.cancel', $isNew ? 'JTOOLBAR_CANCEL' : 'JTOOLBAR_CLOSE'); } protected function setDocument() { $isNew = ($this->item->entity_id < 1); $document = JFactory::getDocument(); $document->setTitle($isNew ? JText::_('COM_PROJID_ENTITY_CREATING') : JText::_('COM_PROJID_ENTITY_EDITING')); } }
On retrouve donc les actions entity.apply, entity.save, entity.cancel qui gèrent automatiquement les données du formulaire Joomla.
Mes question :
Comment faire aujourd'hui pour appeler cette action de sauvegarde Joomla depuis mon interface Sencha ?
En résumé, la question principale est : Comment sauvegarder les données d'un formulaire sencha, dans une base de données en utiisant une "passerelle PHP" Joomla ?
Merci beaucoup d'avance![]()
Partager