iTx Technologies offre gratuitement
cet espace pour SugarCRM !

title

Body

[fermer]

/ -> json.php (source)

   1  <?php
   2  if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
   3  /*********************************************************************************
   4   * SugarCRM is a customer relationship management program developed by
   5   * SugarCRM, Inc. Copyright (C) 2004 - 2009 SugarCRM Inc.
   6   * 
   7   * This program is free software; you can redistribute it and/or modify it under
   8   * the terms of the GNU General Public License version 3 as published by the
   9   * Free Software Foundation with the addition of the following permission added
  10   * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
  11   * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
  12   * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
  13   * 
  14   * This program is distributed in the hope that it will be useful, but WITHOUT
  15   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  16   * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
  17   * details.
  18   * 
  19   * You should have received a copy of the GNU General Public License along with
  20   * this program; if not, see http://www.gnu.org/licenses or write to the Free
  21   * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  22   * 02110-1301 USA.
  23   * 
  24   * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
  25   * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
  26   * 
  27   * The interactive user interfaces in modified source and object code versions
  28   * of this program must display Appropriate Legal Notices, as required under
  29   * Section 5 of the GNU General Public License version 3.
  30   * 
  31   * In accordance with Section 7(b) of the GNU General Public License version 3,
  32   * these Appropriate Legal Notices must retain the display of the "Powered by
  33   * SugarCRM" logo. If the display of the logo is not reasonably feasible for
  34   * technical reasons, the Appropriate Legal Notices must display the words
  35   * "Powered by SugarCRM".
  36   ********************************************************************************/
  37  
  38  ///////////////////////////////////////////////////////////////////////////////
  39  ////    HELPER FUNCTIONS
  40  function json_retrieve() {
  41      global $beanFiles,$beanList;
  42      require_once($beanFiles[$beanList[$_REQUEST['module']]]);
  43  
  44      $json = getJSONobj();
  45      
  46      $focus = new $beanList[$_REQUEST['module']];
  47      $focus->retrieve($_REQUEST['record']);
  48  
  49      $all_fields = array_merge($focus->column_fields,$focus->additional_column_fields);
  50  
  51      $obj = array();
  52      $ret = array();
  53  
  54      foreach($all_fields as $field) {
  55          if(isset($focus->$field)) {
  56              $obj[$field] = $focus->$field;
  57          }
  58      }
  59  
  60      // cn: bug 12274 - defend against CSRF
  61      $ret['fields'] = $obj;
  62      print $json->encode($ret, true);
  63  }
  64  
  65  function json_get_full_list() {
  66      global $beanFiles;
  67      global $beanList;
  68  
  69      require_once ('include/utils.php');
  70      require_once($beanFiles[$beanList[$_REQUEST['module']]]);
  71  
  72      $json = getJSONobj();
  73  
  74      $where = str_replace('\\','', rawurldecode($_REQUEST['where']));
  75      $order = str_replace('\\','', rawurldecode($_REQUEST['order']));
  76      $focus = new $beanList[$_REQUEST['module']];
  77      $fullList = $focus->get_full_list($order, $where, '');
  78      $all_fields = array_merge($focus->column_fields,$focus->additional_column_fields);
  79  
  80      $js_fields_arr = array();
  81      
  82      $i=1; // js doesn't like 0 index?
  83      foreach($fullList as $note) {
  84          $js_fields_arr[$i] = array();
  85          
  86          foreach($all_fields as $field) {
  87              if(isset($note->$field)) {
  88                  $note->$field = from_html($note->$field);
  89                  $note->$field = preg_replace('/\r\n/','<BR>',$note->$field);
  90                  $note->$field = preg_replace('/\n/','<BR>',$note->$field);
  91                  $js_fields_arr[$i][$field] = addslashes($note->$field);
  92              }
  93          }
  94          $i++;
  95      }
  96      
  97      $out = $json->encode($js_fields_arr, true);
  98      print($out);
  99  }
 100  ////    END HELPER FUNCTIONS
 101  ///////////////////////////////////////////////////////////////////////////////
 102  
 103  // called from another file
 104  $GLOBALS['log'] = LoggerManager::getLogger('json.php');
 105  
 106  $supported_functions = array('retrieve','get_full_list');
 107  if(in_array($_REQUEST['action'],$supported_functions)) {
 108      call_user_func('json_'.$_REQUEST['action']);
 109  }
 110  
 111  ?>


Generé en: Thu Mar 4 09:44:50 2010 | Cross-referenced par PHPXref 0.7