We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 37123
    • 186 Posts
    Eccoci qui, ancora una volta...

    Ho creato uno snippet che fa una semplice chiamata ad una funzione php tipo mia_funzione($parametri); salvata su un file php esterno.
    La funzione che richiamo fa una curl con determinati parametri e mi reindirizza sulla pagina manager di modx. Questa funzione mi consente di pubblicare i miei post direttamente su fb tramite un applicazione, questo snippet deve partire solo quando salvo una risorsa (che ha un opzione "pubblica su fb" impostata su on).

    Ho tre domande:
    1) posso salvare il codice della mia funzione nello snippet giusto? senza dover richiamarla in un file php esterno quindi saltando un punto.
    2) come faccio a far la chiamata allo snippet quanto premo il pulsante salva? Devo usare jquery/ajax o c'e un evento gia "codificato" in modx?
    3) posso personalizzare il manager per inserire una checkbox?

    Sono domande da principiante ma quando mi blocco non c'è verso...

    Grazie
    • Domande non di certo da principiante... smiley

      Puoi modificare tutto del pannello di controllo ma richiede un po' di programmazione e onestamente non mi ci sono mai avventurato più di tanto, qui trovi qualche riferimento: http://rtfm.modx.com/display/revolution20/MODExt

      Come soluzione più semplice potresti provare questa strada:

      1. crei una variabile di template da spuntare per la pubblicazione su FB
      2. anzichè uno snippet crei un plugin, di cui puoi regolare l'attivazione quando ti pare, per cui anche al momento del salvataggio della risorsa
        TilliLab | MODX Ambassador
        website
        • 37123
        • 186 Posts
        Scusa il ritardo, ho avuto da fare e non mi sono dedicato molto a questo. La prima strada quindi la lasciamo perdere. Però l'idea della TV puo andare. Ora mi sorge un dubbio, come faccio a "regolare l'attivazione del plugin" al salvataggio?
          • 37123
          • 186 Posts
          Ok direi che ho trovato... grazie ora faccio alcuni test
            • 37123
            • 186 Posts
            Eccoci qui, ho fatto alcuni test e sono quasi soddisfatto, mi manca solo un dettaglio. Ora il mio plugin viene eseguito ogni volta che salvo una risorsa, non riesco a capire in che modo posso "attivare" questo plugin solo se è attivata un specifica TV. Negli eventi di sistema del plugin ci sono alcuni eventi legati alle TV ma non capisco in che modo associare la partenza di quel plugin alla mia TV e non a tutte le TV...
            Grazie a tutti
              • 37123
              • 186 Posts
              Ho trovato un link in cui si diceva in spicci, il valore di una TV è passato come POST al plugin. Se la TV si chiamasse facebook ci si potrebbe accedere al suo valore attraverso $_POST['tvfacebook']. Ci ho provato ma niente, stessa cosa per le altre variabili passate tramite post. Mi viene in mente che ci sia un impostazione sbagliata?
              • Ciao, ho ritrovato questo codice che avevo visto tempo fa per recuperare il valore di una tv tramite plugin:

                $tvId = 12;
                /* $id will be the resource ID */
                $tv1 = $modx->getObject('modTemplateVarResource',array ('tmplvarid'=>$tvId,'contentid' = $id));
                $val = $tv1->getValue();
                


                Mi viene solo un dubbio se $id sia generato automaticamente al momento del salvataggio o se va dichiarato prima...
                  TilliLab | MODX Ambassador
                  website
                  • 37123
                  • 186 Posts
                  Proverò anche questa, per il momento con il codice che ho trovato in rete non sono riuscito a risolvere. é anche vero che non ho avuto molto tempo... Grazie di nuovo
                    • 20215
                    • 144 Posts
                    Ciao,
                    posto di seguito un plugin OnDocFormSave di esempio che prende il valore di una TV(myTV1) e la mette in un'altra (myTV2)

                    Attenzione! Il valore nella myTV2 lo vedrai inserito solo dopo aver riaperto la risorsa

                    
                    <?php
                    
                    $eventName = $modx->event->name;
                    //controllo l'evento anche se non credo sia necessario
                    switch($eventName) {
                    	case 'OnDocFormSave':
                      	  $modx->event->output($eventName);
                              if($resource->getTVValue('myTV1')) {
                    
                    	    $tv = $modx->getObject('modTemplateVar', array('name'=> 'myTV2'));
                    	    $tv->setValue($resource->get('id'), $resource->getTVValue('myTV1'));
                    	    $tv->save();
                    
                    	  }   
                    	break;
                    }
                    
                    


                    l'evento http://rtfm.modx.com/display/revolution20/OnDocFormSave


                    Spero possa aiutarti
                      ----------------------------------
                      canale irc Italiano #modx server: tophost.azzurra.org
                      • 20215
                      • 144 Posts
                      hmm ho notato un piccolo problema con quel plugin

                      if($resource->getTVValue('myTV1')) {

                      non basta o non è corretto per eseguire il codice al suo interno solo quando c'è una myTV1 popolata...

                      L'ho notato gurdando il database, la tabella modx_site_tmplvar_contentvalues, dove trovavo associazioni id myTV2 con id di risorse salvate ma a cui non avevo associato myTV1 e myTV2.

                      Disabilitando il plugin non succedeva.. ho deciso di modificarlo facendo un controllo sul Template ma vorrei anche controllare che myTV1 sia popolato..

                      Se vi viene in mente qualcosa fatemi sapere smiley

                      Ciao
                        ----------------------------------
                        canale irc Italiano #modx server: tophost.azzurra.org