00001 <?PHP
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 $viewUser = htmlspecialchars( $_REQUEST["user_id"] );
00019 
00028 function allUsersArray( $associative = false, $sortByName = false ) {
00029         $fp = fopen("setup/password.txt", "r");
00030         while (!feof($fp)) {
00031                 $line = trim(fgets($fp, 1000));
00032                 list($l, $p) = explode(",", $line);
00033                 $userlist[] = $l;
00034         }
00035         fclose($fp);
00036         
00037         
00038         if( $associative )
00039         {
00040                 foreach( $userlist as $key => $value )
00041                         $templist[$value] = getUserInfo($value, "name");
00042                 
00043                 $userlist = $templist;
00044                 
00045                 if( $sortByName )
00046                         asort($userlist);
00047                 else
00048                         ksort($userlist);
00049         }
00050         else
00051                 sort($userlist);
00052         
00053         
00054         
00055         return $userlist;
00056 }
00057 
00063 function currentUser() {
00064         return $_SESSION[siteURL(true)]["login"];
00065 }
00066 
00070 {
00071         $usergroups = array();
00072         
00073         $usergroups_global_default["global_setup"] = true;
00074         $usergroups_global_default["global_admin"] = false;
00075         $usergroups_global_default["global_user_view"] = true;
00076         $usergroups_global_default["global_user_edit"] = false;
00077         $usergroups_global_default["global_user_new"] = false;
00078         $usergroups_global_default["global_themes"] = false;
00079         $usergroups_global_default["global_files"] = false;
00080         $usergroups_global_default["global_frontpage_view"] = true;
00081         $usergroups_global_default["global_frontpage_edit"] = false;
00082         $usergroups_global_default["global_pages_create"] = false;
00083         $usergroups_global_default["global_pages_edit"] = false;
00084         $usergroups_global_default["global_menus"] = false;
00085         $usergroups_global_default["global_menus_view"] = true;
00086         $usergroups_global_default["global_menus_edit"] = false;
00087         
00088         
00089         foreach( $profilemodules as $key => $value )
00090                 $usergroups_global_default["profile_" . substr( $value, 14 )] = true;
00091         
00092         
00093         if (file_exists("$setup_folder/usergroups_default.inc"))
00094                 include "$setup_folder/usergroups_default.inc";
00095         
00096         if( is_array($usergroups_default) )
00097         {
00098                 foreach ($usergroups_global_default as $key => $value)
00099                         if (!array_key_exists($key, $usergroups_default))
00100                                 setAllowed($key, $value);
00101         }
00102         else
00103         {
00104                 $usergroups_default = $usergroups_global_default;
00105                 $filename = "$setup_folder/usergroups_default.inc";
00106                 $content = "<?PHP\n\$usergroups_default = '" . serialize($usergroups_default) . "';\n\$usergroups_default = unserialize(\$usergroups_default);\n?>";
00107                 file_put_contents($filename, $content);
00108                 chmod($filename, 0664);
00109         }
00110 }
00111 
00119 function isAllowed($groupname) {
00120         global $usergroups, $usergroups_default;
00121         if (
00122                 currentUser() == "admin" || 
00123                 $usergroups["global_admin"] === true || 
00124                 $usergroups[$groupname] === true || 
00125                 $usergroups_default[$groupname] === true 
00126                 )
00127                 return true;
00128         else
00129                 return false;
00130 }
00139 function userIsAllowed($username, $groupname)
00140 {
00141         global $usergroups_default;
00142         $usergroups = getPermissions($username);
00143         if (
00144                 $username == "admin" || 
00145                 $usergroups["global_admin"] === true || 
00146                 $usergroups[$groupname] === true || 
00147                 $usergroups_default[$groupname] === true 
00148                 )
00149                 return true;
00150         else
00151                 return false;
00152 }
00160 function getPermissions($username) {
00161         global $userinfo_folder;
00162         $usergroups = "";
00163         if (file_exists("$userinfo_folder/$username/usergroups.inc")) include ("$userinfo_folder/$username/usergroups.inc");
00164         return $usergroups;
00165 }
00176 function setAllowed($groupname, $allowed = true, $username = "") {
00177         global $usergroups, $usergroups_default, $userinfo_folder, $setup_folder;
00178         if ($allowed == "false") $allowed = false;
00179         if ($username == "") { 
00180                 $usergroups_default[$groupname] = (bool) $allowed;
00181                 $filename = "$setup_folder/usergroups_default.inc";
00182                 $content = "<?PHP\n\$usergroups_default = '" . serialize($usergroups_default) . "';\n\$usergroups_default = unserialize(\$usergroups_default);\n?>";
00183         } else {
00184                 $filename = "$userinfo_folder/$username/usergroups.inc";
00185                 if (file_exists($filename)) include $filename;
00186                 $usergroups[$groupname] = (bool) $allowed;
00187                 $content = "<?PHP\n\$usergroups = '" . serialize($usergroups) . "';\n\$usergroups = unserialize(\$usergroups);\n?>";
00188         }
00189 
00190         if (file_exists($filename)) { if (!unlink($filename)) return false; }
00191         file_put_contents($filename, $content);
00192         return chmod($filename, 0664);
00193 }
00201 function removeUsergroup($groupname) {
00202         global $usergroups_default, $usergroups, $userinfo_folder, $setup_folder;
00203         
00204         $userlist = allUsersArray(); 
00205         foreach ($userlist as $key => $value) { 
00206                 $filename = "$userinfo_folder/$value/usergroups.inc"; 
00207                 if (file_exists($filename)) { 
00208                         $temp_permissions = getPermissions($value); 
00209                         if (array_key_exists($groupname, $temp_permissions)) { 
00210                                 unset($temp_permissions[$groupname]); 
00211                                 $content = "<?PHP\n\$usergroups = '" . serialize($temp_permissions) . "';\n\$usergroups = unserialize(\$usergroups);\n?>"; 
00212                                 if (unlink($filename)) { 
00213                                         if (!file_put_contents($filename, $content)) { 
00214                                                 
00215                                                 return false;
00216                                         }
00217                                 }
00218                         }
00219                 }
00220         }
00221         
00222         unset($usergroups_default[$groupname]); 
00223         $filename = "$setup_folder/usergroups_default.inc"; 
00224         $content = "<?PHP\n\$usergroups_default = '" . serialize($usergroups_default) . "';\n\$usergroups_default = unserialize(\$usergroups_default);\n?>"; 
00225         if (file_exists($filename)) unlink($filename); 
00226         file_put_contents($filename, $content);
00227         chmod($filename, 0664);
00228         
00229         if (file_exists("$userinfo_folder/$login/usergroups.inc")) include "$userinfo_folder/$login/usergroups.inc"; 
00230         
00231         return true;
00232 }
00233 
00243 function getUserInfo($login, $which_info = "email", $defaultValue = null )
00244 {
00245         global $userinfo_folder, $usermanager;
00246         
00247         if( $defaultValue !== null )
00248                 $value = $defaultValue;
00249         else
00250                 $value = i18n("No ##0## information\n", array($which_info));
00251         
00252         if( $login != "" )
00253         {
00254                 if( !$usermanager->userExists($login) )
00255                         $value = i18n("Unknown user");
00256                 else if( file_exists("$userinfo_folder/$login/$which_info.txt") )
00257                 {
00258                         if( $fp = fopen("$userinfo_folder/$login/$which_info.txt", "r") )
00259                         {
00260                                 if( ($info = fread($fp, filesize("$userinfo_folder/$login/$which_info.txt"))) != "" )
00261                                 {
00262                                         if( $info == "" )
00263                                                 $value = i18n("Unknown") . " $which_info";
00264                                         else
00265                                                 $value = $info;
00266                                 }
00267                         }
00268                 }
00269         }
00270         
00271         return $value;
00272 }
00273 function saveUserInfo($login, $which_info, $info) {
00274         global $userinfo_folder;
00275         $filename = "$userinfo_folder/$login/$which_info.txt";
00276         if ($info === false)
00277                 $info = 0;
00278         
00279         if (file_exists($filename)) {
00280                 if (!unlink($filename)) {
00281                         return false;
00282                 }
00283         }
00284         
00285         if( is_array( $info ) )
00286                 $info = serialize( $info );
00287         
00288         if ($fp = fopen($filename, 'a')) {
00289                 if (fwrite($fp, $info) === FALSE) return false;
00290                 fclose($fp);
00291                 chmod($filename, 0664);
00292         } else {
00293                 return false;
00294         }
00295         
00296         if( strlen( $info ) == 0 )
00297                 unlink( $filename );
00298         
00299         return true;
00300 }
00301 
00302 function auth($login = '', $passwd = '', $pass_file = 'setup/password.txt') {
00303         global $usergroups, $userinfo_folder, $setup_folder;
00304         $login = strtolower($login);
00305         
00306         if ($_REQUEST["login_sevenday"]) {
00307                 ini_set("session.gc_maxlifetime", 3153600000);
00308                 ini_set("session.cookie_lifetime", 3153600000);
00309                 
00310                 
00311         }
00312         
00313         session_start();
00314         if( is_array( $_SESSION[ siteURL( true ) ] ) ) {
00315                 if (file_exists("$userinfo_folder/" . currentUser() . "/usergroups.inc")) include "$userinfo_folder/" . currentUser() . "/usergroups.inc";
00316                 return true;
00317         } elseif (!empty($login)) {
00318                 $fp = fopen($pass_file, 'r');
00319                 while (!feof($fp)) {
00320                         $line = trim(fgets($fp, 1000));
00321                         list($l, $p) = explode(",", $line);
00322                         $check_pass = crypt($passwd, $p);
00323                         if (($l == $login) && ($p == $check_pass)) {
00324                                 $_SESSION[siteURL(true)] = array("login"=>$login);
00325                                 $theme_user = getUserInfo($login, "theme");
00326                                 if ($theme_user != i18n("No ##0## information\n", array("theme"))) $_SESSION["theme"] = $theme_user;
00327                                 fclose($fp);
00328                                 if (file_exists("$userinfo_folder/$login/usergroups.inc")) include "$userinfo_folder/$login/usergroups.inc";
00329                                 return true;
00330                         }
00331                 }
00332                 fclose($fp);
00333                 return false;
00334         } else {
00335                 return false;
00336         }
00337 }
00338 
00339 function isauth() {
00340         if (currentUser() == "") { 
00341                 return false;
00342         } else {
00343                 return true;
00344         }
00345 }
00346 
00347 
00348 function unauth () {
00349         session_start();
00350         session_unset();
00351         session_destroy();
00352 }
00353 
00361 function setFriend($login, $friendwith, $isfriend = true) {
00362         global $userinfo_folder;
00363         $filename = "$userinfo_folder/$login/relationships.php";
00364         if (file_exists($filename)) $relationships = file_get_contents($filename);
00365         $relationships = unserialize(substr($relationships, strpos($relationships, "\n") + 1));
00366         
00367         if ($isfriend) {
00368                 $relationships["friends"][$friendwith] = $friendwith;
00369         } else {
00370                 if (is_array($relationships["friends"])) {
00371                         foreach($relationships["friends"] as $key => $value) {
00372                                 if ($value == $friendwith) {
00373                                         unset($relationships["friends"][$key]);
00374                                         break; 
00375                                 }
00376                         }
00377                 }
00378         }
00379         
00380         $relationships = "<?php die(\"access denied\"); ?>\n" . serialize($relationships);
00381         if (file_exists($filename)) { if (!unlink($filename)) return false; }
00382         file_put_contents($filename, $relationships);
00383         chmod($filename, 0664);
00384         return true;
00385 }
00386 
00390 function isFriend($user, $peer) {
00391         global $userinfo_folder;
00392         $filename = "$userinfo_folder/$user/relationships.php";
00393         if (file_exists($filename)) $relationships = file_get_contents($filename);
00394         $relationships = unserialize(substr($relationships, strpos($relationships, "\n") + 1));
00395         if (is_array($relationships["friends"])) { return array_key_exists($peer, $relationships["friends"]); } else { return false; }
00396 }
00397 
00405 function setBlacklisted($login, $blacklists, $isblacklisted = true) {
00406         global $userinfo_folder;
00407         $filename = "$userinfo_folder/$login/relationships.php";
00408         if (file_exists($filename)) $relationships = file_get_contents($filename);
00409         $relationships = unserialize(substr($relationships, strpos($relationships, "\n") + 1));
00410         
00411         if ($isblacklisted) {
00412                 $relationships["blacklists"][$blacklists] = $blacklists;
00413         } else {
00414                 if (is_array($relationships["blacklists"])) {
00415                         foreach($relationships["blacklists"] as $key => $value) {
00416                                 if ($value == $blacklists) {
00417                                         unset($relationships["blacklists"][$key]);
00418                                         break; 
00419                                 }
00420                         }
00421                 }
00422         }
00423         
00424         $relationships = "<?php die(\"access denied\"); ?>\n" . serialize($relationships);
00425         if (file_exists($filename)) { if (!unlink($filename)) return false; }
00426         file_put_contents($filename, $relationships);
00427         chmod($filename, 0664);
00428         return true;
00429 }
00430 
00434 function isBlacklisting($user, $peer) {
00435         global $userinfo_folder;
00436         $filename = "$userinfo_folder/$user/relationships.php";
00437         if (file_exists($filename)) $relationships = file_get_contents($filename);
00438         $relationships = unserialize(substr($relationships, strpos($relationships, "\n") + 1));
00439         if (is_array($relationships["blacklists"])) { return array_key_exists($peer, $relationships["blacklists"]); } else { return false; }
00440 }
00441 
00445 function userAllows($username, $accesslevel) {
00446         
00447         if (isAllowed("global_admin"))
00448                 return true;
00449         
00450         $isfriend = isFriend($username, currentUser());
00451         $isblacklisted = isBlacklisting($username, currentUser());
00452         
00453         switch ($accesslevel) {
00454         case 4: 
00455                 if( isAuth() && $username == currentUser() ) return true; 
00456                 return false;
00457         case 3: 
00458                 if ($isfriend) return true; 
00459                 return false; 
00460         case 2: 
00461                 if (isauth() && !$isblacklisted) return true; 
00462                 return false; 
00463         case 1: 
00464                 if (isauth()) return true; 
00465                 return false; 
00466         case 0: 
00467         default:
00468                 return true;
00469         }
00470 }
00471 
00475 function userAllowsContact($username) {
00476         global $profile_options;
00477         $userinfo = getUserInfo($username, "profiles_contact");
00478         if ($userinfo == i18n("No") . " profiles_contact " . i18n("information")) $userinfo = $profile_options["profiles_contact"];
00479         
00480         return userAllows($username, $userinfo);
00481 }
00482 
00486 function userAllowsView($username) {
00487         global $profile_options;
00488         $userinfo = getUserInfo($username, "profiles_view");
00489         if ($userinfo == i18n("No ##0## information\n", array("profiles_view"))) $userinfo = $profile_options["profiles_view"];
00490         
00491         return userAllows($username, $userinfo);
00492 }
00493 
00497 function userAllowsMypage($username) {
00498         global $profile_options;
00499         $userinfo = getUserInfo($username, "profiles_mypage");
00500         if ($userinfo == i18n("No ##0## information\n", array("profiles_mypage"))) $userinfo = $profile_options["profiles_mypage"];
00501         
00502         return userAllows($username, $userinfo);
00503 }
00504 
00505 function profileEditAllowed($username)
00506 {
00507         if( isAllowed("global_user_edit") || ($username != "" && $username == currentUser()) )
00508                 return true;
00509         else
00510                 return false;
00511 }
00512 
00516 class Userman {
00517         function changeadd($login = "", $passwd = "", $pass_file = 'setup/password.txt'){
00518                 global $userinfo_folder;
00519                 if (!file_exists("$userinfo_folder/$login")) mkdir("$userinfo_folder/$login", 0775);
00520                 
00521                 $passwd = crypt($passwd);
00522                 
00523                 if (file_exists($pass_file)) {
00524                         
00525                         $fp = fopen($pass_file, "r");
00526                         while (!feof($fp)) {
00527                                 $tmp_line = trim(fgets($fp, 1000));
00528                                 list($l, $p) = explode(",", $tmp_line);
00529                                 $password_list[$l] = $p;
00530                         }
00531                         fclose($fp);
00532                 }
00533                 
00534                 $password_list[$login] = $passwd;
00535                 $fp = fopen($pass_file, "w");
00536                 foreach ($password_list as $user => $password) {
00537                         if (!$user == "") $pass_content = "$pass_content$user,$password\n";
00538                 }
00539                 fputs($fp, trim($pass_content));
00540                 fclose($fp);
00541                 
00542                 return true;
00543         }
00544         
00545         function rename($login, $newlogin, $pass_file = 'setup/password.txt') {
00546                 global $userinfo_folder;
00547                 
00548                 rename("$userinfo_folder/$login", "$userinfo_folder/$newlogin");
00549                 
00550                 if (file_exists($pass_file)) {
00551                         
00552                         $fp = fopen($pass_file, "r");
00553                         while (!feof($fp)) {
00554                                 $tmp_line = trim(fgets($fp, 1000));
00555                                 list($l, $p) = explode(",", $tmp_line);
00556                                 $password_list[$l] = $p;
00557                         }
00558                         fclose($fp);
00559                 }
00560                 
00561                 $passwd = $password_list[$login]; 
00562                 unset($password_list[$login]); 
00563                 $password_list[$newlogin] = $passwd; 
00564                 
00565                 $fp = fopen($pass_file, "w");
00566                 foreach ($password_list as $user => $password) {
00567                         if (!$user == "") $pass_content = "$pass_content$user,$password\n";
00568                 }
00569                 fputs($fp, trim($pass_content));
00570                 fclose($fp);
00571                 
00572                 return true;
00573         }
00574         
00575         function remove($login = "", $pass_file = 'setup/password.txt'){
00576                 global $usermanager, $userinfo_folder;
00577                 if (file_exists($pass_file)) {
00578                         
00579                         $fp = fopen($pass_file, "r");
00580                         while (!feof($fp)) {
00581                                 $tmp_line = trim(fgets($fp, 1000));
00582                                 list($l, $p) = explode(",", $tmp_line);
00583                                 $password_list[$l] = $p;
00584                         }
00585                         fclose($fp);
00586                 }
00587                 unset($password_list[$login]);
00588                 $fp = fopen($pass_file, "w");
00589                 foreach ($password_list as $user => $password) {
00590                         $pass_content = "$pass_content$user,$password\n";
00591                 }
00592                 fputs($fp, trim($pass_content));
00593                 fclose($fp);
00594 
00595                 rmdirr("$userinfo_folder/$login");
00596                 
00597                 $userlist = allUsersArray();
00598                 foreach($userlist as $key => $value) {
00599                         setFriend($value, $login, false);
00600                         setBlacklisted($value, $login, false);
00601                 }
00602                 
00603                 return true;
00604         }
00605         
00606         function userExists($login, $pass_file = 'setup/password.txt') {
00607                 $login = strtolower($login);
00608                 if (file_exists($pass_file)) {
00609                         $fp = fopen($pass_file, "r");
00610                         $value = false;
00611                         while (!feof($fp)) {
00612                                 $tmp_line = trim(fgets($fp, 1000));
00613                                 list($l, $p) = explode(",", $tmp_line);
00614                                 if ($l == $login) $value = true;
00615                         }
00616                         fclose($fp);
00617                         return $value;
00618                 }
00619                 return false;
00620         }
00621 }
00622 
00623 function globalID_auth( $splitID )
00624 {
00625         $pageID = null;
00626         
00627         
00628         if( $splitID[0] == "logout" )
00629         {
00630                 $pageID = $_REQUEST["page_id"] = 0;
00631                 unauth();
00632         }
00633         
00634         return $pageID;
00635 }
00636 
00637 function loginform_small() {
00638         global $language, $profilemodules, $usermanager;
00639         if (isAuth()) {
00640                 $thisUser = $_SESSION[siteURL(true)]["login"];
00641                 $data = "
00642                 <div id=\"loginform_small\">
00643                 " . i18n("Welcome") . "<br /><a href=\"" . globalIDtoURL("user/$thisUser/mypage") . "\">" . getUserInfo($_SESSION[siteURL(true)]["login"], "name") . "</a>
00644                 <hr class=\"loginform\" />";
00645                 
00646                 foreach( $profilemodules as $key => $value )
00647                         $data .= "
00648                         <a class=\"loginform\" href=\"" . globalIDtoURL("user/$thisUser/" . substr($value, 14)) . "\">" . i18n(substr($value, 14)) . "</a>";
00649                 
00650                 $data .= "
00651                 </div>";
00652                 return $data;
00653         } else {
00654                 $loginfrm = "<form action=\"" . thisPageURL() . "\" method=\"post\"><input type=\"hidden\" name=\"logout\" value=\"false\" /><div id=\"loginform_small\">";
00655                 if (isset($_REQUEST["username"])) {
00656                         $loginfrm .= "
00657                         <div id=\"login_text\">". i18n("Authorisation error, try again") . "<br />";
00658                         
00659                         if (!$usermanager->userExists($_REQUEST["username"])) {
00660                                 $loginfrm .= i18n("Unknown user!") . "</div>";
00661                         } else {
00662                                 $loginfrm .= i18n("Incorrect password") . "<a href=\"" . globalIDtoURL("setup/requestpassword/{$_REQUEST['username']}") . "\" class=\"command\" title=\"" . i18n("Get a new password sent by email") . "\">[?]</a></div>";
00663                         }
00664                 } else {
00665                         $loginfrm .= "
00666                         <div id=\"login_text\">" . i18n("Log in here") . "</div>";
00667                 }
00668                 $loginfrm .= "
00669                 <div id=\"login_username\"><span id=\"login_username_text\">" . i18n("Username:") . "</span><input id=\"login_username_box\" type=\"text\" name=\"username\" value=\"{$_REQUEST['username']}\" /></div>
00670                 <div id=\"login_password\"><span id=\"login_password_text\">" . i18n("Password:") . "</span><input id=\"login_password_box\" type=\"password\" name=\"password\" /></div>
00671                 <div id=\"login_sevenday\"><label><input id=\"login_sevenday\" name=\"login_sevenday\" type=\"checkbox\" /><span id=\"login_sevenday_text\">" . i18n("Remember me") . "</span></label></div><input id=\"login_login_button\" type=\"submit\" value=\"" . i18n("Log in") . "\" />
00672                 </div>";
00673                 if (isAllowed("global_user_new")) { $loginfrm .= "<div id=\"login_new_button\"><a class=\"login_new_button\" href=\"" . globalIDtoURL("user/" . i18n("username") . "/new") . "\">" . i18n("Register a user") . "</a></div>"; }
00674                 $loginfrm .= "</form>";
00675                 return $loginfrm;
00676         }
00677 }
00678 
00679 function loginform($language = "en", $submit_uri, $auth_messages = "") {
00680         global $auth_messages, $usermanager, $globalID;
00681         
00682         if( $globalID == "setup" )
00683                 $loginfrm = "<form action=\"" . thisPageURL() . "/?globalID=setup\" method=\"post\"><input type=\"hidden\" name=\"logout\" value=\"false\" /><div align=\"center\"><table width=\"300\" style=\"border: 1px solid gray;\"><tr><td colspan=\"2\" style=\"border-bottom: 1px solid gray;\">";
00684         else
00685                 $loginfrm = "<form action=\"" . thisPageURL() . "\" method=\"post\"><input type=\"hidden\" name=\"logout\" value=\"false\" /><div align=\"center\"><table width=\"300\" style=\"border: 1px solid gray;\"><tr><td colspan=\"2\" style=\"border-bottom: 1px solid gray;\">";
00686         if (isset($_REQUEST["username"])) {
00687                 $loginfrm .= "
00688                 <div align=\"left\">";
00689                 if (!$usermanager->userExists($_REQUEST["username"])) {
00690                         $loginfrm .= i18n("Unknown user!") . " ";
00691                 } else {
00692                         $loginfrm .= i18n("Incorrect password") . " - <a href=\"" . globalIDtoURL("setup/requestpassword/{$_REQUEST['username']}") . "\" class=\"command\">" . i18n("Get a new password sent by email") . "</a>. ";
00693                 }
00694                 $loginfrm .= i18n("The login information you provided was invalid. Please log in again below:") . "</div>";
00695         } else {
00696                 $loginfrm = "$loginfrm
00697                 <div align=\"left\">" . i18n("Write username and password below to get access to the administration functions.") . "</div>";
00698         }
00699         $loginfrm = "$loginfrm
00700         <tr><td width=\"50%\">" . i18n("Username:") . "</td><td width=\"50%\" align=\"right\"><input style=\"width: 100%\" type=\"text\" name=\"username\" /></td></tr>
00701         <tr><td>" . i18n("Password:") . "</td><td align=\"right\"><input style=\"width: 100%\" type=\"password\" name=\"password\" /></td></tr>
00702         <tr><td>" . i18n("Remember me") . "</td><td align=\"right\"><input style=\"width: 100%\" type=\"checkbox\" name=\"login_sevenday\" /></td></tr>
00703         <tr><td colspan=\"2\" align=\"center\"><input type=\"submit\" value=\"" . i18n("Log in") . "\" /></td></tr>
00704         </table></div></form>";
00705         return $loginfrm;
00706 }
00707 ?>