<?xml version="1.0"  encoding="UTF-8" ?>

<sect1 id="specials">
<sect1info>
<title
>Spéciaux et variables globales prédéfinies</title>
<authorgroup>
<author
><firstname
></firstname
> <surname
></surname
> <affiliation
><address
> <email
></email>
</address
></affiliation>
</author>

&traducteurYohannHamon; 

</authorgroup>
</sect1info>

<title
>Spéciaux et variables globales prédéfinies</title>

<para
>Les spéciaux sont des fonctions qui sont traduites et exécutées par &kommander;. Vous devriez garder en tête que jusqu'à ce que &kommander; soit doté d'un analyseur syntaxique (« parser ») complet tous les spéciaux &kommander; seront exécutés en premier avant que le soit le script. Dans la plupart des cas ce n'est pas un problème, mais cela peut l'être parfois. </para>

<variablelist>
<varlistentry>
<term
><function
>@dcop(<parameter
>appId</parameter
>, <parameter
>objet</parameter
>, <parameter
>fonction</parameter
>, <parameter
>arguments</parameter
>)</function
></term>
<listitem>
<para
>Faire un appel &DCOP;. @dcop(<quote
>kmail</quote
>, <quote
>KMailIface</quote
>, <quote
>checkMail()</quote
>, <quote
></quote
>) </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@dcopid</function
></term>
<listitem>
<para
>L'identifiant &DCOP; id du processus. (kmdr-executor-@pid) </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@dialog(<parameter
>BoîteDeDialogue</parameter
>[,<parameter
>paramètres</parameter
>])</function
></term>
<listitem>
<para
>Exécute la boîte de dialogue Kommander spécifiée. La boîte de dialogue est recherchée dans le dossier des boîtes de dialogue et dans le dossier courant. Ceci suspend l'appel de l'exécuteur et configure le dossier par défaut à celui dans lequel l'application Kommander se situe. Des paramètres peuvent être transmis par la méthode Unix usuelle avec laquelle vous pouvez transmettre des paramètre nommés tel que <quote
>variable=valeur</quote
>. Vous pouvez alors trouver les paramètres transmis avec les variables globales. @global(variable) retournerais <quote
>valeur</quote
>. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@env(<parameter
>VariableEnvironnement</parameter
>)</function
></term>
<listitem>
<para
>Est remplacé par la variable d'environnement spécifiée. @env(PWD) est développé en $PWD. Souvenez vous que <quote
>$</quote
> est un caractère du shell et qu'il ne devrait pas être utilisé. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@exec(<parameter
>commande</parameter
>)</function
></term>
<listitem>
<para
>Retourne le résultat de l'exécution de la commande spécifié. @exec(ls -l). </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@execBegin ... @execEnd</function
></term>
<listitem>
<para
>La même chose que <function
>@exec</function
> mais accèpte les scripts multilignes et le « shebang » (NdT : premiers caractères d'un script qui sont utilisés pour spécifier l'interpréteur à utiliser). C'est utile pour différent langages de script soit pour les déclarer soit pour utiliser un « shebang ». </para>
<itemizedlist>
<listitem
><para
><function
>@execBegin(php)</function
></para
></listitem>
<listitem
><para
><function
>@execBegin</function
>#!/usr/bin/php</para
></listitem>
</itemizedlist>
<para
>La première fonction utilise le nom de l'exécutable <acronym
>PHP</acronym
>. &kommander; recherche dans la variable d'environnement PATH pour <application
>php</application
> et si il n'est pas trouvé recherche si il n'est pas enregistré avec &kommander; dans une location autre que celles de votre PATH. Si ce n'est pas le cas, il précise à l'utilisateur qu'il ne peut pas être trouvé. Le second exemple utilise le classique <quote
>shebang</quote
> ce qui peut présenter certains avantages et certains problèmes également. Si vous avez une version beta de <acronym
>PHP5</acronym
>, par exemple dans <filename
>/usr/local/bin</filename
>, qui ne serait pas trouvée parce qu'elle est cherchée dans <filename
>/usr/bin</filename
> cela peut être utile. Cependant, si vous distribuez votre boîte de dialogue à quelqu'un qui a <acronym
>PHP</acronym
> seulement dans <filename
>/usr/local/bin</filename
> il ne sera pas trouvé à l'aide du « shebang » utilisé. En conséquence l'utilisation de « shebang » est à faire avec précautions et l'utilisation de l'exécutable est recommandé si vous partagez vos fichiers.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@global(<parameter
>variable</parameter
>)</function
></term>
<listitem>
<para
>Est remplacé par la valeur de la variable globale spécifiée. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@null</function
></term>
<listitem>
<para
>Retourne la valeur null. Maintenant que Kommander vérifie le cas des textes d'élément graphique vides lors de l'exécution, les erreurs obtenues lorsqu'un état n'est pas configuré pour un élément graphique seront évitées.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@parentPid</function
></term>
<listitem>
<para
>Le &PID; du processus parent. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@pid</function
></term>
<listitem>
<para
>Le &PID; du processus. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@readSetting(<parameter
>clé</parameter
>, <parameter
>valeurParDefaut</parameter
>)</function
></term>
<listitem>
<para
>Lecture d'une valeur depuis <filename
>kommanderrc</filename
> </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@selectedWidgetText</function
></term>
<listitem>
<para
>Le contenu sélectionné d'un élément graphique qui peut présenter plusieurs valeurs, comme un élément graphique de liste. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@setGlobal(<parameter
>variable</parameter
>, <parameter
>valeur</parameter
>)</function
></term>
<listitem>
<para
>Paramètre la variable globale à la valeur spécifiée. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@widgetText</function
></term>
<listitem>
<para
>Le contenu d'un élément graphique </para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@writeSetting(<parameter
>clé</parameter
>, <parameter
>valeur</parameter
>)</function
></term>
<listitem>
<para
>Écrit la valeur dans <filename
>kommanderrc</filename
> </para>
</listitem>
</varlistentry>
</variablelist>

