Files
2025-05-12 15:44:39 +00:00

321 lines
15 KiB
PHP
Executable File

<?php
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
/*****************************************************************************
* The contents of this file are subject to the RECIPROCAL PUBLIC LICENSE
* Version 1.1 ("License"); You may not use this file except in compliance
* with the License. You may obtain a copy of the License at
* http://opensource.org/licenses/rpl.php. Software distributed under the
* License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND,
* either express or implied.
*
* You may:
* a) Use and distribute this code exactly as you received without payment or
* a royalty or other fee.
* b) Create extensions for this code, provided that you make the extensions
* publicly available and document your modifications clearly.
* c) Charge for a fee for warranty or support or for accepting liability
* obligations for your customers.
*
* You may NOT:
* a) Charge for the use of the original code or extensions, including in
* electronic distribution models, such as ASP (Application Service
* Provider).
* b) Charge for the original source code or your extensions other than a
* nominal fee to cover distribution costs where such distribution
* involves PHYSICAL media.
* c) Modify or delete any pre-existing copyright notices, change notices,
* or License text in the Licensed Software
* d) Assert any patent claims against the Licensor or Contributors, or
* which would in any way restrict the ability of any third party to use the
* Licensed Software.
*
* You must:
* a) Document any modifications you make to this code including the nature of
* the change, the authors of the change, and the date of the change.
* b) Make the source code for any extensions you deploy available via an
* Electronic Distribution Mechanism such as FTP or HTTP download.
* c) Notify the licensor of the availability of source code to your extensions
* and include instructions on how to acquire the source code and updates.
* d) Grant Licensor a world-wide, non-exclusive, royalty-free license to use,
* reproduce, perform, modify, sublicense, and distribute your extensions.
*
* The Original Code is: CommuniCore
* Olavo Farias
* 2006-04-7 olavo.farias@gmail.com
*
* The Initial Developer of the Original Code is CommuniCore.
* Portions created by CommuniCore are Copyright (C) 2005 CommuniCore Ltda
* All Rights Reserved.
********************************************************************************/
require_once('data/SugarBean.php');
require_once('include/utils.php');
class EcmText extends SugarBean {
var $field_name_map = array();
// STANDARD FIELDS
var $id;
var $name;
var $description;
var $date_entered;
var $date_modified;
var $deleted;
var $created_by;
//TABLE COLUMNS
var $bean_id;
var $ecmlanguage;
var $data;
// RELATED FIELDS
// SUBPANELS RELATED
// MODULE OBJECT DETAILS
var $module_dir = "EcmTexts";
var $table_name = "ecmtexts";
var $object_name = "EcmText";
//RELATED TABLE NAMES
// USED TO RETRIEVE RELATED FIELDS FROM FORM POSTS.
var $additional_column_fields = Array (
);
//RELATIONSHIP FIELDS
var $relationship_fields = Array (
);
function EcmText() {
parent::SugarBean();
$this->setupCustomFields('EcmTexts');
foreach($this->field_defs as $field) {
$this->field_name_map[$field['name']] = $field;
}
}
var $new_schema = true;
function get_summary_text(){
return "$this->name";
}
function create_list_query($order_by, $where, $show_deleted = 0) {
// Fill in the assigned_user_name
$custom_join = $this->custom_fields->getJOIN();
$query = "SELECT ";
$query .= "ecmtexts.*
,users.user_name as assigned_user_name";
if($custom_join) {
$query .= $custom_join['select'];
}
$query .= " FROM ecmtexts
LEFT JOIN users
ON ecmtexts.assigned_user_id=users.id";
$query .= " ";
if($custom_join) {
$query .= $custom_join['join'];
}
$where_auto = '1=1';
if($show_deleted == 0) {
$where_auto = " $this->table_name.deleted=0 ";
} else if($show_deleted == 1) {
$where_auto = " $this->table_name.deleted=1 ";
}
if($where != "")
$query .= "where $where AND ".$where_auto;
else
$query .= "where ".$where_auto;
if(substr_count($order_by, '.') > 0) {
$query .= " ORDER BY $order_by";
}
else if($order_by != "")
$query .= " ORDER BY $order_by";
else
$query .= " ORDER BY ecmtexts.name";
return $query;
}
function create_export_query($order_by, $where) {
$custom_join = $this->custom_fields->getJOIN();
$query = "SELECT
ecmtexts.*,
users.user_name assigned_user_name";
if($custom_join) {
$query .= $custom_join['select'];
}
$query .= " FROM ecmtexts ";
$query .= " LEFT JOIN users
ON ecmtexts.assigned_user_id=users.id";
if($custom_join) {
$query .= $custom_join['join'];
}
$query .= "";
$where_auto = " ecmtexts.deleted=0
";
if($where != "")
$query .= " where $where AND ".$where_auto;
else
$query .= " where ".$where_auto;
if($order_by != "")
$query .= " ORDER BY $order_by";
else
$query .= " ORDER BY ecmtexts.name";
return $query;
}
function fill_in_additional_list_fields(){
}
function fill_in_additional_detail_fields(){
//FILL IN THE ASSIGNED_USER_NAME
$this->assigned_user_name = get_assigned_user_name($this->assigned_user_id);
$this->created_by_name = get_assigned_user_name($this->created_by);
$this->modified_by_name = get_assigned_user_name($this->modified_user_id);
//$result = $this->db->query("SELECT status FROM ecmtexts WHERE id='$this->id'");
//if($result) $row = $this->db->fetchByAssoc($result);
//$this->status = $row['status'];
}
function get_list_view_data(){
global $current_language;
$this->fill_in_additional_detail_fields();
$app_list_strings = return_app_list_strings_language($current_language);
$mod_strings = return_module_language($current_language, 'EcmTexts');
$the_array = parent::get_list_view_data();
// THE NEW LISTVIEW CODE ONLY FETCHES COLUMNS THAT WE'RE DISPLAYING AND NOT ALL
// THE COLUMNS SO WE NEED THESE CHECKS.
$the_array['NAME'] = (($this->name == "") ? "<em>blank</em>" : $this->name);
return $the_array;
}
/**
BUILDS A GENERIC SEARCH BASED ON THE QUERY STRING USING OR.
DO NOT INCLUDE ANY $THIS-> BECAUSE THIS IS CALLED ON WITHOUT HAVING THE CLASS INSTANTIATED.
*/
function build_generic_where_clause ($the_query_string) {
$where_clauses = Array();
$the_query_string = PearDatabase::text(from_html($the_query_string));
array_push($where_clauses, "ecmtexts.name like '$the_query_string%'");
$the_where = "";
foreach($where_clauses as $clause) {
if($the_where != "") $the_where .= " or ";
$the_where .= $clause;
}
return $the_where;
}
function set_notification_body($xtpl, $simplemodule) {
global $mod_strings, $app_list_strings;
$xtpl->assign("NAME", $simplemodule->name);
$xtpl->assign("DESCRIPTION", $simplemodule->description);
return $xtpl;
}
function bean_implements($interface) {
switch($interface) {
case 'ACL':return true;
}
return false;
}
function save($check_notify = FALSE) {
$this->data = EcmText::encodeData($this->data);
$return_id = parent::save($check_notify);
return $return_id;
}
function retrieve($id = -1, $encode=true,$deleted=true) {
parent::retrieve($id,$encode,$deleted);
if(isset($this->id) && $this->id != '') {
$this->data = EcmText::decodeData($this->data);
}
}
public static function encodeData($data) {
return base64_encode(serialize($data));
}
static function decodeData($data) {
return unserialize(base64_decode($data));
}
static function SaveText($id=null,$bean_id=null,$name=null,$ecmlanguage=null,$data=array()) {
if(!$name) return;
if(!$ecmlanguage) {
global $app_list_strings;
foreach($app_list_strings['ecmlanguages_dom'] as $key => $value) { $ecmlanguage = $key; break; }
}
$query = "SELECT `id` FROM `ecmtexts` WHERE ";
$where = array();
if($bean_id != '' && $bean_id != null) $where [] = "`bean_id` = '$bean_id'";
if($name != '' && $name != null) $where [] = "`name` = '$name'";
if($ecmlanguage != '' && $ecmlanguage != null) $where [] = "`ecmlanguage` = '$ecmlanguage'";
$query .= implode(' AND ',$where);
$query .= " LIMIT 1";
$result = $GLOBALS['db']->query($query);
if($result) {
$row = $GLOBALS['db']->fetchByAssoc($result);
if($row) {
if(isset($row['id']))
if($row['id'] != '') $id = $row['id'];
}
}
$et = new EcmText();
$et->retrieve($id);
$et->bean_id = $bean_id;
$et->name = $name;
$et->ecmlanguage = $ecmlanguage;
$et->data = $data;
$return_id = $et->save();
return $return_id;
}
static function LoadText($id='',$bean_id='',$name='',$ecmlanguage='',$onlyId = false,$limit = 1) {
$query = "SELECT `id`".((!$onlyId)?", `name`, `bean_id`, `ecmlanguage`, `data` ":"")." FROM `ecmtexts` WHERE ";
$where = array();
if($bean_id != '' && $bean_id != null) $where [] = "`bean_id` = '$bean_id'";
if($name != '' && $name != null) $where [] = "`name` = '$name'";
if($ecmlanguage != '' && $ecmlanguage != null) $where [] = "`ecmlanguage` = '$ecmlanguage'";
$query .= implode(' AND ',$where);
if($limit && $limit > 0) $query .= " LIMIT $limit";
$return_array = array();
$result = $GLOBALS['db']->query($query);
if($result) {
while($row = $GLOBALS['db']->fetchByAssoc($result)) {
if(!$onlyId)
$return_array [] = array(
'id' => $row['id'],
'bean_id' => $row['bean_id'],
'name' => $row['name'],
'ecmlanguage' => $row['ecmlanguage'],
'data' => EcmText::decodeData($row['data']),
);
else
$return_array [] = $row['id'];
}
}
//$d = 'YToyOntzOjY6ImxhYmVscyI7YTozMDp7aTowO2E6Mzp7czo1OiJpbmRleCI7czoxOiIxIjtzOjU6ImxhYmVsIjtzOjIxOiJMQkxfUERGX0xJU1RfUE9TSVRJT04iO3M6MTE6InRyYW5zbGF0aW9uIjtzOjQ6IlBvei4iO31pOjE7YTozOntzOjU6ImluZGV4IjtzOjE6IjIiO3M6NToibGFiZWwiO3M6MTc6IkxCTF9QREZfTElTVF9DT0RFIjtzOjExOiJ0cmFuc2xhdGlvbiI7czo2OiJJbmRla3MiO31pOjI7YTozOntzOjU6ImluZGV4IjtzOjE6IjMiO3M6NToibGFiZWwiO3M6MTg6IkxCTF9QREZfTElTVF9JTUFHRSI7czoxMToidHJhbnNsYXRpb24iO3M6MDoiIjt9aTozO2E6Mzp7czo1OiJpbmRleCI7czoxOiI0IjtzOjU6ImxhYmVsIjtzOjIxOiJMQkxfUERGX0xJU1RfUVVBTlRJVFkiO3M6MTE6InRyYW5zbGF0aW9uIjtzOjc6Iklsb8WbxIciO31pOjQ7YTozOntzOjU6ImluZGV4IjtzOjE6IjUiO3M6NToibGFiZWwiO3M6MTc6IkxCTF9QREZfTElTVF9VTklUIjtzOjExOiJ0cmFuc2xhdGlvbiI7czo0OiJqLm0uIjt9aTo1O2E6Mzp7czo1OiJpbmRleCI7czoxOiI2IjtzOjU6ImxhYmVsIjtzOjI0OiJMQkxfUERGX0xJU1RfREVTQ1JJUFRJT04iO3M6MTE6InRyYW5zbGF0aW9uIjtzOjU6Ik5hendhIjt9aTo2O2E6Mzp7czo1OiJpbmRleCI7czoxOiI3IjtzOjU6ImxhYmVsIjtzOjE4OiJMQkxfUERGX0xJU1RfUFJJQ0UiO3M6MTE6InRyYW5zbGF0aW9uIjtzOjE2OiJDZW5hIGplZG4uIG5ldHRvIjt9aTo3O2E6Mzp7czo1OiJpbmRleCI7czoxOiI4IjtzOjU6ImxhYmVsIjtzOjIxOiJMQkxfUERGX0xJU1RfRElTQ09VTlQiO3M6MTE6InRyYW5zbGF0aW9uIjtzOjU6IlJhYmF0Ijt9aTo4O2E6Mzp7czo1OiJpbmRleCI7czoxOiI5IjtzOjU6ImxhYmVsIjtzOjE2OiJMQkxfUERGX0xJU1RfVkFUIjtzOjExOiJ0cmFuc2xhdGlvbiI7czozOiJWYXQiO31pOjk7YTozOntzOjU6ImluZGV4IjtzOjI6IjEwIjtzOjU6ImxhYmVsIjtzOjE4OiJMQkxfUERGX0xJU1RfVE9UQUwiO3M6MTE6InRyYW5zbGF0aW9uIjtzOjE0OiJXYXJ0b8WbYyBuZXR0byI7fWk6MTA7YTozOntzOjU6ImluZGV4IjtzOjI6IjExIjtzOjU6ImxhYmVsIjtzOjI3OiJMQkxfUERGX0xJU1RfUkVDSVBJRU5UX0NPREUiO3M6MTE6InRyYW5zbGF0aW9uIjtzOjA6IiI7fWk6MTE7YTozOntzOjU6ImluZGV4IjtzOjI6IjEyIjtzOjU6ImxhYmVsIjtzOjEzOiJMQkxfUERGX1RPVEFMIjtzOjExOiJ0cmFuc2xhdGlvbiI7czoyMToiUmF6ZW0gd2FydG/Fm8SHIG5ldHRvIjt9aToxMjthOjM6e3M6NToiaW5kZXgiO3M6MjoiMTMiO3M6NToibGFiZWwiO3M6MTY6IkxCTF9QREZfRElTQ09VTlQiO3M6MTE6InRyYW5zbGF0aW9uIjtzOjU6IlJhYmF0Ijt9aToxMzthOjM6e3M6NToiaW5kZXgiO3M6MjoiMTQiO3M6NToibGFiZWwiO3M6MTc6IkxCTF9QREZfRU5EX1RPVEFMIjtzOjExOiJ0cmFuc2xhdGlvbiI7czoyMjoiUmF6ZW0gd2FydG/Fm8SHIGJydXR0byI7fWk6MTQ7YTozOntzOjU6ImluZGV4IjtzOjI6IjE1IjtzOjU6ImxhYmVsIjtzOjExOiJMQkxfUERGX1ZBVCI7czoxMToidHJhbnNsYXRpb24iO3M6MzoiVkFUIjt9aToxNTthOjM6e3M6NToiaW5kZXgiO3M6MjoiMTYiO3M6NToibGFiZWwiO3M6MTM6IkxCTF9QREZfVkFUSUQiO3M6MTE6InRyYW5zbGF0aW9uIjtzOjM6Ik5JUCI7fWk6MTY7YTozOntzOjU6ImluZGV4IjtzOjI6IjE3IjtzOjU6ImxhYmVsIjtzOjE0OiJMQkxfUERGX05VTUJFUiI7czoxMToidHJhbnNsYXRpb24iO3M6MDoiIjt9aToxNzthOjM6e3M6NToiaW5kZXgiO3M6MjoiMTgiO3M6NToibGFiZWwiO3M6MjE6IkxCTF9QREZfREFURV9SRUdJU1RFUiI7czoxMToidHJhbnNsYXRpb24iO3M6MTY6IkRhdGEgd3lzdGF3aWVuaWEiO31pOjE4O2E6Mzp7czo1OiJpbmRleCI7czoyOiIxOSI7czo1OiJsYWJlbCI7czoyMjoiTEJMX1BERl9WQUxJRFRJTExfREFURSI7czoxMToidHJhbnNsYXRpb24iO3M6MDoiIjt9aToxOTthOjM6e3M6NToiaW5kZXgiO3M6MjoiMjAiO3M6NToibGFiZWwiO3M6MTM6IkxCTF9QREZfT1dORVIiO3M6MTE6InRyYW5zbGF0aW9uIjtzOjk6Ild5c3Rhd2nFgiI7fWk6MjA7YTozOntzOjU6ImluZGV4IjtzOjI6IjIxIjtzOjU6ImxhYmVsIjtzOjIxOiJMQkxfUERGX0RPQ1VNRU5UX05BTUUiO3M6MTE6InRyYW5zbGF0aW9uIjtzOjE0OiJaYW3Ds3dpZW5pZSBuciI7fWk6MjE7YTozOntzOjU6ImluZGV4IjtzOjI6IjIyIjtzOjU6ImxhYmVsIjtzOjEyOiJMQkxfUERGX0NPREUiO3M6MTE6InRyYW5zbGF0aW9uIjtzOjA6IiI7fWk6MjI7YTozOntzOjU6ImluZGV4IjtzOjI6IjIzIjtzOjU6ImxhYmVsIjtzOjE3OiJMQkxfUERGX1FVT1RFX0ZPUiI7czoxMToidHJhbnNsYXRpb24iO3M6MDoiIjt9aToyMzthOjM6e3M6NToiaW5kZXgiO3M6MjoiMjQiO3M6NToibGFiZWwiO3M6MTk6IkxCTF9QREZfQVNTSUdORURfVE8iO3M6MTE6InRyYW5zbGF0aW9uIjtzOjI1OiJPc29iYSBwcm93YWR6xIVjYSBzcHJhd8SZIjt9aToyNDthOjM6e3M6NToiaW5kZXgiO3M6MjoiMjUiO3M6NToibGFiZWwiO3M6MTU6IkxCTF9QREZfU0hJUF9UTyI7czoxMToidHJhbnNsYXRpb24iO3M6MTM6IkFkcmVzIGRvc3Rhd3kiO31pOjI1O2E6Mzp7czo1OiJpbmRleCI7czoyOiIyNiI7czo1OiJsYWJlbCI7czoxNjoiTEJMX1BERl9ERUxJVkVSWSI7czoxMToidHJhbnNsYXRpb24iO3M6MTU6IldhcnVua2kgZG9zdGF3eSI7fWk6MjY7YTozOntzOjU6ImluZGV4IjtzOjI6IjI3IjtzOjU6ImxhYmVsIjtzOjE5OiJMQkxfUERGX1JFQUxJWkFUSU9OIjtzOjExOiJ0cmFuc2xhdGlvbiI7czozMDoiUHJ6ZXdpZHl3YW55IHRlcm1pbiByZWFsaXphY2ppIjt9aToyNzthOjM6e3M6NToiaW5kZXgiO3M6MjoiMjgiO3M6NToibGFiZWwiO3M6MTU6IkxCTF9QREZfUEFZTUVOVCI7czoxMToidHJhbnNsYXRpb24iO3M6MTk6IldhcnVua2kgcMWCYXRub8WbY2kiO31pOjI4O2E6Mzp7czo1OiJpbmRleCI7czoyOiIyOSI7czo1OiJsYWJlbCI7czoxNToiTEJMX1BERl9DT05GSVJNIjtzOjExOiJ0cmFuc2xhdGlvbiI7czoyODoiUG90d2llcmR6ZW5pZSB6YW3Ds3dpZW5pYSBuciI7fWk6Mjk7YTozOntzOjU6ImluZGV4IjtzOjI6IjI5IjtzOjU6ImxhYmVsIjtzOjI2OiJMQkxfUERGX1BBUkVOVF9ET0NVTUVOVF9OTyI7czoxMToidHJhbnNsYXRpb24iO3M6MzI6IkRvdHljenkgUGHFhHN0d2EgemFtw7N3aWVuaWEgbnI6Ijt9fXM6NToidGV4dHMiO2E6Mjp7czo4OiJDb250YWN0cyI7YTozOntzOjExOiJoZWFkZXJfdGV4dCI7czoyNToiV2l0YWogJGNvbnRhY3RfZnVsbF9uYW1lISI7czoxMToiZm9vdGVyX3RleHQiO3M6Mjk6IlRla3N0IHBvZCB0YWJlbGthIGRsYSBDb250YWN0IjtzOjg6ImFkc190ZXh0IjtzOjQwOiJUZWtzdCBwb2dydWJpb255IHBvZCB0YWJlbGthIGRsYSBDb250YWN0Ijt9czo4OiJBY2NvdW50cyI7YTozOntzOjExOiJoZWFkZXJfdGV4dCI7czowOiIiO3M6MTE6ImZvb3Rlcl90ZXh0IjtzOjEzOiJUZWtzdCBzdG9wa2kuIjtzOjg6ImFkc190ZXh0IjtzOjE1OiJUZWtzdCBEb2RhdGtvd3kiO319fQ==';
//echo '<pre>$return_array: ' . var_export(self::decodeData($d), true) . '</pre>';
//echo self::encodeData(range(1,100));
return $return_array;
}
}