Felhasználói menü bővítése

symon00 képe

Sziasztok!

Pár órányi keresés után sem jöttem rá a következő problémára:

Az alapértelmezett Felhasználói menüt szeretném bővíteni. Jelenleg a Saját adatok, Kijelentkezés "menüpontok" találhatók. Itt akarom megjeleníteni a bejelentkezett felhasználó nevét egy kis üdvözlő üzenettel: Kedves felhasználónév, üdv az oldalon!

Néztem az admin/structure/menu/manage/user-menu/add lehetőséget is, hátha van ilyen lehetőség, de ott is elakadtam, csak sima menüpontot tudtam csinálni.

Próbáltam egy másik úton is,külön blokkban és a page.tpl.php szerkesztését is.

<?php
global $user;
print "Kedves<strong>".$user->name."</strong>, üdv az oldalon!";
?>

Így kiírta a felhasználónevet, de ha nem voltam bejelentkezve, akkor is kiírta az üdvözlő üzenetet.

Szóval a kérdésem: Hogyan tudnám bővíteni a felhasználói menüt az adott felhasználó nevének kiírásával? Hogy célszerű ezt csinálni?

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
aranyozottpatkoszeg képe

Az én sminkjeimnél általában a menük között (/admin/structure/menu) az egyikben szoktak benne lenni ezek (user,login/logut) és ott "add item"

És egyszerűen így?

<?php
global $user;
if($user->name) 
   print "Kedves<strong>".$user->name."</strong>, üdv az oldalon!";
?>

Vagy talán:
<?php
global $user;
if($user->name != "Anonymus") //nem azonosított felhasználó neve
   print "Kedves<strong>".$user->name."</strong>, üdv az oldalon!";
?>
1
0
symon00 képe

Köszönöm a segítséged, elvezetett a célhoz -igaz, nem a felhasználói menühöz adtam hozzá-, bár nem tudom ez így teljesen Drupalos megoldás-e.. :)

Az admin/structure/menu/manage/user-menu/add-nál csak hivatkozást tudok hozzáadni, php kódot nem.

A második php kód jónak tűnt (page.tpl.php), csak kiírta a nem bejelentkezett felhasználóknak az üdvözlőszöveget, valamint ezt a hibaüzenetet:
Notice: Undefined property: stdClass::$name include()

Keresgettem és így csináltam meg:

<?php 
  global $user; 
  if ($logged_in):
   print 'Kedves<strong> '.$user->name.'</strong>, üdv az oldalon!';
  endif; 
?>
0
0
pp képe

Kimenetet mindig szűrjük.

Különben speciális karaktereknél problémáink lesznek.

<?php 
  global $user; 
  if ($logged_in):
   print 'Kedves <strong> ' . check_plain($user->name) . '</strong>, üdv az oldalon!';
  endif; 
?>

pp
5
0
mapdesign15 képe

A második php kód jónak tűnt (page.tpl.php), csak kiírta a nem bejelentkezett felhasználóknak az üdvözlőszöveget, valamint ezt a hibaüzenetet:
Notice: Undefined property: stdClass::$name include()

A Drupal 7.x minden PHP hibát, figyelmeztetést és megjegyzést alapértelmezettként kiír képernyőre.

Az alábbi oldalon tudod ezt kikapcsolni:
admin/config/development/logging

Itt a "Megjelenítendő hibaüzenetek"-nél az alábbit válaszd:
- Hibák és figyelmeztetések

Ha pedig élesen megy a site érdemes kikapcsolni:
- Nincs

Így csak a naplóban fognak látszódni ezek az üzenetek, itt:
admin/reports

Egyébként azt hiányolja, hogy a $name változó nincs definiálva?!

SB

0
0
mapdesign15 képe

Láttam, hogy írtad "bár nem tudom ez így teljesen Drupalos megoldás-e.. :)". Szerintem lehet így jobb lenne:

page.tpl.php

<?php
global $user;
 
if ($logged_in):
   print t(
      'Kedves <strong>@username</strong>, üdv az oldalon!',
      array('@username' => check_plain($user->name)),
   );
endif;

Így akár ez az üzenet fordítható is.

0
0
pp képe

Akkor angolul kéne az üzenet.

pp

2
0
symon00 képe

Köszönöm a segítségeteket!

0
0