Structure de controle PHP avec : ?
13 messages
• Page 1 sur 1
- mariea
- WRInaute impliqué

- Messages: 732
- Inscription: 6 Mai 2005
Structure de controle PHP avec : ?
Bonjour,
Je veux modifier un forum PHP BB ..
et je tombe sur ce code ...
$this->meta['meta_title'] = ( !empty($this->meta['meta_title']) ) ? $this->meta_filter_txt($this->meta['meta_title']) : $page_title;
Qui pourrait m'aider à trouver comme interpréter cette structure de contrôle alternative .. ???
= ? :
MERCI
Je veux modifier un forum PHP BB ..
et je tombe sur ce code ...
$this->meta['meta_title'] = ( !empty($this->meta['meta_title']) ) ? $this->meta_filter_txt($this->meta['meta_title']) : $page_title;
Qui pourrait m'aider à trouver comme interpréter cette structure de contrôle alternative .. ???
= ? :
MERCI
- mariea
- WRInaute impliqué

- Messages: 732
- Inscription: 6 Mai 2005
Re: Structure de controle PHP avec : ?
je crois avoir trouve...
Par contre si quelcun sait comment retirer du TITLE des pages de billet le nom du forum ..ca m'intéresse ..
(avec PHPBB SEO)
je vois que ça n'a pas été modifié sur le forum WRI ..le rappel du nom du forum dans chaque titre de page n'a aucun intéret.
Par contre si quelcun sait comment retirer du TITLE des pages de billet le nom du forum ..ca m'intéresse ..
(avec PHPBB SEO)
je vois que ça n'a pas été modifié sur le forum WRI ..le rappel du nom du forum dans chaque titre de page n'a aucun intéret.
-

UsagiYojimbo - WRInaute accro

