<?xml version="1.0" encoding="UTF-8" ?>
<sect1 id="specials">
<sect1info>
<title>Specials en ingebouwde globale variabelen</title>
<authorgroup>
<author><firstname></firstname> <surname></surname> <affiliation><address> <email></email>
</address></affiliation>
</author>
&Sander.Koning;
</authorgroup>
</sect1info>
<title>Specials en ingebouwde globale variabelen</title>
<para>Specials zijn functies die door &kommander; verwerkt worden. Let erop dat, totdat &kommander; een volledige parser heeft, alle &kommander;-specials eerst uitgevoerd worden en daarna het script. In de meeste gevallen is dat geen probleem, maar soms wel. </para>
<variablelist>
<varlistentry>
<term><function>@dcop(<parameter>appId</parameter>, <parameter>object</parameter>, <parameter>function</parameter>, <parameter>arguments</parameter>)</function></term>
<listitem>
<para>Doe een &DCOP;-aanroep. @dcop(<quote>kmail</quote>, <quote>KMailIface</quote>, <quote>checkMail()</quote>, <quote></quote>) </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@dcopid</function></term>
<listitem>
<para>Het &DCOP;-id van het proces. (kmdr-executor-@pid) </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@dialog(<parameter>dialog</parameter>[,<parameter>parameters</parameter>])</function></term>
<listitem>
<para>Start het opgegeven Kommander-dialoogvenster op. Het dialoogvenster wordt gezocht in de dialoogmap en in de huidige map - in die volgorde. Dit gaat vooraf aan de aanroep naar de uitvoerder en stelt de standaardmap in op degene waar de Kommander-toepassing zich in bevindt. Parameters kunnen op de gebruikelijke Unix-manier worden meegegeven of u kunt parameters met naam meegeven als <quote>variable=value</quote>. U kunt de meegegeven parameters dan terugvinden in de global pool. @global(variable) retourneert <quote>value</quote>. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@env(<parameter>environmentVariable</parameter>)</function></term>
<listitem>
<para>Expandeert naar de opgegeven omgevingsvariabele. @env(PWD) expandeert naar $PWD. Onthoud dat <quote>$</quote> deel van de shell is en niet gebruikt moet worden. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@exec(<parameter>command</parameter>)</function></term>
<listitem>
<para>retourneert de uitvoer van het uitvoeren van de opgegeven opdracht. @exec(ls -l). </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@execBegin ... @execEnd</function></term>
<listitem>
<para>hetzelfde als <function>@exec</function>, maar met ondersteuning voor #! en meerregelige scripts. Dit ondersteunt diverse scripttalen door ze te declareren of door het gebruik van #!. </para>
<itemizedlist>
<listitem><para><function>@execBegin(php)</function></para></listitem>
<listitem><para><function>@execBegin</function>#!/usr/bin/php</para></listitem>
</itemizedlist>
<para>De eerste gebruikt de naam van het uitvoerbare bestand van <acronym>PHP</acronym>. &kommander; zoekt in het PATH naar <application>php</application> en als dit niet gevonden is, wordt gezocht of het in &kommander; is ingesteld buiten uw pad. Zo niet, dan wordt de gebruiker verteld dat het niet gevonden kan worden. Het weede voorbeeld gebruikt de klassieke <quote>#!</quote> die voor- en nadelen kan hebben. Als u een betaversie van <acronym>PHP5</acronym> hebt, bijvoorbeeld, in <filename>/usr/local/bin</filename> die niet gevonden zou worden omdat de versie in <filename>/usr/bin</filename> gevonden zou worden is dit nuttig. Maar, als u het dialoogvenster verspreidt naar iemand die <acronym>PHP</acronym> alleen in <filename>/usr/local/bin</filename> heeft wordt deze niet gevonden als u de #! gebruikt. #! gebruiken is dus niet zonder risico en het wordt aangeraden het uitvoerbare bestand te gebruiken als u bestanden deelt.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@global(<parameter>variable</parameter>)</function></term>
<listitem>
<para>expandeert naar de waarde van de opgegeven globale variabele. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@null</function></term>
<listitem>
<para>Retourneert null. Nu Kommander op een lege widgetText controleert bij het uitvoeren, voorkomt dit foutieve fouten in het geval van een niet-ingestelde staat op een widget.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@parentPid</function></term>
<listitem>
<para>Het &PID; van het ouderproces. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@pid</function></term>
<listitem>
<para>Het &PID; van het proces. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@readSetting(<parameter>key</parameter>, <parameter>defaultValue</parameter>)</function></term>
<listitem>
<para>leest een waarde uit <filename>kommanderrc</filename> </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@selectedWidgetText</function></term>
<listitem>
<para>de geselecteerde inhoud in een widget die meer dan één waarde kunnen weergeven, zoals lijstwidgets </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@setGlobal(<parameter>variable</parameter>, <parameter>value</parameter>)</function></term>
<listitem>
<para>Stelt de globale variabele in op de opgegeven waarde. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@widgetText</function></term>
<listitem>
<para>de inhoud van een widget </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@writeSetting(<parameter>key</parameter>, <parameter>value</parameter>)</function></term>
<listitem>
<para>schrijf waarde naar <filename>kommanderrc</filename> </para>
</listitem>
</varlistentry>
</variablelist>
<sect2 id="arrays">
<title>De functiegroep "Array"</title>
<variablelist>
<varlistentry>
<term><function>@Array.values(<parameter>array</parameter>)</function></term>
<listitem>
<para>Retourneert een EOL-gescheiden lijst van alle waarden in de array. Kan gebruikt worden om door een array te lopen.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.keys(<parameter>array</parameter>)</function></term>
<listitem>
<para>Retourneert een EOL-gescheiden lijst van alle sleutels in de array</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.setValue(<parameter>array</parameter>, <parameter>key</parameter>, <parameter>value</parameter>)</function></term>
<listitem>
<para>Stel sleutel en waarde in voor een element van een array. Als geen array bestaat wordt deze aangemaakt.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.clear(<parameter>array</parameter>)</function></term>
<listitem>
<para>Verwijder alle elementen uit de array.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.count(<parameter>array</parameter>)</function></term>
<listitem>
<para>Retourneer aantal elementen in de array.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.value(<parameter>array</parameter>,<parameter>key</parameter>)</function></term>
<listitem>
<para>Retourneer de waarde die bij de opgegeven sleutel hoort.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.remove(<parameter>array</parameter>,<parameter>key</parameter>)</function></term>
<listitem>
<para>Verwijder element met de opgegeven sleutel uit de array.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.fromString(<parameter>array</parameter>,<parameter>string</parameter>)</function></term>
<listitem>
<para>Voeg alle elementen in de tekenreeks toe aan de array. De tekenreeks moet van het formaat <emphasis>key\tvalue\n</emphasis> zijn.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.toString(<parameter>array</parameter>,<parameter>string</parameter>)</function></term>
<listitem>
<para>Retourneer alle elementen in de array in <emphasis>key\tvalue\n</emphasis> formaat.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="files">
<title>De functiegroep "File"</title>
<variablelist>
<varlistentry>
<term><function>@File.read(<parameter>file</parameter>)</function></term>
<listitem>
<para>Retourneer inhoud van het opgegeven bestand.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@File.write(<parameter>file</parameter><parameter>string</parameter>)</function></term>
<listitem>
<para>Schrijf gegeven tekenreeks naar een bestand.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@File.append(<parameter>file</parameter><parameter>string</parameter>)</function></term>
<listitem>
<para>Voeg gegeven tekenreeks toe aan het einde van een bestand.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="strings">
<title>De functiegroep "String"</title>
<variablelist>
<varlistentry>
<term><function>@String.length(<parameter>string</parameter>)</function></term>
<listitem>
<para>Retourneert het aantal tekens in de tekenreeks.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.contains(<parameter>string</parameter>,<parameter>substring</parameter>)</function></term>
<listitem>
<para>Controleer of de tekenreeks gegeven subreeks bevat.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.find(<parameter>string</parameter>)</function></term>
<listitem>
<para>Retourneer positie van een subreeks in de tekenreeks, of -1 als deze niet gevonden werd.</para>
<note><para>Een optionele startpositie voor het vinden van volgende voorkomens is beschikbaar vanaf Alpha 6.</para></note>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.left(<parameter>string</parameter>, <parameter>int</parameter>)</function></term>
<listitem>
<para>Retourneer de eerste n tekens van de tekenreeks.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.right(<parameter>string</parameter>, <parameter>int</parameter>)</function></term>
<listitem>
<para>Retourneer de laatste n tekens van de tekenreeks.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.mid(<parameter>string</parameter>, <parameter>int start</parameter>, <parameter>int end</parameter>)</function></term>
<listitem>
<para>Retourneer subreeks van de tekenreeks vanaf opgegeven positie.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.remove(<parameter>string</parameter>, <parameter>substring</parameter>)</function></term>
<listitem>
<para>Verwijder alle voorkomens van een gegeven subreeks.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.replace(<parameter>string</parameter>, <parameter>substring find</parameter>, <parameter>substring replace</parameter>)</function></term>
<listitem>
<para>Vervang alle voorkomens van een gegeven subreeks door een gegeven vervanging.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.upper(<parameter>string</parameter>)</function></term>
<listitem>
<para>Zet de tekenreeks om naar hoofdletters.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.lower(<parameter>string</parameter>)</function></term>
<listitem>
<para>Zet de tekenreeks om naar kleine letters.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.compare(<parameter>string</parameter>, <parameter>string</parameter>)</function></term>
<listitem>
<para>Vergelijk twee tekenreeksen. Retourneer 0 als ze gelijk zijn, -1 als de eerste lager is, 1 als de eerste hoger is.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.isEmpty(<parameter>string</parameter>)</function></term>
<listitem>
<para>Controleer of de tekenreeks leeg is.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.isNumber(<parameter>string</parameter>)</function></term>
<listitem>
<para>Controleer of de tekenreeks een geldig getal is.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="builtins">
<title>Ingebouwde globale variabelen</title>
<para>Ingebouwde globale variabelen worden net als gewone globale variabelen benaderd met <function>@global</function>.</para>
<variablelist>
<varlistentry>
<term><function>@global(_KDDIR)</function></term>
<listitem>
<para>De map waar het huidige dialoogvenster zich in bevindt.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@global(_NAME)</function></term>
<listitem><para>De naam van het dialoogvenster</para></listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>