wiki:CopixActionReturnPPO

Présentation

Le code retour PPO est utilisé pour demander à Copix d'afficher des données préparées dans un CopixPPO dans un template.

C'est le code classique qui est retourné par vos actions lorsque vous souhaitez effectuer un affichage de type texte (html, css, xml, ...)

Exemple classique

function processUneActionPpo (){
   $ppo = new CopixPPO ();
   $ppo->TITLE_PAGE  = 'Titre de ma page';
   $ppo->infoEnPlus  = 'Une information complémentaire de mon choix';
   $ppo->autresInfos = "Encore une variable, ce n'est pas limité";
   return new CopixActionReturn (CopixActionReturn::PPO, $ppo, 'template_pour_ppo.tpl');
   //ou simplement avec le raccourcis
   return _arPpo ($ppo, 'template_pour_ppo.tpl');
}

avec le template suivant

{$ppo->infoEnPlus}

{$ppo->autresInfos}

Votre template template_pour_ppo.tpl sera inclus dans le template principal, dans la variable {$MAIN}.

Note : PPO signifie "Plain PHP Object".

Options supplémentaires

Le code retour PPO accepte plusieurs options. Ces options sont transmises dans un tableau.

Spécifier le template à utiliser avec template

Vous devez spécifier le template à utiliser avec votre PPO. Cette option est l'option transmise par défaut.

function processUneActionPpo (){
   $ppo = new CopixPPO ();
   $ppo->TITLE_PAGE  = 'Titre de ma page';
   return new CopixActionReturn (CopixActionReturn::PPO, $ppo, 'template_pour_ppo.tpl');
   //ou simplement avec le raccourcis
   return _arPpo ($ppo, 'template_pour_ppo.tpl');
   //ou sous la forme d'un tableau d'options
   return new CopixActionReturn (CopixActionReturn::PPO, $ppo, array ('template'=>'template_pour_ppo.tpl'));
   //Sous la forme d'un tableau avec le raccourcis
   return _arPpo ($ppo, array ('template'=>'template_pour_ppo.tpl'));
}

Spécifier le type MIME avec content-type

Vous pouvez spécifier le type de contenu que vous affichez. Pour ce faire, il vous faut donner l'option content-type, par défaut positionnée à text/html.

exemple

function processUneActionQuiGenereDuXML (){
    $ppo = new CopixPpo ();
    $ppo->arData = _dao ('nomTable')->findAll ();
    return _arPPO ($ppo, array ('template'=>'template.xhtml.tpl', 'content-type'=>'text/xml', 'mainTemplate'=>null));
}

Note : Ici, on utilise également l'option mainTemplate à null pour indiquer que nous ne souhaitons pas utiliser de template principal et directement afficher notre template "template.xhtml.tpl" avec les données.

Spécifier le charset utilisé avec charset

Vous pouvez spécifier le charset que vous avez utilisé pour générer votre page. Par défaut, si vous ne spécifiez rien, Copix utilisera CopixI18N::getCharset () pour connaitre le charset courant.

exemple

function processUneActionUTF8 (){
    $ppo = new CopixPpo ();
    $ppo->arData = _dao ('nomTable')->findAll ();
    return _arPPO ($ppo, array ('template'=>'template.xhtml.tpl', 'charset'=>'UTF-8'));
}

Spécifier le template principal à utiliser avec mainTemplate

Vous pouvez utiliser un autre template principal que celui configuré par défaut dans l'application pour une action donnée. Pour cela, il suffit d'utiliser l'option mainTemplate.

function processUneActionPopUP (){
    $ppo = new CopixPpo ();
    $ppo->arData = _dao ('nomTable')->findAll ();
    return _arPPO ($ppo, array ('template'=>'template.xhtml.tpl', 'mainTemplate'=>'principal_pour_popup.tpl'));
}

Ne pas utiliser de template principal avec mainTemplate

Si vous souhaitez que votre action génère un contenu directement, sans passer par le template principal, vous pouvez le faire en mettant l'option mainTemplate à null.

function processUneActionDirecte (){
    $ppo = new CopixPpo ();
    $ppo->arData = _dao ('nomTable')->findAll ();
    return _arPPO ($ppo, array ('template'=>'template.xhtml.tpl', 'mainTemplate'=>null));
}

Il existe également un raccourcis pour ce faire, _arDirectPpo

function processUneActionDirecte (){
    $ppo = new CopixPpo ();
    $ppo->arData = _dao ('nomTable')->findAll ();
    return _arDirectPPO ($ppo, 'template.xhtml.tpl');
}

Spécifier cache-control

Vous pouvez spécifier la valeur de l'en tête http Cache-Control avec l'option cache-control.

function processUneActionSansCache (){
   $ppo = new CopixPPO ();
   $ppo->TITLE_PAGE  = 'Titre de ma page';
   return _arPpo ($ppo, array ('template'=>'template_pour_ppo.tpl', 'cache-control'=>'no-cache'));
}