Thread: [Drupal] Login

  1. #1

    Registered
    14/08/10
    Location
    Diest
    Posts
    2,419
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    8/16

    [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?
    Last edited by -BVR-; 09-09-2011 at 19:22.
    no votes  

  2. #2

    Registered
    14/08/10
    Location
    Diest
    Posts
    2,419
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    8/16
    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>";

    ?>
    Last edited by -BVR-; 09-09-2011 at 21:53.
    no votes  

  3. #3
    demon326's Avatar
    Registered
    18/04/03
    Location
    Hasselt
    Posts
    14,855
    iTrader
    23 (100%)
    Mentioned
    0 Post(s)
    Reputation
    10/79
    Quote Originally Posted by BramVroy View Post
    This quote is hidden because you are ignoring this member. Show
    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
    no votes  

  4. #4
    Tyfius's Avatar
    Registered
    01/09/02
    Location
    Peutie
    Posts
    7,664
    iTrader
    0
    Mentioned
    4 Post(s)
    Reputation
    13/105
    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().
    Vanaf nu gaan we verder op BeyondGaming!
    In deze thread wordt uitgelegd hoe je jouw account kan migreren.
    no votes  

  5. #5
    dJeez's Avatar
    Registered
    17/07/02
    Location
    Sol System
    Posts
    10,064
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    27/78
    En dan nog een opmerking. Wat je beschrijft lijkt mij eigenlijk ideaal om in een custom module te zetten, als block.
    PSN: dJeezBE - Delicious bookmarks
    Disclaimer: I am currently suffering from severe CSD (Compulsive Sarcasm Disorder). - L'onion fait la farce - Facile largire de alieno
    Pastafarian by choice
    no votes  

  6. #6
    DieselPower's Avatar
    Registered
    23/09/04
    Location
    2000
    Posts
    5,759
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    17/23
    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.
    "Hookers and drunks instinctively understand that common sense is the enemy of romance." - Sebastian Horsley
    no votes  

  7. #7

    Registered
    14/08/10
    Location
    Diest
    Posts
    2,419
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    8/16
    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
    Last edited by -BVR-; 10-09-2011 at 00:25.
    no votes  

  8. #8
    DieselPower's Avatar
    Registered
    23/09/04
    Location
    2000
    Posts
    5,759
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    17/23
    "Hookers and drunks instinctively understand that common sense is the enemy of romance." - Sebastian Horsley
    no votes  

  9. #9

    Registered
    14/08/10
    Location
    Diest
    Posts
    2,419
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    8/16
    Quote Originally Posted by DieselPower View Post
    This quote is hidden because you are ignoring this member. Show
    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.
    no votes  

  10. #10
    DieselPower's Avatar
    Registered
    23/09/04
    Location
    2000
    Posts
    5,759
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    17/23
    Quote Originally Posted by BramVroy View Post
    This quote is hidden because you are ignoring this member. Show
    Vraag: is dat erg dat ik nu die print_r vervangen heb? Ik snap het verschil niet goed tussen print en print_r.
    Quote Originally Posted by DieselPower View Post
    This quote is hidden because you are ignoring this member. Show
    Quote Originally Posted by BramVroy View Post
    This quote is hidden because you are ignoring this member. Show
    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
    "Hookers and drunks instinctively understand that common sense is the enemy of romance." - Sebastian Horsley
    no votes  

  11. #11

    Registered
    14/08/10
    Location
    Diest
    Posts
    2,419
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    8/16
    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'.
    no votes  

  12. #12
    Tyfius's Avatar
    Registered
    01/09/02
    Location
    Peutie
    Posts
    7,664
    iTrader
    0
    Mentioned
    4 Post(s)
    Reputation
    13/105
    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.
    Vanaf nu gaan we verder op BeyondGaming!
    In deze thread wordt uitgelegd hoe je jouw account kan migreren.
    no votes  

  13. #13

    Registered
    14/08/10
    Location
    Diest
    Posts
    2,419
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    8/16
    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>
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in