Changeset 204

Show
Ignore:
Timestamp:
08/27/04 20:01:28 (9 years ago)
Author:
benoitg
Message:

2004-08-27 Benoit Gr�goire <bock@…>

  • SSL support and RSS improvement
  • Last commit tested with mysql support
Location:
trunk/wifidog-auth
Files:
2 added
8 modified

Legend:

Unmodified
Added
Removed
  • trunk/wifidog-auth/ChangeLog

    r200 r204  
    11# $Header$ 
    2  
     22004-08-27 Benoit Gr�goire  <bock@step.polymtl.ca> 
     3        * SSL support and RSS improvement 
     4        * Last commit tested with mysql support 
     5         
    362004-08-24 Pascal Leclerc  <pascal@plec.ca> 
    47        * wifidog/admin/user_log.php: Add total to incoming and outgoing 
  • trunk/wifidog-auth/wifidog/classes/AbstractDb.php

    r167 r204  
    2323   */ 
    2424 
    25 /** Classe statique, permet d'abstraire la connexion � la base de donn�e 
    26  */ 
    27 class AbstractDb 
    28 { 
    29   function connexionDb($db_name) 
    30   { 
    31     if ($db_name == NULL) 
    32       { 
    33         $db_name = CONF_DATABASE_NAME; 
    34       } 
     25/* Select the appropriate abstraction layer */ 
     26require_once BASEPATH.'classes/'.CONF_DBMS; 
    3527 
    36     $ptr_connexion = mysql_connect(CONF_DATABASE_HOST, CONF_DATABASE_USER, CONF_DATABASE_PASSWORD); 
    37         
    38     if ($ptr_connexion == FALSE) 
    39       { 
    40         echo "<p class=warning>Unable to connect to database on ".CONF_DATABASE_HOST."</p>"; 
    41         return FALSE; 
    42       } 
    43  
    44     if(!mysql_select_db($db_name)) 
    45       { 
    46         echo "<p class=warning>Unable to select the database: $db_name</p>"; 
    47         exit(); 
    48         return FALSE; 
    49       } 
    50  
    51     return $ptr_connexion; 
    52   } 
    53  
    54   /* An equivalent to pg_fetch_all */ 
    55   function mysql_fetch_all($result) 
    56   { 
    57     $retval = Array(); 
    58    
    59     for($i=0;$row=mysql_fetch_array($result);$i++) 
    60       { 
    61         $retval[$i]=$row; 
    62       } 
    63     return $retval; 
    64   } 
    65  
    66   /**Ex�cute la requ�te, et retourne le r�sultat.  Affiche l'erreur s'il y a lieu. 
    67    @param $sql Requ�te SELECT � ex�cuter 
    68    @param $returnResults un array � deux dimensions des rang�es de r�sultats, NULL si aucun r�sultats. 
    69    @param $debug Si TRUE, affiche les r�sultats bruts de la requ�te 
    70    @return TRUE si la requete a �t� effectu�e avec succ�s, FALSE autrement. 
    71   */ 
    72   function ExecSql($sql, & $returnResults, $debug=false) 
    73   { 
    74     $connection = $this -> connexionDb(NULL); 
    75     if ($debug == TRUE) 
    76       { 
    77         echo "<hr /><p>ExecSql(): DEBUG: Requ�te:<br>\n<pre>$sql</pre></p>\n<p>Plan:<br />\n"; 
    78         $result = mysql_query("EXPLAIN ".$sql, $connection); 
    79  
    80         $plan_array = $this->mysql_fetch_all($result); 
    81 //echo "<p><pre>".      print_r ($plan_array)."</pre></p>"; 
    82         foreach ($plan_array as $plan_line) 
    83         { 
    84           echo "<table class='spreadsheet'>\n"; 
    85           foreach ($plan_line as $key => $val) 
    86           { 
    87             if(!is_numeric($key)) 
    88               { 
    89                 echo "<tr class='spreadsheet'><TD class='spreadsheet'>$key</td><td class='spreadsheet'>$val</td></tr>\n"; 
    90               } 
    91           } 
    92           echo "</table>\n"; 
    93            
    94         } 
    95         echo "</p>\n"; 
    96       } 
    97  
    98     $sql_starttime = microtime(); 
    99     $result = mysql_query($sql, $connection); 
    100     $sql_endtime = microtime(); 
    101  
    102     global $sql_total_time; 
    103     global $sql_num_select_querys; 
    104     $sql_num_select_querys ++; 
    105     $parts_of_starttime = explode(' ', $sql_starttime); 
    106     $sql_starttime = $parts_of_starttime[0] + $parts_of_starttime[1]; 
    107     //echo "sql_starttime: $sql_starttime <br />\n"; 
    108  
    109     $parts_of_endtime = explode(' ', $sql_endtime); 
    110     $sql_endtime = $parts_of_endtime[0] + $parts_of_endtime[1]; 
    111     //echo "sql_endtime: $sql_endtime <br />\n"; 
    112     $sql_timetaken = $sql_endtime - $sql_starttime; 
    113     //echo "sql_timetaken: $sql_timetaken <br />\n"; 
    114  
    115     $sql_total_time = $sql_total_time + $sql_timetaken; 
    116  
    117     if ($debug == TRUE) 
    118       { 
    119         echo "<P>Temps �coul� pour la requ�te SQL: $sql_timetaken seconde(s)</P>\n"; 
    120       } 
    121  
    122     if ($result == FALSE) 
    123       { 
    124         echo "<p class=warning>ExecSql(): ERREUR: Lors de l'ex�cution de la requ�te SQL:<br>$sql</p>"; 
    125         echo "<p class=warning>L'erreur est:<br>".mysql_error($connection)."</p>"; 
    126         $returnResults = NULL; 
    127         $return_value = FALSE; 
    128       } 
    129     else 
    130       if (mysql_num_rows($result) == 0) 
    131         { 
    132           $returnResults = null; 
    133           $return_value = TRUE; 
    134         } 
    135       else 
    136         { 
    137           $i = 0; 
    138           while ($row = mysql_fetch_assoc($result)) 
    139             { 
    140               $returnResults[$i] = $row; 
    141               $i ++; 
    142               $return_value = TRUE; 
    143             } 
    144           if ($debug) 
    145             { 
    146               $num_rows = mysql_num_rows($result); 
    147               echo "<p>ExecSql(): DEBUG: Il y a $num_rows r�sultats:<br><TABLE class='spreadsheet'>"; 
    148               if ($returnResults != NULL) 
    149                 { 
    150                   //On affiche l'en-t�te des colonnes une seule fois*/ 
    151                   echo "<TR class='spreadsheet'>"; 
    152                   while (list ($col_name, $col_content) = each($returnResults[0])) 
    153                     { 
    154                       echo "<TH class='spreadsheet'>$col_name</TH>"; 
    155                     } 
    156                   echo "</TR>\n"; 
    157                 } 
    158               while ($returnResults != NULL && list ($key, $value) = each($returnResults)) 
    159                 { 
    160                   echo "<TR class='spreadsheet'>"; 
    161                   while ($value != NULL && list ($col_name, $col_content) = each($value)) 
    162                     { 
    163                       echo "<TD class='spreadsheet'>$col_content</TD>"; 
    164                     } 
    165                   echo "</TR>\n"; 
    166                 } 
    167               reset($returnResults); 
    168               echo "</TABLE></p><hr />\n"; 
    169  
    170             } 
    171         } 
    172     return $return_value; 
    173   } 
    174  
    175   /**Retourne une chaine de caract�re dans un format compatible pour stockage dans la bd 
    176    @param $chaine La cha�ne de caract�re � nettoyer 
    177    @return La cha�ne nettoy�e 
    178   */ 
    179   function EscapeString($chaine) 
    180   { 
    181     if (!get_magic_quotes_gpc()) 
    182       { 
    183         return mysql_escape_string($chaine); 
    184       } 
    185     else 
    186       { 
    187         return ($chaine); 
    188       } 
    189   } 
    190  
    191   /** Nettoye une chaine de caract�re dans un format compatible bytea. 
    192    @param $chaine La cha�ne de caract�re � nettoyer 
    193    @return La cha�ne nettoy�e (escaped string) 
    194   */ 
    195  
    196   function EscapeBinaryString($chaine) 
    197   { 
    198     return $this->EscapeString($chaine); 
    199  
    200   } 
    201  
    202   /**Ex�cute une requ�te pour laquelle on pr�voit un r�sultat UNIQUE.  Si le r�sultat n'est pas unique, un avertissement est affich� 
    203    @param $sql Requ�te SELECT � ex�cuter 
    204    @param $retVal un array des colonnes de la rang�e retourn�e, NULL si aucun r�sultats. 
    205    @param $debug Si TRUE, affiche les r�sultats bruts de la requ�te 
    206    @return TRUE si la requete a �t� effectu�e avec succ�s, FALSE autrement. 
    207   */ 
    208   function ExecSqlUniqueRes($sql, & $retVal, $debug=false) 
    209   { 
    210     $retval = TRUE; 
    211     if ($debug == TRUE) 
    212       { 
    213         echo "<hr /><p>Requ�te: <br><pre>$sql</pre></p>"; 
    214       } 
    215     $connection = $this -> connexionDb(NULL); 
    216  
    217     $sql_starttime = microtime(); 
    218     $result = mysql_query($sql, $connection); 
    219     $sql_endtime = microtime(); 
    220  
    221     global $sql_total_time; 
    222     global $sql_num_select_unique_querys; 
    223     $sql_num_select_unique_querys ++; 
    224  
    225     $parts_of_starttime = explode(' ', $sql_starttime); 
    226     $sql_starttime = $parts_of_starttime[0] + $parts_of_starttime[1]; 
    227     //echo "sql_starttime: $sql_starttime <br />\n"; 
    228  
    229     $parts_of_endtime = explode(' ', $sql_endtime); 
    230     $sql_endtime = $parts_of_endtime[0] + $parts_of_endtime[1]; 
    231     //echo "sql_endtime: $sql_endtime <br />\n"; 
    232     $sql_timetaken = $sql_endtime - $sql_starttime; 
    233     //echo "sql_timetaken: $sql_timetaken <br />\n"; 
    234  
    235     $sql_total_time = $sql_total_time + $sql_timetaken; 
    236  
    237     if ($debug == TRUE) 
    238       { 
    239         echo "<P>Temps �coul� pour la requ�te SQL: $sql_timetaken seconde(s)</P>\n"; 
    240       } 
    241  
    242     if ($result == FALSE) 
    243       { 
    244         echo "<p class=warning>ExecSqlResUnique(): ERREUR: Lors de l'ex�cution de la requ�te SQL:<br>$sql</p>"; 
    245         echo "<p class=warning>L'erreur est:<br>".mysql_error($connection)."</p>"; 
    246         $retval = FALSE; 
    247       } 
    248     else 
    249       { 
    250         if (mysql_num_rows($result) > 1) 
    251           { 
    252             echo "<p class=warning>ExecSqlResUnique(): ERREUR: Lors de l'ex�cution de la requ�te SQL:<br>$sql</p>"; 
    253             echo "<p>Il y a ".mysql_num_rows($result)." r�sultats alors qu'il ne devrait y en avoir qu'un seul.</p>"; 
    254             $retval = FALSE; 
    255           } 
    256         $retVal = mysql_fetch_assoc($result); 
    257         if ($debug) 
    258           { 
    259             echo "<p class=warning>ExecSqlResUnique(): DEBUG: R�sultats:<br>"; 
    260             print_r($retVal); 
    261             echo "</p><hr />\n"; 
    262           } 
    263       } 
    264     return $retval; 
    265   } 
    266  
    267   /**Ex�cute une requ�te visant � modifier la base de donn�e, et donc ne retournant aucun r�sultat. 
    268    @param $sql Requ�te SELECT � ex�cuter 
    269    @param $debug Si TRUE, affiche la requ�te brute 
    270   */ 
    271   function ExecSqlUpdate($sql, $debug=false) 
    272   { 
    273     $connection = $this -> connexionDb(NULL); 
    274     if ($debug == TRUE) 
    275       { 
    276         echo "<hr /><p>ExecSqlUpdate(): DEBUG: Requ�te:<br>\n<pre>$sql</pre></p>\n"; 
    277       } 
    278  
    279     global $sql_num_update_querys; 
    280     $sql_num_update_querys ++; 
    281  
    282     $sql_starttime = microtime(); 
    283     $result = mysql_query($sql, $connection); 
    284     $sql_endtime = microtime(); 
    285  
    286     global $sql_total_time; 
    287     $parts_of_starttime = explode(' ', $sql_starttime); 
    288     $sql_starttime = $parts_of_starttime[0] + $parts_of_starttime[1]; 
    289     //echo "sql_starttime: $sql_starttime <br />\n"; 
    290  
    291     $parts_of_endtime = explode(' ', $sql_endtime); 
    292     $sql_endtime = $parts_of_endtime[0] + $parts_of_endtime[1]; 
    293     //echo "sql_endtime: $sql_endtime <br />\n"; 
    294     $sql_timetaken = $sql_endtime - $sql_starttime; 
    295     //echo "sql_timetaken: $sql_timetaken <br />\n"; 
    296  
    297     $sql_total_time = $sql_total_time + $sql_timetaken; 
    298  
    299     if ($debug == TRUE) 
    300       { 
    301         echo "<P>".mysql_affected_rows()." rang�es affect�es par la requ�te SQL<br>\n"; 
    302         echo "Temps �coul�: $sql_timetaken seconde(s)</P>\n"; 
    303       } 
    304  
    305     if ($result == FALSE) 
    306       { 
    307         echo "<p class=warning>ExecSqlResUnique(): ERREUR: Lors de l'ex�cution de la requ�te SQL:<br><pre>$sql</pre></p>"; 
    308         echo "<p class=warning>L'erreur est:<br>".mysql_error()."</p>"; 
    309       } 
    310     else 
    311       { 
    312         return $result; 
    313       } 
    314   } 
    315  
    316  
    317 } /* end class AbstractDb */ 
    31828?> 
  • trunk/wifidog-auth/wifidog/config.php

    r193 r204  
    44define('CONF_DATABASE_NAME',   'wifidog'); 
    55define('CONF_DATABASE_USER',   'root'); 
    6 define('CONF_DATABASE_PASSWORD',   ''); 
     6define('CONF_DATABASE_PASSWORD',   'tartempion'); 
    77 
     8/*************************** Common setup option.  Adjust to suit your environment *******************************/ 
     9 
     10/* The SYSTEM_PATH, must be set to the url path needed to reach the wifidog directory.  Normally '/' or '/wifidog/', depending on where configure your document root.  Gateway configuration must match this as well */ 
     11define('SYSTEM_PATH', '/'); 
     12/**< Set this to true if your server has SSL available, otherwise, passwords will be transmitted in clear text over the air */ 
     13define('SSL_AVAILABLE', true);  
     14define('HOTSPOT_NETWORK_NAME', '�le sans fil'); 
     15define('HOTSPOT_NETWORK_URL', 'http://www.ilesansfil.org/'); 
     16define('UNKNOWN_HOSTPOT_NAME', 'Unknown HotSpot'); 
     17 
     18define('VALIDATION_EMAIL_FROM_ADDRESS', 'validation@yourdomain.org'); 
     19define('VALIDATION_EMAIL_SUBJECT', HOTSPOT_NETWORK_NAME.' new user validation'); 
     20define('LOST_PASSWORD_EMAIL_SUBJECT', HOTSPOT_NETWORK_NAME.' new password request'); 
     21define('LOST_USERNAME_EMAIL_SUBJECT', HOTSPOT_NETWORK_NAME.' lost username request'); 
     22/* RSS support.  If set to true, MAGPIERSS must be installed in MAGPIE_REL_PATH */ 
     23define('RSS_SUPPORT', true);  
    824/* Normally, the database cleanup routines will be called everytime a portal page is displayed.  If you set this to true, you must set a cron job on the server which will execute the script cron/cleanup.php. */ 
    925define('CONF_USE_CRON_FOR_DB_CLEANUP', false); 
    1026 
    11 define("SYSTEM_PATH", '/wifidog/'); 
    12 define("HOTSPOT_NETWORK_NAME", 'a WifiDog community network'); 
    13 define("HOTSPOT_NETWORK_URL", 'http://www.ilesansfil.org/wiki/WiFiDog'); 
    14 define('UNKNOWN_HOSTPOT_NAME', 'Unknown HotSpot'); 
     27/** The next two items are constants, do not edit */ 
     28define('DBMS_MYSQL','AbstractDbMySql.php'); 
     29define('DBMS_POSTGRES','AbstractDbPostgres.php'); 
    1530 
    16 define("VALIDATION_EMAIL_FROM_ADDRESS", 'validation@yourdomain.org'); 
    17 define("VALIDATION_EMAIL_SUBJECT", HOTSPOT_NETWORK_NAME.' new user validation'); 
    18 define("LOST_PASSWORD_EMAIL_SUBJECT", HOTSPOT_NETWORK_NAME.' new password request'); 
    19 define("LOST_USERNAME_EMAIL_SUBJECT", HOTSPOT_NETWORK_NAME.' lost username request'); 
    20 define("BASE_URL_PATH",  'http://' . $_SERVER['HTTP_HOST'] . SYSTEM_PATH); 
    21 define('RSS_SUPPORT', true); //If true, MAGPIERSS must be installed in MAGPIE_REL_PATH 
     31/** Defines which Database management software you want to use */ 
     32define('CONF_DBMS',DBMS_MYSQL); 
    2233 
    2334/***** You should normally not have to edit anything below this ******/ 
    2435define('MAGPIE_REL_PATH',  'lib/magpie/'); 
    25 define("SMARTY_REL_PATH",  'lib/smarty/'); 
    26 define('NETWORK_RSS_URL', 'http://wifinetnews.com/index.rdf'); 
     36define('SMARTY_REL_PATH',  'lib/smarty/'); 
     37//define('NETWORK_RSS_URL', 'http://wifinetnews.com/index.rdf'); 
     38define('NETWORK_RSS_URL', 'http://patricktanguay.com/isf/atom.xml'); 
    2739define('UNKNOWN_HOTSPOT_RSS_URL', 'http://slashdot.org/index.rss'); 
    2840 
     
    4557define('WIFIDOG_LOGO_BANNER_NAME', 'wifidog_logo_banner.png'); 
    4658 
    47 define("DEFAULT_NODE_ID", 'default'); 
     59define('DEFAULT_NODE_ID', 'default'); 
    4860?> 
  • trunk/wifidog-auth/wifidog/include/common.php

    r174 r204  
    5757 
    5858/* This section deals with PATHs */ 
     59define('BASE_URL_PATH', 'http://' . $_SERVER['HTTP_HOST'] . SYSTEM_PATH); 
     60if(SSL_AVAILABLE) 
     61  { 
     62    define('BASE_SSL_PATH', 'https://' . $_SERVER['HTTP_HOST'] . SYSTEM_PATH); 
     63  } 
     64else 
     65  { 
     66    define('BASE_SSL_PATH',BASE_URL_PATH); 
     67  } 
     68   
    5969if(empty($_REQUEST['gw_id'])) 
    6070  { 
     
    131141function find_local_content_url($filename) 
    132142{ 
    133   if (is_file(NODE_CONTENT_URL.$filename)) 
     143//echo "find_local_content_url():  Looking for:                  ".NODE_CONTENT_PHP_RELATIVE_PATH.$filename."<br>\n"; 
     144  if (is_file(NODE_CONTENT_PHP_RELATIVE_PATH.$filename)) 
    134145    { 
    135       return NODE_CONTENT_URL.$filename; 
     146       $retval = NODE_CONTENT_URL.$filename; 
    136147    } 
    137148  else 
    138149    { 
    139       return DEFAULT_CONTENT_URL.$filename; 
     150      $retval = DEFAULT_CONTENT_URL.$filename; 
    140151    } 
     152    //echo "find_local_content_url():  Returned:                  $retval<br>\n"; 
     153    return $retval; 
    141154} 
    142155?> 
  • trunk/wifidog-auth/wifidog/include/user_management_menu.php

    r183 r204  
    3232  $retval .= "<ul>\n"; 
    3333 
    34     $retval .= "<li><a href='".BASE_URL_PATH."".USER_MANAGEMENT_PAGE."?action=validation_email_form'>"._('Send validation email again')."</a></li>\n"; 
    35     $retval .= "<li><a href='".BASE_URL_PATH."".USER_MANAGEMENT_PAGE."?action=lost_username_form'>"._('Lost my username')."</a></li>\n"; 
    36     $retval .= "<li><a href='".BASE_URL_PATH."".USER_MANAGEMENT_PAGE."?action=lost_password_form'>"._('Lost my password')."</a></li>\n"; 
    37     $retval .= "<li><a href='".BASE_URL_PATH."".USER_MANAGEMENT_PAGE."?action=change_password_form'>"._('Change my password')."</a></li>\n";  
    38     $retval .= "<li><a href='".BASE_URL_PATH."".USER_MANAGEMENT_PAGE."?action=register_new_account_form'>"._('Register a new user')."</a></li>\n";  
     34    $retval .= "<li><a href='".BASE_SSL_PATH."".USER_MANAGEMENT_PAGE."?action=validation_email_form'>"._('Send validation email again')."</a></li>\n"; 
     35    $retval .= "<li><a href='".BASE_SSL_PATH."".USER_MANAGEMENT_PAGE."?action=lost_username_form'>"._('Lost my username')."</a></li>\n"; 
     36    $retval .= "<li><a href='".BASE_SSL_PATH."".USER_MANAGEMENT_PAGE."?action=lost_password_form'>"._('Lost my password')."</a></li>\n"; 
     37    $retval .= "<li><a href='".BASE_SSL_PATH."".USER_MANAGEMENT_PAGE."?action=change_password_form'>"._('Change my password')."</a></li>\n";  
     38    $retval .= "<li><a href='".BASE_SSL_PATH."".USER_MANAGEMENT_PAGE."?action=register_new_account_form'>"._('Register a new user')."</a></li>\n";  
    3939  
    4040  $retval .= "</ul>\n"; 
  • trunk/wifidog-auth/wifidog/index.php

    r152 r204  
    3232    echo "<h1>Wifidog authentication server for ". HOTSPOT_NETWORK_NAME ."</h1>\n"; 
    3333    echo "<ul>\n"; 
    34     echo "<li><a href='./login/index.php?gw_id=default&gw_address=127.0.0.1&gw_port=80'>Login (demo)</a></li>\n"; 
     34    echo "<li><a href='".BASE_SSL_PATH."login/index.php?gw_id=default&gw_address=127.0.0.1&gw_port=80'>Login (demo)</a></li>\n"; 
    3535    echo "<li><a href='./portal/index.php?gw_id=default'>Portal (demo)</a></li>\n"; 
    3636    echo "<li><a href='./user_management/index.php'>Personal user management</a></li>\n"; 
    37     echo "<li><a href='./admin/index.php'>Administration</a></li>\n"; 
     37    echo "<li><a href='".BASE_SSL_PATH."admin/index.php'>Administration</a></li>\n"; 
    3838    echo "</ul>\n"; 
    3939 
  • trunk/wifidog-auth/wifidog/login/index.php

    r174 r204  
    3636if (isset($_REQUEST['user']) && isset($_REQUEST['pass']))  
    3737  { 
    38  $previous_username = $_REQUEST['user']; 
     38    $previous_username = $db->EscapeString($_REQUEST['user']); 
    3939 $previous_password = $_REQUEST['pass']; 
    4040    $user = $db->EscapeString($_REQUEST['user']); 
     
    4747        if ($_REQUEST['gw_id'])  
    4848          { 
    49             $hotspot_id = $_REQUEST['gw_id']; 
     49            $node_id = $db->EscapeString($_REQUEST['gw_id']); 
    5050          } 
    5151        if ($_SERVER['REMOTE_ADDR']) 
    5252          { 
    53             $hotspot_ip = $_SERVER['REMOTE_ADDR']; 
     53            $node_ip = $db->EscapeString($_SERVER['REMOTE_ADDR']); 
    5454          } 
    55         $db->ExecSqlUpdate("INSERT INTO connections (user_id, token, token_status, timestamp_in, hotspot_id, hotspot_ip) VALUES ('{$user_info['user_id']}', '$token', '" . TOKEN_UNUSED . "', NOW(), '$hotspot_id', '$hotspot_ip')"); 
     55        $db->ExecSqlUpdate("INSERT INTO connections (user_id, token, token_status, timestamp_in, node_id, node_ip) VALUES ('{$user_info['user_id']}', '$token', '" . TOKEN_UNUSED . "', NOW(), '$node_id', '$node_ip')"); 
    5656         
    5757        $login_successfull=true; 
  • trunk/wifidog-auth/wifidog/portal/index.php

    r152 r204  
    3232  { 
    3333    garbage_collect(); 
    34    } 
     34  } 
    3535 
    3636if(RSS_SUPPORT) 
    3737  { 
     38    $old_error_level = error_reporting(E_ERROR); 
    3839    define('MAGPIE_DIR', BASEPATH.MAGPIE_REL_PATH); 
    3940    require_once(MAGPIE_DIR.'rss_fetch.inc'); 
    4041    //define('MAGPIE_DEBUG', 2); 
    4142     
    42 /** 
    43 @return the generated html or the error message or an empty string if called without a URL. 
    44 */ 
     43    /** 
     44     @return the generated html or the error message or an empty string if called without a URL. 
     45    */ 
    4546    function generate_rss_html ( $url ) { 
    46        $rss_html=''; 
    47        if(!empty($url)) 
    48          { 
    49            $rss = fetch_rss( $url ); 
    50            $rss_html=''; 
    51            if ( !$rss ) 
    52              { 
    53                $rss_html .= _("Error: ") . magpie_error() ; 
    54              } 
    55            else  
    56              { 
    57                //$rss->show_channel(); 
    58                //$rss->show_list(); 
    59                $rss_html .= "<p>"._('Channel: ') . $rss->channel['title'] . "</p>\n"; 
    60                $rss_html .= "<ul>\n"; 
    61                foreach ($rss->items as $item) 
    62                { 
    63                  $href = $item['link']; 
    64                  $title = $item['title'];        
    65                  $rss_html .= "<li><a href=$href>$title</a></li>\n"; 
    66                } 
    67                $rss_html .= "</ul>\n"; 
    68              } 
    69          } 
     47      $rss_html=''; 
     48      if(!empty($url)) 
     49        { 
     50          $rss = fetch_rss( $url ); 
     51          $rss_html=''; 
     52          if ( !$rss ) 
     53            { 
     54              $rss_html .= _("Error: ") . magpie_error() ; 
     55            } 
     56          else  
     57            { 
     58              //$rss->show_channel(); 
     59              //$rss->show_list(); 
     60              $rss_html .= "<p>"._('Channel: ') . $rss->channel['title'] . "</p>\n"; 
     61              $rss_html .= "<ul>\n"; 
     62              foreach ($rss->items as $item) 
     63              { 
     64                //echo '<pre>'; print_r($item);         echo '</pre>'; 
     65                $href = $item['link']; 
     66                $title = $item['title']; 
     67                $summary =  $item['summary'];    
     68                $rss_html .= "<li><emp><a href=$href>$title</a></emp> $summary</li>\n"; 
     69              } 
     70              $rss_html .= "</ul>\n"; 
     71            } 
     72        } 
    7073      return $rss_html; 
    7174    } 
    72   } 
     75    error_reporting($old_error_level); 
     76  }//End RSS support 
    7377 
    7478$smarty = new SmartyWifidog; 
     
    7680$portal_template = $_REQUEST['gw_id'] . ".html"; 
    7781 
    78     $db->ExecSqlUniqueRes("SELECT * FROM nodes WHERE node_id='". $db->EscapeString($_REQUEST['gw_id'])."'", $node_info); 
    79     if($node_info==null) 
    80       { 
    81         $smarty->assign('hotspot_name', UNKNOWN_HOSTPOT_NAME); 
    82         $hotspot_rss_url = UNKNOWN_HOTSPOT_RSS_URL; 
    83       } 
    84     else 
    85       { 
    86         $smarty->assign('hotspot_name', $node_info['name']); 
    87         $hotspot_rss_url =  $node_info['rss_url']; 
    88       } 
     82$db->ExecSqlUniqueRes("SELECT * FROM nodes WHERE node_id='". $db->EscapeString($_REQUEST['gw_id'])."'", $node_info); 
     83if($node_info==null) 
     84  { 
     85    $smarty->assign('hotspot_name', UNKNOWN_HOSTPOT_NAME); 
     86    $hotspot_rss_url = UNKNOWN_HOTSPOT_RSS_URL; 
     87  } 
     88else 
     89  { 
     90    $smarty->assign('hotspot_name', $node_info['name']); 
     91    $hotspot_rss_url =  $node_info['rss_url']; 
     92  } 
    8993 
    9094$db->ExecSql("SELECT users.user_id FROM users,connections " . 
     
    106110    $network_rss_html=generate_rss_html(NETWORK_RSS_URL);     
    107111    //echo $networkrss_html; 
    108         $smarty->assign("network_rss_html", $network_rss_html); 
     112    $smarty->assign("network_rss_html", $network_rss_html); 
    109113 
    110114     
    111115    $hotspot_rss_html=generate_rss_html($hotspot_rss_url);     
    112116    //echo $hotspot_rss_html; 
    113         $smarty->assign("hotspot_rss_html", $hotspot_rss_html); 
     117    $smarty->assign("hotspot_rss_html", $hotspot_rss_html); 
    114118  } 
    115119$smarty->assign("user_management_menu", get_user_management_menu());