Changeset 15


Ignore:
Timestamp:
Apr 7, 2007, 9:15:01 PM (12 years ago)
Author:
julian
Message:
  • Login: Implemented 'request password' and 'activate account'
  • Design: Some small changes
  • Current database layout
  • Some messages implemented
  • Many minor fixes
Location:
trunk
Files:
3 added
24 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/docs/dbstructure.sql

    r12 r15  
    109109
    110110CREATE TABLE `tbb2_groups` (
    111   `GroupID` smallint(5) unsigned NOT NULL auto_increment,
    112   `GroupName` varchar(255) NOT NULL default '',
    113   PRIMARY KEY  (`GroupID`)
     111  `groupID` smallint(5) unsigned NOT NULL auto_increment,
     112  `groupName` varchar(255) NOT NULL default '',
     113  PRIMARY KEY  (`groupID`)
    114114) ENGINE=MyISAM DEFAULT CHARSET=latin1;
    115115
     
    161161  `userID` mediumint(8) unsigned NOT NULL default '0',
    162162  `folderName` varchar(255) NOT NULL default '',
    163   KEY `folder_id` (`folderID`),
    164   KEY `user_id` (`userID`)
    165 ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     163  KEY `userID` (`userID`),
     164  KEY `folderIDUserID` (`folderID`,`userID`)
     165) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    166166
    167167#
     
    377377CREATE TABLE `tbb2_users` (
    378378  `userID` mediumint(8) unsigned NOT NULL auto_increment,
    379   `userStatus` tinyint(1) unsigned NOT NULL default '0',
     379  `userIsActivated` tinyint(1) unsigned NOT NULL default '0',
    380380  `userIsAdmin` tinyint(1) unsigned NOT NULL default '0',
    381381  `userIsSupermod` tinyint(1) unsigned NOT NULL default '0',
    382382  `userHash` varchar(32) NOT NULL default '',
    383383  `userNick` varchar(255) NOT NULL default '',
    384   `userEmail` varchar(255) NOT NULL default '',
     384  `userEmailAddress` varchar(255) NOT NULL default '',
    385385  `userPassword` varchar(255) NOT NULL default '',
    386386  `userPasswordSalt` varchar(255) default NULL,
     
    391391  `userSignature` text NOT NULL,
    392392  `groupID` mediumint(8) unsigned NOT NULL default '0',
    393   `userSpecialStatus` mediumint(8) unsigned NOT NULL default '0',
    394393  `userLastAction` int(10) unsigned NOT NULL default '0',
    395394  `rankID` smallint(5) unsigned NOT NULL default '0',
    396395  `userAvatarAddress` varchar(255) NOT NULL default '',
    397   `userTimezone` varchar(255) NOT NULL default 'gmt',
     396  `userTimeZone` varchar(255) NOT NULL default 'gmt',
    398397  `userReceiveEmails` tinyint(1) unsigned NOT NULL default '1',
    399   `userHideEmail` tinyint(1) unsigned NOT NULL default '0',
     398  `userHideEmailAddress` tinyint(1) unsigned NOT NULL default '0',
    400399  `userIsLocked` tinyint(1) unsigned NOT NULL default '0',
    401400  `userMemo` text NOT NULL,
     
    403402  `userLanguage` varchar(255) NOT NULL default '',
    404403  PRIMARY KEY  (`userID`),
    405   KEY `user_last_action` (`userLastAction`),
    406   KEY `user_rank_id` (`rankID`)
     404  KEY `userLastAction` (`userLastAction`),
     405  KEY `rankID` (`rankID`)
    407406) ENGINE=MyISAM DEFAULT CHARSET=latin1;
    408407
  • trunk/languages/de/Login.language

    r2 r15  
    33Stay_logged_in = "In Zukunft automatisch einloggen (Cookies müssen aktiviert sein)"
    44locked_forever = "(für immer gesperrt)"
     5Account_activation = "Accountaktivierung"
     6Activate_account = "Account aktivieren"
     7Activation_code = "Aktivierungscode"
     8Account_activated = "Account aktiviert"
     9Request_new_password = "Neues Passwort anfordern"
     10New_password_sent = "Neues Passwort verschickt"
     11error_wrong_email_address = "Falsche Emailadresse"
     12error_wrong_activation_code = "Falscher Aktivierungscode!"
    513error_locked_account = "Diese Account wurde gesperrt. Die verbleibende Sperrzeit beträgt: %s"
    614error_unknown_user = "Unbekannter User!"
  • trunk/languages/de/Main.language

    r12 r15  
    118118Sort_by = "Sortieren nach"
    119119General_information = "Allgemeine Informationen"
     120
     121
     122message_link_click_here_back_profile = "%sHier%s geht's zurück zum Profil"
     123message_link_click_here_back_forumindex = "%sHier%s geht's zurück zur Forenübersicht"
     124message_link_click_here_login = "%sHier%s können Sie sich einloggen"
     125message_link_click_here_register = "%sHier%s können Sie sich registrieren"
     126message_link_click_here_back = "%sHier%s geht's zurück"
     127message_link_click_here_back_topic = "%sHier%s geht's zurück zum Thema"
     128message_link_click_here_moved_topic = "%sHier%s geht's zum verschobenen Thema"
  • trunk/languages/de/Messages.language

    r2 r15  
    2828message_text_topic_moved = "Das Thema wurde erfolgreich verschoben!"
    2929message_text_board_rules_not_accepted = "Sie haben die Boardregeln nicht akzeptiert! Da wir dies für unser Board vorraussetzen, können wir eine Registrierung leider nicht zulassen!"
    30 message_text_avatar_upload_disabled = "Die Möglichkeit einen eigenen Avatar hochzuladen wurde vorübergehend deaktiviert! Bei Fragen wenden Sie sich bitte an einen Administrator"
     30message_title_avatar_upload_disabled = "Avatar Upload deaktiviert"
     31message_text_avatar_upload_disabled = "Die Möglichkeit einen eigenen Avatar hochzuladen wurde vorübergehend deaktiviert. Bei Fragen wenden Sie sich bitte an einen Administrator."
    3132message_text_new_password_sent = "Ein neues Passwort wurde an die angegebene Emailaddresse verschickt. Bis zum ersten Einloggen mit diesem ist das alte Passwort weiterhin gültig."
    3233message_text_new_user_added = "Der neue Benutzer wurde erfolgreich eingerichtet."
  • trunk/modules/Constants.class.php

    r6 r15  
    1313        define('AUTH_TYPE_GROUP',1);
    1414
    15         define('USER_STATUS_INACTIVE',0);
    16 
    1715        define('TOPIC_STATUS_OPEN',0);
    1816        define('TOPIC_STATUS_CLOSED',1);
  • trunk/modules/EditProfile.class.php

    r13 r15  
    1919        $this->modules['PageParts']->setInEditProfile(TRUE);
    2020
    21         //add_navbar_items(array($this->modules['Language']->getString('User_administration'],"index.php?action=editprofile&$mYSID"));
     21        $this->modules['Navbar']->addElement($this->modules['Language']->getString('User_administration'),INDEXFILE."?action=EditProfile&".MYSID);
    2222
    2323        switch(@$_GET['mode']) {
    2424            default:
    25                 $p = Functions::getSGValues($_POST['p'],array('userEmail','userSignature'),'',Functions::addSlashes($this->modules['Auth']->getUserData()));
     25                $p = Functions::getSGValues($_POST['p'],array('userEmailAddress','userSignature'),'',Functions::addSlashes($this->modules['Auth']->getUserData()));
    2626                $p = array_merge($p,Functions::getSGValues($_POST['p'],array('userOldPassword','userNewPassword','userNewPasswordConfirmation'),''));
    2727
     
    2929
    3030                if(isset($_GET['doit'])) {
    31                     if(!Functions::verifyEmail($p['userEmail'])) $error = $this->modules['Language']->getString('error_bad_email');
     31                    if(!Functions::verifyEmail($p['userEmailAddress'])) $error = $this->modules['Language']->getString('error_bad_email');
    3232                    elseif(trim($p['userNewPassword']) != '' && Functions::getSaltedHash($p['userOldPassword'],$this->modules['Auth']->getValue('userPasswordSalt')) != $this->modules['Auth']->getValue('user_pw')) $error = $this->modules['Language']->getString('error_wrong_password');
    3333                    elseif(trim($p['userNewPassword']) != '' && $p['userNewPassword'] != $p['userNewPasswordConfirmation']) $error = $this->modules['Language']->getString('error_pws_no_match');
     
    3737                                ".TBLPFX."users
    3838                            SET
    39                                 userEmail='".$p['userEmail']."',
     39                                userEmailAddress='".$p['userEmailAddress']."',
    4040                                userSignature='".$p['userSignature']."'
    4141                            WHERE
     
    5858                        }
    5959
    60                         $this->modules['Navbar']->addElements('left',array($this->modules['Language']->getString('Profile_saved'),''));
    61 
    62                         $this->modules['PageParts']->printMessage('profile_saved'); exit;
     60                        $this->modules['Navbar']->addElements(array($this->modules['Language']->getString('Profile_saved'),''));
     61                        $this->modules['PageParts']->printMessage('profile_saved');
     62                        exit;
    6363                    }
    6464                }
     
    157157
    158158            case 'ProfileSettings':
    159                 $p = array();
    160                 $p['userTimeZone'] = isset($_POST['p']['userTimeZone']) ? $_POST['p']['userTimeZone'] : $this->modules['Auth']->getValue('userTimeZone');
    161                 $p['userHideEmail'] = isset($_POST['p']['userHideEmail']) ? intval($_POST['p']['userHideEmail']) : $this->modules['Auth']->getValue('userHideEmail');
    162                 $p['userReceiveEmails'] = isset($_POST['p']['userReceiveEmails']) ? intval($_POST['p']['userReceiveEmails']) : $this->modules['Auth']->getValue('userReceiveEmails');
     159                $p = Functions::getSGValues($_POST['p'],array('userTimeZone','userHideEmailAddress','userReceiveEmails'),'',Functions::addSlashes($this->modules['Auth']->getUserData()));
    163160
    164161                $timeZones = Functions::getTimeZones(TRUE);
    165162
    166                 if(in_array($p['userHideEmail'],array(0,1)) == FALSE) $p['userHideEmail'] = 0;
    167                 if(in_array($p['userReceiveEmails'],array(0,1)) == FALSE) $p['userReceiveEmails'] = 1;
     163                if(!in_array($p['userHideEmailAddress'],array(0,1))) $p['userHideEmailAddress'] = 0;
     164                if(!in_array($p['userReceiveEmails'],array(0,1))) $p['userReceiveEmails'] = 1;
    168165                if(!isset($timeZones[$p['userTimeZone']])) $p['userTimeZone'] = 'gmt';
    169166
     
    173170                            ".TBLPFX."users
    174171                        SET
    175                             userHideEmail='".$p['userHideEmail']."',
     172                            userHideEmailAddress='".$p['userHideEmailAddress']."',
    176173                            userReceiveEmails='".$p['userReceiveEmails']."',
    177174                            userTimeZone='".$p['userTimeZone']."'
     
    179176                    ");
    180177
    181                     // TODO correct message
    182                     die('geupdatet');
     178                    $this->modules['Navbar']->addElements(array($this->modules['Language']->getString('Profile_saved'),''));
     179                    $this->modules['PageParts']->printMessage('profile_saved');
    183180                    exit;
    184                     //include_once('pheader.php');
    185                     //show_message($this->modules['Language']->getString('Settings_saved'),$this->modules['Language']->getString('message_settings_successfully_saved'));
    186                     //include_once('ptail.php'); exit;
    187181                }
    188182
     
    209203                $subscriptionsData = $this->modules['DB']->raw2Array();
    210204
    211                 //add_navbar_items(array($this->modules['Language']->getString('Topic_subscriptions'),''));
     205                $this->modules['Navbar']->addElement($this->modules['Language']->getString('Topic_subscriptions'),'');
    212206
    213207                $this->modules['Template']->assign(array(
     
    257251            case 'UploadAvatar':
    258252                if($this->modules['Config']->getValue('enable_avatar_upload') != 1) {
    259                     // TODO: correct message
    260                     die('Upoad disabled');
    261                     //include_once('pop_pheader.php');
    262                     //show_message($this->modules['Language']->getString('Avatar_upload_disabled'),$this->modules['Language']->getString('message_avatar_upload_disabled'));
    263                     //include_once('pop_ptail.php'); exit;
     253                    $this->modules['PageParts']->printMessage('avatar_upload_disabled',array(),FALSE,TRUE);
     254                    exit;
    264255                }
    265256
  • trunk/modules/Login.class.php

    r13 r15  
    1616        $this->modules['Language']->addFile('Login');
    1717
    18         $userNick = isset($_REQUEST['userNick']) ? $_REQUEST['userNick'] : '';
    19         $p = Functions::getSGValues($_POST['p'],array('userPassword'),'');
    20         $c = Functions::getSGValues($_POST['c'],array('enableGhostMode','stayLoggedIn'),0);
    21 
    22         $error = '';
    23 
    24         if(isset($_GET['doit'])) {
    25             //
    26             // Im Folgenden wird ueberprueft, ob
    27             // 1) der User ueberhaupt existiert
    28             // 2) der Account aktiviert ist
    29             // 3) das Passwort stimmt, bzw. das Passwort mit einem neu angeforderten ueberein stimmt
    30             // 4) der User gesperrt ist und falls ja wie lange
    31             //
    32             if(trim($userNick) == '' || ($userData = Functions::getUserData($userNick)) == FALSE) $error = $this->modules['Language']->getString('error_unknown_user');
    33             elseif($userData['userStatus'] == USER_STATUS_INACTIVE) $error = sprintf($this->modules['Language']->getString('error_inactive_account'),$userData['UserNick']);
    34             elseif(Functions::getSaltedHash($p['userPassword'],$userData['userPasswordSalt']) != $userData['userPassword'] && ($userData['userNewPassword'] == '' || Functions::getSaltedHash($p['userPassword'],$userData['userNewPasswordSalt']) != $userData['userNewPassword'])) $error = $this->modules['Language']->getString('error_wrong_password');
    35             elseif($userData['userIsLocked'] == 1 && Functions::checkLockStatus($userData['userID'])) { // Falls der Benutzer sich nicht mehr einloggen darf
    36                 $dB->query("SELECT lock_start_time,lock_dur_time FROM ".TBLPFX."users_locks WHERE user_id='".$p_user_data['user_id']."'");
    37                 $lock_data = $dB->fetch_array();
    38 
    39                 if($lock_data['lock_dur_time'] == 0) $remaining_lock_time = $this->modules['Language']->getString('locked_forever');
    40                 else {
    41                     $remaining_lock_time = split_time($lock_data['lock_start_time']+$lock_data['lock_dur_time']-time());
    42 
    43                     $remaining_months = sprintf($this->modules['Language']->getString('x_months'),$remaining_lock_time['months']);
    44                     $remaining_weeks = sprintf($this->modules['Language']->getString('x_weeks'),$remaining_lock_time['weeks']);
    45                     $remaining_days = sprintf($this->modules['Language']->getString('x_days'),$remaining_lock_time['days']);
    46                     $remaining_hours = sprintf($this->modules['Language']->getString('x_hours'),$remaining_lock_time['hours']);
    47                     $remaining_minutes = sprintf($this->modules['Language']->getString('x_minutes'),$remaining_lock_time['minutes']);
    48                     $remaining_seconds = sprintf($this->modules['Language']->getString('x_seconds'),$remaining_lock_time['seconds']);
    49 
    50                     $remaining_lock_time = "$remaining_months, $remaining_weeks, $remaining_days, $remaining_hours, $remaining_minutes, $remaining_seconds";
     18        $this->modules['Navbar']->addElement($this->modules['Language']->getString('Login'),INDEXFILE.'?action=Login&'.MYSID);
     19
     20        switch(@$_GET['mode']) {
     21            default:
     22                $userNick = isset($_REQUEST['userNick']) ? $_REQUEST['userNick'] : '';
     23                $p = Functions::getSGValues($_POST['p'],array('userPassword'),'');
     24                $c = Functions::getSGValues($_POST['c'],array('enableGhostMode','stayLoggedIn'),0);
     25
     26                $error = '';
     27
     28                if(isset($_GET['doit'])) {
     29                    //
     30                    // Im Folgenden wird ueberprueft, ob
     31                    // 1) der User ueberhaupt existiert
     32                    // 2) der Account aktiviert ist
     33                    // 3) das Passwort stimmt, bzw. das Passwort mit einem neu angeforderten ueberein stimmt
     34                    // 4) der User gesperrt ist und falls ja wie lange
     35                    //
     36                    if(trim($userNick) == '' || ($userData = Functions::getUserData($userNick)) == FALSE) $error = $this->modules['Language']->getString('error_unknown_user');
     37                    elseif($userData['userIsActivated'] != 1) $error = sprintf($this->modules['Language']->getString('error_inactive_account'),$userData['userNick']);
     38                    elseif(Functions::getSaltedHash($p['userPassword'],$userData['userPasswordSalt']) != $userData['userPassword'] && ($userData['userNewPassword'] == '' || Functions::getSaltedHash($p['userPassword'],$userData['userNewPasswordSalt']) != $userData['userNewPassword'])) $error = $this->modules['Language']->getString('error_wrong_password');
     39                    elseif($userData['userIsLocked'] == 1 && Functions::checkLockStatus($userData['userID'])) { // Falls der Benutzer sich nicht mehr einloggen darf
     40                        $dB->query("SELECT lock_start_time,lock_dur_time FROM ".TBLPFX."users_locks WHERE user_id='".$p_user_data['user_id']."'");
     41                        $lock_data = $dB->fetch_array();
     42
     43                        if($lock_data['lock_dur_time'] == 0) $remaining_lock_time = $this->modules['Language']->getString('locked_forever');
     44                        else {
     45                            $remaining_lock_time = split_time($lock_data['lock_start_time']+$lock_data['lock_dur_time']-time());
     46
     47                            $remaining_months = sprintf($this->modules['Language']->getString('x_months'),$remaining_lock_time['months']);
     48                            $remaining_weeks = sprintf($this->modules['Language']->getString('x_weeks'),$remaining_lock_time['weeks']);
     49                            $remaining_days = sprintf($this->modules['Language']->getString('x_days'),$remaining_lock_time['days']);
     50                            $remaining_hours = sprintf($this->modules['Language']->getString('x_hours'),$remaining_lock_time['hours']);
     51                            $remaining_minutes = sprintf($this->modules['Language']->getString('x_minutes'),$remaining_lock_time['minutes']);
     52                            $remaining_seconds = sprintf($this->modules['Language']->getString('x_seconds'),$remaining_lock_time['seconds']);
     53
     54                            $remaining_lock_time = "$remaining_months, $remaining_weeks, $remaining_days, $remaining_hours, $remaining_minutes, $remaining_seconds";
     55                        }
     56
     57                        $error = sprintf($this->modules['Language']->getString('error_locked_account'),$remaining_lock_time);
     58                    }
     59                    else {
     60                        //
     61                        // Ueberpruefen, ob der Geist-Modus erlaubt sein soll
     62                        //
     63                        if($this->modules['Config']->getValue('allow_ghost_mode') == 0) $c['enableGhostMode'] = 0;
     64
     65                        //
     66                        // Erst werden die Logindaten in der Session gespeichert, dann
     67                        // werden sie in noch in der Datenbank aktualisiert
     68                        //
     69                        $this->modules['Auth']->setSessionUserID($userData['userID']);
     70                        $this->modules['Auth']->setSessionUserPassword($userData['userPassword']);
     71                        $this->modules['DB']->query("UPDATE ".TBLPFX."sessions SET sessionUserID='".$userData['userID']."', sessionIsGhost='".$c['enableGhostMode']."' WHERE sessionID='".session_id()."'");
     72
     73                        //
     74                        // Jetzt wird (falls im Browser aktiviert) ein Cookie gesetzt. Entweder
     75                        // wird das Cookie nur als "Sicherheitscookie" gesetzt, um eventuelles
     76                        // Ausloggen wegen Inaktivitaet zu verhindern, oder das Cookie wird fuer
     77                        // ein Jahr gesetzt, um einen permanenten/automatischen Login zu erreichen
     78                        //
     79                        if($c['stayLoggedIn'] == 1) setcookie('loginData',$userData['userID'].','.$userData['userPassword'],time()+31536000);
     80                        else setcookie('loginData',$userData['userID'].','.$userData['userPassword']);
     81
     82                        //
     83                        // Die folgenden vier Zeilen dienen dazu um entweder ein vorhandenes
     84                        // neu angefordertes Passwort zu loeschen, wenn es nicht benoetigt wurde,
     85                        // oder um das alte Passwort durch das neue zu ersetzen.
     86                        //
     87                        if(Functions::getSaltedHash($p['userPassword'],$userData['userPasswordSalt']) == $userData['userPassword'] && $userData['userNewPassword'] != '')
     88                            $this->Modules['DB']->query("UPDATE ".TBLPFX."users SET userNewPassword='', userNewPasswordSalt='' WHERE userID='".$userData['userID']."'");
     89                        elseif($userData['userNewPassword'] != '' && Functions::getSaltedHash($p['userPassword'],$userData['userNewPasswordSalt']) == $userData['userNewPassword'])
     90                            $this->Modules['DB']->query("UPDATE ".TBLPFX."users SET userNewPassword='', userNewPasswordSalt='', userPassword='".$userData['userNewPassword']."', userPasswordSalt='".$userData['userPasswordSalt']."' WHERE userID='".$userData['userID']."'");
     91
     92                        //
     93                        // Im Folgenden wird nur gecheckt, ob der User vorher irgendwo war,
     94                        // also dorthin weitergeleitet werden soll. Falls nicht, wird einfach
     95                        // die Forenuebersicht aufgerufen
     96                        //
     97                        isset($_SESSION['lastPlaceUrl']) ? Functions::myHeader($_SESSION['lastPlaceUrl']) : Functions::myHeader('index.php?'.MYSID);
     98                    }
    5199                }
    52100
    53                 $error = sprintf($this->modules['Language']->getString('error_locked_account'),$remaining_lock_time);
    54             }
    55             else {
    56                 //
    57                 // Ueberpruefen, ob der Geist-Modus erlaubt sein soll
    58                 //
    59                 if($this->modules['Config']->getValue('allow_ghost_mode') == 0) $c['enableGhostMode'] = 0;
    60 
    61                 //
    62                 // Erst werden die Logindaten in der Session gespeichert, dann
    63                 // werden sie in noch in der Datenbank aktualisiert
    64                 //
    65                 $this->modules['Auth']->setSessionUserID($userData['userID']);
    66                 $this->modules['Auth']->setSessionUserPassword($userData['userPassword']);
    67                 $this->modules['DB']->query("UPDATE ".TBLPFX."sessions SET sessionUserID='".$userData['userID']."', sessionIsGhost='".$c['enableGhostMode']."' WHERE sessionID='".session_id()."'");
    68 
    69                 //
    70                 // Jetzt wird (falls im Browser aktiviert) ein Cookie gesetzt. Entweder
    71                 // wird das Cookie nur als "Sicherheitscookie" gesetzt, um eventuelles
    72                 // Ausloggen wegen Inaktivitaet zu verhindern, oder das Cookie wird fuer
    73                 // ein Jahr gesetzt, um einen permanenten/automatischen Login zu erreichen
    74                 //
    75                 if($c['stayLoggedIn'] == 1) setcookie('loginData',$userData['userID'].','.$userData['userPassword'],time()+31536000);
    76                 else setcookie('loginData',$userData['userID'].','.$userData['userPassword']);
    77 
    78                 //
    79                 // Die folgenden vier Zeilen dienen dazu um entweder ein vorhandenes
    80                 // neu angefordertes Passwort zu loeschen, wenn es nicht benoetigt wurde,
    81                 // oder um das alte Passwort durch das neue zu ersetzen.
    82                 //
    83                 if(Functions::getSaltedHash($p['userPassword'],$userData['userPasswordSalt']) == $userData['userPassword'] && $userData['userNewPassword'] != '')
    84                     $this->Modules['DB']->query("UPDATE ".TBLPFX."users SET userNewPassword='', userNewPasswordSalt='' WHERE userID='".$userData['userID']."'");
    85                 elseif($userData['userNewPassword'] != '' && Functions::getSaltedHash($p['userPassword'],$userData['userNewPasswordSalt']) == $userData['userNewPassword'])
    86                     $this->Modules['DB']->query("UPDATE ".TBLPFX."users SET userNewPassword='', userNewPasswordSalt='', userPassword='".$userData['userNewPassword']."', userPasswordSalt='".$userData['userPasswordSalt']."' WHERE userID='".$userData['userID']."'");
    87 
    88                 //
    89                 // Im Folgenden wird nur gecheckt, ob der User vorher irgendwo war,
    90                 // also dorthin weitergeleitet werden soll. Falls nicht, wird einfach
    91                 // die Forenuebersicht aufgerufen
    92                 //
    93                 isset($_SESSION['lastPlaceUrl']) ? Functions::myHeader($_SESSION['lastPlaceUrl']) : Functions::myHeader('index.php?'.MYSID);
    94             }
     101                $this->modules['Template']->assign(array(
     102                    'c'=>$c,
     103                    'p'=>$p,
     104                    'userNick'=>$userNick,
     105                    'error'=>$error
     106                ));
     107                $this->modules['PageParts']->printPage('LoginLogin.tpl');
     108                break;
     109
     110            case 'ActivateAccount':
     111                $accountID = isset($_REQUEST['accountID']) ? $_REQUEST['accountID'] : '';
     112                $activationCode = isset($_REQUEST['activationCode']) ? $_REQUEST['activationCode'] : '';
     113
     114                $error = '';
     115
     116                $this->modules['Navbar']->addElement($this->modules['Language']->getString('Account_activation'),INDEXFILE."?action=Login&mode=ActivateAccount&".MYSID);
     117
     118                if(isset($_GET['doit'])) {
     119                    if(!$accountID = Functions::getUserID($accountID)) $error = $this->modules['Language']->getString('error_unknown_user');
     120                    else {
     121                        $accountData = Functions::getUserData($accountID);
     122                        if($accountData['userIsActivated'] != 0 || $accountData['userHash'] == '') $error = $this->modules['Language']->getString('error_no_inactive_account');
     123                        elseif($accountData['userHash'] != $activationCode) $error = $this->modules['Language']->getString('error_wrong_activationCode');
     124                        else {
     125                            $this->modules['DB']->query("
     126                                UPDATE
     127                                    ".TBLPFX."users
     128                                SET
     129                                    userIsActivated='1',
     130                                    userHash=''
     131                                WHERE
     132                                    userID='$accountID'
     133                            ");
     134
     135                            $_SESSION['last_place_url'] = INDEXFILE.'?'.MYSID;
     136
     137                            $this->modules['Navbar']->addElement($this->modules['Language']->getString('Account_activated'),'');
     138
     139                            $this->modules['PageParts']->printMessage('account_activated',array(sprintf($this->modules['Language']->getString('message_link_click_here_login'),'<a href="'.INDEXFILE.'?action=Login&amp;'.MYSID.'">','</a>')));
     140                            exit;
     141                        }
     142                    }
     143                }
     144
     145                $this->modules['Template']->assign(array(
     146                    'error'=>$error,
     147                    'accountID'=>$accountID,
     148                    'activationCode'=>$activationCode
     149                ));
     150
     151                $this->modules['PageParts']->printPage('LoginActivateAccount.tpl');
     152                break;
     153
     154            case 'RequestPassword':
     155                $p = Functions::getSGValues($_POST,array('userName','emailAddress'));
     156
     157                $error = '';
     158
     159                $this->modules['Navbar']->addElement($this->modules['Language']->getString('Request_new_password'),INDEXFILE."?action=Login&amp;mode=RequestPassword&amp;".MYSID);
     160
     161                if(isset($_GET['doit'])) {
     162                    if(!$userData = Functions::getUserData($p['userName'])) $error = $this->modules['Language']->getString('error_unknown_user');
     163                    elseif($userData['userEmailAddress'] != $p['emailAddress']) $error = $this->modules['Language']->getString('error_wrong_email_address');
     164                    else {
     165                        $newPassword = Functions::getRandomString(8);
     166                        $newPasswordSalt = Functions::getRandomString(10);
     167                        $newPasswordEncrypted = Functions::getSaltedHash($newPassword,$newPasswordSalt);
     168
     169                        $this->modules['DB']->query("
     170                            UPDATE
     171                                ".TBLPFX."users
     172                            SET
     173                                userNewPassword='$newPasswordEncrypted',
     174                                userNewPasswordSalt='$newPasswordSalt'
     175                            WHERE
     176                                userID='".$userData['userID']."'
     177                        ");
     178
     179                        if($this->modules['Config']->getValue('enable_email_functions') == 1) {
     180                            // TODO: Email
     181                            mymail('"'.$CONFIG['board_name'].'" <'.$CONFIG['board_email_address'].'>',$p_user_data['user_email'],$LNG['email_subject_new_password_requested'],$email_tpl->parseCode());
     182                        }
     183
     184                        $this->modules['Navbar']->addElement($this->modules['Language']->getString('New_password_sent'),'');
     185
     186                        $this->modules['PageParts']->printMessage('new_password_sent',array(
     187                            sprintf($this->modules['Language']->getString('message_link_click_here_login'),'<a href="'.INDEXFILE.'?action=Login&amp;'.MYSID.'">','</a>'),
     188                            sprintf($this->modules['Language']->getString('message_link_click_here_back_forumindex'),'<a href="'.INDEXFILE.'?'.MYSID.'">','</a>'),
     189                        ));
     190                        exit;
     191                    }
     192                }
     193
     194                $this->modules['Template']->assign(array(
     195                    'error'=>$error,
     196                    'p'=>$p
     197                ));
     198                $this->modules['PageParts']->printPage('LoginRequestPassword.tpl');
     199                break;
    95200        }
    96 
    97         $this->modules['Navbar']->addElement($this->modules['Language']->getString('Login'),INDEXFILE.'?action=Login&amp;'.MYSID);
    98 
    99         $this->modules['Template']->assign(array(
    100             'c'=>$c,
    101             'p'=>$p,
    102             'userNick'=>$userNick,
    103             'error'=>$error
    104         ));
    105         $this->modules['PageParts']->printPage('Login.tpl');
    106201    }
    107202}
  • trunk/modules/MemberList.class.php

    r8 r15  
    9494                t1.userID,
    9595                t1.userNick,
    96                 t1.userEmail,
     96                t1.userEmailAddress,
     97                t1.userHideEmailAddress,
    9798                t1.userPostsCounter,
    9899                t1.userIsAdmin,
  • trunk/modules/PageParts.class.php

    r13 r15  
    7474    }
    7575
    76     public function printMessage($messageCode,$additionalLinks = array(),$pageInPage = FALSE,$inPopup = FALSE) {
     76    public function printMessage($message,$additionalLinks = array(),$pageInPage = FALSE,$inPopup = FALSE) {
    7777        $this->modules['Language']->addFile('Messages');
    7878
    7979        $this->modules['Template']->assign(array(
    8080            'flags'=>$this->flags,
    81             'messageTitle'=>$this->modules['Language']->getString('message_title_'.$messageCode),
    82             'messageText'=>$this->modules['Language']->getString('message_text_'.$messageCode),
     81            'messageTitle'=>(is_array($message) ? $message[0] : $this->modules['Language']->getString('message_title_'.$message)),
     82            'messageText'=>(is_array($message) ? $message[1] : $this->modules['Language']->getString('message_text_'.$message)),
    8383            'additionalLinks'=>$additionalLinks,
    8484            'pageInPage'=>$pageInPage
  • trunk/modules/PrivateMessages.class.php

    r13 r15  
    1717        if($this->modules['Auth']->isLoggedIn() != 1) die('Kein Zugriff: Nicht eingeloggt');
    1818        elseif($this->modules['Config']->getValue('enable_pms') != 1) {
    19             // TODO: Richtige Meldung
    20             //add_navbar_items(array($this->modules['Language']->getString('Function_deactivated'),''));
    21 
    22             //include_once('pheader.php');
    23             //show_message($lNG['Function_deactivated'],$lNG['message_function_deactivated']);
    24             //include_once('ptail.php'); exit;
    25             die('Funktion nicht verfuegbar');
     19            $this->modules['Navbar']->addElement($this->modules['Language']->getString('Function_deactivated'),'');
     20            $this->modules['PageParts']->printMessage('function_deactivated');
     21            exit;
    2622        }
    2723
     
    6460                        t1.pmID,
    6561                        t1.pmSubject,
     62                        t1.pmMessageText,
    6663                        t1.pmSendTimestamp,
    6764                        t1.pmFromID,
     
    8784                    $curPM['_pmSender'] = ($curPM['pmType'] == 0) ? sprintf($this->modules['Language']->getString('from_x'),$curSenderNick) : sprintf($this->modules['Language']->getString('to_x'),$curSenderNick);
    8885                    $curPM['_pmSendDateTime'] = Functions::toDateTime($curPM['pmSendTimestamp']);
     86
     87                    $curPM['_pmMessageTextShort'] = (strlen($curPM['pmMessageText']) > 100) ? Functions::HTMLSpecialChars(substr($curPM['pmMessageText'],0,100)).'...' : Functions::HTMLSpecialChars($curPM['pmMessageText']);
     88
    8989                    $pmsData[] = $curPM;
    9090                }
  • trunk/modules/Register.class.php

    r6 r15  
    1919        // Zuerst einige Ueberpruefungen...
    2020        if($this->modules['Auth']->isLoggedIn() == 1) Functions::myHeader(INDEXFILE.'?'.MYSID);
    21         elseif($this->modules['Config']->getValue('enable_registration') != 1) { // Ist die Registrierung ueberhaupt aktiviert?
     21        elseif($this->modules['Config']->getValue('enable_registration') != 1) {
    2222            $this->modules['Navbar']->addElement($this->modules['Language']->getString('Registration_disabled'),INDEXFILE.'?Action=Register&amp'.MYSID);
    2323            $this->modules['PageParts']->printMessage('registration_disabled');
     
    7171                // Falls das Formular abgeschickt wurde
    7272                //
    73                 if(isset($_GET['Doit'])) {
     73                if(isset($_GET['doit'])) {
    7474                    $fieldIsMissing = FALSE;
    7575                    foreach($profileFields AS $curField) {
  • trunk/modules/ViewProfile.class.php

    r13 r15  
    215215                    elseif(trim($p['emailMessage']) == '') $error = $this->modules['Language']->getString('error_no_message');
    216216                    else {
    217                         Functions::myMail($this->modules['Auth']->getValue('userNick').' <'.$this->modules['Auth']->getValue('userEmail').'>',$profileData['userNick'].' <'.$profileData['userEmail'].'>',$p['emailSubject'],$p['emailMessage']);
     217                        Functions::myMail($this->modules['Auth']->getValue('userNick').' <'.$this->modules['Auth']->getValue('userEmailAddress').'>',$profileData['userNick'].' <'.$profileData['userEmailAddress'].'>',$p['emailSubject'],$p['emailMessage']);
    218218
    219219                        // TODO: correct message
  • trunk/modules/ViewTopic.class.php

    r13 r15  
    180180                // nicht doch aus Versehen anzeigen l?sst
    181181                //
    182                 if($curPost['postPosterHideEmail'] == 1) $curPost['posterEmail'] = '';
     182                if($curPost['postPosterHideEmailAddress'] == 1) $curPost['posterEmailAddress'] = '';
    183183
    184184
     
    336336                t2.rankID AS postPosterRankID,
    337337                t2.userAvatarAddress AS postPosterAvatarAddress,
    338                 t2.userHideEmail AS postPosterHideEmail,
     338                t2.userHideEmailAddress AS postPosterHideEmailAddress,
    339339                t2.userReceiveEmails AS postPosterReceiveEmails,
    340340                t3.smileyFileName AS postSmileyFileName
  • trunk/templates/std/templates/EditProfileGeneral.tpl

    r8 r15  
    88 <table border="0" cellpadding="2" cellspacing="0" border="0" width="100%">
    99 <tr>
    10   <td width="20%"><span class="FontNorm">{$modules.Language->getString('Email_address')}:</span></td>
    11   <td width="80%"><input class="FormText" type="text" size="40" name="p[userEmail]" value="{$p.userEmail}"/></td>
     10  <td width="20%" style="padding:3px;"><span class="FontNorm">{$modules.Language->getString('Email_address')}:</span></td>
     11  <td width="80%" style="padding:3px;"><input class="FormText" type="text" size="40" name="p[userEmailAddress]" value="{$p.userEmailAddress}"/></td>
    1212 </tr>
    1313 <tr>
    14   <td width="20%" valign="top"><span class="FontNorm">{$modules.Language->getString('Signature')}:</span></td>
    15   <td width="80%"><textarea class="FormTextArea" cols="60" rows="8" name="p[userSignature]">{$p.userSignature}</textarea></td>
     14  <td width="20%" style="padding:3px;" valign="top"><span class="FontNorm">{$modules.Language->getString('Signature')}:</span></td>
     15  <td width="80%" style="padding:3px;"><textarea class="FormTextArea" cols="60" rows="8" name="p[userSignature]">{$p.userSignature}</textarea></td>
    1616 </tr>
    1717 </table>
     
    2020 <fieldset>
    2121 <legend><span class="FontSmall"><b>{$modules.Language->getString('Change_password')}</b></span></legend>
    22  <div class="DivInfoBox"><span class="FontInfoBox"><img src="templates/std/templates/images/lightbulb_a.gif" class="ImageIcon"/>{$modules.Language->getString('change_password_info')}</span></div>
    23  <table border="0" cellpadding="2" cellspacing="0" border="0" width="100%">
     22 <div class="DivInfoBox"><span class="FontInfoBox"><img src="templates/std/templates/images/icons/information.png" class="ImageIcon"/>{$modules.Language->getString('change_password_info')}</span></div>
     23 <table border="0" cellpadding="0" cellspacing="0" border="0" width="100%">
    2424 <tr>
    25   <td width="20%"><span class="FontNorm">{$modules.Language->getString('Current_password')}:</span></td>
    26   <td width="80%"><input class="FormText" type="password" size="30" name="p[userOldPassword]"/></td>
     25  <td width="20%" style="padding:3px;"><span class="FontNorm">{$modules.Language->getString('Current_password')}:</span></td>
     26  <td width="80%" style="padding:3px;"><input class="FormText" type="password" size="30" name="p[userOldPassword]"/></td>
    2727 </tr>
    2828 <tr>
    29   <td width="20%"><span class="FontNorm">{$modules.Language->getString('New_password')}:</span></td>
    30   <td width="80%"><input class="FormText" type="password" size="30" name="p[userNewPassword]"/></td>
     29  <td width="20%" style="padding:3px;"><span class="FontNorm">{$modules.Language->getString('New_password')}:</span></td>
     30  <td width="80%" style="padding:3px;"><input class="FormText" type="password" size="30" name="p[userNewPassword]"/></td>
    3131 </tr>
    3232 <tr>
    33   <td width="20%"><span class="FontNorm">{$modules.Language->getString('Confirm_new_password')}:</span></td>
    34   <td width="80%"><input class="FormText" type="password" size="30" name="p[userNewPasswordConfirmation]"/></td>
     33  <td width="20%" style="padding:3px;"><span class="FontNorm">{$modules.Language->getString('Confirm_new_password')}:</span></td>
     34  <td width="80%" style="padding:3px;"><input class="FormText" type="password" size="30" name="p[userNewPasswordConfirmation]"/></td>
    3535 </tr>
    3636 </table>
  • trunk/templates/std/templates/EditProfileProfileSettings.tpl

    r8 r15  
    1 <form method="post" action="index.php?action=editprofile&amp;mode=settings&amp;doit=1&amp;{$mYSID}">
     1<form method="post" action="{$indexFile}?action=EditProfile&amp;mode=ProfileSettings&amp;doit=1&amp;{$mySID}">
    22<table class="TableStd" border="0" cellpadding="3" cellspacing="0" width="100%">
    33<tr><td class="CellCat"><span class="FontCat">{$modules.Language->getString('Settings')}</span></td></tr>
     
    88  <tr>
    99   <td width="35%" valign="top"><span class="FontNorm">{$modules.Language->getString('Show_email_address')}:</span><br/><span class="FontSmall">{$modules.Language->getString('show_email_address_info')}</span></td>
    10    <td width="65%" valign="top"><span class="FontNorm"><input class="FormRadio" type="radio" name="p[userHideEmail]" value="0"{if $p.userHideEmail == 0} checked="checked"{/if}/>&nbsp;{$modules.Language->getString('Yes')}&nbsp;&nbsp;&nbsp;<input class="FormRadio" type="radio" name="p[userHideEmail]" value="1"{if $p.userHideEmail == 1} checked="checked"{/if}/>&nbsp;{$modules.Language->getString('No')}</span></td>
     10   <td width="65%" valign="top"><span class="FontNorm"><input class="FormRadio" type="radio" name="p[userHideEmailAddress]" value="0"{if $p.userHideEmailAddress == 0} checked="checked"{/if}/>&nbsp;{$modules.Language->getString('Yes')}&nbsp;&nbsp;&nbsp;<input class="FormRadio" type="radio" name="p[userHideEmailAddress]" value="1"{if $p.userHideEmailAddress == 1} checked="checked"{/if}/>&nbsp;{$modules.Language->getString('No')}</span></td>
    1111  </tr>
    1212  <tr>
  • trunk/templates/std/templates/LoginLogin.tpl

    r6 r15  
    1010<tr>
    1111 <td class="CellStd" width="25%"><span class="FontNorm">{$modules.Language->getString('Password')}:</span></td>
    12  <td class="CellAlt" width="75%"><input class="FormText" type="password" name="p[userPassword]" tabindex="2" size="30"/>&nbsp;<span class="FontSmall">(<a href="{$indexFile}?action=RequestPassword&amp;{$mySID}" tabindex="4">{$modules.Language->getString('Request_new_password')}</a>)</span></td>
     12 <td class="CellAlt" width="75%"><input class="FormText" type="password" name="p[userPassword]" tabindex="2" size="30"/>&nbsp;<span class="FontSmall">(<a href="{$indexFile}?action=Login&amp;mode=RequestPassword&amp;{$mySID}" tabindex="4">{$modules.Language->getString('Request_new_password')}</a>)</span></td>
    1313</tr>
    1414<tr><td class="CellCat" colspan="2"><span class="FontCat">{$modules.Language->getString('Other_options')}</span></td></tr>
  • trunk/templates/std/templates/MemberList.tpl

    r8 r15  
    1111</tr>
    1212{foreach from=$usersData item=curUser}
    13  <tr>
     13 <tr onmouseover="setRowCellsClass(this,'CellHighlight');" onmouseout="restoreRowCellsClass(this);">
    1414  <td class="CellStd"><span class="FontNorm">{$curUser.userID}</span></td>
    1515  <td class="CellAlt"><span class="FontNorm">{$curUser.userNick}</span></td>
  • trunk/templates/std/templates/Message.tpl

    r13 r15  
    55 <tr><td class="CellTitle"><span class="FontTitle">{$messageTitle}</span></td></tr>
    66{/if}
    7 <tr><td class="CellStd" style="padding:15px;" align="center"><span class="FontNorm">{$messageText}</span></td></tr>
     7<tr><td class="CellStd" style="padding:15px;" align="center"><span class="FontNorm">{$messageText}
     8 {foreach from=$additionalLinks item=curLink}<br/>{$curLink}{/foreach}
     9</span></td></tr>
    810</table>
  • trunk/templates/std/templates/PrivateMessagesViewFolder.tpl

    r13 r15  
    2929  <td class="CellAlt" align="center"><input type="checkbox" value="{$curPM.pmID}" name="pmIDs[]" /></td>
    3030  <td class="CellAlt" align="center"><img src="{if $curPM.pmIsRead == 1}{if $curPM.pmIsReplied == 1}{$modules.Template->getTemplateDir()}/images/icons/PrivateMessageReadReplied.png{else}{$modules.Template->getTemplateDir()}/images/icons/PrivateMessageRead.png{/if}{else}{$modules.Template->getTemplateDir()}/images/icons/PrivateMessageUnread.png{/if}" alt="" border="0"/></td>
    31   <td class="CellStd"><span class="FontNorm"><a href="{$indexFile}?action=PrivateMessages&amp;mode=ViewPM&amp;pmID={$curPM.pmID}&amp;{$mySID}">{if $curPM.pmIsRead == 1}{$curPM.pmSubject}{else}<b>{$curPM.pmSubject}</b>{/if}</a></span></td>
     31  <td class="CellStd"><span class="FontNorm"><a href="{$indexFile}?action=PrivateMessages&amp;mode=ViewPM&amp;pmID={$curPM.pmID}&amp;{$mySID}">{if $curPM.pmIsRead == 1}{$curPM.pmSubject}{else}<b>{$curPM.pmSubject}</b>{/if}</a></span><br/><span class="FontSmall">{$curPM._pmMessageTextShort}</span></td>
    3232  <td class="CellAlt"><span class="FontSmall">{$curPM._pmSender}</span></td>
    3333  <td class="CellStd" align="center"><span class="FontSmall">{$curPM._pmSendDateTime}</span></td>
  • trunk/templates/std/templates/ViewForum.tpl

    r6 r15  
    1919</tr>
    2020{foreach from=$topicsData item=curTopic}
    21  <tr>
     21 <tr onmouseover="setRowCellsClass(this,'CellHighlight');" onmouseout="restoreRowCellsClass(this);">
    2222  <td class="CellAlt" width="20" align="center"><img src="{$akt_topic_status}" alt="" /></td>
    2323  <td class="CellAlt" width="20" align="center">{$curTopic._topicPic}</td>
  • trunk/templates/std/templates/ViewProfileView.tpl

    r12 r15  
    1111<tr>
    1212 <td class="CellStd"><span class="FontNorm">{$modules.Language->getString('Email_address')}:</span></td>
    13  <td class="CellAlt"><span class="FontNorm">{if $profileData.userHideEmail} != 1}<a href="mailto:{$profileData.userEmail}">{$profileData.userEmail}</a>{else}{$modules.Language->getString('Email_address_hidden')}{/if}{if $profileData.userReceiveEmails == 1 && $modules.Auth->isLoggedIn() == 1 && $modules.Config->getValue('enable_email_formular') == 1} <a href="{$indexFile}?action=ViewProfile&amp;profileID={$profileID}&amp;mode=SendEmail&amp;{$mySID}">[{$modules.Language->getString('Send_email')}]</a>{/if}</span></td>
     13 <td class="CellAlt"><span class="FontNorm">{if $profileData.userHideEmailAddress} != 1}<a href="mailto:{$profileData.userEmail}">{$profileData.userEmail}</a>{else}{$modules.Language->getString('Email_address_hidden')}{/if}{if $profileData.userReceiveEmails == 1 && $modules.Auth->isLoggedIn() == 1 && $modules.Config->getValue('enable_email_formular') == 1} <a href="{$indexFile}?action=ViewProfile&amp;profileID={$profileID}&amp;mode=SendEmail&amp;{$mySID}">[{$modules.Language->getString('Send_email')}]</a>{/if}</span></td>
    1414</tr>
    1515<tr>
  • trunk/templates/std/templates/ViewTopic.tpl

    r9 r15  
    6464       {if $curPost.show.editButton}<td><a href="javascript:toggleFastEdit('{$curPost.postID}');"><img src="templates/std/templates/images/buttons/de/test.png" alt="" class="ImageButton" border="0"/></a></td>{/if}
    6565       {if $curPost.show.editButton}<td><a href="{$indexFile}?action=Posting&amp;mode=Edit&amp;postID={$curPost.postID}&amp;{$mySID}"><img src="templates/std/templates/images/buttons/de/test.png" class="ImageButton" alt="" border="0"/></a></td>{/if}
    66        {if $curPost.postPosterHideEmail != 1 && $curPost.postPosterEmail != ''}<td><a href="mailto:{$curPost.postPosterEmail}"><img src="templates/std/templates/images/buttons/de/email.png" class="ImageButton" alt="{$curPost.postPosterEmail}" border="0"/></a>{else}<td>{if $curPost.postPosterReceiveEmails == 1}<a href="{$indexFile}?action=ViewProfile&amp;profileID={$curPost.UserID}&amp;mode=SendMail&amp;{$mySID}"><img src="{$modules.Template->getTemplateDir()}/images/button_user_email.gif" alt="{$modules.Language->getString('Send_email')}" border="0"/></a></td>{/if}{/if}
     66       {if $curPost.postPosterHideEmailAddress != 1 && $curPost.postPosterEmailAddress != ''}<td><a href="mailto:{$curPost.postPosterEmailAddress}"><img src="templates/std/templates/images/buttons/de/email.png" class="ImageButton" alt="{$curPost.postPosterEmailAddress}" border="0"/></a>{else}<td>{if $curPost.postPosterReceiveEmails == 1}<a href="{$indexFile}?action=ViewProfile&amp;profileID={$curPost.UserID}&amp;mode=SendMail&amp;{$mySID}"><img src="{$modules.Template->getTemplateDir()}/images/button_user_email.gif" alt="{$modules.Language->getString('Send_email')}" border="0"/></a></td>{/if}{/if}
    6767       <td><a href="{$indexFile}?action=Posting&amp;mode=Reply&amp;topicID={$topicID}&amp;Quote={$curPost.postID}&amp;{$mySID}"><img src="templates/std/templates/images/buttons/de/quote.png" class="ImageButton" alt="" border="0"/></a></td>
    6868      </tr>
  • trunk/templates/std/templates/WhoIsOnline.tpl

    r8 r15  
    22<tr><td class="CellTitle" colspan="2"><span class="FontTitle">{$modules.Language->getString('Who_is_online')}</span></td></tr>
    33{foreach from=$wioData item=curWIO}
    4  <tr>
     4 <tr onmouseover="setRowCellsClass(this,'CellHighlight');" onmouseout="restoreRowCellsClass(this);">
    55  <td class="CellStd"><span class="FontNorm">{$curWIO.sessionUserNick}</span></td>
    66  <td class="CellAlt"><span class="FontNorm">{$curWIO._sessionLastLocationText}</span></td>
  • trunk/templates/std/templates/jscripts.js

    r2 r15  
    6969    return Text;
    7070}
     71
     72function setRowCellsClass(row,newClass) {
     73    for(var i = 0; i < row.cells.length; i++) {
     74        row.cells[i].setAttribute("tbbOldClassName",row.cells[i].className);
     75        row.cells[i].className = newClass;
     76    }
     77}
     78
     79function restoreRowCellsClass(row,newClass) {
     80    for(var i = 0; i < row.cells.length; i++) {
     81        row.cells[i].className = row.cells[i].getAttribute("tbbOldClassName");
     82        row.cells[i].removeAttribute("tbbOldClassName");
     83    }
     84}
  • trunk/templates/std/templates/styles/ts_tbb2_standard.css

    r13 r15  
    4141}
    4242textarea.FormTextArea:focus {
    43     border:1px #000000 solid;
     43    border:1px #696969 solid;
    4444    padding:4px;
    4545    font-size:11px;
     
    5454}
    5555input.FormText:focus {
    56     border:1px #000000 solid;
     56    border:1px #696969 solid;
    5757    padding:3px;
    5858    font-size:11px;
     
    222222    border:#ACACAC 1px solid;
    223223    background-color:#DFE6EF;
     224}
     225
     226td.CellHighlight {
     227    padding:4px;
     228    border:#000000 0px solid;
     229    background-color:#B0C4DE;
    224230}
    225231
     
    391397}
    392398div.DivInfoBox {
    393     background-color:#FAFAD2;
    394     border:1px olive dotted;
    395     padding:4px;
    396     margin-top:3px;
    397     margin-bottom:3px;
     399    /*background-color:#FAFAD2;*/
     400    background-color:#E6E6FA;
     401    /*border:1px olive dotted;*/
     402    border:1px #0000CD dotted;
     403    padding:2px;
     404    margin-top:4px;
     405    margin-bottom:4px;
    398406    vertical-align:middle;
    399407}
     
    402410    color:#111755;
    403411    font-size:13px;
    404     vertical-align:middle;
     412    /*vertical-align:middle;*/
    405413}
    406414
     
    411419 */
    412420img.ImageIcon {
    413     margin:3px;
     421    margin:4px;
    414422    vertical-align:middle;
    415423}
Note: See TracChangeset for help on using the changeset viewer.