<sect2 id="arrays">
<title
>Groupe de fonction tableau (« Array »)</title>

<variablelist>
<varlistentry>
<term
><function
>@Array.values(<parameter
>tableau</parameter
>)</function
></term>
<listitem>
<para
>Retourne une liste de toutes les valeurs contenues dans le tableau séparées par des caractères fin de ligne (« EOL »). Peut être utilisé pour se déplacer dans un tableau.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@Array.keys(<parameter
>tableau</parameter
>)</function
></term>
<listitem>
<para
>Retourne une liste de toutes les clés d'un tableau séparées par des caractères fin de ligne.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@Array.setValue(<parameter
>tableau</parameter
>, <parameter
>clé</parameter
>, <parameter
>valeur</parameter
>)</function
></term>
<listitem>
<para
>Configure la clé et la valeur d'un élément d'un tableau. Si le tableau n'existe pas il est créé.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@Array.clear(<parameter
>tableau</parameter
>)</function
></term>
<listitem>
<para
>Supprime tous les éléments du tableau.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@Array.count(<parameter
>tableau</parameter
>)</function
></term>
<listitem>
<para
>Retourne le nombre d'éléments d'un tableau.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@Array.value(<parameter
>tableau</parameter
>,<parameter
>clé</parameter
>)</function
></term>
<listitem>
<para
>Retourne la valeur associée à la clé spécifiée.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@Array.remove(<parameter
>tableau</parameter
>,<parameter
>clé</parameter
>)</function
></term>
<listitem>
<para
>Supprime l'élément associé à la clé spécifiée.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@Array.fromString(<parameter
>tableau</parameter
>,<parameter
>chaîneCaractères</parameter
>)</function
></term>
<listitem>
<para
>Ajoute tous les éléments de la chaîne de caractères au tableau. La chaîne de caractères doit avoir le format <emphasis
>clé\tvaleur\n</emphasis
>.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@Array.toString(<parameter
>tableau</parameter
>,<parameter
>chaîneCaractères</parameter
>)</function
></term>
<listitem>
<para
>Retourne tous les éléments du tableau dans un format <emphasis
>clé\tvaleur
</emphasis
>.</para>
</listitem>
</varlistentry>

</variablelist>
</sect2>

<sect2 id="files">
<title
>Groupe de fonction fichier</title>
<variablelist>

