HOW TO - Work-in-Progress

"Roger Fischer" <[email protected]>
Newsgroups gmane.comp.cms.bitflux.general.german
Message-ID <[email protected]>
http://nbwz.bitflux.ch/howto/

Article: Objekt HowTo

Text den der Poweruser mit Tags eingeben könnte:
Verwendete Tags (Docbook):

http://www.docbook.org

- <section>
- <titel>, entspricht Docbook <title>,
- <para>
- <xref linkend="Mediaobject331"/> => das Media- und Imageobject
- <ulink> für Links
- CDATA
- <screen>

NOTE:
Siehe auch Entwicklung XHTML 2.0. XHTML 2.0 verwirft h1, h2 etc zugunsten
von section und title.


Power User Interface : Artikel "Objekt HowTo" : "Main" Eingabefeld
------------------------------------------------------------------------
<para><xref linkend="Mediaobject331"/>
Sobald man ein Objekt einmal gemacht hat, steht es im Bitflux CMS zur
Verfügung und man kann sich dann nur noch auf den Inhalt konzentrieren.
Diesen Vorgang macht man einmal pro Projekt bzw. vielleicht verwendet man
bereits gebrauchte Objekte auch einfach wieder.</para>

<para>
Der Vorgang sei hier an Hand des Beispiels FAQ kurz aufgezeigt. Natürlich
lässt sich jedes Objekt später auch erweitern.</para>


<section><titel>Datenbanktabelle kreieren</titel>
<para>
<screen>
CREATE TABLE Faq (
  ID int(11) NOT NULL auto_increment,
  lang char(2) default 'de',
  title varchar(50) NOT NULL default '',
  faqinfo_keywordset text,
  question text NOT NULL,
  answer text NOT NULL,
  created datetime NOT NULL default '0000-00-00 00:00:00',
  createdby varchar(50) NOT NULL default 'someone',
  changed timestamp(14) NOT NULL,
  changedby varchar(50) NOT NULL default 'someone',
  rang bigint(20) NOT NULL default '0',
  PRIMARY KEY  (ID),
  UNIQUE KEY ID (ID)
) TYPE=MyISAM;
</screen>
</para>
</section>


<section><titel>Eingabeformular für Content</titel>
<para>Als zweiten Schritt möchte man nun ja etwas in die Datenbank via Web
eingeben können. Dazu macht man normalerweise eine Form. Nicht unähnlich
machen wir das auch im Bitflux CMS. Der grosse Unterschied dabei ist, dass
wir die Form in XML schreiben, im sogenannten config.xml.</para>
<para>Als erstes kreiert man einen neuen Ordner, der den Namen des Objekts
trägt: $PROJECT_DIR/www/admin/form/Faq</para>
<para>In diesem Ordner finden zwei Dateien Platz, erstens das index.php,
dass man aus einem anderen Objekt-Ordner kopieren kann, zweitens das
config.xml:
</para>

<para>
<![CDATA[
<?xml version="1.0" encoding="iso-8859-1"?>
<bxco:config xmlns:bxco="http://bitflux.org/config/1.0">
<bxco:fields table="Faq">
      <bxco:field name="lang" type="text" descr="Language">de</bxco:field>
      <bxco:field name="title" type="text" descr="Title"/>
	  <bxco:field name="faqinfo_keywordset" type="abstract"
descr="Keywordset"/>
	  <bxco:field name="question" type="abstract" descr="Question"/>
      <bxco:field name="answer" type="abstract" descr="Answer"/>
	  <bxco:field name="rang" descr="Rang" type="int" >
     </bxco:field>

	  <bxco:field name="Document2Object" type="n2m" alternativeDescr="Document"
descr="Parent::Document" defaultXpath="default/parentid">
          <bxco:n2m thisfield="foreignobjectid"
thatfield="foreigndocumentid" objectfield="objectname"
objectfieldvalue="Faq"/>
          <bxco:foreign>
            <bxco:table name="Document"
                      field="title "
                	    orderby="title"
                     />
           </bxco:foreign>
         </bxco:field>

          <bxco:field name="created" alternativeDescr="CREATED"
descr="Created" type="fixed" subtype="datetime">
            <bxco:onnew default="sql:now()" />
          </bxco:field>

          <bxco:field name="createdby" alternativeDescr="CREATEDBY"
descr="Created by" type="fixed" >
            <bxco:onnew defaultXpath="auth/username" />
          </bxco:field>

          <bxco:field name="changed" alternativeDescr="CHANGED"
descr="Changed" type="fixed" subtype="datetime">
            <bxco:onnew default="sql:now()" />
            <bxco:onchange default="sql:now()" />
          </bxco:field>

          <bxco:field name="changedby" alternativeDescr="CHANGEDBY"
descr="Changed by" type="fixed">
            <bxco:onnew defaultXpath="auth/username" />
            <bxco:onchange defaultXpath="auth/username" />
          </bxco:field>
        </bxco:fields>

        <bxco:chooser field="concat(title,' (',lang,')')" orderby="title"
descr="Choose Faq"/>

        <bxco:create>
          <bxco:table name="Document2Object" hide="yes">
            <bxco:field name="foreigndocumentid"
value="this:Document2Object:Value" notempty="1"/>
			<bxco:field name="objectname" value="Faq"/>
            <bxco:field name="foreignobjectid" value="this:ID"
notempty="1"/>
          </bxco:table>
        </bxco:create>

</bxco:config>
]]>
</para>

<para>Ist der Objekt Ordner mit index.php und config.xml heraufgeladen,
steht die Eingabemaske sofort unter folgender www-Adresse zur Verfügung:
http://WEB_DIR/admin/form/Faq/
</para>
<para>Damit man das Objekt auch noch unter Elements im Kopfbereich des Power
User Interfaces finden kann, ändert man
$PROJECT_DIR/www/admin/power/header/index.php ab, bwz. man ergänzt das Array
$elements um das neue Objekt.
</para>
<para>Dann möchte man das Objekt auch noch im linken Navigationsbereich des
Power User Interfaces zur Verfügung haben, damit man es z.B. an ein Dokument
(Document) anhängen kann. Man macht das in
$PROJECT_DIR/www/admin/power/navi/structure.xml. Man fügt die Zeile an, dort
wo man sie chronologisch haben möchte.
<![CDATA[
	<bxst:table showview="yes" name="Faq" thatfield="foreignobjectid"
langtag="lang" titletag="title" bgcolor="#002244" fields="lang , title , ID"
/>
]]>
</para>
</section>

<section><titel>Aus der Datenbank das XML generieren (Structure XML)</titel>
<para>Als nächstes wollen wir den allfälligen Inhalt des FAQ
Objektes zuerst als XML ausgeben.</para>

<para>

<ulink
url="http://lists.bitflux.ch/pipermail/bitflux-cms-de/2002-November/000206.h
tml">
http://lists.bitflux.ch/pipermail/bitflux-cms-de/2002-November/000206.html</
ulink>
</para>
</section>

<section><titel>Mit XSLT das XML in HTML umwandeln. (XSLT)</titel>
<para>Als letzten Schritt wollen wir nun unser XML noch mithilfe von XSLT in
HTML umwandeln.</para>
<para>
<ulink
url="http://lists.bitflux.ch/pipermail/bitflux-cms-de/2002-November/000207.h
tml">
http://lists.bitflux.ch/pipermail/bitflux-cms-de/2002-November/000207.html
</ulink>

</para>

</section>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.