====== Structure d'un widget ====== ===== Les fichiers et les répertoires à définir ===== Fichiers et répertoires obligatoires : * ''Exemple.php'' : Fichier contenant le code PHP du widget * ''Exemple/'' : Répertoire contenant toutes les ressources de notre widget * ''Exemple/default/'' : Ce répertoire contiendra les ressources et les templates utilisés par défaut Dans le cas où le widget possède plusieurs thèmes, on trouvera, dans le répertoire des ressources, des répertoires correspondant au nom de ces thèmes. Pour gérer le multilinguisme, on aura en plus le répertoire ''i18n/'' : * ''Exemple/default/i18n/'' : Les fichiers de traduction pour tous les labels utilisés dans le widget * ''Exemple/default/i18n/fr_FR.php'' : La traduction française * ''Exemple/default/i18n/en_GB.php'' : La traduction anglaise ===== La classe à définir ===== Structure typique de la classe PHP du widget : class Pxxo_Widgets_HelloWorld extends Pxxo_Widgets { // ... var $_params = array(); function __construct($params = array()) { parent::__construct($params, __FILE__); } function defaut() { // ... } // ... } ===== Les attributs à définir ===== * Obligatoire : **$_params** : Tableau contenant la liste des paramètres utilisateurs autorisés. Il permettra au constructeur de Pxxo_Widget (le parent) d'enregistrer automatiquement les paramètres utilisateurs dans les attributs de l'instance courante. * Facultatif : au choix Des attributs propres à la classe. Les attributs sont accessibles dans les templates associés à la classe sauf si leur nom commence par un underscore '_' qui signifie que l'attribut est privé. ===== Les méthodes à définir ===== * Obligatoire : **index()** Cette méthode sera exécutée si on ne précise rien. Elle sera automatiquement associée à un fichier de template nommé **index.php.html** présent dans le répertoire des thèmes. //Remarque// : anciennement, cette méthode était nommée **defaut()**. La méthode **defaut()** peut encore être utilisée en lieu et place de **index()**. * Facultatif : au choix Toutes les méthodes de l'objet correspondront à une action (appelée "mode") du Widget. Chaque méthode est automatiquement associée à un fichier de template HTML du même nom que la méthode suffixé par **.php.html**