Message d'avertissement

The subscription service is currently unavailable. Please try again later.

Affichage mobile Block mobile / Affichage conditionnel Nod

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

J'ai besoin de votre aide. J'ai le problème suivant.
Pour des raisons techniques je dois rentre des conditions d'affichages dans un block dans le section "Pages sur lesquelles ce code PHP renvoie TRUE (recommandés aux experts) "

Condition 1 :

Le block ne doit s'afficher que sur cette page "ma-page-de-test"
Cela marche. Tout est OK

<?php
$url
= request_uri();
$myurl = 'ma-page-de-test';
if (
strlen(stristr($url, $myurl)) >0) {
 return
TRUE;
}
return
FALSE;
?>

Condition 2 :

Le bloc ne doit pas s'afficher sur mobile.
Cela marche. Tout est OK

<?php
$mobile_agent
= browscap_get_browser() ;
if(
$mobile_agent['ismobiledevice'] == "false"){ // if user agent is not a mobile device, then show me the block
return true;
}
?>

Mais lorsque je lie les 2 scripts ensemble cela ne marche plus. vous avez une idée

<?php
$url
= request_uri();
$myurl = 'ma-page-de-test';
if (
strlen(stristr($url, $myurl)) >0) {
 return
TRUE;
}

$mobile_agent = browscap_get_browser() ;
if(
$mobile_agent['ismobiledevice'] == "false"){ // if user agent is not a mobile device, then show me the block
return true;
}
return
FALSE;
?>

Merci la communauté DrupalFR

Matthieu,

Pourquoi ne pas faire qu'un seul return ?

<?php
    $url
= request_uri();
   
$myurl = 'ma-page-de-test';
   
$mobile_agent = browscap_get_browser() ;

    $displayBlock = FALSE;

    if (strlen(stristr($url, $myurl)) > && $mobile_agent['ismobiledevice'] == "false") {
    
$displayBlock = TRUE
   
}

    return $displayBlock;
?>

D'ailleurs, ton == "false" me fait un peu douter, j'aurais plus naturellement testé un booléen...
Comme le fait ce hook :

  $browser = browscap_get_browser();
  if ($browser['ismobiledevice'] == 1) {...}

En espérant que ça fonctionne.