<chapter id="advanced-quanta"> <title >Erweiterte Funktionen von &quanta;</title> <para >Diese Kapitel beschreibt die erweiterten Funktionen von &quanta;.</para> <sect1 id="kommander"> <title ><application >Kommander</application > mit &quanta; benutzen</title> <para >Kommander von Marc Britton.</para> </sect1> &debugging-quanta; <sect1 id="tag-files"> <title >&quanta; Formatierungsdateien</title> <para >&quanta; benutzt Formatierungsdateien, um die verschiedenen Aktionen zu definieren, die für die Werkzeugleisten verfügbar sind. Diese Formatierungsdateien können ein einfaches Tag (im Folgenden als solches bezeichnet; Formatierungsanweisung in HTML-, SGML-, XML-Dokumenten; Anm. d. Übers.) ohne Attribute definieren oder sie können eine Dialogbox für ein Tag definieren, die alle verfügbaren Attribute enthält, sodass Sie einfach die leeren Felder ausfüllen können.</para> <important > <para >Leerzeichen beeinflussen nichts, aber schauen Sie nach den Zeichen & und <. Diese sollten durch &amp; und &lt; in allen xml-basierten &quanta; Resourcendateien ersetzt werden. Es wird nicht zum Absturz führen, aber einige Teile Ihrer Arbeit werden verloren gehen, wenn Sie es vergessen.</para > </important> <sect2 id="tag-file-structure"> <title >Formatierungsdateistruktur</title> <sect3> <title ></title> <para >Mögliche Einträge für das Typ-Attribute des Tags "attr": Um eine Liste der möglichen Typen zu bekommen, habe ich das folgende im Verzeichnis "tags" ausgeführt: grep -h type= *.tag | sed -e 's/^.*type=\"\([a-z]*\).*/\1/'| sort | uniq</para> <para >Das sind die Typen für Tagdialogeinträge: <simplelist ><member >check</member > <member >color</member > <member >input</member > <member >list</member > <member >text</member > <member >url</member > </simplelist > </para> <para > Das sind die Argumenttypen in PHP-Funktionstags, fragen Sie Andras wenn Fragen auftauchen. Sie sind frei definiert und lauten so: <simplelist > <member >array</member > <member >bool</member > <member >boolean</member > <member >char</member > <member >constant</member > <member >flags</member > <member >float</member > <member >function</member > <member >int</member > <member >long</member > <member >mixed</member > <member >number</member > <member >object</member > <member >resource</member > <member >resoure</member > <member >string</member > </simplelist > </para> <para >Die Tag-Definition hat folgende optionale Attribute: <variablelist > <varlistentry > <term >hasScript</term > <listitem ><para >"1" wenn übliche Events/Skripte mit diesem Tag verbunden werden können (onClick usw.)</para ></listitem > </varlistentry > <varlistentry > <term >hasCore</term > <listitem ><para >"1" wenn normale core-Attribute vorhanden sind (id, class usw.)</para ></listitem > </varlistentry > <varlistentry > <term >hasI18n</term > <listitem ><para >"1" wenn übliche i18n-Attribute vorhanden sind (lang, dir)</para ></listitem > </varlistentry > <varlistentry > <term >single </term > <listitem ><para >"1" wenn es ein einfaches Tag ist (z.B. <hr >)</para ></listitem > </varlistentry > <varlistentry > <term >optional </term > <listitem ><para >"1" wenn es ein optionales Tag ist (z.B. <colgroup >)</para ></listitem > </varlistentry > <varlistentry > <term >returnType</term > <listitem ><para >für Skriptsprachen, wenn die Funktion einen Wert zurückgibt (z.B. int)</para ></listitem > </varlistentry > </variablelist > </para> <para > Die <attr >-Definition kann folgende Attribute haben: <variablelist > <varlistentry > <term >defaultValue</term ><listitem ><para >der Standardwert des Tags ???</para ></listitem > </varlistentry > <varlistentry > <term >status</term > <listitem ><para >kann <quote >optional</quote >, <quote >required</quote > (benötigt) oder <quote >implied</quote > (implizit) sein</para ></listitem > </varlistentry > </variablelist > </para> </sect3> <sect3> <sect3info> <author > <firstname ></firstname > <surname ></surname > </author> </sect3info> <title ></title> <para > Für Skriptsprachenfunktionen definieren Sie Formatierungsdateien so: <informalexample > <literallayout> <!DOCTYPE tags> <tags> <tag name=<quote >[Funktionsname]</quote > type=<quote >function</quote > returnType=<quote >[Rückgabewert]</quote >> <attr name=<quote >[Argument1]></quote > type=<quote >[Argument1-Typ]</quote > ></attr> <attr name=<quote >[Argument2]</quote > type=<quote >[Argument2-Typ]</quote > status=<quote >optional</quote > ></attr> ... </tag> <tag ... ... </tag> ... </tags> </literallayout > </informalexample > </para> <para > Angaben in [] müssen ersetzt werden. Argument1 oben ist erforderlich und Argument2 ist optional. </para> <para > Eine Formatierungsdatei, die eine Dialogbox zum Bearbeiten eines Tags enthalten soll, sollte so aussehen: <informalexample > <programlisting> <markup> <!DOCTYPE tags> <tags> <tag name="[Name] [hasCore="[01]" hasI18n="[01]" hasScript="[01]"]> <attr name="[Attribute1]" type="[check|color|input|list|text|url]"> <text ></text> <textlocation col="0" row="0" /> <tooltip ></tooltip> <location col="1" row="0" colspan="3"/> </attr> ... </tag> ... </tags> </markup> </programlisting > </informalexample > </para> <para > <text ></text > definiert einen beschreibenden Text für das Objekt. </para> <para > <textlocation ... /> definiert ein Zeilen- und Spaltenlayout für das Tag <text >. </para> <para > <tooltip ></tooltip > ist eine Textkurzbeschreibung. </para> <para > <location /> definiert den Ort des Objekts für dieses Attribut. </para> <para > Alle Attribute müssen in der Formatierungsdatei aufgezählt sein. Wenn Sie sie nicht im Tag-Dialog auftauchen lassen wollen, lassen Sie einfach das Tag <location > weg. Also <attr ... ></attr > </para> </sect3> </sect2> </sect1> </chapter>