<chapter id="advanced-quanta">
<title
>Características avanzadas de &quanta;</title>
<para
>Este capítulo se centra en las características avanzadas de &quanta;.</para>

<sect1 id="kommander">
<title
>Usando <application
>Kommander</application
> con &quanta;</title>
<para
>Kommander por Marc Britton.</para>
</sect1>

&debugging-quanta;

<sect1 id="tag-files">
<title
>Archivos de etiquetas de &quanta;</title>
<para
>&quanta; usa archivos de etiquetas para definir las diversas acciones que están disponibles para las asociaciones de la barra de herramientas. Estos archivos de etiquetas pueden definir una etiqueta sencilla sin atributos o pueden definir un cuadro de diálogo de etiquetas que le recordará todos los valores disponibles para que simplemente tenga que rellenar los huecos.</para>
<important
> <para
>Los espacios no afectan negativamente a nada, pero tenga cuidado con los caracteres &amp; y &lt;. Estos los debería reemplazar por &amp;amp; y &amp;lt; respectivamente en todos los archivos de recursos de &quanta; basados en xml. Esto no causará una caída, pero partes de su trabajo desaparecerán si lo olvida.</para
> </important>
<sect2 id="tag-file-structure">
<title
>Estructura del archivo de etiquetas</title>
<sect3>
<title
></title>
<para
>Las posibles entradas para el tipo de atributo de la etiqueta: Para obtener una lista de los tipos posibles, hice lo siguiente en los directorios de las etiquetas: grep -h type= *.tag |sed -e 's/^.*type=\"\([a-z]*\).*/\1/'| sort |uniq</para>
<para
>Estos son los tipos de elementos de los diálogos de etiquetas: <simplelist
><member
>marca</member
> <member
>color</member
> <member
>entrada</member
> <member
>lista</member
> <member
>texto</member
> <member
>url</member
> </simplelist
> </para>
<para
> Aquí están los tipos de argumentos en las etiquetas de funciones de php, según Andras son mucho más independientes del formulario y antes eran palabras reservadas: <simplelist
> <member
>vector</member
> <member
>bool</member
> <member
>booleano</member
> <member
>carácter</member
> <member
>constante</member
> <member
>banderas</member
> <member
>flotante</member
> <member
>función</member
> <member
>entero</member
> <member
>largo</member
> <member
>mixto</member
> <member
>número</member
> <member
>objeto</member
> <member
>recurso</member
> <member
>recurso</member
> <member
>cadena</member
> </simplelist
> </para>
<para
>La definición de la etiqueta tiene los siguientes atributos opcionales: <variablelist
> <varlistentry
> <term
>hasScript</term
> <listitem
><para
>«1» si se pueden asociar eventos/scripts comunes a esta etiqueta (onclick etc.)</para
></listitem
> </varlistentry
> <varlistentry
> <term
>hasCore</term
> <listitem
><para
>«1» si están presente los atributos básicos (id, class, etc)</para
></listitem
> </varlistentry
> <varlistentry
> <term
>hasI18n</term
> <listitem
><para
>«1» si están presentes atributos comunes de internacionalización (lang, dir)</para
></listitem
> </varlistentry
> <varlistentry
> <term
>single </term
> <listitem
><para
>«1» si es una etiqueta sencilla (por ejemplo, &lt;hr&gt;)</para
></listitem
> </varlistentry
> <varlistentry
> <term
>optional </term
> <listitem
><para
>«1» si es una etiqueta opcional (por ejemplo, &lt;colgroup&gt;)</para
></listitem
> </varlistentry
> <varlistentry
> <term
>returnType</term
> <listitem
><para
>para lenguajes de script, la función devuelve un tipo. (por ejemplo, int)</para
></listitem
> </varlistentry
> </variablelist
> </para>

<para
> La definición de &lt;attr&gt; puede tener los siguientes atributos: <variablelist
> <varlistentry
> <term
>defaultValue</term
><listitem
><para
>el valor predeterminado de la etiqueta</para
></listitem
> </varlistentry
> <varlistentry
> <term
>status</term
> <listitem
><para
>Puede ser <quote
>optional</quote
> (opcional), <quote
>required</quote
> (requerido), <quote
>implied</quote
> (implicado)</para
></listitem
> </varlistentry
> </variablelist
> </para>
</sect3>
<sect3>
<sect3info>
<author
> <firstname
></firstname
> <surname
></surname
> </author>
</sect3info>
<title
></title>
<para
> Para funciones del lenguaje de script, define archivos de etiquetas como: <informalexample
> <literallayout>
&lt;!DOCTYPE tags>
&lt;tags>

&lt;tag name=<quote
>[function-name]</quote
> type=<quote
>function</quote
> returnType=<quote
>[return-type]</quote
>>
  &lt;attr name=<quote
>[argument1]></quote
> type=<quote
>[argument1-type]</quote
>
>&lt;/attr>
  &lt;attr name=<quote
>[argument2]</quote
> type=<quote
>[argument2-type]</quote
> status=<quote
>optional</quote
>
>&lt;/attr>
    ...
&lt;/tag>
&lt;tag ...
...
&lt;/tag>
 ...
&lt;/tags>
</literallayout
> </informalexample
> </para>
<para
> Los elementos entre [] se sustituirán. argument1 arriba es necesario y argument2 es opcional. </para>
<para
> Un archivo de etiquetas que quiera que tenga edición de diálogos de etiquetas deberían tener este aspecto: <informalexample
> <programlisting>
<markup>
&lt;!DOCTYPE tags>
&lt;tags>
  &lt;tag name="[name] [hasCore="[01]" hasI18n="[01]" hasScript="[01]"]>
    &lt;attr name="[attribute1]" type="[check|color|input|list|text|url]">
      &lt;text
>&lt;/text>
      &lt;textlocation col="0" row="0" />
      &lt;tooltip
>&lt;/tooltip>
      &lt;location col="1" row="0" colspan="3"/>
    &lt;/attr>
  ...
  &lt;/tag>
  ...
&lt;/tags>
</markup>
</programlisting
> </informalexample
> </para>

<para
> &lt;text
>&lt;/text
> define un texto descriptivo breve del objeto. </para>
<para
> &lt;textlocation ... /> define la distribución de fila y columna para la etiqueta &lt;text
>. </para>
<para
> &lt;tooltip
>&lt;/tooltip
> es un texto descriptivo para un usuario nuevo. </para>
<para
> &lt;location ../> define la ubicación del objeto para ese atributo. </para>
<para
> Todos los atributos deben ser enumerados en el archivo de etiquetas. Si no quiere que aparezca en el cuadro de diálogo de la etiqueta, simplemente omita la etiqueta &lt;location
>. Por ejemplo, &lt;attr ...
> &lt;/attr
> </para>
</sect3>
</sect2>
</sect1>

</chapter>

