Le rôle du Helper Html dans CakePHP est de fabriquer les options du HTML plus facilement, plus rapidement. L’utilisation de cet Helper permettra à votre application d’être plus légère bien ancrée et plus flexible de l’endroit ou il est placé en relation avec la racine de votre domaine.
De nombreuses méthodes du Helper Html contiennent un paramètre
$htmlAttributes
, qui vous permet d’insérer un attribut supplémentaire
sur vos tags. Voici quelques exemples sur la façon d’utiliser les paramètres
$htmlAttributes:
Attributs souhaités: <tag class="someClass" />
Paramètre du tableau: array('class' => 'someClass')
Attributs souhaités: <tag name="foo" value="bar" />
Paramètre du tableau: array('name' => 'foo', 'value' => 'bar')
Note
Le Helper html est disponible dans toutes les vues par défaut. Si vous recevez une erreur vous informant qu’il n’est pas disponible, c’est habituellement dû a son nom qui a été oublié de la configuration manuelle de la variable $helpers du controller.
La tâche la plus importante que le Helper Html accomplit est la création d’un balisage bien formé. N’ayez pas peur de l’utiliser souvent - vous pouvez cacher les vues dans cakePHP pour économiser du temps CPU quand les vues sont rendues et délivrées. Cette section couvrira les méthodes du Helper Html et comment les utiliser.
$charset (string
) – Jeu de caractère désiré. S’il est null, la valeur
de App.encoding
sera utilisée.
Utilisé pour créer une balise meta spécifiant le jeu de caractères du document. UTF-8 par défaut.
Exemple d’utilisation:
echo $this->Html->charset();
Affichera:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Sinon:
echo $this->Html->charset('ISO-8859-1');
Affichera:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
Modifié dans la version 2.4.
$path (mixed
) – Soit une chaîne du fichier CSS à lier, ou un tableau
avec plusieurs fichiers.
$options (array
) – Un tableau d’options ou d” attributs html.
Créé un ou plusieurs lien(s) vers un feuille de style CSS. Si la clé
“inline” est définie à false dans les paramètres $options
, les balises
de lien seront ajoutés au bloc css
lequel sera intégré à la balise
entête du document.
Vous pouvez utiliser l’option block
pour contrôler sur lequel
des blocs l’élément lié sera ajouté. Par défaut il sera ajouté au bloc
css
.
Si la clé “rel” dans le tableau $options
est défini pour “import”,
la feuille de style sera importée.
Cette méthode d’inclusion CSS présume que le CSS spécifié se trouve dans le répertoire /app/webroot/css si un chemin ne commence par un “/”.
echo $this->Html->css('forms');
Affichera:
<link rel="stylesheet" type="text/css" href="/css/forms.css" />
Le premier paramètre peut être un tableau pour inclure des fichiers multiples.
echo $this->Html->css(array('forms', 'tables', 'menu'));
Affichera:
<link rel="stylesheet" type="text/css" href="/css/forms.css" />
<link rel="stylesheet" type="text/css" href="/css/tables.css" />
<link rel="stylesheet" type="text/css" href="/css/menu.css" />
Vous pouvez inclure un fichier CSS depuis un plugin chargé en utilisant
syntaxe de plugin. Pour inclure
app/Plugin/DebugKit/webroot/css/toolbar.css
, vous pouvez utiliser ce
qui suit:
echo $this->Html->css('DebugKit.toolbar.css');
Si vous voulez inclure un fichier CSS qui partage un nom avec un plugin
chargé vous pouvez faire ce qui suit. Par exemple vous avez un plugin
Blog
, et souhaitez inclure également
app/webroot/css/Blog.common.css
:
.. versionchanged:: 2.4
echo $this->Html->css(“Blog.common.css”, array(“plugin” => false));
Modifié dans la version 2.1: L’option block
a été ajoutée.
Le support de syntaxe de plugin à été ajouté.
$type (string
) – Le type de balise meta désiré.
$url (mixed
) – L’URL de la balise meta, soit une chaîne ou un
tableau de routing.
$options (array
) – Un tableau d” attributs HTML.
Cette méthode est pratique pour faire des liens vers des ressources
externes comme RSS/Atom feeds et les favicons. Comme avec css(), vous
pouvez spécifier si vous voulez l’apparition de la balise en ligne ou
l’ajouter au bloc meta
en définissant la clé “inline” à false dans les
paramètres $options, ex. - array('inline' => false)
.
Si vous définissez l’attribut « type » en utilisant le paramètre $options, CakePHP contient certains raccourcis:
type |
valeur résultante |
---|---|
html |
text/html |
rss |
application/rss+xml |
atom |
application/atom+xml |
icon |
image/x-icon |
<?php
echo $this->Html->meta(
'favicon.ico',
'/favicon.ico',
array('type' => 'icon')
);
?>
// Output (line breaks added)
<link
href="http://example.com/favicon.ico"
title="favicon.ico" type="image/x-icon"
rel="alternate"
/>
<?php
echo $this->Html->meta(
'Comments',
'/comments/index.rss',
array('type' => 'rss')
);
?>
// Output (line breaks added)
<link
href="http://example.com/comments/index.rss"
title="Comments"
type="application/rss+xml"
rel="alternate"
/>
Cette méthode peut aussi être utilisée pour ajouter les balises de mots clés et les descriptions. Exemple:
<?php
echo $this->Html->meta(
'keywords',
'enter any meta keyword here'
);
?>
// Sortie
<meta name="keywords" content="enter any meta keyword here" />
<?php
echo $this->Html->meta(
'description',
'enter any meta description here'
);
?>
// Sortie
<meta name="description" content="enter any meta description here" />
Si vous voulez ajouter une balise personnalisée alors le premier paramètre devra être un tableau. Pour ressortir une balise de robots noindex, utilisez le code suivant:
echo $this->Html->meta(array('name' => 'robots', 'content' => 'noindex'));
Modifié dans la version 2.1: L’option block
a été ajoutée.
$type (string
) – Le type de doctype fabriqué.
Retourne un balise doctype (X)HTML. Fournissez le doctype en suivant la table suivante:
type |
valeur résultante |
---|---|
html4-strict |
HTML4 Strict |
html4-trans |
HTML4 Transitional |
html4-frame |
HTML4 Frameset |
html5 |
HTML5 |
xhtml-strict |
XHTML1 Strict |
xhtml-trans |
XHTML1 Transitional |
xhtml-frame |
XHTML1 Frameset |
xhtml11 |
XHTML1.1 |
echo $this->Html->docType();
// Sortie:
// <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
// "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
echo $this->Html->docType('html5');
// Sortie: <!DOCTYPE html>
echo $this->Html->docType('html4-trans');
// Sortie:
// <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
// "http://www.w3.org/TR/html4/loose.dtd">
Modifié dans la version 2.1: La valeur par défaut de doctype est HTML5 avec la version 2.1.
$data (array
) – Un ensemble de clé => valeurs avec des propriétés CSS.
$oneline (boolean
) – Le contenu sera sur une seule ligne.
Construit les définitions de style CSS en se basant sur les clés et valeurs du tableau passé à la méthode. Particulièrement pratique si votre fichier CSS est dynamique.
echo $this->Html->style(array(
'background' => '#633',
'border-bottom' => '1px solid #000',
'padding' => '10px'
));
Affichera:
background:#633; border-bottom:1px solid #000; padding:10px;
- param string $path
Chemin de l’image.
- param array $options
Un tableau de attributs html.
Créé une balise image formatée. Le chemin fournit devra être relatif à /app/webroot/img/.
echo $this->Html->image('cake_logo.png', array('alt' => 'CakePHP'));Affichera:
<img src="/img/cake_logo.png" alt="CakePHP" />Pour créer un lien d’image, spécifiez le lien de destination en utilisant l’option
url
dans$htmlAttributes
.echo $this->Html->image("recipes/6.jpg", array( "alt" => "Brownies", 'url' => array('controller' => 'recipes', 'action' => 'view', 6) ));
Affichera:
<a href="/recipes/view/6"> <img src="/img/recipes/6.jpg" alt="Brownies" /> </a>Si vous créez des images dans des mails, ou voulez des chemins absolus pour les images, vous pouvez utiliser l’option
fullBase
:echo $this->Html->image("logo.png", array('fullBase' => true));Affichera:
<img src="http://example.com/img/logo.jpg" alt="" />Vous pouvez inclure des fichiers images depuis un plugin chargé en utilisant la syntaxe de plugin. Pour inclure
app/Plugin/DebugKit/webroot/img/icon.png
, vous pouvez faire cela:echo $this->Html->image('DebugKit.icon.png');Si vous voulez inclure un fichier image qui partage un nom avec un plugin chargé vous pouvez faire ce qui suit. Par exemple si vous avez in plugin Blog`, et voulez inclure également
app/webroot/js/Blog.icon.png
:echo $this->Html->image('Blog.icon.png', array('plugin' => false));Modifié dans la version 2.1: L’option
fullBase
a été ajouté. Le support de syntaxe de plugin a été ajouté.
$title (string
) – Le texte à afficher comme corps du lien.
$url (mixed
) – Soit la chaîne spécifiant le chemin, ou un
tableau de routing.
$options (array
) – Un tableau d” :attributs HTML.
Méthode générale pour la création de liens HTML. Utilisez les $options
pour spécifier les attributs des éléments et si le $title
devra ou
non être échappé.
echo $this->Html->link(
'Enter',
'/pages/home',
array('class' => 'button', 'target' => '_blank')
);
Affichera:
<a href="/pages/home" class="button" target="_blank">Enter</a>
Utilisez l’option 'full_base' => true
pour des URLs absolues:
echo $this->Html->link(
'Dashboard',
array(
'controller' => 'dashboards',
'action' => 'index',
'full_base' => true
)
);
Affichera:
<a href="http://www.yourdomain.com/dashboards/index">Dashboard</a>
Spécifiez $confirmMessage
pour afficher une boite de dialogue de
confirmation confirm()
JavaScript:
echo $this->Html->link(
'Delete',
array('controller' => 'recipes', 'action' => 'delete', 6),
array(),
"Are you sure you wish to delete this recipe?"
);
Affichera:
<a href="/recipes/delete/6" onclick="return confirm('Are you sure you wish to delete this recipe?');">Delete</a>
Les chaînes de requête peuvent aussi être créées avec link()
.
echo $this->Html->link('View image', array(
'controller' => 'images',
'action' => 'view',
1,
'?' => array('height' => 400, 'width' => 500))
);
Affichera:
<a href="/images/view/1?height=400&width=500">View image</a>
Quand il y a utilisation de paramètres nommés, utilisez la syntaxe en tableau et incluez les noms pour TOUS les paramètres dans l’URL. En utilisant la syntaxe en chaîne pour les paramètres (par ex « recipes/view/6/comments:false » va résulter à ce que les caractères seront échappés du HTML et le lien ne fonctionnera pas comme souhaité.
<?php
echo $this->Html->link(
$this->Html->image("recipes/6.jpg", array("alt" => "Brownies")),
array(
'controller' => 'recipes',
'action' => 'view',
'id' => 6,
'comments' => false
)
);
Affichera:
<a href="/recipes/view/id:6/comments:false">
<img src="/img/recipes/6.jpg" alt="Brownies" />
</a>
Les caractères spéciaux HTML de $title
seront convertis en entités
HTML. Pour désactiver cette conversion, définissez l’option escape à
false dans le tableau $options
:
<?php
echo $this->Html->link(
$this->Html->image("recipes/6.jpg", array("alt" => "Brownies")),
"recipes/view/6",
array('escape' => false)
);
Affichera:
<a href="/recipes/view/6">
<img src="/img/recipes/6.jpg" alt="Brownies" />
</a>
Définir escape
à false va aussi désactiver l’échappement des attributs
du lien. Puisque depuis 2.4, vous pouvez utiliser l’option escapeTitle
pour juste désactiver l’échappement du titre et pas des attributs.
<?php
echo $this->Html->link(
$this->Html->image('recipes/6.jpg', array('alt' => 'Brownies')),
'recipes/view/6',
array('escapeTitle' => false, 'title' => 'hi "howdy"')
);
Affichera:
<a href="/recipes/view/6" title="hi "howdy"">
<img src="/img/recipes/6.jpg" alt="Brownies" />
</a>
Modifié dans la version 2.4: L’option escapeTitle
a été ajoutée.
Modifié dans la version 2.6: L’argument $confirmMessage
a été dépréciée. Utilisez la clé
confirm
dans $options
à la place.
Regardez aussi la méthode HtmlHelper::url
pour
plus d’exemples des différents types d’URLs.
$path (string|array
) – Chemin du fichier vidéo, relatif au répertoire
webroot/{$options[“pathPrefix”]}. Ou un tableau ou chaque élément
peut être la chaîne d’un chemin ou un tableau associatif contenant
les clés src et type.
$options (array
) – Un tableau d’attributs HTML, et d’options spéciales.
Options:
type Type d’éléments média à générer, les valeurs valides sont « audio » ou « video ». Si le type n’est pas fourni le type de média se basera sur le mime type du fichier.
text Texte à inclure dans la balise vidéo.
pathPrefix Préfixe du chemin à utiliser pour les URLs relatives, par défaut à “files/”.
fullBase Si il est fourni l’attribut src prendra l’adresse complète incluant le nom de domaine.
Nouveau dans la version 2.1.
Retourne une balise formatée audio/video:
<?php echo $this->Html->media('audio.mp3'); ?>
// Sortie
<audio src="/files/audio.mp3"></audio>
<?php echo $this->Html->media('video.mp4', array(
'fullBase' => true,
'text' => 'Fallback text'
)); ?>
// Sortie
<video src="http://www.somehost.com/files/video.mp4">Fallback text</video>
<?php echo $this->Html->media(
array(
'video.mp4',
array(
'src' => 'video.ogg',
'type' => "video/ogg; codecs='theora, vorbis'"
)
),
array('autoplay')
); ?>
// Sortie
<video autoplay="autoplay">
<source src="/files/video.mp4" type="video/mp4"/>
<source src="/files/video.ogg" type="video/ogg;
codecs='theora, vorbis'"/>
</video>
$tag (string
) – Le nom de la balise créée.
$text (string
) – Le contenu de la balise.
$options (array
) – Un tableau d’attributs html attributs html.
Retourne des textes enveloppés dans une balise spécifiée. Si il n’y a pas de texte spécifié alors le contenu du <tag> sera retourné:
.. code-block:: php
<?php echo $this->Html->tag(“span”, “Bonjour le Monde”, array(“class” => “welcome”)); ?>
// Affichera <span class= »welcome »>Bonjour le Monde</span>
// Pas de texte spécifié. <?php echo $this->Html->tag(“span”, null, array(“class” => “welcome”)); ?>
// Affichera <span class= »welcome »>
Note
Le texte n’est pas échappé par défaut mais vous pouvez utiliser
$htmlOptions['escape'] = true
pour échapper votre texte. Ceci
remplace un quatrième paramètre boolean $escape = false
qui était
présent dans les précédentes versions.
$class (string
) – Le nom de classe de la div.
$text (string
) – Le contenu de la div.
$options (array
) – Un tableau d’attributs attributs html.
Utilisé pour les sections de balisage enveloppés dans des div. Le premier paramètre spécifie une classe CSS, et le second est utilisé pour fournir le texte à envelopper par les balises div. Si le dernier paramètre à été défini à true, $text sera affiché en HTML-échappé.
Si aucun texte n’est spécifié, seulement une balise div d’ouverture est retournée.:
<?php
echo $this->Html->div('error', 'Entrez votre numéro de carte bleue S.V.P');
?>
// Affichera
<div class="error">Entrez votre numéro de carte bleue S.V.P</div>
$class (string
) – Le nom de classe du paragraphe.
$text (string
) – Le contenu du paragraphe.
$options (array
) – Un tableau d’attributs attributs html.
Retourne un texte enveloppé dans une balise CSS <p>. Si aucun texte CSS est fourni, un simple <p> de démarrage est retourné.:
<?php
echo $this->Html->para(null, 'Bonjour le Monde');
?>
// Affichera
<p>Bonjour le Monde</p>
$url (mixed
) – Soit un simple fichier Javascript, ou un
tableau de chaînes pour plusieurs fichiers.
$options (array
) – Un tableau d’attributs attributs html.
Inclus un(des) fichier(s), présent soit localement soit à une URL distante.
Par défaut, les tags de script sont ajoutés au document inline. Si vous
le surcharger en configurant $options['inline']
à false, les tags de
script vont plutôt être ajoutés au block script
que vous pouvez
afficher aileurs dans le document. Si vous souhaitez surcharger le nom
du block utilisé, vous pouvez le faire en configurant
$options['block']
.
$options['once']
contrôle si vous voulez ou pas inclure le script une
fois par requête. Par défaut à true.
Vous pouvez utiliser $options pour définir des propriétés supplémentaires pour la balise script générée. Si un tableau de balise script est utilisé, les attributs seront appliqués à toutes les balises script générées.
Cette méthode d’inclusion de fichier JavaScript suppose que les fichiers
JavaScript spécifiés se trouvent dans le répertoire /app/webroot/js
.
echo $this->Html->script('scripts');
Affichera:
<script type="text/javascript" href="/js/scripts.js"></script>
Vous pouvez lier à des fichiers avec des chemins absolus
tant qu’ils ne se trouvent pas dans app/webroot/js
:
echo $this->Html->script('/autrerep/fichier_script');
Vous pouvez aussi lier à une URL d’un dépôt distant:
echo $this->Html->script('https://code.jquery.com/jquery.min.js');
Affichera:
<script type="text/javascript" href="https://code.jquery.com/jquery.min.js"></script>
Le premier paramètre peut être un tableau pour inclure des fichiers multiples.
echo $this->Html->script(array('jquery', 'wysiwyg', 'scripts'));
Affichera:
<script type="text/javascript" href="/js/jquery.js"></script>
<script type="text/javascript" href="/js/wysiwyg.js"></script>
<script type="text/javascript" href="/js/scripts.js"></script>
Vous pouvez insérer dans la balise script un bloc spécifique en
utilisant l’option block
.
echo $this->Html->script('wysiwyg', array('block' => 'scriptBottom'));
Dans votre layout, vous pouvez ressortir toutes les balises script ajoutées dans “scriptBottom”:
echo $this->fetch('scriptBottom');
Vous pouvez inclure des fichiers de script depuis un plugin en utilisant
la syntaxe syntaxe de plugin. Pour inclure
app/Plugin/DebugKit/webroot/js/toolbar.js
vous devriez faire cela:
echo $this->Html->script('DebugKit.toolbar.js');
Si vous voulez inclure un fichier de script qui partage un nom de fichier
avec un plugin chargé vous pouvez faire cela. Par exemple si vous avez
Un plugin Blog
, et voulez inclure également
app/webroot/js/Blog.plugins.js
, vous devriez:
echo $this->Html->script('Blog.plugins.js', array('plugin' => false));
Modifié dans la version 2.1: L’option block
a été ajouté.
Le support de la syntaxe syntaxe de plugin a été ajouté.
$code (string
) – Le code à placer dans la balise script.
$options (array
) – Un tableau d’attributs attributs html.
Génère un bloc de code contenant des options $options['inline']
définies de $code
à mettre à false pour voir le bloc de script
apparaître dans le bloc de script
de la vue. D’autres options définies
seront ajoutées comme attributs dans les balises de script.
$this->Html->scriptBlock('stuff', array('defer' => true));
créera une
balise script avec l’attribut defer="defer"
.
$options (array
) – Un tableau d” attributs HTML à
utiliser quand scriptEnd est appelé.
Débute la mise en mémoire tampon d’un bloc de code. Ce bloc de code
va capturer toutes les sorties entre scriptStart()
et scriptEnd()
et crée une balise script. Les options sont les mêmes que celles de
scriptBlock()
Termine la mise en mémoire tampon d’un bloc de script, retourne l’élément script généré ou null si le bloc de script à été ouvert avec inline=false.
Un exemple de l’utilisation de scriptStart()
et scriptEnd()
pourrait être:
$this->Html->scriptStart(array('inline' => false));
echo $this->Js->alert('je suis dans le JavaScript');
$this->Html->scriptEnd();
$list (array
) – Ensemble d’éléments à lister.
$options (array
) – Attributs HTML supplémentaires des balises de listes
(ol/ul) ou si ul/ol utilise cela comme une balise.
$itemOptions (array
) – Attributs additionnels des balises de listes
item(LI).
$tag (string
) – Type de balise liste à utiliser (ol/ul).
Fabrique une liste imbriquée (UL/OL) dans un tableau associatif:
$list = array(
'Languages' => array(
'English' => array(
'American',
'Canadian',
'British',
),
'Spanish',
'German',
)
);
echo $this->Html->nestedList($list);
Sortie:
// Affichera (sans les espaces blancs)
<ul>
<li>Languages
<ul>
<li>English
<ul>
<li>American</li>
<li>Canadian</li>
<li>British</li>
</ul>
</li>
<li>Spanish</li>
<li>German</li>
</ul>
</li>
</ul>
$names (array
) – Un tableau de chaîne pour créer les entêtes de tableau.
$trOptions (array
) – Un tableau d” attributs HTML
pour le <tr>.
$thOptions (array
) – Un tableau d” attributs HTML
pour l’élément <th>.
Créé une ligne de cellule d’en-tête à placer dans la balise <table>.
echo $this->Html->tableHeaders(array('Date', 'Title', 'Active'));
// Affichera
<tr>
<th>Date</th>
<th>Title</th>
<th>Active</th>
</tr>
echo $this->Html->tableHeaders(
array('Date','Title','Active'),
array('class' => 'status'),
array('class' => 'product_table')
);
Sortie:
<tr class="status">
<th class="product_table">Date</th>
<th class="product_table">Title</th>
<th class="product_table">Active</th>
</tr>
Modifié dans la version 2.2: tableHeaders()
accepte maintenant les attributs par cellule,
regardez ci-dessous.
Depuis 2.2 vous pouvez définir des attributs par colonne, ceux-ci sont
utilisés à la place de ceux par défaut dans $thOptions
:
echo $this->Html->tableHeaders(array(
'id',
array('Name' => array('class' => 'highlight')),
array('Date' => array('class' => 'sortable'))
));
Sortie:
<tr>
<th>id</th>
<th class="highlight">Name</th>
<th class="sortable">Date</th>
</tr>
$data (array
) – Un tableau à deux dimensions avec les données pour les
lignes.
$oddTrOptions (array
) – Un tableau d” attributs HTML
pour les <tr> impairs.
$evenTrOptions (array
) – Un tableau d” attributs HTML
pour les <tr> pairs.
$useCount (boolean
) – Ajoute la classe « column-$i ».
$continueOddEven (boolean
) – Si à false, utilisera une variable $count
non-statique, ainsi le compteur impair/pair est remis à zéro juste pour
cet appel.
Créé des cellules de table, en assignant aux lignes des attributs <tr> différents pour les lignes paires et les lignes impaires. Entoure une simple table de cellule dans un array() pour des attributs <td> spécifiques.
echo $this->Html->tableCells(array(
array('Jul 7th, 2007', 'Best Brownies', 'Yes'),
array('Jun 21st, 2007', 'Smart Cookies', 'Yes'),
array('Aug 1st, 2006', 'Anti-Java Cake', 'No'),
));
Sortie:
<tr><td>Jul 7th, 2007</td><td>Best Brownies</td><td>Yes</td></tr>
<tr><td>Jun 21st, 2007</td><td>Smart Cookies</td><td>Yes</td></tr>
<tr><td>Aug 1st, 2006</td><td>Anti-Java Cake</td><td>No</td></tr>
echo $this->Html->tableCells(array(
array('Jul 7th, 2007', array('Best Brownies', array('class' => 'highlight')) , 'Yes'),
array('Jun 21st, 2007', 'Smart Cookies', 'Yes'),
array('Aug 1st, 2006', 'Anti-Java Cake', array('No', array('id' => 'special'))),
));
// Sortie
<tr><td>Jul 7th, 2007</td><td class="highlight">Best Brownies</td><td>Yes</td></tr>
<tr><td>Jun 21st, 2007</td><td>Smart Cookies</td><td>Yes</td></tr>
<tr><td>Aug 1st, 2006</td><td>Anti-Java Cake</td><td id="special">No</td></tr>
echo $this->Html->tableCells(
array(
array('Red', 'Apple'),
array('Orange', 'Orange'),
array('Yellow', 'Banana'),
),
array('class' => 'darker')
);
Output:
<tr class="darker"><td>Red</td><td>Apple</td></tr>
<tr><td>Orange</td><td>Orange</td></tr>
<tr class="darker"><td>Yellow</td><td>Banana</td></tr>
$url (mixed
) – Un tableau de routing.
$full (mixed
) – Soit un booléen s’il faut ou pas que la base du
chemin soit incluse ou un tableau d’options pour le router
Router::url()
.
Retourne une URL pointant vers une combinaison controller et action. Si $url est vide, cela retourne la REQUEST_URI, sinon cela génère la combinaison d’une URL pour le controller et d’une action. Si full est à true, la base complète de l’URL sera ajoutée en amont du résultat:
echo $this->Html->url(array(
"controller" => "posts",
"action" => "view",
"bar"
));
// Restituera
/posts/view/bar
Voici quelques exemples supplémentaires:
URL avec des paramètres nommés:
echo $this->Html->url(array(
"controller" => "posts",
"action" => "view",
"foo" => "bar"
));
// Restituera
/posts/view/foo:bar
URL avec une extension:
echo $this->Html->url(array(
"controller" => "posts",
"action" => "list",
"ext" => "rss"
));
// Restituera
/posts/list.rss
URL (commençant par “/”) avec la base complète d’URL ajoutée:
echo $this->Html->url('/posts', true);
// Restituera
http://somedomain.com/posts
URL avec des paramètres GET et une ancre nommée:
<?php echo $this->Html->url(array(
"controller" => "posts",
"action" => "search",
"?" => array("foo" => "bar"),
"#" => "first"));
// Restituera
/posts/search?foo=bar#first
Pour plus d’information voir Router::url dans l” API.
Retourne un bloc existant formaté de balise $tag
:
$this->Html->useTag(
'form',
'http://example.com',
array('method' => 'post', 'class' => 'myform')
);
Output:
<form action="http://example.com" method="post" class="myform">
Les jeux de balises pour le Helper Html HtmlHelper
sont
conformes au standard XHTML, toutefois si vous avez besoin de générer
du HTML pour les standards HTML5 vous aurez besoin de créer et de charger
un nouveau fichier de configuration de balise contenant les balises
que vous aimeriez utiliser. Pour changer les balises utilisées, créez
un fichier app/Config/html5_tags.php
contenant:
$config = array('tags' => array(
'css' => '<link rel="%s" href="%s" %s>',
'style' => '<style%s>%s</style>',
'charset' => '<meta charset="%s">',
'javascriptblock' => '<script%s>%s</script>',
'javascriptstart' => '<script>',
'javascriptlink' => '<script src="%s"%s></script>',
// ...
));
Vous pouvez alors charger ces balises définis en appelant
$this->Html->loadConfig('html5_tags');
.