]> git.llucax.com Git - software/bife/bife-all.git/commitdiff
- Moved some Generic functionality to Widget (attrs property).
authorLeandro Lucarella <llucax@gmail.com>
Tue, 17 Jun 2003 04:14:53 +0000 (04:14 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Tue, 17 Jun 2003 04:14:53 +0000 (04:14 +0000)
- Moved some Copy functionality to Fallback (name property).
- Moved QUERY to URL in Link.
- Improved Album (now it uses just one template).
- Added Menu (not implemented yet).
- Updated UML diagram.

16 files changed:
doc/bife.xmi
examples/index.php
examples/templates/bife_album.html
examples/templates/bife_album_emptyitem.html [deleted file]
examples/templates/bife_album_item.html [deleted file]
examples/templates/bife_albumphoto.html
examples/templates/bife_link.html
src/BIFE/Album.php
src/BIFE/AlbumPhoto.php
src/BIFE/Copy.php
src/BIFE/Fallback.php
src/BIFE/Generic.php
src/BIFE/Link.php
src/BIFE/Menu.php [new file with mode: 0644]
src/BIFE/Page.php
src/BIFE/Widget.php

index f5871672fb2a2234846ef206a24567b0152abb73..7a89f991d16061bfd9e7f5c75153f9368c10e549 100644 (file)
@@ -5,16 +5,23 @@
    <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="/mnt/burns/luca/website/www/test/bife/doc/bife.xmi" />
+  <XMI.model xmi.name="bife" href="/home/luca/website/www/test/bife_estable/doc/bife.xmi" />
   <XMI.metamodel xmi.name="UML" href="UML.xml" xmi.version="1.3" />
  </XMI.header>
  <XMI.content>
-  <docsettings viewid="2" documentation="" uniqueid="112" />
+  <docsettings viewid="116" documentation="Parse XML data getting widgets." uniqueid="129" />
   <umlobjects>
    <UML:Class stereotype="" package="BIFE" xmi.id="3" abstract="1" documentation="Base widget class." name="Widget" static="0" scope="200" >
+    <UML:Operation stereotype="" package="" xmi.id="126" type="void" abstract="0" documentation="Constructor." name="BIFE_Widget" 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="127" 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="4" type="string" abstract="1" documentation="Renders the widget using a template returning a string with the results." name="render" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;HTML_Template_Sigma" abstract="0" documentation="Template object to render the widget." name="template" static="0" scope="200" />
     </UML:Operation>
+    <UML:Attribute stereotype="" package="" xmi.id="125" value="array()" type="array" abstract="0" documentation="Attribute list." name="attrs" static="0" scope="202" />
    </UML:Class>
    <UML:Class stereotype="" package="BIFE" xmi.id="5" abstract="1" documentation="Base container widget class." name="Container" static="0" scope="200" >
     <UML:Operation stereotype="" package="" xmi.id="48" type="void" abstract="0" documentation="Constructor." name="BIFE_Container" static="0" scope="200" />
@@ -40,7 +47,6 @@
     <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="&amp;HTML_Template_Sigma" abstract="0" documentation="Template to use to render the widget." name="template" static="0" scope="200" />
     </UML:Operation>
-    <UML:Attribute stereotype="" package="" xmi.id="8" value="" type="array" abstract="0" documentation="Attribute list." name="attrs" static="0" scope="202" />
    </UML:Class>
    <UML:Class stereotype="" package="BIFE" xmi.id="14" abstract="0" documentation="Page widget." name="Page" static="0" scope="200" >
     <UML:Operation stereotype="" package="" xmi.id="15" type="void" abstract="0" documentation="Constructor." name="BIFE_Page" static="0" scope="200" >
@@ -55,7 +61,6 @@
     <UML:Operation stereotype="" package="" xmi.id="90" type="string" abstract="0" documentation="Returns the rendered widget as a string." name="render" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;HTML_Template_Sigma" abstract="0" documentation="Template to use to render the widget." name="template" static="0" scope="200" />
     </UML:Operation>
-    <UML:Attribute stereotype="" package="" xmi.id="89" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="202" />
    </UML:Class>
    <UML:Class stereotype="" package="BIFE" xmi.id="17" abstract="0" documentation="Title widget." name="Title" static="0" scope="200" >
     <UML:Operation stereotype="" package="" xmi.id="18" type="void" abstract="0" documentation="Constructor." name="BIFE_Title" static="0" scope="200" >
@@ -95,7 +100,6 @@ Returns an array of associative arrays with this keys:
     <UML:Operation stereotype="" package="" xmi.id="100" type="array" abstract="0" documentation="Splits a filename returning an array with the path, name and extension." name="splitFilename" static="1" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="Filename to split." name="filename" static="0" scope="200" />
     </UML:Operation>
-    <UML:Attribute stereotype="" package="" xmi.id="21" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
    </UML:Class>
    <UML:Class stereotype="" package="BIFE" xmi.id="25" abstract="0" documentation="This is the XML Parser." name="Parser" static="0" scope="200" >
     <UML:Operation stereotype="" package="" xmi.id="30" type="void" abstract="0" documentation="Constructor." name="BIFE_Parser" static="0" scope="200" >
@@ -142,6 +146,7 @@ Returns an array of associative arrays with this keys:
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="Name of the widget." name="name" static="0" scope="200" />
      <UML:Parameter stereotype="" package="" xmi.id="2" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
     </UML:Operation>
+    <UML:Attribute stereotype="" package="" xmi.id="129" value="" type="string" abstract="0" documentation="" name="name" static="0" scope="200" />
    </UML:Class>
    <UML:Class stereotype="" package="BIFE" xmi.id="76" abstract="0" documentation="Fallback widget that copies the XML." name="Copy" static="0" scope="200" >
     <UML:Operation stereotype="" package="" xmi.id="79" type="void" abstract="0" documentation="Constructor." name="BIFE_Copy" static="0" scope="200" >
@@ -155,8 +160,6 @@ Returns an array of associative arrays with this keys:
     <UML:Operation stereotype="" package="" xmi.id="82" type="void" abstract="0" documentation="Renders the widget returning a string with the results." name="render" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;HTML_Template_Sigma" abstract="0" documentation="Template to use to render the widget." name="template" static="0" scope="200" />
     </UML:Operation>
-    <UML:Attribute stereotype="" package="" xmi.id="78" value="" type="string" abstract="0" documentation="Widget name." name="name" static="0" scope="202" />
-    <UML:Attribute stereotype="" package="" xmi.id="77" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="202" />
    </UML:Class>
    <UML:Class stereotype="" package="BIFE" xmi.id="85" abstract="0" documentation="Root container class." name="Root" static="0" scope="200" >
     <UML:Operation stereotype="" package="" xmi.id="87" type="void" abstract="0" documentation="Constructor." name="BIFE_Root" static="0" scope="200" >
@@ -176,8 +179,6 @@ Returns an array of associative arrays with this keys:
     <UML:Operation stereotype="" package="" xmi.id="108" type="string" abstract="0" documentation="Renders the widget using a template returning a string with the results." name="render" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;HTML_Template_Sigma" abstract="0" documentation="Template to use to render the widget." name="template" static="0" scope="200" />
     </UML:Operation>
-    <UML:Attribute stereotype="" package="" xmi.id="104" value="" type="string" abstract="0" documentation="Photo filename." name="file" static="0" scope="202" />
-    <UML:Attribute stereotype="" package="" xmi.id="105" value="" type="string" abstract="0" documentation="Photo Description." name="desc" static="0" scope="202" />
    </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" >
@@ -187,123 +188,255 @@ Returns an array of associative arrays with this keys:
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
     </UML:Operation>
    </UML:Class>
+   <UML:Class stereotype="" package="BIFE" xmi.id="115" abstract="0" documentation="Dynamic Menu." name="Menu" static="0" scope="200" >
+    <UML:Operation stereotype="" package="" xmi.id="121" type="void" abstract="0" documentation="Constructor." name="BIFE_Menu" 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="122" 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="117" type="string" abstract="0" documentation="Renders the widget using a template returning a string with the results." name="render" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;HTML_Template_Sigma" 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="Class Diagram" localid="30000" showstereotype="0" showscope="1" font="Helvetica,9,-1,5,48,0,0,0,0,0" linecolor="#ff0000" >
+   <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="90" showattsigs="601" usesdiagramusefillcolour="0" x="256" linecolour="#ff0000" y="15" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="37" 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="127" showattsigs="601" usesdiagramusefillcolour="0" x="238" linecolour="#ff0000" y="120" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="90" 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="117" showattsigs="601" usesdiagramusefillcolour="0" x="73" linecolour="#ff0000" y="339" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="90" 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" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="109" showattsigs="601" usesdiagramusefillcolour="0" x="418" linecolour="#ff0000" y="462" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="90" usefillcolor="1" showattributes="1" xmi.id="14" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="107" showattsigs="601" usesdiagramusefillcolour="0" x="8" linecolour="#ff0000" y="499" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="52" usefillcolor="1" showattributes="1" xmi.id="17" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="144" showattsigs="601" usesdiagramusefillcolour="0" x="453" linecolour="#ff0000" y="90" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="150" usefillcolor="1" showattributes="1" xmi.id="20" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="118" showattsigs="601" usesdiagramusefillcolour="0" x="242" linecolour="#ff0000" y="340" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="52" 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="107" showattsigs="601" usesdiagramusefillcolour="0" x="248" linecolour="#ff0000" y="461" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="90" usefillcolor="1" showattributes="1" xmi.id="76" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="107" showattsigs="601" usesdiagramusefillcolour="0" x="419" linecolour="#ff0000" y="340" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="52" usefillcolor="1" showattributes="1" xmi.id="85" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="142" showattsigs="601" usesdiagramusefillcolour="0" x="28" linecolour="#ff0000" y="119" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="90" usefillcolor="1" showattributes="1" xmi.id="103" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="107" showattsigs="601" usesdiagramusefillcolour="0" x="129" linecolour="#ff0000" y="499" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="52" 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="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="127" showattsigs="601" usesdiagramusefillcolour="0" x="91" linecolour="#ff0000" y="150" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="90" 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="118" showattsigs="601" usesdiagramusefillcolour="0" x="31" linecolour="#ff0000" y="319" 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="107" showattsigs="601" usesdiagramusefillcolour="0" x="191" linecolour="#ff0000" y="319" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="52" usefillcolor="1" showattributes="1" xmi.id="85" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="137" showattsigs="601" usesdiagramusefillcolour="0" x="350" linecolour="#ff0000" y="80" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="210" 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" />
     </widgets>
     <messages/>
     <associations>
      <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="3" widgetaid="5" documentation="" type="500" >
       <linepath>
-       <startpoint startx="301" starty="120" />
-       <endpoint endx="301" endy="52" />
+       <startpoint startx="154" starty="150" />
+       <endpoint endx="154" endy="95" />
       </linepath>
      </UML:AssocWidget>
-     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="4" indexb="1" widgetbid="5" widgetaid="7" documentation="" type="500" >
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="1" widgetbid="5" widgetaid="61" documentation="" type="500" >
       <linepath>
-       <startpoint startx="131" starty="339" />
-       <endpoint endx="269" endy="210" />
+       <startpoint startx="90" starty="319" />
+       <endpoint endx="133" endy="240" />
       </linepath>
      </UML:AssocWidget>
-     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="1" widgetbid="7" widgetaid="17" documentation="" type="500" >
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="2" widgetbid="5" widgetaid="85" documentation="" type="500" >
       <linepath>
-       <startpoint startx="61" starty="499" />
-       <endpoint endx="112" endy="429" />
+       <startpoint startx="244" starty="319" />
+       <endpoint endx="175" endy="240" />
       </linepath>
      </UML:AssocWidget>
-     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="3" widgetaid="20" documentation="" type="500" >
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="3" widgetaid="25" documentation="Parse XML getting widgets." type="512" >
+      <UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="340" linecolour="none" y="164" operation="" usesdiagramlinecolour="1" role="701" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="" font="helvetica,-1,12,0,50,0,0,0,0,0" />
+      <UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="230" linecolour="none" y="59" operation="" usesdiagramlinecolour="1" role="702" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="" font="helvetica,-1,12,0,50,0,0,0,0,0" />
+      <UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="289" linecolour="none" y="121" operation="" usesdiagramlinecolour="1" role="703" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="gets" font="helvetica,-1,12,0,50,0,0,0,0,0" />
       <linepath>
-       <startpoint startx="453" starty="165" />
-       <endpoint endx="346" endy="33" />
+       <startpoint startx="350" starty="185" />
+       <endpoint endx="228" endy="57" />
       </linepath>
      </UML:AssocWidget>
-     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="4" indexb="2" widgetbid="5" widgetaid="61" documentation="" type="500" >
+    </associations>
+   </diagram>
+   <diagram snapgrid="0" showattsig="1" fillcolor="#ffffc0" showgrid="1" showopsig="0" usefillcolor="1" snapx="10" snapy="10" showatts="1" xmi.id="113" documentation="Class diagram for the basic classes." type="402" showops="1" showpackage="1" name="Basic 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="107" showattsigs="601" usesdiagramusefillcolour="0" x="56" linecolour="#ff0000" y="350" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="67" usefillcolor="1" showattributes="1" xmi.id="76" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="117" showattsigs="601" usesdiagramusefillcolour="1" x="265" linecolour="none" y="180" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="82" 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" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="107" showattsigs="601" usesdiagramusefillcolour="1" x="345" linecolour="none" y="350" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="52" 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="0" width="109" showattsigs="601" usesdiagramusefillcolour="0" x="499" linecolour="#ff0000" y="350" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="82" usefillcolor="1" showattributes="1" xmi.id="14" 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="205" linecolour="none" y="350" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="52" usefillcolor="1" showattributes="1" xmi.id="17" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="118" showattsigs="601" usesdiagramusefillcolour="0" x="50" linecolour="#ff0000" y="180" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#dcdcdc" 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="107" showattsigs="601" usesdiagramusefillcolour="0" x="500" linecolour="#ff0000" y="180" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#dcdcdc" height="52" usefillcolor="1" showattributes="1" xmi.id="85" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="127" showattsigs="601" usesdiagramusefillcolour="0" x="260" linecolour="#ff0000" y="30" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#dcdcdc" height="90" 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" />
+    </widgets>
+    <messages/>
+    <associations>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="1" widgetbid="7" widgetaid="17" documentation="" type="500" >
       <linepath>
-       <startpoint startx="301" starty="340" />
-       <endpoint endx="301" endy="210" />
+       <startpoint startx="258" starty="350" />
+       <endpoint endx="304" endy="262" />
       </linepath>
      </UML:AssocWidget>
-     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="61" widgetaid="76" documentation="" type="500" >
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="2" widgetbid="7" widgetaid="110" documentation="" type="500" >
       <linepath>
-       <startpoint startx="301" starty="461" />
-       <endpoint endx="301" endy="392" />
+       <startpoint startx="398" starty="350" />
+       <endpoint endx="343" endy="262" />
       </linepath>
      </UML:AssocWidget>
-     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="4" indexb="3" widgetbid="5" widgetaid="85" documentation="" type="500" >
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="61" widgetaid="76" documentation="" type="500" >
       <linepath>
-       <startpoint startx="472" starty="340" />
-       <endpoint endx="333" endy="210" />
+       <startpoint startx="109" starty="350" />
+       <endpoint endx="109" endy="240" />
       </linepath>
      </UML:AssocWidget>
      <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="85" widgetaid="14" documentation="" type="500" >
       <linepath>
-       <startpoint startx="472" starty="462" />
-       <endpoint endx="472" endy="392" />
+       <startpoint startx="553" starty="350" />
+       <endpoint endx="553" endy="232" />
       </linepath>
      </UML:AssocWidget>
-     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="3" widgetaid="103" documentation="" type="500" >
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="5" widgetaid="7" documentation="" type="500" >
       <linepath>
-       <startpoint startx="99" starty="119" />
-       <endpoint endx="256" endy="33" />
+       <startpoint startx="323" starty="180" />
+       <endpoint endx="323" endy="120" />
       </linepath>
      </UML:AssocWidget>
-     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="2" widgetbid="7" widgetaid="110" documentation="" type="500" >
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="5" widgetaid="85" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="553" starty="180" />
+       <endpoint endx="387" endy="75" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="5" widgetaid="61" documentation="" type="500" >
       <linepath>
-       <startpoint startx="182" starty="499" />
-       <endpoint endx="151" endy="429" />
+       <startpoint startx="109" starty="180" />
+       <endpoint endx="260" endy="75" />
       </linepath>
      </UML:AssocWidget>
     </associations>
    </diagram>
-   <diagram snapgrid="0" showattsig="1" fillcolor="#ffffc0" showgrid="0" showopsig="1" usefillcolor="1" snapx="10" snapy="10" showatts="1" xmi.id="41" documentation="" type="403" showops="1" showpackage="0" name="Parse" localid="29998" showstereotype="0" showscope="1" font="Helvetica,12,-1,5,50,0,0,0,0,0" linecolor="#ff0000" >
+   <diagram snapgrid="1" showattsig="1" fillcolor="#ffffc0" showgrid="1" showopsig="0" usefillcolor="1" snapx="10" snapy="10" showatts="1" xmi.id="114" documentation="" type="402" showops="1" showpackage="1" name="Album Classes" localid="30000" showstereotype="0" showscope="1" font="Helvetica,9,-1,5,48,0,0,0,0,0" linecolor="#ff0000" >
     <widgets>
-     <UML:ObjectWidget usesdiagramfillcolour="0" width="71" usesdiagramusefillcolour="0" x="62" linecolour="#ff0000" y="49" instancename="" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="29" usefillcolor="1" length="250" xmi.id="25" decon="0" localid="29999" multipleinstance="0" drawasactor="0" font="Helvetica,12,-1,5,50,0,0,0,0,0" />
-     <UML:ObjectWidget usesdiagramfillcolour="0" width="74" usesdiagramusefillcolour="0" x="478" linecolour="#ff0000" y="49" instancename="" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="29" usefillcolor="1" length="250" xmi.id="3" decon="0" localid="29998" multipleinstance="0" drawasactor="0" font="Helvetica,12,-1,5,50,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="148" showattsigs="601" usesdiagramusefillcolour="0" x="140" linecolour="#ff0000" y="20" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#dcdcdc" 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="144" showattsigs="601" usesdiagramusefillcolour="0" x="50" linecolour="#ff0000" y="190" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="142" usefillcolor="1" showattributes="1" xmi.id="20" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="142" showattsigs="601" usesdiagramusefillcolour="0" x="240" linecolour="#ff0000" y="190" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="67" usefillcolor="1" showattributes="1" xmi.id="103" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
     </widgets>
-    <messages>
-     <UML:MessageWidget usesdiagramfillcolour="1" width="416" usesdiagramusefillcolour="1" x="98" linecolour="none" y="119" operation="render(template : &amp;HTML_Template_Sigma) : void" widgetbid="29998" usesdiagramlinecolour="1" fillcolour="none" height="8" usefillcolor="1" seqnum="" widgetaid="29999" textid="42" xmi.id="43" font="Helvetica,12,-1,5,50,0,0,0,0,0" />
-    </messages>
-    <associations/>
+    <messages/>
+    <associations>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="1" widgetbid="3" widgetaid="20" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="122" starty="190" />
+       <endpoint endx="189" endy="95" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="2" widgetbid="3" widgetaid="103" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="311" starty="190" />
+       <endpoint endx="238" endy="95" />
+      </linepath>
+     </UML:AssocWidget>
+    </associations>
+   </diagram>
+   <diagram snapgrid="0" showattsig="1" fillcolor="#ffffc0" showgrid="1" showopsig="0" usefillcolor="1" snapx="10" snapy="10" showatts="1" xmi.id="116" documentation="" type="402" showops="1" showpackage="1" name="Menu 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="107" showattsigs="601" usesdiagramusefillcolour="0" x="141" linecolour="#ff0000" y="207" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="67" usefillcolor="1" showattributes="1" xmi.id="115" 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="120" linecolour="#ff0000" y="40" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#dcdcdc" 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" />
+    </widgets>
+    <messages/>
+    <associations>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="3" widgetaid="115" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="194" starty="207" />
+       <endpoint endx="194" endy="115" />
+      </linepath>
+     </UML:AssocWidget>
+    </associations>
+   </diagram>
+   <diagram snapgrid="0" showattsig="0" fillcolor="#ffffc0" showgrid="1" showopsig="0" usefillcolor="1" snapx="10" snapy="10" showatts="0" xmi.id="128" documentation="" type="402" showops="0" showpackage="1" name="_All Classes" localid="30000" showstereotype="0" showscope="1" font="Helvetica,9,-1,5,48,0,0,0,0,0" linecolor="#ff0000" >
+    <widgets>
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="96" showattsigs="600" usesdiagramusefillcolour="1" x="265" linecolour="none" y="360" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="7" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="106" showattsigs="600" usesdiagramusefillcolour="1" x="260" linecolour="none" y="250" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="5" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="90" showattsigs="600" usesdiagramusefillcolour="1" x="230" linecolour="none" y="120" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="3" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="89" showattsigs="600" usesdiagramusefillcolour="1" x="231" linecolour="none" y="30" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="25" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="97" showattsigs="600" usesdiagramusefillcolour="1" x="425" linecolour="none" y="360" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="61" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="79" showattsigs="600" usesdiagramusefillcolour="1" x="125" linecolour="none" y="360" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="85" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="87" showattsigs="600" usesdiagramusefillcolour="1" x="40" linecolour="none" y="250" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="20" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="121" showattsigs="600" usesdiagramusefillcolour="1" x="400" linecolour="none" y="250" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="103" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="80" showattsigs="600" usesdiagramusefillcolour="1" x="433" linecolour="none" y="450" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="76" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="75" showattsigs="600" usesdiagramusefillcolour="1" x="335" linecolour="none" y="450" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="110" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="79" showattsigs="600" usesdiagramusefillcolour="1" x="125" linecolour="none" y="450" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="14" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="76" showattsigs="600" usesdiagramusefillcolour="1" x="225" linecolour="none" y="450" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="17" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="84" showattsigs="600" usesdiagramusefillcolour="1" x="150" linecolour="none" y="250" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="115" showoperations="0" 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="5" indexb="3" widgetbid="3" widgetaid="5" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="313" starty="250" />
+       <endpoint endx="284" endy="145" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="4" indexb="2" widgetbid="5" widgetaid="7" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="313" starty="360" />
+       <endpoint endx="313" endy="275" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="4" indexb="3" widgetbid="5" widgetaid="61" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="473" starty="360" />
+       <endpoint endx="339" endy="275" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="4" indexb="1" widgetbid="5" widgetaid="85" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="164" starty="360" />
+       <endpoint endx="286" endy="275" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="5" indexb="1" widgetbid="3" widgetaid="20" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="83" starty="250" />
+       <endpoint endx="248" endy="145" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="5" indexb="4" widgetbid="3" widgetaid="103" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="460" starty="250" />
+       <endpoint endx="302" endy="145" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="61" widgetaid="76" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="473" starty="450" />
+       <endpoint endx="473" endy="385" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="2" widgetbid="7" widgetaid="110" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="372" starty="450" />
+       <endpoint endx="329" endy="385" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="1" widgetbid="7" widgetaid="17" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="263" starty="450" />
+       <endpoint endx="297" endy="385" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="85" widgetaid="14" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="164" starty="450" />
+       <endpoint endx="164" endy="385" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="5" indexb="2" widgetbid="3" widgetaid="115" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="192" starty="250" />
+       <endpoint endx="266" endy="145" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="3" widgetaid="25" documentation="" type="512" >
+      <UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="265" linecolour="none" y="57" operation="" usesdiagramlinecolour="1" role="701" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="" font="helvetica,-1,12,0,50,0,0,0,0,0" />
+      <UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="265" linecolour="none" y="99" operation="" usesdiagramlinecolour="1" role="702" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="" font="helvetica,-1,12,0,50,0,0,0,0,0" />
+      <UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="275" linecolour="none" y="87" operation="" usesdiagramlinecolour="1" role="703" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="gets" font="helvetica,-1,12,0,50,0,0,0,0,0" />
+      <linepath>
+       <startpoint startx="275" starty="55" />
+       <endpoint endx="275" endy="120" />
+      </linepath>
+     </UML:AssocWidget>
+    </associations>
    </diagram>
   </diagrams>
   <listview>
    <listitem open="1" type="800" id="-1" label="Views" >
     <listitem open="1" type="801" id="-1" label="Logical View" >
-     <listitem open="1" type="803" id="-1" label="Parser" >
-      <listitem open="1" type="810" id="41" label="Parse" />
-      <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="815" id="32" label="__destruct" />
-       <listitem open="0" type="815" id="35" label="characterData" />
-       <listitem open="0" type="815" id="34" label="endElement" />
-       <listitem open="0" type="814" id="84" label="fallback" />
-       <listitem open="0" type="815" id="36" label="parse" />
-       <listitem open="0" type="815" id="37" label="parseFile" />
-       <listitem open="0" type="815" id="74" label="parseString" />
-       <listitem open="0" type="814" id="27" label="parser" />
-       <listitem open="0" type="814" id="26" label="root" />
-       <listitem open="0" type="814" id="29" label="stack" />
-       <listitem open="0" type="815" id="33" label="startElement" />
-      </listitem>
-     </listitem>
-     <listitem open="1" type="803" id="-1" label="Widgets" >
+     <listitem open="1" type="803" id="-1" label="Album" >
       <listitem open="0" type="813" id="20" label="Album" >
        <listitem open="0" type="815" id="22" label="BIFE_Album" />
        <listitem open="0" type="815" id="57" label="__construct" />
-       <listitem open="0" type="814" id="21" label="attrs" />
        <listitem open="0" type="815" id="102" label="getDescription" />
        <listitem open="0" type="815" id="95" label="getList" />
        <listitem open="0" type="815" id="98" label="getThumbFilename" />
@@ -311,37 +444,24 @@ Returns an array of associative arrays with this keys:
        <listitem open="0" type="815" id="23" label="render" />
        <listitem open="0" type="815" id="100" label="splitFilename" />
       </listitem>
+      <listitem open="1" type="807" id="114" label="Album Classes" />
       <listitem open="0" type="813" id="103" label="AlbumPhoto" >
        <listitem open="0" type="815" id="106" label="BIFE_AlbumPhoto" />
        <listitem open="0" type="815" id="107" label="__construct" />
-       <listitem open="0" type="814" id="105" label="desc" />
-       <listitem open="0" type="814" id="104" label="file" />
        <listitem open="0" type="815" id="108" label="render" />
       </listitem>
-      <listitem open="0" type="807" id="2" label="Class Diagram" />
-      <listitem open="0" type="813" id="5" label="Container" >
-       <listitem open="0" type="815" id="48" label="BIFE_Container" />
-       <listitem open="0" type="815" id="50" label="__construct" />
-       <listitem open="0" type="815" id="6" label="addContents" />
-       <listitem open="0" type="814" id="47" label="contents" />
-       <listitem open="0" type="815" id="59" label="render" />
-      </listitem>
+     </listitem>
+     <listitem open="1" type="803" id="-1" label="Basic" >
+      <listitem open="0" type="807" id="113" label="Basic Classes" />
       <listitem open="0" type="813" id="76" label="Copy" >
        <listitem open="0" type="815" id="79" label="BIFE_Copy" />
        <listitem open="0" type="815" id="80" label="__construct" />
-       <listitem open="0" type="814" id="77" label="attrs" />
-       <listitem open="0" type="814" id="78" label="name" />
        <listitem open="0" type="815" id="82" label="render" />
       </listitem>
-      <listitem open="0" type="813" id="61" label="Fallback" >
-       <listitem open="0" type="815" id="62" label="BIFE_Fallback" />
-       <listitem open="0" type="815" id="63" label="__construct" />
-      </listitem>
       <listitem open="0" type="813" id="7" label="Generic" >
        <listitem open="0" type="815" id="10" label="BIFE_Generic" />
        <listitem open="0" type="815" id="51" label="__construct" />
        <listitem open="0" type="815" id="11" label="addContents" />
-       <listitem open="0" type="814" id="8" label="attrs" />
        <listitem open="0" type="815" id="12" label="render" />
       </listitem>
       <listitem open="0" type="813" id="110" label="Link" >
@@ -352,21 +472,62 @@ Returns an array of associative arrays with this keys:
        <listitem open="0" type="815" id="15" label="BIFE_Page" />
        <listitem open="0" type="815" id="53" label="__construct" />
        <listitem open="0" type="815" id="93" label="addContents" />
-       <listitem open="0" type="814" id="89" label="attrs" />
        <listitem open="0" type="815" id="90" label="render" />
       </listitem>
-      <listitem open="0" type="813" id="85" label="Root" >
-       <listitem open="0" type="815" id="87" label="BIFE_Root" />
-       <listitem open="0" type="815" id="88" label="__construct" />
-      </listitem>
       <listitem open="0" type="813" id="17" label="Title" >
        <listitem open="0" type="815" id="18" label="BIFE_Title" />
        <listitem open="0" type="815" id="55" label="__construct" />
       </listitem>
+     </listitem>
+     <listitem open="1" type="803" id="-1" label="Core" >
+      <listitem open="0" type="813" id="5" label="Container" >
+       <listitem open="0" type="815" id="48" label="BIFE_Container" />
+       <listitem open="0" type="815" id="50" label="__construct" />
+       <listitem open="0" type="815" id="6" label="addContents" />
+       <listitem open="0" type="814" id="47" label="contents" />
+       <listitem open="0" type="815" id="59" label="render" />
+      </listitem>
+      <listitem open="0" type="807" id="2" label="Core Classes" />
+      <listitem open="0" type="813" id="61" label="Fallback" >
+       <listitem open="0" type="815" id="62" label="BIFE_Fallback" />
+       <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="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="815" id="32" label="__destruct" />
+       <listitem open="0" type="815" id="35" label="characterData" />
+       <listitem open="0" type="815" id="34" label="endElement" />
+       <listitem open="0" type="814" id="84" label="fallback" />
+       <listitem open="0" type="815" id="36" label="parse" />
+       <listitem open="0" type="815" id="37" label="parseFile" />
+       <listitem open="0" type="815" id="74" label="parseString" />
+       <listitem open="0" type="814" id="27" label="parser" />
+       <listitem open="0" type="814" id="26" label="root" />
+       <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="85" label="Root" >
+       <listitem open="0" type="815" id="87" label="BIFE_Root" />
+       <listitem open="0" type="815" id="88" label="__construct" />
+      </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="814" id="125" label="attrs" />
        <listitem open="0" type="815" id="4" label="render" />
       </listitem>
      </listitem>
+     <listitem open="1" type="803" id="-1" label="Menu" >
+      <listitem open="0" type="813" id="115" label="Menu" >
+       <listitem open="0" type="815" id="121" label="BIFE_Menu" />
+       <listitem open="0" type="815" id="122" label="__construct" />
+       <listitem open="1" type="815" id="117" label="render" />
+      </listitem>
+      <listitem open="1" type="807" id="116" label="Menu Classes" />
+     </listitem>
+     <listitem open="1" type="807" id="128" label="_All Classes" />
     </listitem>
     <listitem open="1" type="802" id="-1" label="Use Case View" />
    </listitem>
index dfff49ccea83458338d26c55d87299c2e4361aed..33b14e1bc9bd7c62b27fc1569d77a6d78b761aa5 100644 (file)
@@ -42,7 +42,7 @@ require_once 'BIFE/Link.php';
 $file = isset($_REQUEST['BIFE']) ? $_REQUEST['BIFE'] : 'index.xbf';
 
 $template =& new HTML_Template_Sigma('templates', 'compiled_templates');
-$template->setErrorHandling(PEAR_ERROR_PRINT);
+$template->setErrorHandling(PEAR_ERROR_TRIGGER, E_USER_ERROR);
 
 $parser =& new BIFE_Parser('BIFE_Copy');
 $page =& $parser->parseFile($file);
index 2510de94abc46fa0a59941cf63ce6ed27e345640..749e1d068acbd50fc4145ec99c9631a04c338ba7 100644 (file)
@@ -2,11 +2,20 @@
 <DIV class="center">
     <TABLE class="album">
         <TBODY>
-            <!-- BEGIN FILA -->
+            <!-- BEGIN ROW -->
             <TR>
-                {ITEMS}
+                <!-- BEGIN ITEM -->
+                <TD align="center" valign="middle">
+                    <A href="{URL}"><IMG alt="{DESC}" src="{THUMB}"></A>
+                </TD>
+                <!-- END ITEM -->
+                <!-- BEGIN EMPTY -->
+                <TD align="center" valign="middle">
+                    VACÍO
+                </TD>
+                <!-- END EMPTY -->
             </TR>
-            <!-- END FILA -->
+            <!-- END ROW -->
         </TBODY>
     </TABLE>
 </DIV>
diff --git a/examples/templates/bife_album_emptyitem.html b/examples/templates/bife_album_emptyitem.html
deleted file mode 100644 (file)
index ca79251..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<TD class="albumitem">VACIO</TD>
diff --git a/examples/templates/bife_album_item.html b/examples/templates/bife_album_item.html
deleted file mode 100644 (file)
index 5523de6..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<TD class="albumitem">
-    <A class="albumitem" href="?BIFE_ALBUMPHOTO_FILE={PHOTO}&BIFE=photo.xbf"
-       title="{DESC}"><IMG alt="{DESC}" src="{THUMB}" class="albumitem"></A>
-</TD>
index 34c901f23fd0f8e8bdda5d412d1e3517e039b2b7..901274fc3c586bbb025a134261beba5d93c54992 100644 (file)
@@ -1,2 +1,2 @@
-<A href="./"><IMG class="albumphoto" alt="{DESC}" src="{FILE}"/></A>
-<DIV class="albumphoto">{DESC}</DIV>
+<H2>{DESC}</H2>
+<A href="./"><IMG alt="{DESC}" src="{FILE}"/></A>
index f8e214885a513051882f34b470087c94ab88b243..873ba85411019084f1e4fa5dff2e7da790a789cc 100644 (file)
@@ -1 +1 @@
-<A href="{URL}{QUERY}">{CONTENTS}</A>
+<A href="{URL}" title="{DESC}">{CONTENTS}</A>
index 1d9fa2bfaf758cd840827943f9f5a5de1a905f35..b3fd40915dddfc889b836c4ddc0d7a337c4b6d0d 100644 (file)
@@ -39,14 +39,6 @@ require_once 'Image/Transform.php';
  * @access public
  */
 class BIFE_Album extends BIFE_Widget {
-    /**
-     * Attributes.
-     *
-     * @var    array $attrs
-     * @access public
-     */
-    var $attrs;
-
     // ~X2C
 
     // +X2C Operation 22
@@ -82,14 +74,16 @@ class BIFE_Album extends BIFE_Widget {
             'THUMBSFORMAT'  => 'jpeg',
             'THUMBSDIR'     => '.thumbs',
             'EXTENSIONS'    => 'png,jpg,jpeg,PNG,JPG,JPEG',
-            'SELECTED'      => '',
             'MAXROWS'       => 0,
             'COLUMNS'       => 4,
+            'LINK-BIFE'     => 'photo.xbf',
+            'LINK-URL'      => '',
             // TODO - agregar atributo para el LINK, ver de hacer el
             //        widget de un link.
         );
-        $this->attrs = array_merge($defaults, $attrs);
-        $this->attrs['EXTENSIONS'] = explode(',', $this->attrs['EXTENSIONS']);
+        $attrs = array_merge($defaults, $attrs);
+        $attrs['EXTENSIONS'] = explode(',', $attrs['EXTENSIONS']);
+        parent::__construct($attrs);
     }
     // -X2C
 
@@ -105,7 +99,6 @@ class BIFE_Album extends BIFE_Widget {
     function render(&$template) // ~X2C
     {
         $template->loadTemplateFile('bife_album.html');
-        $template->addBlockFile('ITEMS', 'ITEM', 'bife_album_item.html');
         $root = $this->attrs['DIR'];
         $list = $this->getList();
         $tot  = count($list);
@@ -114,32 +107,25 @@ class BIFE_Album extends BIFE_Widget {
             for ($col = 0; $col < $this->attrs['COLUMNS']; $col++) {
                 $cur = $row * $this->attrs['COLUMNS'] + $col;
                 if ($photo = @$list[$cur]) {
-                    $selected = ($photo['file'] === $this->attrs['SELECTED']);
-                    if (is_null($photo['thumb'])) {
-                        $photo['thumb'] = $this->makeThumb($photo['file']);
+                    if (is_null($photo['THUMB'])) {
+                        $photo['THUMB'] = $this->makeThumb($photo['FILE']);
                     }
                     // FIXME - Si no se pudo crear el thumb, devuelve null
                     // (ver si se agrega otro template para indicar error
                     // o algo asi).
-                    $template->setVariable(
-                        array(
-                            'PHOTO' => $photo['file'],
-                            'DESC'  => $photo['desc'],
-                            'THUMB' => $photo['thumb'],
-                        )
-                    );
-                    $template->parse('ITEM');
-                } else {
-                    if (!@$empty) {
-                        $template->replaceBlockFile('ITEM',
-                            'bife_album_emptyitem.html', true);
-                        $empty = true;
+                    $photo['URL'] = $this->attrs['LINK-URL'] . '?BIFE_ALBUM_FILE=' .
+                        urlencode($photo['FILE']);
+                    if ($this->attrs['LINK-BIFE']) {
+                        $photo['URL'] .= '&BIFE=' . urlencode($this->attrs['LINK-BIFE']);
                     }
-                    $template->touchBlock('ITEM');
+                    $template->setVariable($photo);
                     $template->parse('ITEM');
+                } else {
+                    $template->touchBlock('EMPTY');
+                    $template->parse('EMPTY');
                 }
             }
-            $template->parse('FILA');
+            $template->parse('ROW');
         }
         $template->setVariable('DESC', $this->getDescription());
         return $template->get();
@@ -172,9 +158,9 @@ Returns an array of associative arrays with this keys:
                 if (is_readable("$root/$file") and in_array($ext, $exts)) {
                     $thumb = $this->getThumbFilename("$root/$file");
                     $return[] = array(
-                        'file'  => "$root/$name",
-                        'desc'  => $name,
-                        'thumb' => is_readable($thumb) ? $thumb : null,
+                        'FILE'  => "$root/$name",
+                        'DESC'  => $name,
+                        'THUMB' => is_readable($thumb) ? $thumb : null,
                     );
                 }              
             }
@@ -282,4 +268,4 @@ Returns an array of associative arrays with this keys:
 
 } // -X2C Class :Album
 
-?>
\ No newline at end of file
+?>
index 6a348763469186f1e7e8829d143a67c15dde01ad..ab4cc53e9cef1afdb7f4801a1c9ce03c42f4cb8e 100644 (file)
@@ -37,22 +37,6 @@ require_once 'BIFE/Widget.php';
  * @access public
  */
 class BIFE_AlbumPhoto extends BIFE_Widget {
-    /**
-     * Photo filename.
-     *
-     * @var    string $file
-     * @access protected
-     */
-    var $file;
-
-    /**
-     * Photo Description.
-     *
-     * @var    string $desc
-     * @access protected
-     */
-    var $desc;
-
     // ~X2C
 
     // +X2C Operation 106
@@ -81,8 +65,9 @@ class BIFE_AlbumPhoto extends BIFE_Widget {
      */
     function __construct($attrs) // ~X2C
     {
-        $this->file = @$attrs['FILE'] ? $attrs['FILE'] : @$_REQUEST['BIFE_ALBUMPHOTO_FILE'];
-        $this->desc = @$attrs['DESC'] ? $attrs['DESC'] : basename($this->file);
+        $new_attrs['FILE'] = @$attrs['FILE'] ? $attrs['FILE'] : @$_REQUEST['BIFE_ALBUM_FILE'];
+        $new_attrs['DESC'] = @$attrs['DESC'] ? $attrs['DESC'] : basename($new_attrs['FILE']);
+        parent::__construct($new_attrs);
     }
     // -X2C
 
@@ -98,12 +83,7 @@ class BIFE_AlbumPhoto extends BIFE_Widget {
     function render(&$template) // ~X2C
     {
         $template->loadTemplateFile('bife_albumphoto.html');
-        $template->setVariable(
-            array(
-                'FILE' => $this->file,
-                'DESC' => $this->desc,
-            )
-        );
+        $template->setVariable($this->attrs);
         return $template->get();
     }
     // -X2C
index c26fadace80dbc426aa0422e47a463ba26a5b73b..f660e04cad020c34ecfedf55912f84d9a687be73 100644 (file)
@@ -37,22 +37,6 @@ require_once 'BIFE/Fallback.php';
  * @access public
  */
 class BIFE_Copy extends BIFE_Fallback {
-    /**
-     * Widget name.
-     *
-     * @var    string $name
-     * @access protected
-     */
-    var $name;
-
-    /**
-     * Attributes.
-     *
-     * @var    array $attrs
-     * @access protected
-     */
-    var $attrs;
-
     // ~X2C
 
     // +X2C Operation 79
@@ -83,8 +67,7 @@ class BIFE_Copy extends BIFE_Fallback {
      */
     function __construct($name, $attrs) // ~X2C
     {
-        $this->name  = $name;
-        $this->attrs = $attrs;
+        parent::__construct($name, $attrs);
     }
     // -X2C
 
@@ -116,4 +99,4 @@ class BIFE_Copy extends BIFE_Fallback {
 
 } // -X2C Class :Copy
 
-?>
\ No newline at end of file
+?>
index ed6ebdde56fd281bc57c88d67d0f7ba47daf236f..60ac5f852d3fd44d912ba6e1ae702eb3cd1bace2 100644 (file)
@@ -26,8 +26,6 @@
 // $Id$
 //
 
-
-
 // +X2C includes
 require_once 'BIFE/Container.php';
 // ~X2C
@@ -40,6 +38,12 @@ require_once 'BIFE/Container.php';
  * @abstract
  */
 class BIFE_Fallback extends BIFE_Container {
+    /**
+     * @var    string $name
+     * @access public
+     */
+    var $name;
+
     // ~X2C
 
     // +X2C Operation 62
@@ -54,7 +58,7 @@ class BIFE_Fallback extends BIFE_Container {
      */
     function BIFE_Fallback($name, $attrs) // ~X2C
     {
-        trigger_error('Not implemented!', E_USER_WARNING);
+        $this->__construct($name, $attrs);
     }
     // -X2C
 
@@ -70,9 +74,11 @@ class BIFE_Fallback extends BIFE_Container {
      */
     function __construct($name, $attrs) // ~X2C
     {
-        trigger_error('Not implemented!', E_USER_WARNING);
+        parent::__construct($attrs);
+        $this->name = $name;
     }
     // -X2C
 
 } // -X2C Class :Fallback
-?>
\ No newline at end of file
+
+?>
index c98bc49d09ac6e2bba2fabbbd7fa2869088aeeb0..e31d813bc1bf13e891d03e1cf630f4dd54a6a59e 100644 (file)
@@ -38,14 +38,6 @@ require_once 'BIFE/Container.php';
  * @abstract
  */
 class BIFE_Generic extends BIFE_Container {
-    /**
-     * Attribute list.
-     *
-     * @var    array $attrs
-     * @access protected
-     */
-    var $attrs;
-
     // ~X2C
 
     // +X2C Operation 10
@@ -74,8 +66,7 @@ class BIFE_Generic extends BIFE_Container {
      */
     function __construct($attrs) // ~X2C
     {
-        parent::__construct();
-        $this->attrs = $attrs;
+        parent::__construct($attrs);
     }
     // -X2C
 
@@ -120,4 +111,4 @@ class BIFE_Generic extends BIFE_Container {
 
 } // -X2C Class :Generic
 
-?>
\ No newline at end of file
+?>
index ab21616bb48095b22bee09814aa47bf67c3a912a..7d4d7b6e27b91848045ea5b79abc5b5fc6c0c692 100644 (file)
@@ -65,14 +65,12 @@ class BIFE_Link extends BIFE_Generic {
      */
     function __construct($attrs) // ~X2C
     {
-        if (isset($attrs['URL'])) {
-            $this->attrs['URL'] = $attrs['URL'];
-            unset($attrs['URL']);
-        } else {
-            $this->attrs['URL'] = '';
-        }
+        $link_attrs['URL'] = @$attrs['URL'];
+        unset($attrs['URL']);
+        $link_attrs['DESC'] = @$attrs['DESC'];
+        unset($attrs['DESC']);
         if (isset($attrs['BIFE'])) {
-            $this->attrs['BIFE'] = $attrs['BIFE'];
+            $link_attrs['BIFE'] = $attrs['BIFE'];
             $attrs['DATA-BIFE']  = $attrs['BIFE'];
             unset($attrs['BIFE']);
         }
@@ -85,10 +83,9 @@ class BIFE_Link extends BIFE_Generic {
             }
         }
         if ($query) {
-            $this->attrs['QUERY'] = '?' . join('&', $query);
-        } else {
-            $this->attrs['QUERY'] = '';
+            $link_attrs['URL'] .= '?' . join('&', $query);
         }
+        parent::__construct($link_attrs);
     }
     // -X2C
 
diff --git a/src/BIFE/Menu.php b/src/BIFE/Menu.php
new file mode 100644 (file)
index 0000000..49923d2
--- /dev/null
@@ -0,0 +1,90 @@
+<?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 8 20:03:30 2003                                  |
+// | Authors: Leandro Lucarella <luca@lugmen.org.ar>                    |
+// +--------------------------------------------------------------------+
+//
+// $Id$
+//
+
+
+
+// +X2C includes
+require_once 'BIFE/Widget.php';
+// ~X2C
+
+// +X2C Class 115 :Menu
+/**
+ * Dynamic Menu.
+ *
+ * @access public
+ */
+class BIFE_Menu extends BIFE_Widget {
+    // ~X2C
+
+    // +X2C Operation 117
+    /**
+     * Renders the widget using a template returning a string with the results.
+     *
+     * @param  HTML_Template_Sigma &$template Template to use to render the widget.
+     *
+     * @return string
+     * @access public
+     */
+    function render(&$template) // ~X2C
+    {
+        trigger_error('Not implemented!', E_USER_WARNING);
+    }
+    // -X2C
+
+    // +X2C Operation 121
+    /**
+     * Constructor.
+     *
+     * @param  array $attrs Attributes.
+     *
+     * @return void
+     * @access public
+     */
+    function BIFE_Menu($attrs) // ~X2C
+    {
+        trigger_error('Not implemented!', E_USER_WARNING);
+    }
+    // -X2C
+
+    // +X2C Operation 122
+    /**
+     * Constructor.
+     *
+     * @param  array $attrs Attributes.
+     *
+     * @return void
+     * @access public
+     */
+    function __construct($attrs) // ~X2C
+    {
+        trigger_error('Not implemented!', E_USER_WARNING);
+    }
+    // -X2C
+
+} // -X2C Class :Menu
+?>
\ No newline at end of file
index 7f8fa3010b560aba15c7344e84d28139df73b060..d1ce3485e8d6bc208ecc1b40f9fa788a692c1088 100644 (file)
@@ -37,14 +37,6 @@ require_once 'BIFE/Root.php';
  * @access public
  */
 class BIFE_Page extends BIFE_Root {
-    /**
-     * Attributes.
-     *
-     * @var    array $attrs
-     * @access protected
-     */
-    var $attrs;
-
     // ~X2C
 
     // +X2C Operation 15
@@ -74,7 +66,6 @@ class BIFE_Page extends BIFE_Root {
     function __construct($attrs) // ~X2C
     {
         parent::__construct($attrs);
-        $this->attrs = $attrs;
     }
     // -X2C
 
@@ -119,4 +110,4 @@ class BIFE_Page extends BIFE_Root {
 
 } // -X2C Class :Page
 
-?>
\ No newline at end of file
+?>
index 96ecdd419d9d274758e4075a8ed4f125407d0c16..35e18bae25b90677077d00a39996f9f4f97d99c8 100644 (file)
  * @abstract
  */
 class BIFE_Widget {
+    /**
+     * Attribute list.
+     *
+     * @var    array $attrs
+     * @access protected
+     */
+    var $attrs = array();
+
     // ~X2C
 
+    // +X2C Operation 126
+    /**
+     * Constructor.
+     *
+     * @param  array $attrs Attributes.
+     *
+     * @return void
+     * @access public
+     */
+    function BIFE_Widget($attrs) // ~X2C
+    {
+        $this->__construct($attrs);
+    }
+    // -X2C
+
+    // +X2C Operation 127
+    /**
+     * Constructor.
+     *
+     * @param  array $attrs Attributes.
+     *
+     * @return void
+     * @access public
+     */
+    function __construct($attrs) // ~X2C
+    {
+        $this->attrs = $attrs;
+    }
+    // -X2C
+
     // +X2C Operation 4
     /**
      * Renders the widget using a template returning a string with the results.
@@ -55,4 +93,4 @@ class BIFE_Widget {
 
 } // -X2C Class :Widget
 
-?>
\ No newline at end of file
+?>