Méthodes disponibles

Surcharger une classe permet d'accéder aux méthodes des classes parents. La classe Pxxo_Widgets fournit les méthodes suivantes :

Accès aux répertoires de thème

  • string getThemeFile(string $filename)

Recherche le fichier $filename dans l'ensemble des répertoires des ressources, et retourne son chemin d'accès complet. On retournera en priorité le fichier correspondant au thème courant.

  1. $filename : nom du fichier que l'on recherche
$fullname = $this->getThemeFile('fond .png');
$fullname = $this->getThemeFile('/design/logo.png');
  • boolean addThemePath(string $path, boolean $flag)

Ajoute le chemin $s à la liste des chemins de thèmes.

Pour l'ajouter au début de liste, on positionnera $b à true Méthode permettant d'ajouter un fichier Javascript. Ce fichier sera interprété comme un fichier de template. On retournera true si le chemin a été ajouté, false sinon.

  1. $path : répertoire à ajouter
  2. $flag : si positionné à true, permet d'ajouter le chemin en début de liste
$this->addThemePath('/www/images');
$this->addThemePath('/design/blue', true);
  • void setTemplate(string $mode, string $fichier)

Associe un fichier de template à un mode donné

  1. $mode : identifiant du mode
  2. $fichier : un fichier de template disponible dans les thèmes.

La fonction setTemplate ne doit pas obligatoirement être utilisée. Elle s'adapte en fonction du mode courant. On peut même ne pas du tout l'utiliser si un fichier portant le nom du mode courant est suffixé par '.php.html' existe dans les répertoires de Thèmes.

Exemple :

<?php 
class Exemple extends Pxxo_widgets {
    function __construct() {
        parent::Pxxo_Widgets(array(), __FILE__);
    }
    function defaut() {
        $this->setTemplate('template.php.html');
    }
    function monaction() {
         // utilisera le fichier monaction.php.html
    }
}
?>

Ajout de contenu

  • putData($id, $value)

Méthode permettant d'ajouter le contenu d'une variable PHP.

  1. $id : identifiant dans les templates
  2. $value : des données
$this->putData('ID1', '<b>super</b>'); 
$this->putData('ID2', array(1, 2, 3));
  • putStyle($filename, $media = 'screen')

Méthode permettant d'ajouter un fichier CSS. Ce fichier sera interprété comme un fichier de template.

  1. $filename : nom d'un fichier présent dans le répertoire du thème
  2. $media : nom du support auquel est destiné le style
$this->putStyle('style1.php.css');
$this->putStyle('style2.php.css', 'print');

Remarque :Style spécifique pour Internet Explorer

On peut maintenant attribuer des règles CSS différentes en fonction de la version d'internet explorer. Pour cela il suffit de donner la condtion dans le paramètre $media de la méthode putStyle.

$this->putStyle('fichier.css', 'if lte IE 6');
$this->putStyle('fichier.css', 'if IE 7');
$this->putStyle('fichier.css', 'if IE');
  • putScript($filename, $disposition = 'file')

Méthode permettant d'ajouter un fichier Javascript. Ce fichier sera interprété comme un fichier de template.

  1. $filename : nom d'un fichier présent de le répertoire du thème
  2. $disposition : méthode d'intégration du code dans la page html (file ou inline)
$this->putScript('script1.php.js');
$this->putScript('script2.php.js', 'inline');
  • string putImage($filename, $id = null)

Méthode permettant d'ajouter une image. Si l'identifiant n'est pas fourni, celui-ci sera automatiquement égal au nom (en majuscule) du fichier sans son suffixe

  1. $filename : nom d'un fichier présent de le répertoire du thème
  2. $id : identifiant de l'image dans les templates

Retourne l'url de l'image.

$url_de_truc_png   = $this->putImage('truc.png'); // ===> $truc_png
$url_de_machin_png = $this->putImage('machin.png', 'BIDULE'); // ===> $BIDULE
  • putMedia($filename, $id = null)

Ajout d'un média dynamique (calculé comme un template)

  1. $filename : nom d'un fichier présent dans le répertoire du thème
  2. $id : identifiant du média dans les templates

Un média est une ressource externe à la page et référencée dans celle-ci par une URL. Comme par exemple : un fichier svg, swf, png, etc …

