]> git.llucax.com Git - software/bife/base.git/blob - src/BIFE/Translate.php
4c1fe0549f15cfb6ceec0c89df954bfbf4a73cb7
[software/bife/base.git] / src / BIFE / Translate.php
1 <?php
2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
3 // +--------------------------------------------------------------------+
4 // |                       BIFE - Buil It FastEr                        |
5 // +--------------------------------------------------------------------+
6 // | This file is part of BIFE.                                         |
7 // |                                                                    |
8 // | BIFE is free software; you can redistribute it and/or modify it    |
9 // | under the terms of the GNU General Public License as published by  |
10 // | the Free Software Foundation; either version 2 of the License, or  |
11 // | (at your option) any later version.                                |
12 // |                                                                    |
13 // | BIFE is distributed in the hope that it will be useful, but        |
14 // | WITHOUT ANY WARRANTY; without even the implied warranty of         |
15 // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU   |
16 // | General Public License for more details.                           |
17 // |                                                                    |
18 // | You should have received a copy of the GNU General Public License  |
19 // | along with Hooks; if not, write to the Free Software Foundation,   |
20 // | Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA      |
21 // +--------------------------------------------------------------------+
22 // | Created: Wed May 17 18:16:54 ART 2003                              |
23 // | Authors: Leandro Lucarella <luca@lugmen.org.ar>                    |
24 // +--------------------------------------------------------------------+
25 //
26 // $Id$
27 //
28
29 // +X2C includes
30 require_once 'BIFE/Fallback.php';
31 // ~X2C
32
33 // +X2C Class 7 :Translate
34 /**
35  * This is a generic and simple (but very usefull) BIFE_Fallback implementation. Translate widgets using a template with it's name, prepended with 'bife_'. If not template is found, it copy the XML to the output.
36  *
37  * @package BIFE
38  * @access public
39  */
40 class BIFE_Translate extends BIFE_Fallback {
41     // ~X2C
42
43     // +X2C Operation 12
44     /**
45      * Renders the widget.
46      *
47      * @param  HTML_Template_HIT &$template Template to use to render the widget.
48      *
49      * @return string
50      * @access public
51      */
52     function render(&$template) // ~X2C
53     {
54         $name = "bife_{$this->name}";
55         if ($template->exists($name, '')) {
56             $this->attrs['CONTENTS'] = $this->renderContents($template);
57             $out = $template->parse($name, $this->attrs, '', '');
58         } else {
59             $name = $this->name;
60             $out = "<$name";
61             foreach ($this->attrs as $attr => $val) {
62                 $out .= sprintf(' %s="%s"', $attr, $val);
63             }
64             $contents = $this->renderContents($template);
65             if ($contents !== '') {
66                 $out .= ">$contents</$name>";
67             } else {
68                 $out .= "/>";
69             }
70         }
71         return $out;
72     }
73     // -X2C
74
75 } // -X2C Class :Translate
76
77 ?>