# Erweiterte Funktionen von &quanta;

Diese Kapitel beschreibt die erweiterten Funktionen von &quanta;.

## Kommander mit &quanta; benutzen

Kommander von Marc Britton.

&debugging-quanta;

## &quanta; Formatierungsdateien

&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.

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.

### Formatierungsdateistruktur

####

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

Das sind die Typen für Tagdialogeinträge:

- check
- color
- input
- list
- text
- url

Das sind die Argumenttypen in PHP-Funktionstags, fragen Sie Andras wenn Fragen auftauchen. Sie sind frei definiert und lauten so:

- array
- bool
- boolean
- char
- constant
- flags
- float
- function
- int
- long
- mixed
- number
- object
- resource
- resoure
- string

Die Tag-Definition hat folgende optionale Attribute:

hasScript

- "1" wenn übliche Events/Skripte mit diesem Tag verbunden werden können (onClick usw.)

hasCore

- "1" wenn normale core-Attribute vorhanden sind (id, class usw.)

hasI18n

- "1" wenn übliche i18n-Attribute vorhanden sind (lang, dir)

single

- "1" wenn es ein einfaches Tag ist (z.B. <hr >)

optional

- "1" wenn es ein optionales Tag ist (z.B. <colgroup >)

returnType

- für Skriptsprachen, wenn die Funktion einen Wert zurückgibt (z.B. int)

Die <attr >-Definition kann folgende Attribute haben:

defaultValue

- der Standardwert des Tags ???

status

- kann optional, required (benötigt) oder implied (implizit) sein

####

Für Skriptsprachenfunktionen definieren Sie Formatierungsdateien so:

    <!DOCTYPE tags>
    <tags>

    <tag name=[Funktionsname] type=function returnType=[Rückgabewert]>
      <attr name=[Argument1]> type=[Argument1-Typ]
    ></attr>
      <attr name=[Argument2] type=[Argument2-Typ] status=optional
    ></attr>
        ...
    </tag>
    <tag ...
    ...
    </tag>
     ...
    </tags>

Angaben in [] müssen ersetzt werden. Argument1 oben ist erforderlich und Argument2 ist optional.

Eine Formatierungsdatei, die eine Dialogbox zum Bearbeiten eines Tags enthalten soll, sollte so aussehen:

    <!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>

<text ></text > definiert einen beschreibenden Text für das Objekt.

<textlocation ... /> definiert ein Zeilen- und Spaltenlayout für das Tag <text >.

<tooltip ></tooltip > ist eine Textkurzbeschreibung.

<location /> definiert den Ort des Objekts für dieses Attribut.

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 >