Boite de login
Auteur Sujet

Post 
Voilà je travaille à réunir deux blocs, un de login et un autre de statut en un seul.

C'est XPonline et xLogin.
Je ne suis cependant pas calé en php et j'ai une erreur avec mon nouveau bloc:

Citation :
Parse error: parse error, unexpected $ in /homepages/11/d115422658/htdocs/thema/includes/blocks/xPLine.php on line 189


Et voici le code:

  1. <?php 
  2. // ---------------------------------------------------------------------- 
  3. // Module: xPLine Block v1.0 
  4. // Author of modification: Anupthra http://www.t4all-design.net 
  5. // Originals Authors: Codebird Design & Net-Team.Net  
  6. // ---------------------------------------------------------------------- 
  7. // Original Author of file: Francisco Burzi 
  8. // Purpose of file: count number of guests/members online 
  9. // 20/09/2001 - modified sql to cope with there being 0 members online 
  10. // Blok stworzony na podstawie oryginalnego bloku wchodzacego w sklad PostNuke 
  11. // Blok stworzony przez Net-Team.Net http://www.net-team.net 
  12. // zawiera pliki: onlineXP.php, oraz pliki jezykowe: angielski i polski 
  13. // Wersja 1.1.1 
  14. // ----------------------------------------------------------------------------- 
  15. // 09.07.2003 
  16. // Changed again by Olaf Encke http://www.encke.net 
  17. // Added show "Members Registered", show "Name of Members online", 
  18. // show "New PrivMsgs", added "click on Member Name for PM", 
  19. // fixed guest counter 
  20. // included translations: english, german, french 
  21. // Version 1.1.4oe 
  22. // tested with PostNuke 0.761 
  23. // ---------------------------------------------------------------------- 
  24. // This module is free software. You can redistribute it and/or modify 
  25. // it under the terms of the GNU General Public License as published by 
  26. // the Free Software Foundation; either version 2 of the License. 
  27. // ---------------------------------------------------------------------- 
  28.  
  29. $blocks_modules['xPLine'] = array( 
  30.     'func_display' => 'blocks_xpline_block', 
  31.     'text_type' => 'XPLine', 
  32.     'text_type_long' => "User's XPLine", 
  33.     'allow_multiple' => false, 
  34.     'form_content' => false, 
  35.     'form_refresh' => false, 
  36.     'show_preview' => false 
  37. ); 
  38.  
  39. // Security 
  40. pnSecAddSchema('XPLineblock::', 'Block title::'); 
  41.  
  42. function blocks_xpline_block($row) 
  43.     global $HTTP_SERVER_VARS; 
  44.  
  45.     if (empty($row['title'])) 
  46.     { 
  47.         $row['title'] = 'XPLine'; 
  48.     } 
  49.     if (!pnSecAuthAction(0, 'XPLineblock::', "$row[title]::", ACCESS_READ)) 
  50.     { 
  51.         return; 
  52.     } 
  53.     if (!pnUserLoggedIn()) 
  54.     { 
  55.         $boxstuff  = '<center><form action="user.php" method="post">'; 
  56.         $boxstuff .= '<table border="0" cellspacing="0" cellpadding="1"><tr><td>'; 
  57.         $boxstuff .= '<span class="pn-normal">'._BLOCKNICKNAME.'</span></td></tr><tr><td>'; 
  58.         $boxstuff .= '<input type="text" name="uname" size="20" maxlength="25"></td></tr><tr><td>'; 
  59.         $boxstuff .= '<span class="pn-normal">'._BLOCKPASSWORD.'</span></td></tr><tr><td>'; 
  60.         $boxstuff .= '<input type="password" name="pass" size="20" maxlength="20">  '; 
  61.     if (pnConfigGetVar('seclevel') != 'High') { 
  62.       $boxstuff .= '<input type="checkbox" value="1" name="rememberme" id="rememberme" tabindex="0" />' . "\n"; 
  63.         $boxstuff .= ' <label for="rememberme">'._REMEMBERME.'</label>' . "\n"; 
  64.       $boxstuff .= '<br />' . "\n"; 
  65.     } 
  66.         $boxstuff .= '<input type="submit" value="'._LOGIN.'" /></td><td>'; 
  67.         $boxstuff .= '<input type="hidden" name="module" value="User" />'; 
  68.         $boxstuff .= '<input type="hidden" name="op" value="login" />'; 
  69.         $boxstuff .= '<input type="hidden" name="url" value="' .$HTTP_SERVER_VARS['REQUEST_URI'].'" /></td></tr><tr><td align="center">'; 
  70.         $boxstuff .= '<span class="pn-normal">'._ASREGISTERED.' '._GETPASSWORD.'</span></td><td width="1px"></form></td></tr></table></center>'; 
  71.             
  72.     } 
  73.     else 
  74.     { 
  75.         $boxstuff  = '- <a href="user.php">'._MYACCOUNT.'</a><br />'; 
  76.         $boxstuff .= '- <a href="user.php?op=edituser">'._USEREDIT.'</a><br />'; 
  77.         $boxstuff .= '- <a href="index.php?module=pnForum&func=prefs">'._FORUMEDIT.'</a><br />'; 
  78.         $boxstuff .= '- <a href="user.php?op=editcomm">'._COMMENTSEDIT.'</a><br />'; 
  79.         $boxstuff .= '- <a href="user.php?module=NS-User&op=logout"><b>'._LOGOUT.'</b></a>'; 
  80.     } 
  81.     list($dbconn) = pnDBGetConn(); 
  82.     $pntable = pnDBGetTables(); 
  83.  
  84.     $numusers = 0; 
  85.     $numguests = 0; 
  86.     $unames = array(); 
  87.  
  88.    $sessioninfocolumn = &$pntable['session_info_column']; 
  89.    $sessioninfotable = $pntable['session_info']; 
  90.     $activetime = time() - (pnConfigGetVar('secinactivemins') * 60); 
  91.     $query = "SELECT $sessioninfocolumn[uid], count( 1 ) 
  92.               FROM $sessioninfotable 
  93.               WHERE $sessioninfocolumn[lastused] > $activetime AND $sessioninfocolumn[uid] >0 
  94.               GROUP BY $sessioninfocolumn[uid] 
  95.          "; 
  96.    $result = $dbconn->Execute($query); 
  97.    $numusers = $result->RecordCount(); 
  98.     for (; !$result->EOF; $result->MoveNext())  
  99.    { 
  100.     $unames[] = pnUserGetVar('uname', $result->fields[0]);} 
  101.    $result->Close(); 
  102.     $query2 = "SELECT count( 1 ) 
  103.              FROM $sessioninfotable 
  104.               WHERE $sessioninfocolumn[lastused] > $activetime AND $sessioninfocolumn[uid] = '0' 
  105.               GROUP BY $sessioninfocolumn[ipaddr] 
  106.              "; 
  107.     $result2 = $dbconn->Execute($query2); 
  108.     $numguests = $result2->RecordCount(); 
  109.     $result2->Close(); 
  110.  
  111. //    $sessioninfocolumn = &$pntable['session_info_column']; 
  112. //    $sessioninfotable = $pntable['session_info']; 
  113. //    $activetime = time() - (pnConfigGetVar('secinactivemins') * 60); 
  114. //    $query = "SELECT $sessioninfocolumn[uid], 
  115. //              COUNT(1) 
  116. //              FROM $sessioninfotable 
  117. //              WHERE $sessioninfocolumn[lastused] > $activetime 
  118. //              GROUP BY $sessioninfocolumn[uid]"; 
  119. //    $result = $dbconn->Execute($query); 
  120. // 
  121. //     
  122. //    for (; !$result->EOF; $result->MoveNext()) { 
  123. //    $unames[] = pnUserGetVar('uname', $result->fields[0]); 
  124. //        list($type, $num) = $result->fields; 
  125. //        if ($type == 0) { 
  126. //            $numguests = $num; 
  127. //        } else { 
  128. //            $numusers++; 
  129. //        } 
  130. //    } 
  131.     $result = $dbconn->Execute("SELECT COUNT(*) FROM $pntable[users] where pn_uname NOT LIKE 'Anonymous'"); 
  132.     list($numrows) = $result->fields; 
  133.     $result->Close(); 
  134.  
  135.     // Pluralise 
  136.     if ($numguests == 1) { 
  137.         $guests = _GUEST; 
  138.     } else { 
  139.         $guests = _GUESTS; 
  140.     } 
  141.     if ($numusers == 1) { 
  142.         $users = _MEMBER; 
  143.     } else { 
  144.         $users = _MEMBERS; 
  145.     } 
  146.  
  147.     $content = "<span class=\"pn-normal\"><img src=\"images/blocks/allmem.gif\" alt=\"\" align=\"absmiddle\"> "._MEMBERS.": ".pnVarPrepForDisplay($numrows)."<br/><img src=\"images/blocks/invt.gif\" alt=\"\" align=\"absmiddle\"> ".pnVarPrepForDisplay($guests)." "._ONLNE.": ".pnVarPrepForDisplay($numguests)."<br/><img src=\"images/blocks/miemb.gif\" alt=\"\" align=\"absmiddle\" vspace=\"2\"> ".pnVarPrepForDisplay($users)." "._ONLNE.": ".pnVarPrepForDisplay($numusers)."<br />\n"; 
  148. //Show online users 
  149. if ($numusers > 0) { 
  150.     $boxstuff .= "<table align=\"center\" width=\"100%\" bgcolor=\"".$GLOBALS['bgcolor2']."\"><tr><td align=\"center\"><b>"; 
  151.     foreach ($unames as $uname) { $content .= " <a href=\"modules.php?op=modload&name=Messages&file=replypmsg&send=1&uname=".pnVarPrepForDisplay($uname)."\">".pnVarPrepForDisplay($uname)."</a>   "; } 
  152.     $boxstuff .="</b></td></tr></table>"; 
  153.     if (pnUserLoggedIn()) { 
  154.         $boxstuff .= '<br /><img src=images/blocks/authors.gif align=absmiddle>'._YOUARELOGGED.' <b>' .pnUserGetVar('uname') . '</b>.<br />'; 
  155.         $column = &$pntable['priv_msgs_column']; 
  156.         $result2 = $dbconn->Execute("SELECT count(*) FROM $pntable[priv_msgs] WHERE $column[to_userid]=" . pnUserGetVar('uid')); 
  157.         list($numrow) = $result2->fields; 
  158.            // get unread messages 
  159.     $result3 = $dbconn->Execute("SELECT count(*) FROM $pntable[priv_msgs] WHERE $column[to_userid]=" . pnUserGetVar('uid') . " AND $column[read_msg]='0'"); 
  160.            list($unreadrow) = $result3->fields; 
  161.         if ($numrow == 0) { 
  162.             $boxstuff .= '<br /></span>'; 
  163.         } else { 
  164.             $boxstuff .= "<br /><img src=images/blocks/email.gif align=absmiddle vspace=2> "._YOUHAVE." (<a class=\"pn-normal\" href=\"modules.php?op=modload&name=Messages&file=index\">".pnVarPrepForDisplay($numrow)."</a>|<a class=\"pn-normal\" href=\"modules.php?op=modload&name=Messages&file=index\" title=\""._PRIVATEMSGNEW."\"><b>".pnVarPrepForDisplay($unreadrow)."</b></a>) "; 
  165.             if ($numrow==1) {  
  166.                $boxstuff .= _PRIVATEMSG ;      
  167.            } 
  168.            elseif ($numrow>1) {  
  169.                $boxstuff .= _PRIVATEMSGS ; 
  170.            } 
  171.            $boxstuff .= "</span><br />"; 
  172.         } 
  173.     } else  
  174.     { 
  175.         $boxstuff .= '<br /><img src=images/blocks/anoni.gif align=absmiddle vspace=2> '._YOUAREANON.'</span><br />'; 
  176.     } 
  177.     if (empty($row['title']))  
  178.     { 
  179.         $row['title'] = _WHOSONLINE; 
  180.       $row['content'] = $boxstuff; 
  181.         return themesideblock($row); 
  182.     } 
  183. ?> 


Alors si quelqu'un pouvait être sympa pour me trouver la source du problème car j'ai beau chercher je ne trouve pas!
Je cherche à réaliser ce bloc pour mon site T4All.

Co-webmestre de PostNuke-France.

Avant toutes questions, veuillez lire les régles à suivre.
Données personnelles Accueil

Post 
tu rajoutes une accolade fermante à la fin et le tour est joué. J'ai, par contre, pas réussi à le mettre en place... car j'ai pas voulu installer ces modules.

Ca passe à la compilation en tout cas !

PS: quand on a un gros fichier, mieux vaut mettre un lien car les numeros de lignes sont long à retirer...


Gilles  ><>°
Données personnelles Accueil

Post 
Gilles a écrit :

PS: quand on a un gros fichier, mieux vaut mettre un lien car les numeros de lignes sont long à retirer...


On ne me verra pas dire ça souvent mais IE a un avantage sur Firefox... pour copier du code du forum dans un éditeur de texte, mieux vaut le faire avec IE, ce dernier ne prend pas les numéros de ligne.

Cette astuce est évidemment temporaire... je travaille sur mon propre compilateur de bbcode : pncBBCode

icon_wink




Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
Bien je n'ai plus l'erreur mais le bloc ne s'affiche pas!

Bon sang mais c'est pas possible de se lancer dans ce truc sans y connaitre! Je penser que j'arriverais à un résultat somme toute assez satisfaisant mais ce n'est pas le cas!

icon_rolleyes

Co-webmestre de PostNuke-France.

Avant toutes questions, veuillez lire les régles à suivre.
Données personnelles Accueil

Post 
Oui, j'essasie aussi de faire marcher ton code... mais il y a des choses qui me paraissent bizarre ou inutile: l'accolade ligne 87 du code ci-dessous ???

je cherche afin de t'aider à trouver la soluce...





Gilles  ><>°
Données personnelles Accueil

Post 
Merci Gilles pour ton aide.

Comme déjà dit je ne connais aps grand chose en php, aussi par amnque de temps d'apprendre, et je galère pour trouver l'erreur.

Si j'ai une piste je le ferais savoir ici. J'en appelle donc au bon vouloir des membres pour leur aide.

D'autant que ce bloc pourrait ensuite profiter à la communauté. Les crédits portant sur les blocs originaux restent bien sur entier. Je ne m'en attribue surtout pas la paternité et je rajouterais bien sur les noms de ceux qui ont participés à sa mise au point.

Co-webmestre de PostNuke-France.

Avant toutes questions, veuillez lire les régles à suivre.
Données personnelles Accueil

Post 
Ligne 83... y'a une accolade qui s'ouvre pour rien.....

  1.         $boxstuff .= '- <a href="user.php?module=NS-User&op=logout"><b>'._LOGOUT.'</b></a>'; 
  2.     } 
  3. { // <------------ 


icon_wink




Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
icon_mad Raaahhhhhh! En plus c'est moi qui est rajouté cette accollade qu'en j'ai eu la première erreur sur le bloc!

Je l'ai complétement oublié et je ne l'ai pas retirée!

Donc sans elle ca va un peu mieux car j'ai la première partie de mon bloc qui s'affiche!
Par contre la seconde partie non: cette partie commence à la ligne 88.

Il devrait y avoir le nombre total de personne sur le site, de visiteurs, de membres en ligne, le nom des membres et comment vous êtes identifié!

Tout ca n'apparait pas!

Le bloc est visible en haut à gauche du site T4All Design

Je ne comprends pas aussi pourquoi le bloc va chercher la traduction des variables en anglais du fichier xlogin.php et non pas celles de mon fichier XPLine.php en francais. Ce fichier est pourtant bien à sa place.

Pas facile à mettre au point mais j'espère en savoir plus ensuite et mieux comprendre mes erreurs.

Co-webmestre de PostNuke-France.

Avant toutes questions, veuillez lire les régles à suivre.
Données personnelles Accueil

Post 
as-tu avancé ?? peux-t-on encore faire quelquechose ? J'essaie toujours de faire fonctionner ce bloc... tiens nous au courant ! as-tu réussi a le rajouter dans le menu quand on veux insérer un bloc ??


Gilles  ><>°
Données personnelles Accueil
Post 
J'étais absent tout ce w-e et je n'ai donc pas avancé.

J'ai réussi à le faire fonctionner partiellement. J'en suis pour l'instant toujourrs au même point signalé dans mon dernier message.

Il ne provoqie donc pas de bug mais il n'affiche pas l'intégralité du bloc, à savoir la deuxième partie du code qui permet d'afficher le nbre de connectés ainsi que le nom du membre ou des membres connectés.

Co-webmestre de PostNuke-France.

Avant toutes questions, veuillez lire les régles à suivre.
Données personnelles Accueil