]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - include/Smarty/plugins/function.sugar_include.php
Release 6.5.0
[Github/sugarcrm.git] / include / Smarty / plugins / function.sugar_include.php
1 <?php
2
3 /*
4
5 Modification information for LGPL compliance
6
7 r56990 - 2010-06-16 13:05:36 -0700 (Wed, 16 Jun 2010) - kjing - snapshot "Mango" svn branch to a new one for GitHub sync
8
9 r56989 - 2010-06-16 13:01:33 -0700 (Wed, 16 Jun 2010) - kjing - defunt "Mango" svn dev branch before github cutover
10
11 r55980 - 2010-04-19 13:31:28 -0700 (Mon, 19 Apr 2010) - kjing - create Mango (6.1) based on windex
12
13 r51719 - 2009-10-22 10:18:00 -0700 (Thu, 22 Oct 2009) - mitani - Converted to Build 3  tags and updated the build system 
14
15 r51634 - 2009-10-19 13:32:22 -0700 (Mon, 19 Oct 2009) - mitani - Windex is the branch for Sugar Sales 1.0 development
16
17 r50375 - 2009-08-24 18:07:43 -0700 (Mon, 24 Aug 2009) - dwong - branch kobe2 from tokyo r50372
18
19 r42807 - 2008-12-29 11:16:59 -0800 (Mon, 29 Dec 2008) - dwong - Branch from trunk/sugarcrm r42806 to branches/tokyo/sugarcrm
20
21 r32667 - 2008-03-11 17:16:04 -0700 (Tue, 11 Mar 2008) - majed - changes for templating
22
23 r23946 - 2007-06-29 18:22:06 -0700 (Fri, 29 Jun 2007) - clee - Provides support for direct PHP file include in Meta-Data structure.
24
25 r23498 - 2007-06-08 14:05:19 -0700 (Fri, 08 Jun 2007) - clee - Added support for auto generated tabindex.
26
27 r23115 - 2007-05-25 13:07:34 -0700 (Fri, 25 May 2007) - clee - Updated to support PHP file includes.
28
29 r22603 - 2007-05-09 13:43:21 -0700 (Wed, 09 May 2007) - clee - Removed warning where there is no include value supplied.
30
31 r22571 - 2007-05-08 16:35:35 -0700 (Tue, 08 May 2007) - clee - 
32
33 */
34
35
36 /**
37  * Smarty plugin
38  * @package Smarty
39  * @subpackage plugins
40  */
41
42
43 /**
44  * Smarty {sugar_include} function plugin
45  *
46  * Type:     function<br>
47  * Name:     sugar_include<br>
48  * Purpose:  Handles rendering the global file includes from the metadata files defined
49  *           in templateMeta=>includes.
50  * 
51  * @author Collin Lee {clee@sugarcrm.com}
52  * @param array
53  * @param Smarty
54  */
55 function smarty_function_sugar_include($params, &$smarty)
56 {
57     global $app_strings;
58
59     if(isset($params['type']) && $params['type'] == 'php') {
60                 if(!isset($params['file'])) {
61                    $smarty->trigger_error($app_strings['ERR_MISSING_REQUIRED_FIELDS'] . 'include');
62                 } 
63                 
64                 $includeFile = $params['file'];
65                 if(!file_exists($includeFile)) {
66                    $smarty->trigger_error($app_strings['ERR_NO_SUCH_FILE'] . ': ' . $includeFile);
67                 }
68                 
69             ob_start();
70             require($includeFile);
71             $output_html = ob_get_contents();
72             ob_end_clean();
73             echo $output_html; 
74     } else if(is_array($params['include'])) {
75                   $code = '';
76                   foreach($params['include'] as $include) {
77                               if(isset($include['file'])) {
78                                  $file = $include['file'];
79                                  if(preg_match('/[\.]js$/si',$file)) {
80                                     $code .= "<script src=\"". getJSPath($include['file']) ."\"></script>";
81                                  } else if(preg_match('/[\.]php$/si', $file)) {
82                                     require_once($file);        
83                                  }
84                               } 
85                   } //foreach
86               return $code;
87         } //if
88 }
89 ?>