- PEAR Package are well done.
- Code looks fine but examples are not tested.
- HIT has it's own directory.
- BIFE Core and Basic module are now in the same package since Basic it's now
so small and simple.
--- /dev/null
+<?php
+// vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
+// +--------------------------------------------------------------------+
+// | BIFE - Buil It FastEr |
+// +--------------------------------------------------------------------+
+// | This file is part of BIFE. |
+// | |
+// | BIFE is free software; you can redistribute it and/or modify it |
+// | under the terms of the GNU General Public License as published by |
+// | the Free Software Foundation; either version 2 of the License, or |
+// | (at your option) any later version. |
+// | |
+// | BIFE is distributed in the hope that it will be useful, but |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
+// | General Public License for more details. |
+// | |
+// | You should have received a copy of the GNU General Public License |
+// | along with Hooks; if not, write to the Free Software Foundation, |
+// | Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
+// +--------------------------------------------------------------------+
+// | Created: Sun Jun 1 20:00:20 2003 |
+// | Authors: Leandro Lucarella <luca@lugmen.org.ar> |
+// +--------------------------------------------------------------------+
+//
+// $Id$
+//
+
+// +X2C includes
+require_once 'BIFE/Container.php';
+// ~X2C
+
+// +X2C Class 110 :Link
+/**
+ * Link to another page.
+ *
+ * @access public
+ */
+class BIFE_Link extends BIFE_Container {
+ // ~X2C
+
+ // +X2C Operation 111
+ /**
+ * Constructor.
+ *
+ * @param array $attrs Attributes.
+ *
+ * @return void
+ * @access public
+ */
+ function BIFE_Link($attrs) // ~X2C
+ {
+ $this->__construct($attrs);
+ }
+ // -X2C
+
+ // +X2C Operation 112
+ /**
+ * Constructor.
+ *
+ * @param array $attrs Attributes.
+ *
+ * @return void
+ * @access public
+ */
+ function __construct($attrs) // ~X2C
+ {
+ $link_attrs['URL'] = $this->getURL($attrs);
+ $link_attrs['DESC'] = @$attrs['DESC'];
+ $link_attrs['TARGET'] = @$attrs['TARGET'];
+ parent::__construct($link_attrs);
+ }
+ // -X2C
+
+ // +X2C Operation 142
+ /**
+ * Gets a URL string based on Link attributes.
+ *
+ * @param array $attrs Link attributes.
+ *
+ * @return string
+ * @access public
+ */
+ function getURL($attrs) // ~X2C
+ {
+ $url = @$attrs['URL'];
+ unset($attrs['URL']);
+ if (isset($attrs['BIFE'])) {
+ $attrs['DATA-BIFE'] = $attrs['BIFE'];
+ unset($attrs['BIFE']);
+ }
+ $query = array();
+ foreach($attrs as $name => $value) {
+ if (substr($name, 0, 5) === 'DATA-') {
+ if ($name = substr($name, 5)) {
+ $query[] = urlencode($name) . '=' . urlencode($value);
+ }
+ }
+ }
+ if ($query) {
+ $url .= '?' . join('&', $query);
+ }
+ return $url;
+ }
+ // -X2C
+
+ // +X2C Operation 157
+ /**
+ * Renders the widget.
+ *
+ * @param HTML_Template_HIT &$template Template to use to render the widget.
+ *
+ * @return string
+ * @access public
+ */
+ function render(&$template) // ~X2C
+ {
+ $this->attrs['CONTENTS'] = $this->renderContents($template);
+ return $template->parse('bife_link', $this->attrs, '', '');
+ }
+ // -X2C
+
+} // -X2C Class :Link
+
+?>
\ No newline at end of file
-<?
+<?php
// vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
// +--------------------------------------------------------------------+
// | BIFE - Buil It FastEr |
// | along with Hooks; if not, write to the Free Software Foundation, |
// | Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +--------------------------------------------------------------------+
-// | Created: mié jun 18 01:05:57 ART 2003 |
+// | Created: Wed May 17 18:16:54 ART 2003 |
// | Authors: Leandro Lucarella <luca@lugmen.org.ar> |
// +--------------------------------------------------------------------+
//
// $Id$
//
-// This is a simple test and example of HTML_Template_HIT
+// +X2C includes
+require_once 'BIFE/Fallback.php';
+// ~X2C
-$tmp = ini_get('include_path');
-ini_set('include_path', "../core:$tmp");
-unset($tmp);
-umask('002');
+// +X2C Class 7 :Translate
+/**
+ * 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.
+ *
+ * @access public
+ */
+class BIFE_Translate extends BIFE_Fallback {
+ // ~X2C
-require_once 'HTML/Template/HIT.php';
-
-$hit =& new HTML_Template_HIT('hooks');
-
-for ($i = 0; $i < 20; $i++) {
- for ($j = 0; $j < 20; $j++) {
- $hit->parseBuffered('cell', 'CELL', "$i,$j");
+ // +X2C Operation 12
+ /**
+ * Renders the widget.
+ *
+ * @param HTML_Template_HIT &$template Template to use to render the widget.
+ *
+ * @return string
+ * @access public
+ */
+ function render(&$template) // ~X2C
+ {
+ $this->attrs['CONTENTS'] = $this->renderContents($template);
+ $name = "bife_{$this->name}";
+ if ($template->exists($name, '')) {
+ $out = $template->parse($name, $this->attrs, '', '');
+ } else {
+ $name = $this->name;
+ $out = "<$name";
+ foreach ($this->attrs as $attr => $val) {
+ $out .= sprintf(' %s="%s"', $attr, $val);
+ }
+ $contents = $this->renderContents($template);
+ if ($contents !== '') {
+ $out .= ">$contents</$name>";
+ } else {
+ $out .= "/>";
+ }
+ }
+ return $out;
}
- $hit->parseBuffered('row', 'ROW', $hit->popBuffer('cell'));
-}
-echo $hit->parse(
- 'body',
- array(
- 'ROWS' => $hit->popBuffer('row'),
- 'TITLE' => 'HOLA MUNDO!!!',
- )
-);
+ // -X2C
+
+} // -X2C Class :Translate
-?>
+?>
\ No newline at end of file
# General configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = "BIFE - Build It FastEr"
-PROJECT_NUMBER = 0.10
-OUTPUT_DIRECTORY = doc/api
+PROJECT_NUMBER = 0.11
+OUTPUT_DIRECTORY = api
OUTPUT_LANGUAGE = English
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
-INPUT = src/
+INPUT =
FILE_PATTERNS = *.php
RECURSIVE = YES
-EXCLUDE = src/BIFE.php
+EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXAMPLE_PATH =
# $Id$
#
-VERSION=0.10
+VERSION=0.11
MODULE_FILE=BIFE.php
MODULE_NAME=Core
PHP_FILES=$(filter-out $(MODULE_FILE),$(subst ./,,$(shell find -name '*.php')))
-X2C_TEMPLATE=../xmi2code.tpl.php
+EXAMPLE_FILES=$(subst ./,,$(shell find examples -regex '.*\.svn.*'))
+DOC_FILES=README ROADMAP
+X2C_TEMPLATE=xmi2code.tpl.php
-all: $(MODULE_FILE)
+package: package.xml $(PHP_FILES) $(EXAMPLE_FILES) $(DOC_FILES)
+ pear package
code: bife.xmi xmi2code.config
@xmi2code
<XMI.exporter>umbrello uml modeller http://uml.sf.net</XMI.exporter>
<XMI.exporterVersion>1.1</XMI.exporterVersion>
</XMI.documentation>
- <XMI.model xmi.name="bife" href="/home/luca/website/www/test/bife/core/bife.xmi" />
+ <XMI.model xmi.name="bife" href="/home/luca/bife/bife/bife.xmi" />
<XMI.metamodel xmi.name="UML" href="UML.xml" xmi.version="1.3" />
</XMI.header>
<XMI.content>
</UML:Operation>
<UML:Attribute stereotype="" package="" xmi.id="129" value="''" type="string" abstract="0" documentation="Name of the widget." name="name" static="0" scope="201" />
</UML:Class>
- <UML:Class stereotype="" package="HTML/Template" xmi.id="130" abstract="0" documentation="Hooks vs. IT (HIT) is a simple template implementation, based on hooks and IT template systems." name="HIT" static="0" scope="200" >
- <UML:Operation stereotype="" package="" xmi.id="136" type="void" abstract="0" documentation="Constructor." name="HTML_Template_HIT" static="0" scope="200" >
- <UML:Parameter stereotype="" package="" xmi.id="1" value="'.'" type="string" abstract="0" documentation="Root directory where template files are." name="root" static="0" scope="200" />
- <UML:Parameter stereotype="" package="" xmi.id="3" value="false" type="bool" abstract="0" documentation="If it's true, it looks for template files in PHP's include_path." name="useIncludePath" static="0" scope="200" />
- <UML:Parameter stereotype="" package="" xmi.id="4" value="''" type="string" abstract="0" documentation="Group of templates to use (a subdirectory in root)." name="group" static="0" scope="200" />
- </UML:Operation>
- <UML:Operation stereotype="" package="" xmi.id="137" type="void" abstract="0" documentation="Constructor." name="__construct" static="0" scope="200" >
- <UML:Parameter stereotype="" package="" xmi.id="1" value="'.'" type="int" abstract="0" documentation="Root directory where template files are." name="root" static="0" scope="200" />
- <UML:Parameter stereotype="" package="" xmi.id="3" value="false" type="false" abstract="0" documentation="If it's true, it looks for template files in PHP's include_path." name="useIncludePath" static="0" scope="200" />
- <UML:Parameter stereotype="" package="" xmi.id="4" value="''" type="string" abstract="0" documentation="Group of templates to use (a subdirectory in root)." name="group" static="0" scope="200" />
- </UML:Operation>
- <UML:Operation stereotype="" package="" xmi.id="138" type="string" abstract="0" documentation="Parse a template returning the results.
-
-If $vars is an array, the {[keys]} are replaced with [values] ($val is ignored). If is a string, {$vars} is replaced with $val." name="parse" static="0" scope="200" >
- <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="Name of template to parse." name="name" static="0" scope="200" />
- <UML:Parameter stereotype="" package="" xmi.id="2" value="''" type="mixed" abstract="0" documentation="Variables to replace in the template." name="vars" static="0" scope="200" />
- <UML:Parameter stereotype="" package="" xmi.id="3" value="''" type="string" abstract="0" documentation="If $vars is a string, the value to replace for $vars." name="val" static="0" scope="200" />
- <UML:Parameter stereotype="" package="" xmi.id="4" value="null" type="mixed" abstract="0" documentation="Group to use to parse this template. Null to use the current group." name="group" static="0" scope="200" />
- </UML:Operation>
- <UML:Operation stereotype="" package="" xmi.id="144" type="void" abstract="0" documentation="Parse a template buffering the results.
-
-Parse a template appending the results to an internal buffer. If $vars is an array, the {[keys]} are replaced with [values] ($val is ignored). If is a string, {$vars} is replaced with $val." name="parseBuffered" static="0" scope="200" >
- <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="Name of template to parse." name="name" static="0" scope="200" />
- <UML:Parameter stereotype="" package="" xmi.id="2" value="''" type="mixed" abstract="0" documentation="Variables to replace in the template." name="vars" static="0" scope="200" />
- <UML:Parameter stereotype="" package="" xmi.id="3" value="''" type="string" abstract="0" documentation="If $vars is a string, the value to replace for $vars." name="val" static="0" scope="200" />
- </UML:Operation>
- <UML:Operation stereotype="" package="" xmi.id="145" type="string" abstract="0" documentation="Gets a parsed buffer." name="getBuffer" static="1" scope="200" >
- <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="Name of the parsed template to get." name="name" static="0" scope="200" />
- </UML:Operation>
- <UML:Operation stereotype="" package="" xmi.id="146" type="void" abstract="0" documentation="Gets a parsed buffer and removes it." name="popBuffer" static="0" scope="200" >
- <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="Name of the buffer to flush." name="name" static="0" scope="200" />
- </UML:Operation>
- <UML:Operation stereotype="" package="" xmi.id="139" type="void" abstract="0" documentation="Sets the group to use and add it to the groups stack." name="pushGroup" static="0" scope="200" >
- <UML:Parameter stereotype="" package="" xmi.id="1" value="''" type="string" abstract="0" documentation="Group to use." name="group" static="0" scope="200" />
- </UML:Operation>
- <UML:Operation stereotype="" package="" xmi.id="140" type="string" abstract="0" documentation="Removes the group from the groups stack and returns to the previous used group." name="popGroup" static="0" scope="200" />
- <UML:Operation stereotype="" package="" xmi.id="159" type="bool" abstract="0" documentation="True if the template $name exists in $group (or the current group)." name="exists" static="0" scope="200" >
- <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="Name of the template." name="name" static="0" scope="200" />
- <UML:Parameter stereotype="" package="" xmi.id="2" value="null" type="mixed" abstract="0" documentation="Template's group. If it's null it uses the current group." name="group" static="0" scope="200" />
- </UML:Operation>
- <UML:Attribute stereotype="" package="" xmi.id="133" value="'.'" type="string" abstract="0" documentation="Root directory where template files are." name="root" static="0" scope="200" />
- <UML:Attribute stereotype="" package="" xmi.id="158" value="false" type="bool" abstract="0" documentation="If it's true, it looks for template files in PHP's include_path." name="useIncludePath" static="0" scope="200" />
- <UML:Attribute stereotype="" package="" xmi.id="134" value="''" type="string" abstract="0" documentation="Group of templates to use (a subdirectory in root)." name="group" static="0" scope="202" />
- <UML:Attribute stereotype="" package="" xmi.id="135" value="array()" type="array" abstract="0" documentation="Templates cache." name="cache" static="0" scope="202" />
- <UML:Attribute stereotype="" package="" xmi.id="147" value="array()" type="array" abstract="0" documentation="" name="buffer" static="0" scope="202" />
+ <UML:Class stereotype="" package="BIFE" xmi.id="7" abstract="0" documentation="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." name="Translate" static="0" scope="200" >
+ <UML:Operation stereotype="" package="" xmi.id="12" type="string" abstract="0" documentation="Renders the widget." name="render" static="0" scope="200" >
+ <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&HTML_Template_HIT" abstract="0" documentation="Template to use to render the widget." name="template" static="0" scope="200" />
+ </UML:Operation>
+ </UML:Class>
+ <UML:Class stereotype="" package="BIFE" xmi.id="110" abstract="0" documentation="Link to another page." name="Link" static="0" scope="200" >
+ <UML:Operation stereotype="" package="" xmi.id="111" type="void" abstract="0" documentation="Constructor." name="BIFE_Link" static="0" scope="200" >
+ <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
+ </UML:Operation>
+ <UML:Operation stereotype="" package="" xmi.id="112" type="void" abstract="0" documentation="Constructor." name="__construct" static="0" scope="200" >
+ <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
+ </UML:Operation>
+ <UML:Operation stereotype="" package="" xmi.id="142" type="string" abstract="0" documentation="Gets a URL string based on Link attributes." name="getURL" static="0" scope="200" >
+ <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="array" abstract="0" documentation="Link attributes." name="attrs" static="0" scope="200" />
+ </UML:Operation>
+ <UML:Operation stereotype="" package="" xmi.id="157" type="string" abstract="0" documentation="Renders the widget." name="render" static="0" scope="200" >
+ <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&HTML_Template_HIT" abstract="0" documentation="Template to use to render the widget." name="template" static="0" scope="200" />
+ </UML:Operation>
</UML:Class>
</umlobjects>
<diagrams>
<diagram snapgrid="0" showattsig="1" fillcolor="#ffffc0" showgrid="1" showopsig="0" usefillcolor="1" snapx="10" snapy="10" showatts="1" xmi.id="2" documentation="" type="402" showops="1" showpackage="1" name="Core Classes" localid="30000" showstereotype="0" showscope="1" font="Helvetica,9,-1,5,48,0,0,0,0,0" linecolor="#ff0000" >
<widgets>
- <UML:ConceptWidget usesdiagramfillcolour="0" width="148" showattsigs="601" usesdiagramusefillcolour="0" x="80" linecolour="#ff0000" y="20" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="75" usefillcolor="1" showattributes="1" xmi.id="3" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
- <UML:ConceptWidget usesdiagramfillcolour="0" width="173" showattsigs="601" usesdiagramusefillcolour="0" x="68" linecolour="#ff0000" y="140" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="60" usefillcolor="1" showattributes="1" xmi.id="5" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
- <UML:ConceptWidget usesdiagramfillcolour="0" width="123" showattsigs="601" usesdiagramusefillcolour="0" x="93" linecolour="#ff0000" y="241" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="60" usefillcolor="1" showattributes="1" xmi.id="61" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
- <UML:ConceptWidget usesdiagramfillcolour="0" width="171" showattsigs="601" usesdiagramusefillcolour="0" x="301" linecolour="#ff0000" y="20" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="240" usefillcolor="1" showattributes="1" xmi.id="25" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+ <UML:ConceptWidget usesdiagramfillcolour="0" width="148" showattsigs="601" usesdiagramusefillcolour="0" x="232" linecolour="#ff0000" y="50" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="75" usefillcolor="1" showattributes="1" xmi.id="3" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+ <UML:ConceptWidget usesdiagramfillcolour="0" width="173" showattsigs="601" usesdiagramusefillcolour="0" x="220" linecolour="#ff0000" y="170" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="60" usefillcolor="1" showattributes="1" xmi.id="5" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+ <UML:ConceptWidget usesdiagramfillcolour="0" width="123" showattsigs="601" usesdiagramusefillcolour="0" x="156" linecolour="#ff0000" y="290" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="60" usefillcolor="1" showattributes="1" xmi.id="61" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+ <UML:ConceptWidget usesdiagramfillcolour="0" width="171" showattsigs="601" usesdiagramusefillcolour="0" x="10" linecolour="#ff0000" y="10" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="240" usefillcolor="1" showattributes="1" xmi.id="25" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+ <UML:ConceptWidget usesdiagramfillcolour="1" width="107" showattsigs="601" usesdiagramusefillcolour="1" x="342" linecolour="none" y="290" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="82" usefillcolor="1" showattributes="1" xmi.id="110" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+ <UML:ConceptWidget usesdiagramfillcolour="1" width="104" showattsigs="601" usesdiagramusefillcolour="1" x="165" linecolour="none" y="390" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="37" usefillcolor="1" showattributes="1" xmi.id="7" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
</widgets>
<messages/>
<associations>
<UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="3" widgetaid="5" documentation="" type="500" >
<linepath>
- <startpoint startx="154" starty="140" />
- <endpoint endx="154" endy="95" />
+ <startpoint startx="306" starty="170" />
+ <endpoint endx="306" endy="125" />
+ </linepath>
+ </UML:AssocWidget>
+ <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="1" widgetbid="5" widgetaid="61" documentation="" type="500" >
+ <linepath>
+ <startpoint startx="217" starty="290" />
+ <endpoint endx="277" endy="230" />
</linepath>
</UML:AssocWidget>
- <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="5" widgetaid="61" documentation="" type="500" >
+ <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="2" widgetbid="5" widgetaid="110" documentation="" type="500" >
<linepath>
- <startpoint startx="154" starty="241" />
- <endpoint endx="154" endy="200" />
+ <startpoint startx="395" starty="290" />
+ <endpoint endx="335" endy="230" />
+ </linepath>
+ </UML:AssocWidget>
+ <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="61" widgetaid="7" documentation="" type="500" >
+ <linepath>
+ <startpoint startx="217" starty="390" />
+ <endpoint endx="217" endy="350" />
</linepath>
</UML:AssocWidget>
</associations>
</diagram>
- <diagram snapgrid="1" showattsig="1" fillcolor="#ffffc0" showgrid="1" showopsig="0" usefillcolor="1" snapx="10" snapy="10" showatts="1" xmi.id="132" documentation="" type="402" showops="1" showpackage="1" name="HIT Classes" localid="30000" showstereotype="0" showscope="1" font="Helvetica,9,-1,5,50,0,0,0,0,0" linecolor="#ff0000" >
- <widgets>
- <UML:ConceptWidget usesdiagramfillcolour="0" width="195" showattsigs="601" usesdiagramusefillcolour="0" x="50" linecolour="#ff0000" y="40" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="225" usefillcolor="1" showattributes="1" xmi.id="130" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,50,0,0,0,0,0" />
- </widgets>
- <messages/>
- <associations/>
- </diagram>
</diagrams>
<listview>
<listitem open="1" type="800" id="-1" label="Views" >
<listitem open="0" type="815" id="63" label="__construct" />
<listitem open="0" type="814" id="129" label="name" />
</listitem>
+ <listitem open="0" type="813" id="110" label="Link" >
+ <listitem open="0" type="815" id="111" label="BIFE_Link" />
+ <listitem open="0" type="815" id="112" label="__construct" />
+ <listitem open="0" type="815" id="142" label="getURL" />
+ <listitem open="0" type="815" id="157" label="render" />
+ </listitem>
<listitem open="0" type="813" id="25" label="Parser" >
<listitem open="0" type="815" id="30" label="BIFE_Parser" />
<listitem open="0" type="815" id="31" label="__construct" />
<listitem open="0" type="814" id="29" label="stack" />
<listitem open="0" type="815" id="33" label="startElement" />
</listitem>
+ <listitem open="0" type="813" id="7" label="Translate" >
+ <listitem open="0" type="815" id="12" label="render" />
+ </listitem>
<listitem open="0" type="813" id="3" label="Widget" >
<listitem open="0" type="815" id="126" label="BIFE_Widget" />
<listitem open="0" type="815" id="127" label="__construct" />
<listitem open="0" type="815" id="4" label="render" />
</listitem>
</listitem>
- <listitem open="1" type="803" id="-1" label="HIT" >
- <listitem open="0" type="813" id="130" label="HIT" >
- <listitem open="0" type="815" id="136" label="HTML_Template_HIT" />
- <listitem open="0" type="815" id="137" label="__construct" />
- <listitem open="0" type="814" id="147" label="buffer" />
- <listitem open="0" type="814" id="135" label="cache" />
- <listitem open="0" type="815" id="159" label="exists" />
- <listitem open="0" type="815" id="145" label="getBuffer" />
- <listitem open="0" type="814" id="134" label="group" />
- <listitem open="0" type="815" id="138" label="parse" />
- <listitem open="0" type="815" id="144" label="parseBuffered" />
- <listitem open="0" type="815" id="146" label="popBuffer" />
- <listitem open="0" type="815" id="140" label="popGroup" />
- <listitem open="0" type="815" id="139" label="pushGroup" />
- <listitem open="0" type="814" id="133" label="root" />
- <listitem open="0" type="814" id="158" label="useIncludePath" />
- </listitem>
- <listitem open="1" type="807" id="132" label="HIT Classes" />
- </listitem>
</listitem>
<listitem open="1" type="802" id="-1" label="Use Case View" />
</listitem>
+++ /dev/null
-<?xml version="1.0"?>
-
-<project name="BIFE" default="dist" basedir=".">
-
- <property name="poner directorio build en propiedad"/>
-
- <fileset dir="src/BIFE" id="files.src.core">
- <include name="Parser.php"/>
- <include name="Widget.php"/>
- <include name="Container.php"/>
- <include name="Fallback.php"/>
- <include name="Root.php"/>
- </fileset>
-
- <fileset dir="build/BIFE" id="files.build.core">
- <include name="Parser.php"/>
- <include name="Widget.php"/>
- <include name="Container.php"/>
- <include name="Fallback.php"/>
- <include name="Root.php"/>
- </fileset>
-
- <target name="prepare">
- <echo msg="Preparing build..."/>
- <mkdir dir="build/BIFE"/>
- </target>
-
- <target name="build" depends="prepare">
- <echo msg="Building..."/>
- <copy todir="build/BIFE">
- <fileset refid="files.src.core"/>
- </copy>
- <chmod mode="644">
- <fileset refid="files.build.core"/>
- </chmod>
- </target>
-
- <target name="dist" depends="build">
- <echo msg="Creating archive..."/>
- <tar name="bife.tar.gz" usegzip="true">
- <fileset dir="build">
- <include name="**/**"/>
- </fileset>
- </tar>
- </target>
-
- <target name="clean">
- <echo msg="Cleaning up..."/>
- <delete file="build"/>
- </target>
-
-</project>
+++ /dev/null
-<?php
-// vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
-// +--------------------------------------------------------------------+
-// | BIFE - Buil It FastEr |
-// +--------------------------------------------------------------------+
-// | This file is part of BIFE. |
-// | |
-// | BIFE is free software; you can redistribute it and/or modify it |
-// | under the terms of the GNU General Public License as published by |
-// | the Free Software Foundation; either version 2 of the License, or |
-// | (at your option) any later version. |
-// | |
-// | BIFE is distributed in the hope that it will be useful, but |
-// | WITHOUT ANY WARRANTY; without even the implied warranty of |
-// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
-// | General Public License for more details. |
-// | |
-// | You should have received a copy of the GNU General Public License |
-// | along with Hooks; if not, write to the Free Software Foundation, |
-// | Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
-// +--------------------------------------------------------------------+
-// | Created: Wed Jun 17 19:03:14 2003 |
-// | Authors: Leandro Lucarella <luca@lugmen.org.ar> |
-// +--------------------------------------------------------------------+
-//
-// $Id$
-//
-
-// +X2C Class 130 :HIT
-/**
- * Hooks vs. IT (HIT) is a simple template implementation, based on hooks and IT template systems.
- *
- * @access public
- */
-class HTML_Template_HIT {
- /**
- * Root directory where template files are.
- *
- * @var string $root
- * @access public
- */
- var $root = '.';
-
- /**
- * If it's true, it looks for template files in PHP's include_path.
- *
- * @var bool $useIncludePath
- * @access public
- */
- var $useIncludePath = false;
-
- /**
- * Group of templates to use (a subdirectory in root).
- *
- * @var string $group
- * @access protected
- */
- var $group = '';
-
- /**
- * Templates cache.
- *
- * @var array $cache
- * @access protected
- */
- var $cache = array();
-
- /**
- * @var array $buffer
- * @access protected
- */
- var $buffer = array();
-
- // ~X2C
-
- // +X2C Operation 136
- /**
- * Constructor.
- *
- * @param string $root Root directory where template files are.
- * @param bool $useIncludePath If it's true, it looks for template files in PHP's include_path.
- * @param string $group Group of templates to use (a subdirectory in root).
- *
- * @return void
- * @access public
- */
- function HTML_Template_HIT($root = '.', $useIncludePath = false, $group = '') // ~X2C
- {
- $this->__construct($root, $useIncludePath, $group);
- }
- // -X2C
-
- // +X2C Operation 137
- /**
- * Constructor.
- *
- * @param int $root Root directory where template files are.
- * @param false $useIncludePath If it's true, it looks for template files in PHP's include_path.
- * @param string $group Group of templates to use (a subdirectory in root).
- *
- * @return void
- * @access public
- */
- function __construct($root = '.', $useIncludePath = false, $group = '') // ~X2C
- {
- $this->root = $root;
- $this->useIncludePath = $useIncludePath;
- $this->pushGroup($group);
- }
- // -X2C
-
- // +X2C Operation 138
- /**
- * Parse a template returning the results.
-If $vars is an array, the {[keys]} are replaced with [values] ($val is ignored). If is a string, {$vars} is replaced with $val.
- *
- * @param string $name Name of template to parse.
- * @param mixed $vars Variables to replace in the template.
- * @param string $val If $vars is a string, the value to replace for $vars.
- * @param mixed $group Group to use to parse this template. Null to use the current group.
- *
- * @return string
- * @access public
- */
- function parse($name, $vars = '', $val = '', $group = null) // ~X2C
- {
- $group = is_null($group) ? end($this->group) : $group;
- if ($group) {
- $file = "{$this->root}/$group/$name.tpl.html";
- } else {
- $file = "{$this->root}/$name.tpl.html";
- }
- if (!isset($this->cache[$file])) {
- // FIXME - replace join(file()) with file_get_contents().
- $this->cache[$file] = join('', file($file, $this->useIncludePath));
- }
- if ($vars) {
- if (is_string($vars)) {
- $vars = array($vars => $val);
- }
- foreach ($vars as $key => $val) {
- $keys[] = '{' . $key . '}';
- $vals[] = $val;
- }
- return str_replace($keys, $vals, $this->cache[$file]);
- } else {
- return $this->cache[$file];
- }
- }
- // -X2C
-
- // +X2C Operation 144
- /**
- * Parse a template buffering the results.
-Parse a template appending the results to an internal buffer. If $vars is an array, the {[keys]} are replaced with [values] ($val is ignored). If is a string, {$vars} is replaced with $val.
- *
- * @param string $name Name of template to parse.
- * @param mixed $vars Variables to replace in the template.
- * @param string $val If $vars is a string, the value to replace for $vars.
- *
- * @return void
- * @access public
- */
- function parseBuffered($name, $vars = '', $val = '') // ~X2C
- {
- @$this->buffer["{$this->group}/$name"] .= $this->parse($name, $vars, $val);
- }
- // -X2C
-
- // +X2C Operation 145
- /**
- * Gets a parsed buffer.
- *
- * @param string $name Name of the parsed template to get.
- *
- * @return string
- * @access public
- * @static
- */
- function getBuffer($name) // ~X2C
- {
- return @$this->buffer["{$this->group}/$name"];
- }
- // -X2C
-
- // +X2C Operation 146
- /**
- * Gets a parsed buffer and removes it.
- *
- * @param string $name Name of the buffer to flush.
- *
- * @return void
- * @access public
- */
- function popBuffer($name) // ~X2C
- {
- $return = @$this->buffer["{$this->group}/$name"];
- unset($this->buffer["{$this->group}/$name"]);
- return $return;
- }
- // -X2C
-
- // +X2C Operation 139
- /**
- * Sets the group to use and add it to the groups stack.
- *
- * @param string $group Group to use.
- *
- * @return void
- * @access public
- */
- function pushGroup($group = '') // ~X2C
- {
- $this->group[] = $group;
- }
- // -X2C
-
- // +X2C Operation 140
- /**
- * Removes the group from the groups stack and returns to the previous used group.
- *
- * @return string
- * @access public
- */
- function popGroup() // ~X2C
- {
- return array_pop($this->group);
- }
- // -X2C
-
- // +X2C Operation 159
- /**
- * True if the template $name exists in $group (or the current group).
- *
- * @param string $name Name of the template.
- * @param mixed $group Template's group. If it's null it uses the current group.
- *
- * @return bool
- * @access public
- */
- function exists($name, $group = null) // ~X2C
- {
- $group = is_null($group) ? end($this->group) : $group;
- if ($group) {
- $file = "{$this->root}/$group/$name.tpl.html";
- } else {
- $file = "{$this->root}/$name.tpl.html";
- }
- if (!$this->useIncludePath) {
- return is_readable($file);
- } else {
- $include_path = array_unique(preg_split('/[:;]/', ini_get('include_path')));
- foreach ($include_path as $path) {
- if (is_readable("$path/$file")) {
- return true;
- }
- }
- return false;
- }
- }
- // -X2C
-
-} // -X2C Class :HIT
-
-?>
\ No newline at end of file
+++ /dev/null
-<Page title="Hola mundo!" menu="true" use="Album:Perfil">
- <Title>Titulo</Title>
- <P>
- Hola, gente, como estan todos? Esta es solo la primera prueba de
- BIFE, un cuasi-framework inspirado en <Link
- url="http://www.lunix.com.ar/Bif.php">BIF</Link>.
- </P>
- <Subtitle>Subtitulo</Subtitle>
- <List type="unordered" title="Aca va una lista de cosas:">
- <Item>Item loco.</Item>
- <Item>Otro item loco.</Item>
- </List>
-
- <Title>Album de fotos</Title>
- <Album dir="." cols="6"/>
-
- <Title>Este es mi perfil</Title>
- <Perfil user="luca"/>
-</Page>
+++ /dev/null
-<HTML>
- <HEAD>
- <TITLE>{TITLE}</TITLE>
- </HEAD>
- <BODY>
- <TABLE border="1" cellpadding="5">
- {ROWS}
- </TABLE>
- </BODY>
-</HTML>
+++ /dev/null
-<TD>{CELL}</TD>
+++ /dev/null
-<TR>{ROW}</TR>
// $Id$
//
-$incs = array(
- '../core',
- '../modules/album',
- '../modules/basic',
- '../modules/menu',
-// '../modules/',
-);
$tmp = ini_get('include_path');
-ini_set('include_path', join(':', $incs) . ":$tmp");
+ini_set('include_path', "..:$tmp");
unset($tmp);
umask('002');
require_once 'HTML/Template/HIT.php';
require_once 'BIFE/Parser.php';
require_once 'BIFE/Translate.php';
-require_once 'BIFE/Link.php';
$file = isset($_REQUEST['BIFE']) ? $_REQUEST['BIFE'] : 'index.xbf';
<?xml version="1.0" encoding="UTF-8"?>
-<Page title="Hola mundo!" menu="true">
- <Title>Datos!</Title>
- <H3>Photo album</H3>
- <Album:Thumbs dir="../.." columns="8"/>
- <HR color="blue" size="3"/>
+<Page title="Hello world!">
+ <Title>BIFE is working!</Title>
+ <H3>Translate Fallback is working too!</H3>
+ <P>This is a very bad use for BIFE, because I'm writing HTML :-P</P>
+ <Title>A little of 'real' use</Title>
+ <P>Here's a <Link bife="link.xbf">link</Link> to another BIFE file</P>
+ <HR color="blue" size="30"/>
</Page>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<Page title="Hi again!">
+ <Title>BIFE Links are working too!</Title>
+ <P>Go <Link bife="index.xbf">back</Link>.</P>
+</Page>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<Page title="Foto" use="AlbumPhoto">
- <Album:Photo/>
-</Page>
+++ /dev/null
-<H3 class="album">{DESC}</H3>
-<DIV class="center">
- <TABLE class="album">
- <TBODY>
- {CONTENTS}
- </TBODY>
- </TABLE>
-</DIV>
+++ /dev/null
-<TD align="center" valign="middle">
- {CONTENTS}
-</TD>
+++ /dev/null
-<A href="{URL}"><IMG alt="{DESC}" src="{THUMB}"></A>
+++ /dev/null
-<H2>{DESC}</H2>
-<A href="./"><IMG alt="{DESC}" src="{FILE}"/></A>
+++ /dev/null
-<TR>
- {CONTENTS}
-</TR>
<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE package SYSTEM "../package.dtd">
+<!DOCTYPE package SYSTEM "/usr/share/doc/pear/data/PEAR/package.dtd">
<package version="1.0">
<name>BIFE</name>
<summary>Build It FastEr</summary>
<state>alpha</state>
<notes>Check http://www.llucax.hn.org/desarrollo/bife/ for details.</notes>
<filelist>
+ <!-- PHP -->
<file role="php">BIFE/Parser.php</file>
<file role="php">BIFE/Widget.php</file>
<file role="php">BIFE/Container.php</file>
<file role="php">BIFE/Fallback.php</file>
- <file role="php">HTML/Template/HIT.php</file>
- <file role="doc">bife.xmi</file>
+ <file role="php">BIFE/Link.php</file>
+ <file role="php">BIFE/Translate.php</file>
+ <!-- DOC -->
+ <file role="doc">README</file>
+ <file role="doc">ROADMAP</file>
<file role="doc">examples/index.php</file>
<file role="doc">examples/index.xbf</file>
- <file role="doc">examples/templates/bife_page.html</file>
- <file role="doc">examples/templates/bife_title.html</file>
- <file role="doc">examples/templates/bife_album.html</file>
- <file role="doc">examples/templates/bife_album_item.html</file>
- <file role="doc">examples/templates/bife_album_emptyitem.html</file>
+ <file role="doc">examples/templates/bife_page.tpl.html</file>
+ <file role="doc">examples/templates/bife_title.tpl.html</file>
+ <file role="doc">examples/templates/bife_link.tpl.html</file>
</filelist>
</release>
<deps>
<dep type="php" rel="ge">4.2.3</dep>
- <!-- dep type="pkg" rel="ge" version="1.0">HTML_Template_Sigma</dep -->
+ <dep type="pkg" rel="ge" version="1.0.0beta">HTML_Template_HIT</dep>
</deps>
</package>
<!--
! vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
! **********************************************************************
- ! * BIFE * Buil It FastEr *
+ ! * BIFE - Buil It FastEr *
! **********************************************************************
! * This file is part of BIFE. *
! * *
! * *
! * You should have received a copy of the GNU General Public License *
! * along with Hooks; if not, write to the Free Software Foundation, *
- ! * Inc., 59 Temple Place, Suite 330, Boston, MA 02111*1307 USA *
+ ! * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
! **********************************************************************
! * Created: Mon May 19 00:16:56 ART 2003 *
! * Authors: Leandro Lucarella <luca@lugmen.org.ar> *
<option key="indent" value=" "/>
<option key="files-case" value="preserve"/>
<option key="generator" value="php.pear"/>
- <option key="template-path" value="../.."/>
+ <option key="template-path" value="."/>
<option key="php.template" value="xmi2code.tpl.php"/>
<option key="php.default-code" value="trigger_error('Not implemented!', E_USER_WARNING);"/>
<option key="php.pear.use-package-in-classnames" value="true"/>