Weergegeven resultaten: 1 t/m 13 van 13

Discussie: [Drupal] Login

  1. #1
    Member BramVanroy's schermafbeelding
    Lid sinds
    14/08/10
    Locatie
    Diest
    Berichten
    2.286
    iTrader
    1 (100%)

    [Drupal] Login

    Hallo

    Ik zou willen dat ik vanboven op m'n website (gemaakt op drupal 7) een link heb naar de inlogpagina. Als er iemand echter ingelogd is moet deze boodschap veranderen in 'Ingelogd als <user>'. Ik heb dit als volgt proberen ineen boxen maar het werkt niet:

    PHP-code:
    <?php
    global $user;
    if (
    $user->uid) {
        print 
    "Welkom <?php
    global 
    $user;
    print_r(
    $user);
    ?>"
    ;

    if (!
    $user->uid) {
        print 
    "<a href=\"?q=user\">Login of registreer</a>";

    ?>
    </div>
    Ik krijg dan allemaal errors terug. Enige ideeŽn?
    Laatst gewijzigd door BramVanroy; 9 september 2011 om 18:22

  2. #2
    Member BramVanroy's schermafbeelding
    Lid sinds
    14/08/10
    Locatie
    Diest
    Berichten
    2.286
    iTrader
    1 (100%)
    Misschien wat meer moeten proberen, voor de geÔnteresseerden de oplossing:

    PHP-code:
            <?php
    global $user;
    if (
    $user->uid) {
        print 
    "Ingelogd als ";
        
    print_r($user->name);

    if (!
    $user->uid) {
        print 
    "<a href=\"?q=user\">Login of registreer</a>";

    ?>
    Laatst gewijzigd door BramVanroy; 9 september 2011 om 20:53

  3. #3
    Approved 9-lifer demon326's schermafbeelding
    Lid sinds
    18/04/03
    Locatie
    Hasselt
    Berichten
    13.191
    iTrader
    20 (100%)
    Weblogs
    3
    Citaat Oorspronkelijk geplaatst door BramVroy Bekijk bericht
    Hallo

    Ik zou willen dat ik vanboven op m'n website (gemaakt op drupal 7) een link heb naar de inlogpagina. Als er iemand echter ingelogd is moet deze boodschap veranderen in 'Ingelogd als <user>'. Ik heb dit als volgt proberen ineen boxen maar het werkt niet:

    PHP-code:
    <?php
    global $user;
    if (
    $user->uid) {
        print 
    "Welkom <?php
    global 
    $user;
    print_r(
    $user);
    ?>"
    ;

    if (!
    $user->uid) {
        print 
    "<a href=\"?q=user\">Login of registreer</a>";

    ?>
    </div>
    Ik krijg dan allemaal errors terug. Enige ideeŽn?

    Altijd de foutmeldingen plaatsen .

    Code:
    <?php $GLOBALS['user']->name; ?>
    Probeer dit eens, hoewel ik niet weet of het zal werken, daar ik geen D7 install heb

  4. #4
    Approved 9-lifer Tyfius's schermafbeelding
    Lid sinds
    1/09/02
    Locatie
    Steenokkerzeel
    Berichten
    6.285
    iTrader
    0
    Dat hij hier de errors moet plaatsen was een goed idee. Dat hij $GLOBALS moet proberen dat is een minder goed idee.

    Maar omwille van zijn 2de post ga ik ervan uit dat hij daarmee bedoelde dat hij de oplossing gevonden had.

    Tot slot nog een tip: Drupal voorziet handige en veilige functies om links aan te maken. Kijk eens naar de functie l().

  5. #5
    Member dJeez's schermafbeelding
    Lid sinds
    17/07/02
    Locatie
    Sol System
    Berichten
    10.057
    iTrader
    1 (100%)
    En dan nog een opmerking. Wat je beschrijft lijkt mij eigenlijk ideaal om in een custom module te zetten, als block.

  6. #6
    Member DieselPower's schermafbeelding
    Lid sinds
    23/09/04
    Locatie
    2000
    Berichten
    5.744
    iTrader
    2 (100%)
    Het is niet de bedoeling om <?php ?> in zichzelf te nesten.

    Bekijk dit ook eens:
    PHP: String Operators - Manual
    Ik denk dat ge iets probeerde te doen in die trend?

    PHP: Variable scope - Manual
    2x global $user hoeft dus niet.

    Die tweede if() mag gewoon 'else' worden.

  7. #7
    Member BramVanroy's schermafbeelding
    Lid sinds
    14/08/10
    Locatie
    Diest
    Berichten
    2.286
    iTrader
    1 (100%)
    Bedankt voor de replies, maar ik had het dus opgelost (zie tweede post)

    Met jullie comments heb ik het versimpeld tot
    PHP-code:
    <?php
    global $user;
    if (
    $user->uid) {
        print 
    "Ingelogd als <span id=\"gebruiker\">$user->name</span>";

    else {
          print 
    "<a href=\"?q=user\">Login of registreer</a>";
    }    
    ?>
    Vraag: is dat erg dat ik nu die print_r vervangen heb? Ik snap het verschil niet goed tussen print en print_r.

    Tyfius, die functie l() krijg ik niet aan de praat. Ik heb het volgende geprobeerd, maar als je niet ingelogd bent wordt er niets weergegeven:

    PHP-code:
            <?php
    global $user;
    if (
    $user->uid) {
        print 
    "Ingelogd als ";
        
    print_r($user->name);

    else {  
    l(t('Registreer of login'), '?q=user', array('attributes' => array('title' => 'Klik hier om in te loggen of te registreren'))); }
    ?>
    Ik ben ook niet bekend met die functie, dus als jij de fout ziet mag je het me laten weten
    Laatst gewijzigd door BramVanroy; 9 september 2011 om 23:25

  8. #8
    Member DieselPower's schermafbeelding
    Lid sinds
    23/09/04
    Locatie
    2000
    Berichten
    5.744
    iTrader
    2 (100%)

  9. #9
    Member BramVanroy's schermafbeelding
    Lid sinds
    14/08/10
    Locatie
    Diest
    Berichten
    2.286
    iTrader
    1 (100%)
    Citaat Oorspronkelijk geplaatst door DieselPower Bekijk bericht
    Ik zit hier al langer dan vandaag en heb genoeg gegoogeld. Met comments als de uwe is niemand iets. Ge kunt dat proberen bij newbees op het forum, maar de iets oudere members kennen het concept Google wel.

  10. #10
    Member DieselPower's schermafbeelding
    Lid sinds
    23/09/04
    Locatie
    2000
    Berichten
    5.744
    iTrader
    2 (100%)
    Citaat Oorspronkelijk geplaatst door BramVroy Bekijk bericht
    Vraag: is dat erg dat ik nu die print_r vervangen heb? Ik snap het verschil niet goed tussen print en print_r.
    Citaat Oorspronkelijk geplaatst door DieselPower Bekijk bericht
    Citaat Oorspronkelijk geplaatst door BramVroy Bekijk bericht
    Ik zit hier al langer dan vandaag en heb genoeg gegoogeld. Met comments als de uwe is niemand iets. Ge kunt dat proberen bij newbees op het forum, maar de iets oudere members kennen het concept Google wel.
    Juist ja

  11. #11
    Member BramVanroy's schermafbeelding
    Lid sinds
    14/08/10
    Locatie
    Diest
    Berichten
    2.286
    iTrader
    1 (100%)
    Ge kunt ook iets Google maar er dan nog niet achterkomen wat wat juist doet hť. Bij print_r heb ik enkel gevonden dat dit vooral voor development- en tweakingissues gebruikt wordt, maar ja, daar weet ik nog niets mee. Daarom zeg ik ook 'ik snap het verschil niet goed' i.p.v. 'kan iemand me zeggen wat ... is'.

  12. #12
    Approved 9-lifer Tyfius's schermafbeelding
    Lid sinds
    1/09/02
    Locatie
    Steenokkerzeel
    Berichten
    6.285
    iTrader
    0
    De functie l() returned een string. Je moet die zelf nog afdrukken en je moet gebruik maken van de paden zonder "q=" mee te geven.
    Code:
    print l(t('Registreer'), 'user', array(...
    Alle PHP functies staan ook uitgelegd in de PHP manual natuurlijk. En print_r is daar geen uitzondering op.

    Maar, voor Drupal bestaat een beter alternatief. Als je de devel module installeert en activeert krijg je toegang tot extra functies. dpr is een wrapper rond dprint_r, maar dpm is een functie die je data zal weergeven als een message. Dus bovenaan je website waar de andere status messages kunnen komen.

  13. #13
    Member BramVanroy's schermafbeelding
    Lid sinds
    14/08/10
    Locatie
    Diest
    Berichten
    2.286
    iTrader
    1 (100%)
    Bedankt Tyfius, de uiteindelijke code die ik nu heb is:
    PHP-code:
    <div id="tologin">
    <?php
    global $user;
    if (
    $user->uid) {
        print 
    t('Ingelogd als ');
        print 
    l($user->name'user', array('attributes' => array('id' => array('gebruiker')))); 
        print 
    " | ";
        print 
    l(t('Uitloggen'), 'user/logout');

    else {
          print 
    l(t('Login of registreer'), 'user');
    }    
    ?>
    </div>

Discussie informatie

Users Browsing this Thread

Op dit moment bekijken 1 gebruikers deze discussie. (0 leden en 1 gasten)

Regels voor berichten

  • Je mag geen nieuwe discussies starten
  • Je mag niet reageren op berichten
  • Je mag geen bijlagen versturen
  • Je mag niet je berichten bewerken
  •