- Messages: 8579
- Inscription: 23 Nov 2005
Re: Structure de controle PHP avec : ?
C'est une autre manière d'écrire un if {} else {} en php (perso je ne suis vraiment pas fan de cette notation qui est certes plus condensée mais moins lisible, menfin ça doit être une question d'habitude).
-

medium69 - WRInaute passionné

- Messages: 2485
- Inscription: 7 Mai 2005
Re: Structure de controle PHP avec : ?
mariea a écrit:Bonjour,
Je veux modifier un forum PHP BB ..
et je tombe sur ce code ...
$this->meta['meta_title'] = ( !empty($this->meta['meta_title']) ) ? $this->meta_filter_txt($this->meta['meta_title']) : $page_title;
Si je ne me trompe pas, cela revient à écrire :
- Code: Tout sélectionner
if (!empty($this->meta['meta_title']) {
$this->meta['meta_title'] = $this->meta_filter_txt($this->meta['meta_title'])
} else {
$this->meta['meta_title'] = $page_title;
}
À confirmer svp, car j'ai un petit doute quand même n'aimant pas écrire de cette manière aussi condensé
- mariea
- WRInaute impliqué

- Messages: 732
- Inscription: 6 Mai 2005
Re: Structure de controle PHP avec : ?
merci .. oui. Si la condition est vraie, on valide la variable devant les deux points. Si false, c'est l'autre.
Dans PHPBB includes/functions.php
ligne 4014
le titre semble être créé ici :
function build_meta( $page_title = '') {
$this->meta['meta_desc'] = ( !empty($this->meta['meta_desc']) ) ? $this->meta['meta_desc'] : $this->meta_filter_txt($page_title . ' : ' . $this->meta['meta_desc_def']);
Dans PHPBB includes/functions.php
ligne 4014
le titre semble être créé ici :
function build_meta( $page_title = '') {
$this->meta['meta_desc'] = ( !empty($this->meta['meta_desc']) ) ? $this->meta['meta_desc'] : $this->meta_filter_txt($page_title . ' : ' . $this->meta['meta_desc_def']);
- mariea
- WRInaute impliqué

- Messages: 732
- Inscription: 6 Mai 2005
pour la modification du TITLE
si ça intéresse quelcun voila ou ça se passe
viewtopic.php
// http://www.phpBB-SEO.com SEO TOOLKIT BEGIN - TITLE
$extra_title = ($start > 0) ? ' - ' . $user->lang['Page'] . ( floor( ($start / $config['posts_per_page']) ) + 1 ) : '';
page_header($topic_data['topic_title'] . ' : ' . $topic_data['forum_name'] . $extra_title);
il faut enlever
: ' . $topic_data['forum_name'] . $extra_title

viewtopic.php
// http://www.phpBB-SEO.com SEO TOOLKIT BEGIN - TITLE
$extra_title = ($start > 0) ? ' - ' . $user->lang['Page'] . ( floor( ($start / $config['posts_per_page']) ) + 1 ) : '';
page_header($topic_data['topic_title'] . ' : ' . $topic_data['forum_name'] . $extra_title);
il faut enlever
: ' . $topic_data['forum_name'] . $extra_title
-

raljx - WRInaute accro

- Messages: 2823
- Inscription: 10 Juil 2006
Re: Structure de controle PHP avec : ?
UsagiYojimbo a écrit:C'est une autre manière d'écrire un if {} else {} en php (perso je ne suis vraiment pas fan de cette notation qui est certes plus condensée mais moins lisible, menfin ça doit être une question d'habitude).
et d'age d'aussi
-

skyll - WRInaute passionné

- Messages: 1364
- Inscription: 14 Oct 2005
Re: Structure de controle PHP avec : ?
jcaron a écrit:Ca s'appelle un opérateur ternaire (c'est le seul opérateur à 3 arguments).
a?b:c vaut b si a est vrai et c sinon
Jacques.
+1
mais apparemment ce serais un poil plus lent qu'un if... donc je sais pas si c'est bon de l'utiliser...
- jcaron
- WRInaute accro

- Messages: 2687
- Inscription: 13 Fév 2004
Re: Structure de controle PHP avec : ?
Ce n'est pas exactement la même chose qu'un if, puisqu'il y a un résultat au final (alors que if évalue l'une ou l'autre option, mais le résultat de part et d'autre est perdu si tu ne l'affectes pas quelque part). Si tu as besoin du résultat et que tu en fais la même chose dans les deux cas, il n'y a pas de raison que ce soit plus lent.
a=b?c:d est équivalent à if (b) {a=c} else {a=d}
Dans le cas où "a" est quelque chose d'un peu plus complexe (genre $a[$b][$c]), l'opérateur ternaire évite de le parser deux fois, tu y gagnes donc quelques cycles à ce stade-là. Rien de flagrant...
Après c'est vraiment une question de style, et dans certains cas ça permet de faire des choses plus facilement. Exemple: tu appelles une fonction avec une tripotée d'arguments, et il y a juste un paramètre qui change suivant une condition. Si tu utilises if, tu dois faire:
if (condition)
{
fonction(parametre1,parametre2,parametre3,valeur1);
}
else
{
fonction(parametre1,parametre2,parametre3,valeur2);
}
Si tu utilises un opérateur ternaire, tu peux faire:
fonction(parametre1,parametre2,parametre3,condition?valeur1:valeur2);
Si les paramètres sont des expressions compliquées, tu y gagnes clairement en lisibilité.
Jacques.
a=b?c:d est équivalent à if (b) {a=c} else {a=d}
Dans le cas où "a" est quelque chose d'un peu plus complexe (genre $a[$b][$c]), l'opérateur ternaire évite de le parser deux fois, tu y gagnes donc quelques cycles à ce stade-là. Rien de flagrant...
Après c'est vraiment une question de style, et dans certains cas ça permet de faire des choses plus facilement. Exemple: tu appelles une fonction avec une tripotée d'arguments, et il y a juste un paramètre qui change suivant une condition. Si tu utilises if, tu dois faire:
if (condition)
{
fonction(parametre1,parametre2,parametre3,valeur1);
}
else
{
fonction(parametre1,parametre2,parametre3,valeur2);
}
Si tu utilises un opérateur ternaire, tu peux faire:
fonction(parametre1,parametre2,parametre3,condition?valeur1:valeur2);
Si les paramètres sont des expressions compliquées, tu y gagnes clairement en lisibilité.
Jacques.
-

carole heinz - WRInaute accro

- Messages: 2855
- Inscription: 28 Fév 2007
Re: Structure de controle PHP avec : ?
mariea a écrit:le rappel du nom du forum dans chaque titre de page n'a aucun intéret.
ça se discute je trouve
13 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Etude statistique de la structure du web - 20-02-2006
- L'algorithme BlockRank - 19-03-2003
- Mise à jour des SiteLinks Google (Juin 2007) - 11-06-2007
- Google met à jour les SiteLinks - 12-02-2007
- Description d'une page-type optimisée pour le référencement - 04-08-2008
- Interview de Larry Page dans Playboy - 04-02-2005
- Une vidéo sur la galaxie Google et une autre sur le référencement - 09-12-2005
- Etude du BlockRank, un algorithme de calcul rapide du PageRank - 19-03-2003
Consultez la description détaillée des produits ou services de Google suivants : Google Video Store
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

