]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - modules/ModuleBuilder/parsers/parser.searchfields.php
Release 6.5.0
[Github/sugarcrm.git] / modules / ModuleBuilder / parsers / parser.searchfields.php
1 <?php
2 if (! defined ( 'sugarEntry' ) || ! sugarEntry)
3     die ( 'Not A Valid Entry Point' ) ;
4 /*********************************************************************************
5  * SugarCRM Community Edition is a customer relationship management program developed by
6  * SugarCRM, Inc. Copyright (C) 2004-2012 SugarCRM Inc.
7  * 
8  * This program is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU Affero General Public License version 3 as published by the
10  * Free Software Foundation with the addition of the following permission added
11  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
12  * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
13  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
14  * 
15  * This program is distributed in the hope that it will be useful, but WITHOUT
16  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17  * FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
18  * details.
19  * 
20  * You should have received a copy of the GNU Affero General Public License along with
21  * this program; if not, see http://www.gnu.org/licenses or write to the Free
22  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
23  * 02110-1301 USA.
24  * 
25  * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
26  * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
27  * 
28  * The interactive user interfaces in modified source and object code versions
29  * of this program must display Appropriate Legal Notices, as required under
30  * Section 5 of the GNU Affero General Public License version 3.
31  * 
32  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
33  * these Appropriate Legal Notices must retain the display of the "Powered by
34  * SugarCRM" logo. If the display of the logo is not reasonably feasible for
35  * technical reasons, the Appropriate Legal Notices must display the words
36  * "Powered by SugarCRM".
37  ********************************************************************************/
38
39 require_once ('modules/ModuleBuilder/parsers/ModuleBuilderParser.php') ;
40 require_once ('modules/ModuleBuilder/MB/MBPackage.php');
41
42 class ParserSearchFields extends ModuleBuilderParser
43 {
44
45         var $searchFields;
46         var $packageKey; 
47         
48     function ParserSearchFields ($moduleName, $packageName='')
49     {
50         $this->moduleName = $moduleName;
51         if (!empty($packageName))
52         {
53             $this->packageName = $packageName;
54             $mbPackage = new MBPackage($this->packageName);
55             $this->packageKey = $mbPackage->key;
56         }
57         
58         $this->searchFields = $this->getSearchFields();
59     }
60     
61     function addSearchField($name, $searchField)
62     {
63         if(empty($name) || empty($searchField) || !is_array($searchField))
64         {
65                 return;
66         }
67         
68         $key = isset($this->packageKey) ? $this->packageKey . '_' . $this->moduleName : $this->moduleName;
69         $this->searchFields[$key][$name] = $searchField;
70     }
71     
72     function removeSearchField($name) 
73     {
74
75         $key = isset($this->packageKey) ? $this->packageKey . '_' . $this->moduleName : $this->moduleName;
76
77         if(isset($this->searchFields[$key][$name]))
78         {
79                 unset($this->searchFields[$key][$name]);
80         }
81     }
82     
83     function getSearchFields()
84     {
85         $searchFields = array();
86         if (!empty($this->packageName) && file_exists("custom/modulebuilder/packages/{$this->packageName}/modules/{$this->moduleName}/metadata/SearchFields.php")) //we are in Module builder
87         {
88                         include("custom/modulebuilder/packages/{$this->packageName}/modules/{$this->moduleName}/metadata/SearchFields.php");                            
89         } else if(file_exists("custom/modules/{$this->moduleName}/metadata/SearchFields.php")) {
90                         include("custom/modules/{$this->moduleName}/metadata/SearchFields.php");                        
91         } else if(file_exists("modules/{$this->moduleName}/metadata/SearchFields.php")) {
92                         include("modules/{$this->moduleName}/metadata/SearchFields.php");                                       
93         }
94         
95         return $searchFields;
96     }
97     
98     function saveSearchFields ($searchFields)
99     {
100         if (!empty($this->packageName)) //we are in Module builder
101         {
102                         $header = file_get_contents('modules/ModuleBuilder/MB/header.php');
103             if(!file_exists("custom/modulebuilder/packages/{$this->packageName}/modules/{$this->moduleName}/metadata/SearchFields.php"))
104             {
105                mkdir_recursive("custom/modulebuilder/packages/{$this->packageName}/modules/{$this->moduleName}/metadata");
106             }
107                         write_array_to_file("searchFields['{$this->packageKey}_{$this->moduleName}']", $searchFields["{$this->packageKey}_{$this->moduleName}"], "custom/modulebuilder/packages/{$this->packageName}/modules/{$this->moduleName}/metadata/SearchFields.php", 'w', $header);                                     
108         } else {
109                         $header = file_get_contents('modules/ModuleBuilder/MB/header.php');
110             if(!file_exists("custom/modules/{$this->moduleName}/metadata/SearchFields.php"))
111             {
112                mkdir_recursive("custom/modules/{$this->moduleName}/metadata");
113             }                   
114                         write_array_to_file("searchFields['{$this->moduleName}']", $searchFields[$this->moduleName], "custom/modules/{$this->moduleName}/metadata/SearchFields.php", 'w', $header);                                     
115         }
116         $this->searchFields = $searchFields;
117     }
118     
119
120
121 }
122
123 ?>