phpDocumentor VFront
RPC
[ class tree: VFront ] [ index: VFront ] [ all elements ]

Source for file rpc.php

Documentation is available at rpc.php

  1. <?php
  2. /**
  3. * File RPC per le chiamate AJAX della scheda.
  4. * Questo file viene chiamato da funzioni javascript per eseguire le normali operazioni
  5. * sulla tabella, come inserimento, modifica, cancellazione e selezione dei record.
  6. * Se esiste una chimata post viene incluso il file {@link func.rpc_query.php}
  7. * con le funzioni di interazione con il database
  8. @package VFront
  9. @subpackage RPC
  10. @author Mario Marcello Verona <marcelloverona@gmail.com>
  11. @copyright 2007 Mario Marcello Verona
  12. @version 0.90
  13. @license http://www.gnu.org/licenses/gpl.html GNU Public License
  14. */
  15.  
  16.  
  17. require("./inc/conn.php");
  18. require("./inc/func.comuni.php");
  19. require("./inc/func.frontend.php");
  20. require("./inc/func.browser_detection.php");
  21.  
  22.  
  23.  
  24.  
  25. $info_browser=implode(" ",browser_detection());
  26. $info_browser=addslashes(stripslashes($info_browser));
  27.  
  28.  
  29. if(count($_POST)>0){
  30.  
  31.     //    $fp=fopen("test.txt","w");
  32.  
  33.     require_once("./inc/func.rpc_query.php");
  34.  
  35.  
  36.     
  37.     // UPDATE--------------------------------
  38.     
  39.     if($_GET['post']=='update'){
  40.  
  41.         // Prepara l'SQL
  42.         $sql_update rpc_query_update($_POST['dati'],$_POST['pk'],$_GET['action']);
  43.  
  44.         
  45.         // INSERISCO IL LOG E PRENDO L'ID
  46.         $last_id_log=rpc_log('update',$_GET['action'],$_SESSION['user']['uid'],$_SESSION['gid'],$_POST['pk'],true,'',$sql_update,$info_browser)
  47.         
  48.         
  49.         // Esegui la modifica
  50.         $q_update=vmsql_query($sql_update,$link);
  51.         
  52.         // se OK
  53.         if(vmsql_affected_rows($link,$q_update)==1){
  54.             
  55.             echo 1;
  56.         }
  57.         // se KO cancella la riga di log
  58.         else{
  59.             
  60.             vmsql_query("DELETE FROM {$db1['frontend']}.log WHERE id_log=".intval($last_id_log),$link);
  61.             
  62.             echo 0;
  63.         }
  64.  
  65.     }
  66.     
  67.     
  68.     
  69.     // INSERT--------------------------------
  70.     
  71.     else if($_GET['post']=='new'){
  72.         $sql_insertrpc_query_insert($_POST['dati'],$_GET['action']);
  73.         
  74.         rpc_debug($sql_insert);
  75.         
  76.         $result=vmsql_try($sql_insert,$link,false);
  77.         
  78.         // manda l'id appena inserito
  79.         if($result==1){
  80.  
  81.             $last_idvmsql_insert_id($link,$_GET['action']prendi_PK($_GET['action']));
  82.             
  83.             rpc_log('insert',$_GET['action'],$_SESSION['user']['uid'],$_SESSION['gid'],$last_id,true,'',$sql_insert,$info_browser);
  84.             
  85.             echo $last_id;
  86.         }
  87.         else{
  88.             echo $result;
  89.         }
  90.     }
  91.     
  92.     
  93.     
  94.     // DELETE--------------------------------
  95.     
  96.     else if($_GET['post']=='delete'){
  97.         $sql_delete rpc_query_delete($_POST['pk'],$_GET['action']);
  98.         
  99.         rpc_log('delete',$_GET['action'],$_SESSION['user']['uid'],$_SESSION['gid'],$_POST['pk'],true,'','',$info_browser);
  100.         
  101.         $result=vmsql_try($sql_delete,$link,false,true);
  102.         
  103.         if($result){
  104.             
  105.             // eliminazione link e allegati se ci sono
  106.             rpc_delete_attach($_GET['action'],implode("",$_POST['pk']));
  107.             rpc_delete_link($_GET['action'],implode("",$_POST['pk']));
  108.             
  109.         }
  110.         
  111.         echo $result;
  112.     }
  113.     
  114.     
  115.     
  116.     
  117.     // SEARCH--------------------------------
  118.     
  119.     else if($_GET['post']=='cerca'){
  120.         $risultati_ricerca rpc_query_search($_POST['dati'],$_GET['action']);
  121.  
  122.         echo (is_array($risultati_ricerca)) implode("|",$risultati_ricerca"";
  123.     }
  124.  
  125.     
  126.     
  127.     
  128.     
  129.     // DUPLICA --------------------------------
  130.         
  131.     else if($_GET['post']=='duplica'){
  132.         $risultati_duplicazione rpc_query_insert_duplicato($_POST['pk'],$_GET['action'],$_GET['oid_sub'],$_GET['da'],$_GET['dl']);
  133.         
  134.         $last_idvmsql_insert_id($link,$_GET['action']prendi_PK($_GET['action']));
  135.         
  136.         list($campo_id,$valore_id)=each($_POST['pk']);
  137.         
  138.         rpc_log('duplicazione',$_GET['action'],$_SESSION['user']['uid'],$_SESSION['gid'],$last_id,true,'','DUPLICAZIONE '.$_GET['action'].":".$valore_id,$info_browser);
  139.         
  140.         echo $risultati_duplicazione;
  141.  
  142.     }
  143.     
  144.  
  145.  
  146. }else{
  147.  
  148.  
  149.     if(isset($_GET['c'])) {
  150.  
  151.         require("./inc/func.xmlize.php");
  152.  
  153.         $tabella $_GET['action'];
  154.         $PK prendi_PK($tabella);
  155.         $orderby prendi_orderby($tabella,intval($_SESSION['gid']));
  156.         
  157.         //aggiungi l'ID all'order by 
  158.         $orderby_doppio=$orderby."$PK ASC ";
  159.         
  160.         $campo_orderby str_replace(array(" ASC"," DESC"),"",$orderby);
  161.         $operatore_orderby ereg(' DESC',$orderby" > " " < ";
  162.         
  163.  
  164.  
  165.         // CASO RISULTATO DI RICERCA-------------------------------------------------------
  166.         // SE c'è l'id in GET prendi calcola a che punto dell'elenco si è arrivati
  167.         if(isset($_GET['id']&& intval($_GET['id'])>0){
  168.  
  169.  
  170.  
  171.             // Prendi il moe del campo orderby ed il vaolre relativo all'id
  172.  
  173.             $sql_calcola_sub "SELECT s.$campo_orderby 
  174.                                     FROM $tabella s WHERE s.".$PK."='".$_GET['id']."'";
  175.  
  176.             $sql_calcola "SELECT count(*) FROM ".$_GET['action']." t
  177.                                     WHERE t.$campo_orderby $operatore_orderby ($sql_calcola_subOR t.$campo_orderby IS NULL";
  178.  
  179.             rpc_debug($sql_calcola);
  180.  
  181.             $query_calcola vmsql_query($sql_calcola,$link);
  182.  
  183.             list($offset)=vmsql_fetch_row($query_calcola);
  184.  
  185.         }
  186.         else{
  187.             $offset= (int) $_GET['c'];
  188.         }
  189.  
  190.  
  191.         list($tot_recordsvmsql_fetch_row(vmsql_query("SELECT count(*) FROM $tabella",$link));
  192.  
  193.         if(is_numeric($_GET['c'])){
  194.             $XML xmlize("SELECT * FROM $tabella ORDER BY $orderby_doppio ".limit_sintax(1,$offset),null,true,$offset,$tot_records);
  195.         }
  196.         elseif($_GET['c']=='all'){
  197.             $XML xmlize("SELECT * FROM $tabella ORDER BY $orderby_doppio ",null,true,false,$tot_records);
  198.             
  199.         }
  200.  
  201.         header("Content-Type: text/xml");
  202.         echo $XML;
  203.  
  204.  
  205.  
  206.     }
  207.     
  208. }
  209.  
  210.  
  211.  
  212.  
  213.  
  214. ?>

Documentation generated on Sat, 22 Sep 2007 11:51:08 +0200 by phpDocumentor 1.4.0a2