8791 sujets

Développement web côté serveur, CMS

Bonjour,
Je viens de créer une petit condition php pour "si le champ user photo thumbnail n'est pas vide, on affiche la photo, s'il est vide, on affiche à la place l'avatar".

Ca fonctionne, sauf que quand le champ user photo thumbnail est rempli, la photo s'affiche bien, mais aussi le l'avater. Ca fait double emploi.

Voici mon code :

<?php $photouser =  userphoto_the_author_thumbnail(); if ($photouser != '') {
       echo userphoto_the_author_thumbnail();
   } else {
	  echo get_avatar(get_the_author_meta('user_email', $author->ID), 80);
   } ?>

Modifié par dreadstock (07 Feb 2013 - 10:59)
Salut,


et si tu met
if ($photouser != '') {
       echo userphoto_the_author_thumbnail();
   } 
if ($photouser = '') {
	  echo get_avatar(get_the_author_meta('user_email', $author->ID), 80);
   } ?>
?
Modifié par JuseN (07 Feb 2013 - 11:36)
ok

Et si à la place de else tu met un autre if pour Si photo est vide alors avatar?


if ($photouser != '') 
{ photo }
if ($photouser = '')
{ avatar } 

Modifié par JuseN (07 Feb 2013 - 11:37)
Sylverdragon a écrit :
Bonjour,
En php, pour les comparaisons, il faut utiliser un double = :


!= est une comparaison sans vérification du type. !== compare la valeur et le type.
jb_gfx a écrit :


!= est une comparaison sans vérification du type. !== compare la valeur et le type.


Oui, c'est ce dont je me suis rappelé et ce pourquoi j'ai édité, juste avant ton post Smiley murf

Il n'empêche que ça :
if ($photouser != '') {
       echo userphoto_the_author_thumbnail();
   } 
if ($photouser = '') {
	  echo get_avatar(get_the_author_meta('user_email', $author->ID), 80);
   } ?>


ne risque pas de fonctionner puisqu'il faut bien un double = dans le deuxième "if"...


Dans votre cas, il vaudrait mieux à mon avis utiliser "empty" plutôt que != ' ' .
Modifié par Sylverdragon (07 Feb 2013 - 13:34)
Sylverdragon a écrit :


Oui, c'est ce dont je me suis rappelé et ce pourquoi j'ai édité, juste avant ton post Smiley murf

Il n'empêche que ça :
if ($photouser != '') {
       echo userphoto_the_author_thumbnail();
   } 
if ($photouser = '') {
	  echo get_avatar(get_the_author_meta('user_email', $author-&gt;ID), 80);
   } ?&gt;


ne risque pas de fonctionner puisqu'il faut bien un double = dans le deuxième &quot;if&quot;...


Dans votre cas, il vaudrait mieux à mon avis utiliser &quot;empty&quot; plutôt que != ' ' .


Ben du coup, j'ai essayé ca
<?php $photouser =  userphoto_the_author_thumbnail(); if ($photouser != '') {
       echo userphoto_the_author_thumbnail();
   } 
if ($photouser == '') {
	  echo get_avatar(get_the_author_meta('user_email', $author->ID), 80);
   } ?>

Mais il m'affiche aussi les 2 photos en même temps.
Bref...


<?php
if (!empty(userphoto__get_userphoto)) {
  userphoto_the_author_thumbnail();
} else {
  echo get_avatar(get_the_author_meta('user_email', $author->ID), 80);
}
?>
jb_gfx a écrit :
Bref...


&lt;?php
if (!empty(userphoto__get_userphoto)) {
  userphoto_the_author_thumbnail();
} else {
  echo get_avatar(get_the_author_meta('user_email', $author-&gt;ID), 80);
}
?&gt;


Rien de plus. userphoto_get_userphoto ne doit pas exister ou est mal utilisé.
jb_gfx a écrit :
C'est userphoto__get_userphoto, pas userphoto_get_userphoto.


Merci, mais le code que vous me donnez me renvoie une erreur serveur.

J'ai essayé une autre option, en fonction des infos que vous m'avez données, mais cela ne m'affiche que les avatars pour le coup.

La voici
<?php $photouser =  userphoto__get_userphoto(); if (!empty($photouser)) {
       echo userphoto_the_author_thumbnail();
   } else {
	  echo get_avatar(get_the_author_meta('user_email', $author->ID), 50);
   } ?>