<varlistentry>
<term
><function
>@File.read(<parameter
>fichier</parameter
>)</function
></term>
<listitem>
<para
>Retourne le contenu du fichier spécifié.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@File.write(<parameter
>Fichier</parameter
> <parameter
>ChaîneCaratères</parameter
>)</function
></term>
<listitem>
<para
>Écrit la chaîne de caractères dans un fichier.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@File.append(<parameter
>Fichier</parameter
> <parameter
>ChaîneCaratères</parameter
>)</function
></term>
<listitem>
<para
>Ajoute la chaîne de caractères à la fin d'un fichier.</para>
</listitem>
</varlistentry>

</variablelist>
</sect2>

<sect2 id="strings">
<title
>Groupe de fonction de chaîne de caractères</title>
<variablelist>

<varlistentry>
<term
><function
>@String.length(<parameter
>chaîneCaractères</parameter
>)</function
></term>
<listitem>
<para
>Retourne le nombre de caractères d'une chaîne de caractères.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@String.contains(<parameter
>chaîneCaractères</parameter
>,<parameter
>sousChaîne</parameter
>)</function
></term>
<listitem>
<para
>Vérifie si la chaîne de caractères contient la sous-chaîne spécifiée.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@String.find(<parameter
>chaîneCaractères</parameter
>)</function
></term>
<listitem>
<para
>Retourne la position d'une sous-chaîne dans une chaîne de caractères ou -1 si elle n'est pas trouvée.</para>
<note
><para
>Cette fonction aura une position de démarrage pour la recherche dans la version Alpha 6 représentée par un entier.</para
></note>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@String.left(<parameter
>chaîneCaractères</parameter
>, <parameter
>entier</parameter
>)</function
></term>
<listitem>
<para
>Retourne les « entier » premiers caractères d'une chaîne de caractères.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@String.right(<parameter
>chaîneCaractères</parameter
>, <parameter
>entier</parameter
>)</function
></term>
<listitem>
<para
>Retourne les derniers « entier » caractères de la chaîne de caractères.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@String.mid(<parameter
>chaîneCaractères</parameter
>, <parameter
>entier Début</parameter
>, <parameter
>entier Fin</parameter
>)</function
></term>
<listitem>
<para
>Retourne la sous-chaîne de la chaîne de caractères commençant à la position spécifiée.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@String.remove(<parameter
>chaîneCaractères</parameter
>, <parameter
>sous-chaîne</parameter
>)</function
></term>
<listitem>
<para
>Supprime toutes les occurrences d'une sous-chaîne spécifiée.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@String.replace(<parameter
>chaîneCaractères</parameter
>, <parameter
>sous-chaîne Cherche</parameter
>, <parameter
>sous-chaîne Remplace</parameter
>)</function
></term>
<listitem>
<para
>Remplace toutes les occurances d'une sous-chaîne par une autre sous-chaîne spécifiée.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@String.upper(<parameter
>sous-chaîne</parameter
>)</function
></term>
<listitem>
<para
>Converti la chaîne de caractères en majuscules.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@String.lower(<parameter
>chaîneCaractères</parameter
>)</function
></term>
<listitem>
<para
>Converti la chaîne de caractères en minuscules.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@String.compare(<parameter
>chaîneCaractères</parameter
>, <parameter
>chaîneCaractères</parameter
>)</function
></term>
<listitem>
<para
>Compare deux chaînes de caractères. Retourne 0 si elles sont égales, -1 si la première est inférieure et 1 si la première est supérieure.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@String.isEmpty(<parameter
>chaîneCaractères</parameter
>)</function
></term>
<listitem>
<para
>Vérifie si la chaîne de caractères est vide.</para>
</listitem>
</varlistentry>

<varlistentry>
<term
><function
>@String.isNumber(<parameter
>chaîneCaractères</parameter
>)</function
></term>
<listitem>
<para
>Vérifie si la chaîne de caractères est un nombre valable.</para>
</listitem>
</varlistentry>

</variablelist>
</sect2>

<sect2 id="builtins">
<title
>Variables globales prédéfinies</title>
<para
>Les variables globales prédéfinies sont accessibles comme toutes les autres variables globales à l'aide de la fonction <function
>@global</function
>.</para>
<variablelist>
<varlistentry>
<term
><function
>@global(_KDDIR)</function
></term>
<listitem>
<para
>Le dossier dans lequel se situe la boîte de dialogue courrante.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><function
>@global(_NAME)</function
></term>
<listitem
><para
>Le nom de la boîte de dialogue</para
></listitem>
</varlistentry>
</variablelist>
</sect2>

</sect1>
