Page 1 of 3 123 LastLast
Results 1 to 10 of 27

Thread: Inserire codice php su 5.1

  1. #1
    ff76 is offline Sugar Community Member
    Join Date
    May 2008
    Posts
    96

    Default Inserire codice php su 5.1

    Ciao a tutti,

    con il Module Builder ho creato un modulo Righe Opportunità (in realazione alle Opportunità) così composto:

    Prodotto: ____________________ seleziona azzera

    Quantità: _____ Prezzo: _____
    Sconto: _____ Prezzo Netto: _____
    Descrizione: __________________________


    Io vorrei che quando inserisco la quantità venga scatenata una query che mi permette di preleavere lo sconto e il netto (che stanno su una tabella del CRM) per calcolare il prezzo...

    Il problema è il seguente: su quale file PHP devo inserire il mio codice??

  2. #2
    DragonflyMaster is offline Sugar Community Member
    Join Date
    Dec 2007
    Location
    Rimini, Italy
    Posts
    1,421

    Default Re: Inserire codice php su 5.1

    Quote Originally Posted by ff76
    Ciao a tutti,

    con il Module Builder ho creato un modulo Righe Opportunità (in realazione alle Opportunità) così composto:

    Prodotto: ____________________ seleziona azzera

    Quantità: _____ Prezzo: _____
    Sconto: _____ Prezzo Netto: _____
    Descrizione: __________________________


    Io vorrei che quando inserisco la quantità venga scatenata una query che mi permette di preleavere lo sconto e il netto (che stanno su una tabella del CRM) per calcolare il prezzo...

    Il problema è il seguente: su quale file PHP devo inserire il mio codice??
    Ciao,
    vai nella cartella del tuo modulo e apri il file tuo_modulo.php, lì puoi aggiungere funzioni per eseguire query
    Un'ipotesi alternativa è leggere i valori da tabella via query e salvarli come array associativo nel file it_it.lang.php dentro la custom/language/ e aggiornare i campi tra loro collegati tramite javascript, come si fa per i related dropdown...
    What do you think the cookie monster eats ?

  3. #3
    ff76 is offline Sugar Community Member
    Join Date
    May 2008
    Posts
    96

    Default Re: Inserire codice php su 5.1

    Quote Originally Posted by DragonflyMaster
    Ciao,
    vai nella cartella del tuo modulo e apri il file tuo_modulo.php, lì puoi aggiungere funzioni per eseguire query
    Un'ipotesi alternativa è leggere i valori da tabella via query e salvarli come array associativo nel file it_it.lang.php dentro la custom/language/ e aggiornare i campi tra loro collegati tramite javascript, come si fa per i related dropdown...
    Io nella cartella del modulo ho questi 2 file: Righe_Offerta.php e Righe_Offerta_sugar.php

    1) Righe_Offerta.php
    Code:
    <?PHP
    require_once('modules/fts01_Righe_Offerta/fts01_Righe_Offerta_sugar.php');
    class fts01_Righe_Offerta extends fts01_Righe_Offerta_sugar {
    	
    	function fts01_Righe_Offerta(){	
    		parent::fts01_Righe_Offerta_sugar();
    	}
    	
    }
    ?>
    2) Righe_Offerta_sugar.php
    Code:
    <?PHP
    class fts01_Righe_Offerta_sugar extends Basic {
    	var $new_schema = true;
    	var $module_dir = 'fts01_Righe_Offerta';
    	var $object_name = 'fts01_Righe_Offerta';
    	var $table_name = 'fts01_righe_offerta';
    	var $importable = false;
    
    	var $disable_row_level_security = true ; // to ensure that modules created and deployed under CE will continue to function under team security if the instance is upgraded to PRO
    
    		var $id;
    		var $name;
    		var $date_entered;
    		var $date_modified;
    		var $modified_user_id;
    		var $modified_by_name;
    		var $created_by;
    		var $created_by_name;
    		var $description;
    		var $deleted;
    		var $created_by_link;
    		var $modified_user_link;
    		var $assigned_user_id;
    		var $assigned_user_name;
    		var $assigned_user_link;
    		var $qta;
    		var $prezzo_netto;
    		var $prezzo;
    		var $sconto;
    	
    
    
    
    
    	function fts01_Righe_Offerta_sugar(){	
    		parent::Basic();
    	}
    	
    	function bean_implements($interface){
    		switch($interface){
    			case 'ACL': return true;
    		}
    		return false;
    }
    		
    }
    ?>
    In che file devo mettere le mie modifiche?

    Io vorrei che, appena dopo aver inserito la quantità venga scatenata una query che mi reperisce gli sconti per calcolare il prezzo... Come posso fare?

    Devo aggiungere un tasto "calcola prezzo" vicino al campo quantità e se si come posso fare per aggiungerlo?

  4. #4
    DragonflyMaster is offline Sugar Community Member
    Join Date
    Dec 2007
    Location
    Rimini, Italy
    Posts
    1,421

    Default Re: Inserire codice php su 5.1

    Quote Originally Posted by ff76
    Io nella cartella del modulo ho questi 2 file: Righe_Offerta.php e Righe_Offerta_sugar.php

    1) Righe_Offerta.php
    Code:
      <?PHP
      require_once('modules/fts01_Righe_Offerta/fts01_Righe_Offerta_sugar.php');
      class fts01_Righe_Offerta extends fts01_Righe_Offerta_sugar {
      	
      	function fts01_Righe_Offerta(){	
      		parent::fts01_Righe_Offerta_sugar();
      	}
      	
      }
      ?>
    2) Righe_Offerta_sugar.php
    Code:
      <?PHP
      class fts01_Righe_Offerta_sugar extends Basic {
      	var $new_schema = true;
      	var $module_dir = 'fts01_Righe_Offerta';
      	var $object_name = 'fts01_Righe_Offerta';
      	var $table_name = 'fts01_righe_offerta';
      	var $importable = false;
      
      	var $disable_row_level_security = true ; // to ensure that modules created and deployed under CE will continue to function under team security if the instance is upgraded to PRO
      
      		var $id;
      		var $name;
      		var $date_entered;
      		var $date_modified;
      		var $modified_user_id;
      		var $modified_by_name;
      		var $created_by;
      		var $created_by_name;
      		var $description;
      		var $deleted;
      		var $created_by_link;
      		var $modified_user_link;
      		var $assigned_user_id;
      		var $assigned_user_name;
      		var $assigned_user_link;
      		var $qta;
      		var $prezzo_netto;
      		var $prezzo;
      		var $sconto;
      	
      
      
      
      
      	function fts01_Righe_Offerta_sugar(){	
      		parent::Basic();
      	}
      	
      	function bean_implements($interface){
      		switch($interface){
      			case 'ACL': return true;
      		}
      		return false;
      }
      		
      }
      ?>
    In che file devo mettere le mie modifiche?

    Io vorrei che, appena dopo aver inserito la quantità venga scatenata una query che mi reperisce gli sconti per calcolare il prezzo... Come posso fare?

    Devo aggiungere un tasto "calcola prezzo" vicino al campo quantità e se si come posso fare per aggiungerlo?
    Visto che tutti i dati necessari (prezzo, quantità, sconto) sono in tabella, sono reperibili tramite query SQL.
    Puoi inserire la query SQL nel file Righe_Offerta.php e salvare i dati letti dal DB da qualche parte (suggerisco un array associativo).
    Poi nel file editviewdefs.php del tuo modulo, aggiungi al campo Quantità un chiamata a codice javascript in modo che appena cambi il valore quantità vengono aggiornati tutti gli altri campi collegati.

    EDIT: Il file in cui mettere le tue funzioni è Righe_Offerta.php, non Righe_Offerta_sugar.php, scusami. Quest'ultimo infatti è creato automaticamente dal Module Builder ed è meglio non toccarlo.
    Last edited by DragonflyMaster; 2008-11-13 at 01:03 PM. Reason: correction
    What do you think the cookie monster eats ?

  5. #5
    ff76 is offline Sugar Community Member
    Join Date
    May 2008
    Posts
    96

    Default Re: Inserire codice php su 5.1

    Grazie per l'informazione...

    Io però non conosco molto bene il php...

    Il file editviewdefs.php è quello nella cartella del mio modulo oppure nella cartella custom?

    PHP Code:
    <?php
    $module_name 
    'fts01_Righe_Offerta';
    $viewdefs [$module_name] = 
    array (
      
    'EditView' => 
      array (
        
    'templateMeta' => 
        array (
          
    'maxColumns' => '2',
          
    'widths' => 
          array (
            
    => 
            array (
              
    'label' => '10',
              
    'field' => '30',
            ),
            
    => 
            array (
              
    'label' => '10',
              
    'field' => '30',
            ),
          ),
        ),
        
    'panels' => 
        array (
          
    'DEFAULT' => 
          array (
            
    => 
            array (
              
    => 
              array (
                
    'name' => 'fts01_prodotti_fts01_righe_offerta_name',
              ),
            ),
            
    => 
            array (
              
    => 
              array (
                
    'name' => 'qta',
                
    'label' => 'LBL_QTA',
              ),
              
    => 
              array (
                
    'name' => 'prezzo',
                
    'label' => 'LBL_PREZZO',
              ),
            ),
            
    => 
            array (
              
    => 
              array (
                
    'name' => 'sconto',
                
    'label' => 'LBL_SCONTO',
              ),
              
    => 
              array (
                
    'name' => 'prezzo_netto',
                
    'label' => 'LBL_PREZZO_NETTO',
              ),
            ),
            
    => 
            array (
              
    => 
              array (
                
    'name' => 'description',
                
    'label' => 'LBL_DESCRIPTION',
              ),
            ),
          ),
        ),
      ),
    );
    ?>
    Come faccio a inserire un javascript sul campo quantità?

    Mi potresti gentilmente fare un esempio?
    Nell' onchange del javascript come faccio a far impostare i dati dei campi collegati?
    Last edited by ff76; 2008-11-13 at 01:32 PM.

  6. #6
    DragonflyMaster is offline Sugar Community Member
    Join Date
    Dec 2007
    Location
    Rimini, Italy
    Posts
    1,421

    Default Re: Inserire codice php su 5.1

    Quote Originally Posted by ff76
    Io però non conosco molto bene il php...
    Ti consiglio ti farti una cultura di base sul PHP e su Sugar stesso prima di fare personalizzazioni "a mano". La sezione Developers contiene molti riferimenti utili, in particolare la Developer's Guide.
    Il file editviewdefs.php è quello nella cartella del mio modulo oppure nella caretlla custom?
    Tutti i manual edits vanno fatti dentro la Custom, se non altro per avere la certezza che le modifiche non si perdano ad un successivo upgrade.
    Come faccio a inserire un javascript sul campo quantità?
    PHP Code:
             1 => 
             array (
               
    => 
               array (
                 
    'name' => 'qta',
                 
    'label' => 'LBL_QTA',
     
    'displayParams' => array (
         
    'javascript' => 'onchange="Aggiorna();"'
     
    ),
               ), 
    In questo caso, la funzione javascript Aggiorna() viene scatenata al cambio del valore del campo (onchange).
    Se invece preferisci creare un pulsante per aggiornare i dati, devi utilizzare del codice simile a questo:
    PHP Code:
    => 
    array (
    'label' => 'LBL_AGGIORNA',
     
    'name' => 'aggiorna',
    'customCode' => '<input type = "button" class= "button" value = "{$MOD.LBL_AGGIORNA_BUTTON}" onclick= "Aggiorna()" name = "aggiorna" id = "aggiorna">'
    ), 
    What do you think the cookie monster eats ?

  7. #7
    ff76 is offline Sugar Community Member
    Join Date
    May 2008
    Posts
    96

    Default Re: Inserire codice php su 5.1

    Quote Originally Posted by DragonflyMaster
    Ti consiglio ti farti una cultura di base sul PHP e su Sugar stesso prima di fare personalizzazioni "a mano". La sezione Developers contiene molti riferimenti utili, in particolare la Developer's Guide.Tutti i manual edits vanno fatti dentro la Custom, se non altro per avere la certezza che le modifiche non si perdano ad un successivo upgrade.
    PHP Code:
             1 => 
             array (
               
    => 
               array (
                 
    'name' => 'qta',
                 
    'label' => 'LBL_QTA',
     
    'displayParams' => array (
         
    'javascript' => 'onchange="Aggiorna();"'
     
    ),
               ), 
    In questo caso, la funzione javascript Aggiorna() viene scatenata al cambio del valore del campo (onchange).
    Se invece preferisci creare un pulsante per aggiornare i dati, devi utilizzare del codice simile a questo:
    PHP Code:
    => 
    array (
    'label' => 'LBL_AGGIORNA',
     
    'name' => 'aggiorna',
    'customCode' => '<input type = "button" class= "button" value = "{$MOD.LBL_AGGIORNA_BUTTON}" onclick= "Aggiorna()" name = "aggiorna" id = "aggiorna">'
    ), 
    Grazie...

    La funzione Aggiorna deve essere una funzione javascript o php ?
    E' la funzione che devo inserire nel file Righe_Offerta_sugar.php (quella che deve contenere la query per il reperimento dei dati e la valorizzazione di essi) ?

  8. #8
    DragonflyMaster is offline Sugar Community Member
    Join Date
    Dec 2007
    Location
    Rimini, Italy
    Posts
    1,421

    Default Re: Inserire codice php su 5.1

    Quote Originally Posted by ff76
    Grazie...

    La funzione Aggiorna deve essere una funzione javascript o php ?
    Dev'essere una funzione scritta in javascript, come si evince da
    PHP Code:
    'javascript' => 
    Nell'esempio che ho scritto viene chiamata una funzione javascript esterna, scritta su un file .js scritto ad hoc, che dev'essere incluso tramite dichiarazione nella sezione includes (vedi Account.php e Account.js) per avere un'idea più chiara.
    E' comunque possibile inserire una funzione inline, cioè scrivere tutto il codice della funzione lì, dentro a onchange='' ma è una pratica sconsigliabile.
    E' la funzione che devo inserire nel file Righe_Offerta_sugar.php ?
    No. Comunque il file Righe_Offerta_sugar.php è meglio non usarlo, viene creato e gestito dal module loader (il mio post in merito era inizialmente incorretto, poi l'ho modificato, scusami...)

    Se vuoi un esempio di chiamate a javascript, guarda questa pagina wiki, dove avevo scritto un tutorial per dropdown dinamici in Sugar 5.0 (valido anche per la 5.1)
    What do you think the cookie monster eats ?

  9. #9
    ff76 is offline Sugar Community Member
    Join Date
    May 2008
    Posts
    96

    Default Re: Inserire codice php su 5.1

    Quote Originally Posted by DragonflyMaster
    Dev'essere una funzione scritta in javascript, come si evince da
    PHP Code:
    'javascript' => 
    Nell'esempio che ho scritto viene chiamata una funzione javascript esterna, scritta su un file .js scritto ad hoc, che dev'essere incluso tramite dichiarazione nella sezione includes (vedi Account.php e Account.js) per avere un'idea più chiara.
    E' comunque possibile inserire una funzione inline, cioè scrivere tutto il codice della funzione lì, dentro a onchange='' ma è una pratica sconsigliabile.
    No. Comunque il file Righe_Offerta_sugar.php è meglio non usarlo, viene creato e gestito dal module loader (il mio post in merito era inizialmente incorretto, poi l'ho modificato, scusami...)

    Se vuoi un esempio di chiamate a javascript, guarda questa pagina wiki, dove avevo scritto un tutorial per dropdown dinamici in Sugar 5.0 (valido anche per la 5.1)
    Ma questo non risolve il mio problema...

    Io voglio che quando la quantità viene variata venga fatta una query per estrarre lo sconto, lo metta nell'apposito campo del form e in seguito faccia il calcolo del prezzo...

    Questo con javascript non è possibile farlo...
    Come posso fare per risolvere questo problema?
    Last edited by ff76; 2008-11-13 at 02:52 PM.

  10. #10
    DragonflyMaster is offline Sugar Community Member
    Join Date
    Dec 2007
    Location
    Rimini, Italy
    Posts
    1,421

    Default Re: Inserire codice php su 5.1

    Quote Originally Posted by ff76
    Ma questo non risolve il mio problema...

    Io voglio che quando la quantità viene variata venga fatta una query per estrarre lo sconto, lo metta nell'apposito campo del form e in seguito faccia il calcolo del prezzo...

    Questo con javascript non è possibile farlo...
    Come posso fare per risolvere questo problema?
    Il mio suggerimento prevede di fare i passaggi in questa maniera:
    1) eseguire, all'accesso al modulo, la query per estrarre gli sconti dal db e memorizzarli in una forma accessibile da javascript al momento del bisogno;
    2) chiamare, al cambio del valore nel campo, la funzione javascript per leggere lo sconto associato alla quantità dell'articolo scelto in modo da aggiornare i campi al volo.

    E' ovvio che gli esempi che ti ho fatto danno solo l'idea di come procedere, il codice vero e proprio devi scriverlo tu.

    Questo è un modo; l'altro consiste nell'utilizzo di AJAX.
    What do you think the cookie monster eats ?

Page 1 of 3 123 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. PHP 5.0.5 Issues
    By clint in forum Installation and Upgrade Help
    Replies: 42
    Last Post: 2006-11-06, 04:14 PM
  2. PHP Warnings after install add-in Module
    By kgeving in forum Help
    Replies: 1
    Last Post: 2006-08-08, 05:54 PM
  3. Errors after upgrade
    By mturany in forum Help
    Replies: 0
    Last Post: 2006-04-24, 04:40 AM
  4. ERROR in 4.01
    By rateck in forum Help
    Replies: 3
    Last Post: 2006-02-02, 10:00 PM
  5. Replies: 7
    Last Post: 2005-05-10, 08:25 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •