|
|
@@ -0,0 +1,537 @@
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<!-- Reviewed: no -->
|
|
|
+<!-- EN-Revision: 22129 -->
|
|
|
+<sect2 id="zend.validate.set.barcode">
|
|
|
+ <title>Barcode</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ <classname>Zend_Validate_Barcode</classname> permet de vérifier si une donnée représente
|
|
|
+ un code barres.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ <classname>Zend_Validate_Barcode</classname> supporte de multiples standards de codes à barres
|
|
|
+ et peut être étendu pour les codes barres propriétaires. Les formats suivants sont supportés:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <itemizedlist>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>CODE25</emphasis>: Aussi appelé "two of five" ou "Code25 Industrial".
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce code n'a pas de limite de taille. Il supporte les chiffres et le dernier chiffre
|
|
|
+ peut être une somme de contrôle optionnelle calculée sur un modulo 10. Ce standard est
|
|
|
+ très vieux et plus trop utilisé. Les cas d'utilisations classiques sont l'industrie
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>CODE25INTERLEAVED</emphasis>: Aussi appelé "Code 2 of 5 Interleaved".
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ C'est une variante de CODE25. Il n'a pas de limite de taille mais il doit contenir un
|
|
|
+ nombre de caractères pair. Il supporte uniquement les chiffres et le dernier chiffre
|
|
|
+ peut être une somme de contrôle optionnelle calculée sur un modulo 10. Il est utilisé
|
|
|
+ au travers le monde et typiquement dans l'industrie / la distribution.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>CODE39</emphasis>: CODE39 est un des codes les plus vieux.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce code a une taille variable. Il supporte les chiffres, les lettres majuscules, et 7 caractères
|
|
|
+ spéciaux comme l'espace, le point ou le signe dollar. Il peut posséder optionnellement une somme
|
|
|
+ de contrôle calculée sur un modulo 43. Il est utilisé dans le monde, dans l'industrie.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>CODE39EXT</emphasis>: CODE39EXT est une extension de CODE39.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce code à barres a les mêmes propriétés que CODE39. Aussi, il autorise l'utilisation de tous les
|
|
|
+ caractères ASCII (128). Ce standard est très utilisé dans l'industrie, dans le monde.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>CODE93</emphasis>: CODE93 est le successeur de CODE39.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce code a une taille variable. Il supporte les chiffres, les lettres de l'alphabet et 7 caractères
|
|
|
+ spéciaux. Il possède optionnellement une somme de contrôle à 2 caractères calculée sur un modulo 47.
|
|
|
+ Ce standard produit un code plus dense que CODE39 et est plus sécurisé.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>CODE93EXT</emphasis>: CODE93EXT est une extension de CODE93.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce type de code à barres a les mêmes propriétés que CODE93. Aussi, il permet l'utilisation des 128
|
|
|
+ caractères du jeu ASCII. Ce standard est utilisé dans le monde et principalement dans l'industrie.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>EAN2</emphasis>: EAN est un raccourci de "European Article Number".
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ces codes ont deux caractères. Seuls les chiffres sont supportés et ils n'ont pas de
|
|
|
+ somme de contrôle. Ce standard est utilisé principalement en plus de EAN13 (ISBN) sur
|
|
|
+ les livres imprimés.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>EAN5</emphasis>: EAN est un raccourci pour "European Article Number".
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce code barres doit comporter 5 caractères. Il ne supporte que les chiffres et ne possède pas de
|
|
|
+ somme de contrôle. Ce standard est principalement utilisé en plus de EAN13 (ISBN) pour
|
|
|
+ l'impression de livres.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>EAN8</emphasis>: EAN est un raccourci pour "European Article Number".
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce code barres se compose de 7 ou 8 caractères. Il supporte les chiffres uniquement. Lorsqu'il est
|
|
|
+ à 8 caractères, il inclut une somme de contrôle. Ce standard est utilisé dans le monde mais pour
|
|
|
+ des besoins limités. On le trouve pour les petits articles où un code barres plus long n'aurait
|
|
|
+ pas pu être imprimé.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>EAN12</emphasis>: EAN est un raccourci pour "European Article Number".
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce code doit faire 12 caractères de long. Il ne supporte que les chiffres et le dernier chiffre est
|
|
|
+ une somme de contrôle calculée sur un modulo 10. C'est un code utilisé aux Etats-Unis et courant
|
|
|
+ sur le marché. Il a été dépassé par EAN13.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>EAN13</emphasis>: EAN est un raccourci pour "European Article Number".
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce code doit faire 13 caractères de long, il ne supporte que les chiffres et le dernier chiffre est
|
|
|
+ une somme de contrôle calculée sur un modulo 10. Ce standard est utilisé dans le monde et est très
|
|
|
+ commun sur le marché.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>EAN14</emphasis>: EAN est un raccourci pour "European Article Number".
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce code fait 14 caractères de longueur et ne supporte que les chiffres. Le dernier chiffre
|
|
|
+ représente la somme de contrôle calculée sur un modulo 10. Ce code barres est utilisé dans
|
|
|
+ le monde pour la distribution. C'est le successeur de EAN13.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>EAN18</emphasis>: EAN est un raccourci pour "European Article Number".
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce code fait 18 caractères de longueur et ne supporte que les chiffres. Le dernier chiffre
|
|
|
+ représente la somme de contrôle calculée sur un modulo 10. Ce code barres est utilisé pour
|
|
|
+ identifier les conteneur d'envoi dans le transport.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>GTIN12</emphasis>: GTIN est le raccourci de "Global Trade Item Number".
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce code utilise le même standard que EAN12 et est son successeur. Il est utilisé paticulièrement
|
|
|
+ aux Etats-Unis.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>GTIN13</emphasis>: GTIN est le raccourci de "Global Trade Item Number".
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce code utilise le même standard que EAN13 et est son successeur. Il est utilisé dans le monde
|
|
|
+ entier par l'industrie.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>GTIN14</emphasis>: GTIN est le raccourci de "Global Trade Item Number".
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce code utilise le même standard que EAN14 et est son successeur. Il est utilisé dans le monde
|
|
|
+ entier par l'industrie.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>IDENTCODE</emphasis>: Identcode est utilisé par Deutsche Post et DHL. C'est
|
|
|
+ un cas particulier de Code25.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce code fait 12 caractères de longueur et ne supporte que les chiffres. Le dernier chiffre
|
|
|
+ représente la comme de contrôle calculée modulo 10. Ce code barres est utilisé principalement
|
|
|
+ par les entreprises DP et DHL.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>INTELLIGENTMAIL</emphasis>: Intelligent Mail est utilisé par les services postaux.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce code fait 20, 25, 29 ou 31 caractères de longueur. Il ne support que les chiffres et ne
|
|
|
+ contient pas de somme de contrôle. Il est le successeur de <acronym>PLANET</acronym> et
|
|
|
+ <acronym>POSTNET</acronym>. Il est utilisé principalement dans les services postaux aux
|
|
|
+ Etats-Unis.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>ISSN</emphasis>: <acronym>ISSN</acronym> est l'abréviation de
|
|
|
+ International Standard Serial Number.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce code a une longueur de 8 ou 13 caractères. Il ne supporte que les chiffres et le dernier
|
|
|
+ chiffre représente la somme de contrôle calculée sur un modulo 11. Il est utilisé dans
|
|
|
+ le print à travers le monde.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>ITF14</emphasis>: ITF14 est l'implémentation GS1 de Interleaved Two
|
|
|
+ of Five bar code.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce code est une implémentation particulière de Interleaved 2 of 5. Il doit mesurer
|
|
|
+ 14 caractères de long et est basé sur GTIN14. Il ne contient que des chiffres et le dernier
|
|
|
+ chiffre est une somme de contrôle calculée sur un modulo 10. Il est utilisé dans le monde
|
|
|
+ dans la distribution.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>LEITCODE</emphasis>: Leitcode est utilisé par Deutsche Post et DHL. C'est un cas
|
|
|
+ particulier de Code25.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce code mesure 14 caractères de longueur et ne supporte que les chiffres. Le dernier chiffre
|
|
|
+ est une somme de contrôle calculée sur un modulo 10. Il est principalement utilisé par
|
|
|
+ les entreprises DP et DHL.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>PLANET</emphasis>: Planet est l'abréviation de Postal Alpha Numeric
|
|
|
+ Encoding Technique.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce code fait 12 ou 14 caractères de long. Il ne supporte que les chiffres et le dernier
|
|
|
+ chiffre est une somme de contrôle. Ce code barres est utilisé principalement dans les
|
|
|
+ services postaux des Etats-Unis.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>POSTNET</emphasis>: Postnet est utilisé par le service des Postes des
|
|
|
+ Etats-Unis.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce code fait 6, 7, 10 ou 12 caractères. Il ne supporte que les chiffres et le dernier
|
|
|
+ chiffre est une somme de contrôle. Ce code barres est utilisé dans les services postaux
|
|
|
+ aux Etats-Unis principalement.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>ROYALMAIL</emphasis>: Royalmail est utilisé par Royal Mail.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce code n'a pas de taille précise. Il supporte les chiffres, les lettres majuscules et le
|
|
|
+ dernier caractère est une somme de contrôle. Ce standard est utilisé par Royal Mail pour le
|
|
|
+ service Cleanmail. Il est aussi appelé <acronym>RM4SCC</acronym>.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>SSCC</emphasis>: SSCC est un raccourci pour "Serial Shipping Container
|
|
|
+ Code".
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce code est une variante de EAN, il doit faire 18 caractères de long et ne supporte que
|
|
|
+ les chiffres. Le dernier chiffre doit être la somme de contrôle qui est calculée sur un
|
|
|
+ modulo 10. Ce code est utilisé principalement dans le transport.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>UPCA</emphasis>: UPC est le raccourci de "Univeral Product Code".
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Ce code a précédé EAN13. Il doit faire 12 caractères et ne supporte que les chiffres.
|
|
|
+ Le dernier chiffre est une somme de contrôle calculée sur un modulo 10. Ce code barres
|
|
|
+ est utilisé aux Etats-Unis.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>UPCE</emphasis>: UPCE est une variante simplifié et plus courte de UPCA.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Il peut faire 6, 7 ou 8 caractères et ne supporte que les chiffres. Lorsqu'il fait 8
|
|
|
+ caractères, il inclut une somme de contrôle calculée sur un modulo 10. Ce code barres
|
|
|
+ est utilisé sur de petits produits sur lesquels UPCA ne pourrait pas tenir.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ </itemizedlist>
|
|
|
+
|
|
|
+ <sect3 id="zend.validate.set.barcode.options">
|
|
|
+ <title>Options supportées par Zend_Validate_Barcode</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Les options suivantes sont supportées par <classname>Zend_Validate_Barcode</classname>:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <itemizedlist>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis><property>adapter</property></emphasis>: Affecte l'adaptateur de code
|
|
|
+ barres à utiliser. La liste des adaptateurs est donnée ci-dessus. Si vous voulez préciser
|
|
|
+ un adaptateur personnalisé, le nom complet de la classe est requis.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis><property>checksum</property></emphasis>: <constant>TRUE</constant>
|
|
|
+ si oui ou non utiliser une somme de contrôle. Notez que certains adaptateurs ne supportent
|
|
|
+ pas un telle option.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis><property>options</property></emphasis>: Affecte des options personnalisées pour
|
|
|
+ un adaptateur personnalisé.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ </itemizedlist>
|
|
|
+ </sect3>
|
|
|
+
|
|
|
+ <sect3 id="zend.validate.set.barcode.basic">
|
|
|
+ <title>Utilisation classique</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Pour valider si une chaine est un code barres, vous devez juste connaitre son type. Voyez l'exemple
|
|
|
+ suivant pour un EAN13:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
+$valid = new Zend_Validate_Barcode('EAN13');
|
|
|
+if ($valid->isValid($input)) {
|
|
|
+ // input semble être valide
|
|
|
+} else {
|
|
|
+ // input est invalide
|
|
|
+}
|
|
|
+]]></programlisting>
|
|
|
+ </sect3>
|
|
|
+
|
|
|
+ <sect3 id="zend.validate.set.barcode.checksum">
|
|
|
+ <title>Somme de contrôle optionnelle</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Certains codes barres proposent une somme de contrôle. Ils peuvent être valides sans cette
|
|
|
+ somme mais si vous préciser celle-la alors elle devra être validée. Par défaut la somme
|
|
|
+ de contrôle n'est pas activée. En utilisant l'option <property>checksum</property> vous pouvez
|
|
|
+ indiquer si oui ou non la somme de contrôle doit être vérifiée.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
+$valid = new Zend_Validate_Barcode(array(
|
|
|
+ 'adapter' => 'EAN13',
|
|
|
+ 'checksum' => false,
|
|
|
+));
|
|
|
+if ($valid->isValid($input)) {
|
|
|
+ // input semble être valide
|
|
|
+} else {
|
|
|
+ // input est invalide
|
|
|
+}
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <note>
|
|
|
+ <title>Sécurité moindre en désactivant la validation de la somme de contrôle</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ En désactivant la validation de la somme de contrôle vous réduirez la sécurité du
|
|
|
+ code à barres. Aussi veuillez noter que si vous désactiver ce contrôle pour des
|
|
|
+ codes l'utilisant vous risqueriez de considérer comme valides des codes barres
|
|
|
+ qui ne le sont pas en réalité.
|
|
|
+ </para>
|
|
|
+ </note>
|
|
|
+ </sect3>
|
|
|
+
|
|
|
+ <sect3 id="zend.validate.set.barcode.custom">
|
|
|
+ <title>Ecrire des validateurs personnalisés</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Vous pouvez créer vos propres validateurs pour <classname>Zend_Validate_Barcode</classname>;
|
|
|
+ ce qui est nécessaire si vous traitez des codes barres propriétaires. Vous aurez alors besoin
|
|
|
+ des informations suivantes.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <itemizedlist>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>Length</emphasis>: La taille du code barres. Peut être une des valeur suivantes:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <itemizedlist>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>Integer</emphasis>: Une valeur plus grande que zéro qui définit exactement
|
|
|
+ le nombre de caractères du code barres.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>-1</emphasis>: Aucune limite de taille pour ce code barres.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>"even"</emphasis>: La taille du code barres doit être un nombre
|
|
|
+ de caractères pair.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>"odd"</emphasis>: La taille du code barres doit être un nombre
|
|
|
+ de caractères impair.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>array</emphasis>: Un tableau de valeurs entières. La taille du code
|
|
|
+ barres doit être exactement égale à une des valeurs dans le tableau.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ </itemizedlist>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>Characters</emphasis>: Une chaine qui contient tous les caractères autorisés
|
|
|
+ pour ce code barres. La valeur entière spéciale 128 est autorisée ici, elle signifie
|
|
|
+ "les 128 premiers caractères du jeu ASCII".
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <emphasis>Checksum</emphasis>: Une chaine utilisée comme callback pour valideer la
|
|
|
+ somme de contrôle.
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ </itemizedlist>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Votre validateur de code à barres personnalisé doit étendre
|
|
|
+ <classname>Zend_Validate_Barcode_AdapterAbstract</classname> ou implémenter
|
|
|
+ <interface>Zend_Validate_Barcode_AdapterInterface</interface>.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Comme exemple, créons un validateur qui utilise un nombre pair de caractères pouvant être des
|
|
|
+ chiffres et les lettres 'ABCDE'. Une somme de contrôle sera aussi calculée.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
+class My_Barcode_MyBar extends Zend_Validate_Barcode_AdapterAbstract
|
|
|
+{
|
|
|
+ protected $_length = 'even';
|
|
|
+ protected $_characters = '0123456789ABCDE';
|
|
|
+ protected $_checksum = '_mod66';
|
|
|
+
|
|
|
+ protected function _mod66($barcode)
|
|
|
+ {
|
|
|
+ // effectuer de la validation et retourner un booléen
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+$valid = new Zend_Validate_Barcode('My_Barcode_MyBar');
|
|
|
+if ($valid->isValid($input)) {
|
|
|
+ // input semble valide
|
|
|
+} else {
|
|
|
+ // input est invalide
|
|
|
+}
|
|
|
+]]></programlisting>
|
|
|
+ </sect3>
|
|
|
+</sect2>
|
|
|
+<!--
|
|
|
+vim:se ts=4 sw=4 et:
|
|
|
+-->
|