Le suffixe du fichier est utilisé pour typer le contenu. Si l'identifiant n'est pas fourni, celui-ci sera automatiquement égal au nom (en majuscule) du fichier en s'arrêtant au premier point rencontré.

$this->putMedia('image.php.png');  // ===> $IMAGE 
$this->putMedia('duflash.xml.php.swf');  // ===> $DUFLASH
$this->putMedia('truc.php.svg', 'DUSVG'); // ===> $DUSVG
  • putXSLT($id, $xsl, $xml, $par = array(), $php = false, $engine = 'auto')

Méthode permettant d'ajouter une transformation XSL.

$this->putXSLT('TRUC', 'fichier.xsl', fichier.xml');
 
$xml = '<xml/>';
$params = array('nom'=>'valeur');
$this->putXSLT('TRUC', 'fichier.xsl', $xml, $params, true);
  • pxxo_buffer_header_title putTitle(string $s)

Ajoute un titre dans la liste des titres possibles pour la page HTML produite. Remarque : le widget décorateur Core affiche automatiquement la concaténation des titres trouvés dans la hiérarchie des widgets.

Paramétrage

  • void setResourcePath(string $chemin)

Fixe le chemin physique vers le répertoire $chemin contenant les ressources

  • void setResourceURL(string $url)

Fixe l'URL d'accès $url vers le chemin physique contenant les ressources

  • void enableCache()

Active le mécanisme de cache pour le widget et ses fils

  • void disableCache()

Désactive le mécanisme de cache pour le widget et ses fils

  • addCacheID(…)

Tout les paramètres transmis à cette méthode serviront à calculer un identifiant discriminant pour la mise en route du cache. D'un appel sur l'autre, la valeur de ces variables permettra de savoir s'il s'agit d'un appel strictement identique (ne nécessitant pas une rééxécution) ou s'il s'agit d'un appel différent

Exemple :

class truc {
    function __construct($a, $b) {
        $this->addCacheID($a, $b, $GLOBALS['truc']);
    }
}
  • void setBenchmarkTimer(object &$o)

Fixe un objet $o de type Timer, éventuellement utilisé par le widget pour calculer ses temps de traitements

  • void setBenchmarkProfiler(object &$o)

Fixe un objet $o de type Profiler, éventuellement utilisé par le widget pour calculer ses temps de traitements

  • void enableDebugMode()

Active l'affichage de trace permettant le debugage

  • void disableDebugMode()

Désactive l'affichage de traces permettant le debugage

Gestion du mode

  • string getMode()

Retourne le mode courant du widget, c'est-à-dire le nom de la méthode qui sera exécutée.

  • void setMode(string $s)

Avec $s, on impose le mode courant du widget. Si setMode est appelée avant la méthode main ou avant la méthode putWidget, c'est la méthode $s qui sera exécutée.

  • void setDefaultMode(string $s)

Fixe avec $s le nom de la méthode qui sera exécutée par defaut. Si on n'utilise pas cette méthode c'est la méthode “defaut” qui sera exécutée.

  • getDefaultMode()

Retourne le nom de la méthode exécutée par défaut

Variables POST/GET/SESSION

  • null delSessionVar(string $n)
    Supprime la variable de session nommée $n
  • mixed setSessionVar(string $n, mixed $v)
    Donne la valeur $v à la variable de session nommée $n
  • mixed getSessionVar(string $n, mixed $v = null)
    Retourne la valeur de la variable de session nommée $n. Si cette variable n'existe pas, on renvoie $v
  • mixed getInputVar(string $n, mixed $v = null)
    Retourne la valeur de la variable nommée $n en provenance du navigateur (GET et POST). Si cette variable n'existe pas, on renvoie $v
  • mixed setInputVar(string $n, mixed $v)
    Donne la valeur $v à la variable nommée $n. On simule une variable en provenance du navigateur.
  • mixed getPersistentVar(string $n, string $default)
    Cette méthode retourne la valeur de la variable persistante $n. Une variable persistante est une variable en provenance du navigateur, que l'on garde en mémoire (en sessions) même si le navigateur ne la renvoie plus. $default est la valeur qui sera renvoyée si aucune variable n'est trouvée.
  • null delPersistentVar(string $n)
    Supprime la variable persistante nommée $n. Cette méthode retourne la non-valeur null.
  • string setPersistentVar(string $n, mixed $v)
    Donne la valeur $v à la variable persistante nommée $n. Cette méthode retourne $v

Contrôle et accès extérieur

  • boolean connect(string $event, pxxo_widget &$objet, string $mode, array $param = null)

Méthode permettant de “connecter” le mode de l'objet courant avec un autre objet. Deux cas possible en fonction de la présence ou non du paramètre $param.

Si $param vaut null et si l'objet courant est dans le mode $event, alors on positionne dans l'objet $objet le mode $mode.

Si $param est un tableau et si l'objet courant est dans le mode $event, alors on positionne dans l'objet $objet le mode $mode et on l'exécute. Dans ce cas chaque valeur du tableau sera passée en paramètre à la méthode $mode. Si en plus cette méthode est appelée après l'exécution du mode de l'objet courant, alors on ajoutera comme dernier paramètre à la méthode $mode, la valeur du retour de l'exécution de la méthode $event.

Cette méthode retourne TRUE, si la connexion a eu lieu.

Exemple :

// Soit 3 widgets $a, $b t $c
 
// si $c est dans le mode `raz` 
// alors on passe l'objet $a en mode `defaut`
$c->connect('raz', $a, 'defaut');
 
// si $a est dans le mode `action1` 
// alors on exécute la méthode saisir de l'objet $b 
// avec les paramétres 1 et 4
$a->connect('action1', $b, 'saisir', array(1,4));
 
// si $b est dans le mode `somme` 
// alors on exécute la méthode `change` de  l'objet $c 
// avec comme paramétre la valeur de retour de la méthode `somme`
$b->connect('somme', $c, 'change', array());
  • string dumphead()

Affiche les lignes HTML nécessaires pour activer les feuilles de style et les fichiers Javascript. Ce sont des entêtes HTML : à placer dans la balise <head> de votre page.

Remarque : si vous utilisez le décorateur Core, les entêtes seront automatiquement placées dans la balise <head> de votre page.

  • mixed gethead($type = 'html')

Très analogue à dumphead. Cette méthode n'affiche rien, elle retourne soit la chaîne de caractère des entêtes HTML du widget ($type = 'html'), soit un tableau php décrivant les ressources du widget ($type = 'array').

  • array getParamsArray()

Retourne la liste des paramètres du widget. Les clés sont les noms des paramètres et les valeurs sont les valeurs des paramètres. Cette méthode retourne en faite ce qui a été passé en paramètre au constructeur ($params) à la différence que les valeurs des paramètres peuvent avoir été modifié par l'exécution du widget suivant le moment où cette méthode est appelée.

Manipulation des décorateurs

  • Pxxo_Widget getDecorated() : cette méthode est utile lorsqu'elle est appelée depuis un décorateur, elle permet de retrouver l'instance du widget décoré. Dans le cas où elle est appelée depuis un widget classique, elle retourne null.
  • array findParentWidget($classname) : cette méthode retourne la liste des widget parents dont le nom de la classe vaut $classname, le tableau retourné est indexé par un identifiant de profondeur. L'identifiant de profondeur permet de savoir combien de widgets sont intercalés entre le widget courant et le widget recherché. Une profondeur de 0 signifie que le widget recherché est le widget courant, une profondeur de 5 signifie qu'il y a 4 autres widgets dans la hiérarchie entre le widget courant et le widget recherché. Exemple :
    $obj = new Pxxo_Widget_HelloWorld();
    $obj->addDecorator('Pxxo_Widget_Decorator_Ajax');
    $obj->addDecorator('Pxxo_Widget_Decorator_Border');
    $obj->addDecorator('Pxxo_Widget_Decorator_Core');
    $obj->main();
     
    $wid = $obj->findParentWidget('Pxxo_Widget_Decorator_Border');
    foreach($wid as $level => $w)
        echo 'level='.$level.' - widget='.$w->ClassID.'<br>';

    retourne

    level=3 - widget=Pxxo_Widget_Decorator_Border
    
fr/doc/pxxo/reference/methods.txt · Dernière modification: 2008/06/11 15:24 par kerphi
 
 
Recent changes RSS feed Valid XHTML 1.0 Valid CSS Powered by PHP Driven by DokuWiki
©2003-2008 Pxxo