# Avancerade funktioner i &quanta;

Det här kapitlet ger en översikt av de avancerade funktionerna i &quanta;.

## Använda Kommander med &quanta;

Kommander av Marc Britton.

&debugging-quanta;

## &quanta; taggfiler

&quanta; använder taggfiler för att definiera de olika åtgärder som är tillgängliga för att associera med verktygsrader. Taggfilerna kan definiera en enkel tagg utan egenskaper, eller en taggdialogruta som kommer ihåg alla tillgängliga egenskaper åt dig, så att du helt enkelt kan fylla i tomrummen.

Mellanslag påverkar ingenting negativt, men se upp med tecknen & och <. Dessa ska troligen ersättas med &amp; och &lt; i alla &quanta;s XML-baserade resursfiler. Detta orsakar ingen krasch, men delar av ditt arbete försvinner, om du glömmer det.

### Taggfilstruktur

####

Möjliga värden på typegenskapen för taggen attr: För att få en lista över möjliga typer, gjorde jag följande i taggkatalogerna: grep -h type= *.tag |sed -e 's/^.*type=\"\([a-z]*\).*/\1/'| sort |uniq

Detta är typerna för objekt i taggdialogrutor:

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

Detta är argumenttyper inne i PHP-funktionstaggar, fråga Andras om de i stort sett har fri form, och de föregående är nyckelord:

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

Taggdefinitionerna har följande ytterligare egenskaper:

hasScript

- "1" om vanliga händelser/skript kan höra ihop med den här taggen (onclick, etc.)

hasCore

- "1" om vanliga kärnegenskaper finns (id, class, etc.)

hasI18n

- "1" om vanliga i18n-egenskaper finns (lang, dir)

single

- "1" om detta är en ensam tagg (t.ex. <hr >)

optional

- "1" om detta är en valfri tagg (t.ex. <colgroup >)

returnType

- för skriptspråk, funktionens returtyp om det finns någon (t.ex. int)

Definitionen av <attr > kan ha följande egenskaper:

defaultValue

- taggens standardvärde???

status

- kan vara optional (valfri), required (krävs), implied (underförstådd)

####

För funktioner i skriptspråk, definiera taggfilen så här:

    <!DOCTYPE tags>
    <tags>

    <tag name=[funktionsnamn] type=function returnType=[returtyp]>
      <attr name=[argument1]> type=[argument1-typ]
    ></attr>
      <attr name=[argument2] type=[argument2-typ] status=optional
    ></attr>
        ...
    </tag>
    <tag ...
    ...
    </tag>
     ...
    </tags>

Objekt inom [] ska ersättas. Det första argumentet, argument1, krävs och det andra, argument2, är valfritt.

En taggfil som du vill kunna använda för redigering i en taggdialogruta, ska se ut så här:

    <!DOCTYPE tags>
    <tags>
      <tag name="[namn] [hasCore="[01]" hasI18n="[01]" hasScript="[01]"]>
        <attr name="[egenskap1]" 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 > anger en kort beskrivande text för objektet.

<textlocation ... /> anger layout av rad och kolumn för taggen <text >.

<tooltip ></tooltip > är textbeskrivningen när användaren håller pekaren stilla.

<location ../> anger platsen för egenskapens värde.

Alla egenskaper måste räknas upp i taggfilen. Om du inte vill att den ska visas i taggdialogrutan, glöm då bara taggen <location >, t.ex. <attr ... > </attr >