Back to top

Autore Topic: Trigger delle azioni in batch su più articoli  (Letto 1958 volte)

Offline daniele.nyx

  • Nuovo arrivato
  • *
  • Post: 6
    • Mostra profilo
Trigger delle azioni in batch su più articoli
« il: 27 Ago 2013, 18:36:00 »
Ciao a tutti :)
Sono uno sviluppatore junior su piattaforme joomla e ho un problema con la creazione di un plugin su piattaforma Joomla 2.5.


Il mio intento è quello di creare un plugin di tipo "content" per monitorare una specifica categoria di articoli (specificata nei settings del plugin), ove per monitorare intendo intercettare la creazione (o l'aggiunta a seguito di spostamento) di articoli nella suddetta categoria. Inoltre sono sotto esame i cambi di stato da "non pubblicato" a "pubblicato".


Al momento riesco correttamente a intercettare:
- tramite l'evento "onContentAfterSave" il salvataggio di nuovi articoli o lo spostamento di un singolo articolo nella categoria monitorata tramite maschera di modifica articolo
- tramite l'evento "onContentChangeState" il cambio di stato a pubblicato di articoli dalla schermata di elenco articoli


PROBLEMA: Sorge un problema però se l'utenza cambia la categoria di uno o più articoli dalla lista degli articoli attraverso la selezione con le checkbox e azione "Seleziona una categoria da spostare/copiare" posta a fondo pagina, perché non ho evento che posso intercettare!


Come posso quindi porre un trigger a seguito di questa azione ed intervenire anche in quel caso?
Ringrazio in anticipo!

mau_develop

  • Visitatore
Re:Trigger delle azioni in batch su più articoli
« Risposta #1 il: 27 Ago 2013, 21:42:02 »
ma da dove? lato admin?

Offline daniele.nyx

  • Nuovo arrivato
  • *
  • Post: 6
    • Mostra profilo
Re:Trigger delle azioni in batch su più articoli
« Risposta #2 il: 28 Ago 2013, 14:22:46 »
Yess, dalla gestione articoli:



mau_develop

  • Visitatore

Offline daniele.nyx

  • Nuovo arrivato
  • *
  • Post: 6
    • Mostra profilo
Re:Trigger delle azioni in batch su più articoli
« Risposta #4 il: 28 Ago 2013, 17:36:31 »
Grazie M_W_C della risposta,

credi che io debba scatenare a mano un nuovo evento mettendo mano nel componente nativo di joomla (che in questo caso è com_content)? Non c'è nessun evento già predisposto?

Qualcuno sa dove posso trovare il codice relativo a quel form? Forse in questo modo posso vedere dal codice se qualche trigger viene scatenato già nativamente..

Grazie!

mau_develop

  • Visitatore
Re:Trigger delle azioni in batch su più articoli
« Risposta #5 il: 28 Ago 2013, 18:24:53 »
Nelle api che ti ho linkato trovi la funzione che appartiene alla classe model admin quindi basta guardare li che cosa fa

Offline daniele.nyx

  • Nuovo arrivato
  • *
  • Post: 6
    • Mostra profilo
Re:Trigger delle azioni in batch su più articoli
« Risposta #6 il: 29 Ago 2013, 14:58:19 »
"batchMove" sembra essere la funzione di mio interesse e quella a cui dovrei "attaccarmi" per intercettare le cosa, solo che ho scoperto mio malgrado che questa viene chiamata nei componenti "modules", "banners", "contact", "menus" e "categories", niente componente "content"..

.. qualche suggerimento?

mau_develop

  • Visitatore
Re:Trigger delle azioni in batch su più articoli
« Risposta #7 il: 29 Ago 2013, 15:34:17 »
è mvc per cui non c'è molto da cercare basta andare dove per definizione dovrebbero essere ovvero controller e model.
infatti se vai nel controller trovi il metodo per le operazioni batch che usa un metodo statico batch

Offline daniele.nyx

  • Nuovo arrivato
  • *
  • Post: 6
    • Mostra profilo
Re:Trigger delle azioni in batch su più articoli
« Risposta #8 il: 29 Ago 2013, 16:18:26 »
Ok, ho trovato tutto e seguito il giro.

La classe "ContentControllerArticle" recupera il model degli articoli tramite "getModel" (model che è di tipo "ContentModelArticle") e lo passa al metodo batch della classe parent (ovvero "JControllerForm"). Il metodo batch del parent altro non fa che chiamare il metodo batch del model con "$model->batch".

"ContentModelArticle" non contiene metodo batch e questo viene chiamato sul diretto parente, ovvero "JModelAdmin". In "JModelAdmin", all'interno del metodo "batch", si ha infine la chiamata a "batchMove" .

In tutto questo però non ho trovato la soluzione: non vi è trigger che viene scatenato durante il percorso!!
Gli unici trigger vengono chiamati da JModelAdmin in altri eventi, ovvero "event_before_delete", "event_after_delete", "event_change_state", "event_before_save" e "event_after_save".
Aiuto!

 



Web Design Bolzano Kreatif