PHP kód ve stránce NODE

Dobrý den

bohužel nejsem dobrý v PHP a tak bych potřeboval poradit s jedním zápisem kódu v těle nodu. 

Jedná se mi o následující situaci:
Když na stránku přijde uživatel s určenou rolí (rolemi) zobrazí se mu text a jmenovité přivítání zapsaný v "IF", pokud přijde anonym nebo registrovaný bez další přiřazené role zobrazí se mu text zapsaný v "ELSE" (možná by bylo dokonalejší kdyby byla ještě jedna vnořená podmínka v "ELSE IF" pro registrované bez další role a "ELSE" jen pro anonyma)

Na internetu jsem zatím vyčetl a použil tento fragment kodu:

<code>

<?php

global $user;

$approved_roles = array('člen cechu', 'vedení cechu', 'administrator');

if ($user->uid && (is_array($user->roles))) {

   if (count(array_intersect($user->roles, $approved_roles)) > 0) {

print t('Vítej poutníče, slovutný(á) @name zpět na stránky cechu.', array('@name' => format_username($user)));

  }

     } else  {

print t("Vítej cizinče, jestli pak víš, že se nacházíš v zapovězeném místě, .......");

}

?>

</code>

Tento kód funguje pro registrované s přiřazenou rolí, pro anonyma ale uživateli bez další přiřazené role se nezobrazí žádný text.

Děkuji za každou i sebemenší radu a jsem s pozdravem

Profile picture for user Jan Polzer

Bez testování bych to zkusil upravit takto, píšu naslepo:

<?php

global $user;

$approved_roles = array('člen cechu', 'vedení cechu', 'administrator');

if (count(array_intersect($user->roles, $approved_roles)) > 0) {

print t('Vítej poutníče, slovutný(á) @name zpět na stránky cechu.', array('@name' => format_username($user)));

} else  {

print t("Vítej cizinče, jestli pak víš, že se nacházíš v zapovězeném místě, .......");

}

?>

Není třeba zjišťovat, jestli je uživatel přihlášen a pak následně jeho role, stačí rovnou kouknout na ty role.

návštěvník

Diky moc ... funguje to bezvadne.

A pokud bych mohl mit jeste prozbycku ... jak by to vypadalo kdybych chtel mit jeste jednu vlozenou funkci pro pouze registrovane ale bez urceni nejake dalsi role. 
IF - pro vyse urcene role
ELSE IF - pro registrovane bez roli
ELSE - pro neregistrovane anonymi

pujde uz asi jen o urceni podminky pro registrovane, ale nejak se mi to nedari nasimulovat.

Jinak dekuji a preji veseleho silvestra a stastny novy rok :-)))

Profile picture for user Jan Polzer

<?php

global $user;

$approved_roles = array('člen cechu', 'vedení cechu', 'administrator');

if (user_is_logged_in()){

if (count(array_intersect($user->roles, $approved_roles)) > 0) {

// přihlášený a v nějaké roli

} else{

// jenom normálně přihlášený

}

}

else  {

print t("Vítej cizinče, jestli pak víš, že se nacházíš v zapovězeném místě, .......");

}

?>

návštěvník

Jeje děkuji mocekrát ... jste zlatej, na drupal.cz jsem se za nějakých 14 dni odpovědi nedočkal 

pokud vás budu moci (po novem roce) ještě zeužít ohledně vědomosti s wedosem budu rád ... zatím jsem spiš zklamaný zakazník než ten který jim provolává slávu ;-)

Odpovědět

Obsah tohoto pole je soukromý a nebude veřejně zobrazen.

Filtered HTML

  • Povolené HTML značky: <a href hreflang> <em> <strong> <cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <p> <br>
  • Řádky a odstavce se zalomí automaticky.
  • Web page addresses and email addresses turn into links automatically.

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Poslední komentáře
reklama
Nové diskuze
reklama
Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

Knihy o Drupalu

Kniha Drupal 8 Kniha Drupal 7 333 tipů a triků pro Drupal
Více na KnihyPolzer.cz

Co píší na Interval.cz
@maxiorel na Twitteru

Maxiorel na Twitteru