2 /*********************************************************************************
3 * SugarCRM is a customer relationship management program developed by
4 * SugarCRM, Inc. Copyright (C) 2004-2011 SugarCRM Inc.
6 * This program is free software; you can redistribute it and/or modify it under
7 * the terms of the GNU Affero General Public License version 3 as published by the
8 * Free Software Foundation with the addition of the following permission added
9 * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
10 * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
11 * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
13 * This program is distributed in the hope that it will be useful, but WITHOUT
14 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15 * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
18 * You should have received a copy of the GNU Affero General Public License along with
19 * this program; if not, see http://www.gnu.org/licenses or write to the Free
20 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
23 * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
24 * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
26 * The interactive user interfaces in modified source and object code versions
27 * of this program must display Appropriate Legal Notices, as required under
28 * Section 5 of the GNU Affero General Public License version 3.
30 * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
31 * these Appropriate Legal Notices must retain the display of the "Powered by
32 * SugarCRM" logo. If the display of the logo is not reasonably feasible for
33 * technical reasons, the Appropriate Legal Notices must display the words
34 * "Powered by SugarCRM".
35 ********************************************************************************/
41 * @deprecated use DBManager::convert() instead.
43 function db_convert($string, $type, $additional_parameters=array(),$additional_parameters_oracle_only=array())
45 return $GLOBALS['db']->convert($string, $type, $additional_parameters, $additional_parameters_oracle_only);
49 * @deprecated use DBManager::concat() instead.
51 function db_concat($table, $fields)
53 return $GLOBALS['db']->concat($table, $fields);
57 * @deprecated use DBManager::fromConvert() instead.
59 function from_db_convert($string, $type)
61 return $GLOBALS['db']->fromConvert($string, $type);
70 $GLOBALS['toHTML_keys'] = array_keys($toHTML);
71 $GLOBALS['toHTML_values'] = array_values($toHTML);
74 * Replaces specific characters with their HTML entity values
75 * @param string $string String to check/replace
76 * @param bool $encode Default true
79 * @todo Make this utilize the external caching mechanism after re-testing (see
82 function to_html($string, $encode=true){
86 static $cache = array();
88 if (isset($cache['c'.$string])) {
89 return $cache['c'.$string];
92 $cache_key = 'c'.$string;
94 if($encode && is_string($string)){//$string = htmlentities($string, ENT_QUOTES);
96 * cn: bug 13376 - handle ampersands separately
97 * credit: ashimamura via bug portal
99 //$string = str_replace("&", "&", $string);
101 if(is_array($toHTML)) { // cn: causing errors in i18n test suite ($toHTML is non-array)
102 $string = str_replace(
103 $GLOBALS['toHTML_keys'],
104 $GLOBALS['toHTML_values'],
109 $cache[$cache_key] = $string;
110 return $cache[$cache_key];
114 * Replaces specific HTML entity values with the true characters
115 * @param string $string String to check/replace
116 * @param bool $encode Default true
119 function from_html($string, $encode=true) {
120 if (!is_string($string) || !$encode) {
125 static $toHTML_values = null;
126 static $toHTML_keys = null;
127 static $cache = array();
128 if (!isset($toHTML_values) || !empty($GLOBALS['from_html_cache_clear'])) {
129 $toHTML_values = array_values($toHTML);
130 $toHTML_keys = array_keys($toHTML);
133 // Bug 36261 - Decode & so we can handle double encoded entities
134 $string = str_replace("&", "&", $string);
136 if (!isset($cache[$string])) {
137 $cache[$string] = str_replace($toHTML_values, $toHTML_keys, $string);
139 return $cache[$string];
144 * @todo this function is only used by one function ( run_upgrade_wizard_sql() ), which isn't
145 * used either; trying kill this off
147 function run_sql_file( $filename )
149 if( !is_file( $filename ) ){
150 print( "Could not find file: $filename <br>" );
156 $fh = sugar_fopen( $filename,'r' );
157 $contents = fread( $fh, filesize($filename) );
160 $lastsemi = strrpos( $contents, ';') ;
161 $contents = substr( $contents, 0, $lastsemi );
162 $queries = explode( ';', $contents );
163 $db = DBManagerFactory::getInstance();
165 foreach( $queries as $query ){
166 if( !empty($query) ){
167 if($db->dbType == 'oci8')
172 $db->query( $query.';', true, "An error has occured while running.<br>" );