Changeset 6


Ignore:
Timestamp:
Mar 31, 2007, 8:36:20 PM (11 years ago)
Author:
julian
Message:
Location:
trunk
Files:
1 added
53 edited

Legend:

Unmodified
Added
Removed
  • trunk/core/Functions.class.php

    r3 r6  
    259259    }
    260260
    261     public static function getAuthData(&$ForumData,$AuthNames) {
    262         $AuthData = array();
    263         $Auth = Factory::singleton('Auth');
    264 
    265         if($Auth->isLoggedIn() == 0) {
     261    public static function getAuthData(&$forumData,$authNames) {
     262        $authData = array();
     263        $auth = Factory::singleton('Auth');
     264
     265        if($auth->isLoggedIn() == 0) {
     266            foreach($authNames AS $curAuth)
     267                $authData[$curAuth] = isset($forumData[$curAuth.'Guests']) ? $forumData[$curAuth.'Guests'] : 0;
     268
     269            return $authData;
     270        }
     271        elseif($Auth->getValue('userIsAdmin') == 1 || $Auth->getValue('userIsSupermod') == 1) {
    266272            foreach($AuthNames AS $curAuth)
    267                 $AuthData[$curAuth] = isset($ForumData['Guests'.$curAuth]) ? $ForumData['Guests'.$curAuth] : 0;
    268 
    269             return $AuthData;
    270         }
    271         elseif($Auth->getValue('UserIsAdmin') == 1 || $Auth->getValue('UserIsSupermod') == 1) {
    272             foreach($AuthNames AS $curAuth)
    273                 $AuthData[$curAuth] = 1;
    274 
    275             return $AuthData;
    276         }
    277 
    278         $AuthNamesI = implode(', ',$AuthNames);
    279 
    280         $DB = Factory::singleton('DB');
    281 
    282         $DB->query("SELECT $AuthNamesI FROM ".TBLPFX."forums_auth WHERE ForumID='".$ForumData['ForumID']."' AND AuthType='".AUTH_TYPE_USER."' AND AuthID='$UserID'");
    283         if($DB->getAffectedRows() == 1) return $DB->fetchArray();
    284 
    285         $DB->query("SELECT GroupID FROM ".TBLPFX."groups_members WHERE MemberID='$UserID'");
    286         if($DB->getAffectedRows() > 0) {
    287             $GroupIDs = $DB->Raw2FVArray();
    288 
    289             $DB->query("SELECT $AuthNamesI FROM ".TBLPFX."forums_auth WHERE ForumID='".$ForumData['ForumID']."' AND AuthType='".AUTH_TYPE_GROUP."' AND AuthID IN ('".implode("','",$GroupIDs)."')");
    290             if($DB->getAffectedRows() > 0) {
    291                 $GroupsAuthData = $DB->Raw2Array();
     273                $authData[$curAuth] = 1;
     274
     275            return $authData;
     276        }
     277
     278        $authNamesI = implode(', ',$authNames);
     279
     280        $db = Factory::singleton('DB');
     281
     282        $db->query("SELECT $authNamesI FROM ".TBLPFX."forums_auth WHERE forumID='".$forumData['forumID']."' AND authType='".AUTH_TYPE_USER."' AND authID='$userID'");
     283        if($db->getAffectedRows() == 1) return $db->fetchArray();
     284
     285        $db->query("SELECT GroupID FROM ".TBLPFX."groups_members WHERE MemberID='$UserID'");
     286        if($db->getAffectedRows() > 0) {
     287            $GroupIDs = $db->Raw2FVArray();
     288
     289            $db->query("SELECT $AuthNamesI FROM ".TBLPFX."forums_auth WHERE ForumID='".$ForumData['ForumID']."' AND AuthType='".AUTH_TYPE_GROUP."' AND AuthID IN ('".implode("','",$GroupIDs)."')");
     290            if($db->getAffectedRows() > 0) {
     291                $GroupsAuthData = $db->Raw2Array();
    292292                foreach($AuthNames AS $curAuth) {
    293293                    $AuthData[$curAuth] = $ForumData['Members'.$curAuth];
     
    323323        $DB->query("LOCK TABLES ".TBLPFX."cats WRITE"); // Die Tabelle sperren
    324324
    325         $DB->query("SELECT cat_l,cat_r FROM ".TBLPFX."cats WHERE CatID='$parent_id'"); // Die Daten der uebergeordneten Kategorie laden
     325        $DB->query("SELECT catL,catR FROM ".TBLPFX."cats WHERE catID='$parent_id'"); // Die Daten der uebergeordneten Kategorie laden
    326326        $parent_cat_data = $DB->fetch_array();
    327327
     
    329329        $DB->query("UPDATE ".TBLPFX."cats SET cat_r=cat_r+2 WHERE cat_r>='".$parent_cat_data['cat_r']."'"); // und nochmal Platz schaffen
    330330        $DB->query("INSERT INTO ".TBLPFX."cats (cat_l,cat_r) VALUES ('".$parent_cat_data['cat_r']."','".($parent_cat_data['cat_r']+1)."')"); // Daten der neuen Kategorie einfuegen
    331         $new_CatID = $DB->insert_id;
     331        $newCatID = $DB->insert_id;
    332332
    333333        $DB->query("UNLOCK TABLES"); // Tabelle entsperren
    334334
    335         return $new_CatID;
     335        return $newCatID;
    336336    }
    337337
     
    465465    //* Laedt alle Kategorien inklusive der Tiefe und der Anzahl der Kinder
    466466    //*
    467     static public function getCatsData($CatID = 1) {
    468         $DB = Factory::singleton('DB');
    469 
    470         if($CatID == 1) $DB->query("SELECT t1.*, COUNT(*)-1 AS cat_depth, (t1.CatR - t1.CatL - 1) / 2 AS cat_childs_counter FROM ".TBLPFX."cats AS t1, ".TBLPFX."cats AS t2 WHERE t1.CatID<>'1' AND t1.CatL BETWEEN t2.CatL AND t2.CatR GROUP BY t1.CatL ORDER BY CatL");
     467    static public function getCatsData($catID = 1) {
     468        $DB = Factory::singleton('DB');
     469
     470        if($catID == 1) $DB->query("SELECT t1.*, COUNT(*)-1 AS catDepth, (t1.catR - t1.catL - 1) / 2 AS catChildsCounter FROM (".TBLPFX."cats AS t1, ".TBLPFX."cats AS t2) WHERE t1.catID<>'1' AND t1.catL BETWEEN t2.catL AND t2.catR GROUP BY t1.catL ORDER BY catL");
    471471        else {
    472             $DB->query("SELECT CatL,CatR FROM ".TBLPFX."cats WHERE CatID='$CatID'");
     472            $DB->query("SELECT catL,catR FROM ".TBLPFX."cats WHERE catID='$catID'");
    473473            if($DB->getAffectedRows() != 1) return FALSE;
    474474
    475475
    476             list($CatL,$CatR) = $DB->fetchArray();
    477             $DB->query("SELECT t1.*, COUNT(*)-1 AS cat_depth, (t1.CatR - t1.CatL - 1) / 2 AS cat_childs_counter FROM ".TBLPFX."cats AS t1, ".TBLPFX."cats AS t2 WHERE t1.CatID<>'$CatID' AND t1.CatL BETWEEN '$CatL' AND '$CatR' AND t1.CatL BETWEEN t2.CatL AND t2.CatR GROUP BY t1.CatL ORDER BY CatL");
     476            list($catL,$catR) = $DB->fetchArray();
     477            $DB->query("SELECT t1.*, COUNT(*)-1 AS catDepth, (t1.catR - t1.catL - 1) / 2 AS catChildsCounter FROM (".TBLPFX."cats AS t1, ".TBLPFX."cats AS t2) WHERE t1.catID<>'$catID' AND t1.catL BETWEEN '$catL' AND '$catR' AND t1.catL BETWEEN t2.catL AND t2.catR GROUP BY t1.catL ORDER BY catL");
    478478            if($DB->getAffectedRows() == 0) return array();
    479479        }
    480480
    481         return $DB->Raw2Array();
     481        return $DB->raw2Array();
    482482    }
    483483
  • trunk/modules/Ajax.class.php

    r2 r6  
    22
    33class Ajax extends ModuleTemplate {
    4     protected $RequiredModules = array(
     4    protected $requiredModules = array(
    55        'Auth',
    66        'Cache',
     
    1313        header('Content-type: text/xml; charset=UTF-8');
    1414
    15         $Values = array();
    16         $Status = 'FAIL';
    17         $Mode = '';
    18         $Error = '';
     15        $values = array();
     16        $status = 'FAIL';
     17        $mode = '';
     18        $error = '';
    1919
    2020        switch(@$_GET['Mode']) {
    2121            case 'EditPost':
    22                 $PostID = isset($_GET['PostID']) ? intval($_GET['PostID']) : 0;
    23                 $PostText = isset($_GET['PostText']) ? $_GET['PostText'] : '';
    24                 $Mode = 'EditPost';
     22                $postID = isset($_GET['PostID']) ? intval($_GET['PostID']) : 0;
     23                $postText = isset($_GET['PostText']) ? $_GET['PostText'] : '';
     24                $mode = 'EditPost';
    2525
    26                 if($this->Modules['Auth']->isLoggedIn() != 1) $Error = 'Kann Beitrag nicht laden: Nicht eingeloggt';
    27                 elseif(!$PostData = Functions::getPostData($PostID)) $Error = 'Kann Daten nicht laden: Beitrag';
    28                 elseif(!$ForumData = Functions::getForumData($PostData['ForumID'])) $Error = 'Kann Daten nicht laden: Forum';
     26                if($this->modules['Auth']->isLoggedIn() != 1) $error = 'Kann Beitrag nicht laden: Nicht eingeloggt';
     27                elseif(!$postData = Functions::getPostData($postID)) $error = 'Kann Daten nicht laden: Beitrag';
     28                elseif(!$forumData = Functions::getForumData($postData['ForumID'])) $error = 'Kann Daten nicht laden: Forum';
    2929                else {
    30                     $AuthData = Functions::getAuthData($ForumData,array('AuthIsMod','AuthEditPosts'));
    31                     if($AuthData['AuthEditPosts'] != 1) $Error = 'Kann Beitrag nicht bearbeiten: Kein Zugriff';
     30                    $authData = Functions::getAuthData($forumData,array('AuthIsMod','AuthEditPosts'));
     31                    if($authData['AuthEditPosts'] != 1) $error = 'Kann Beitrag nicht bearbeiten: Kein Zugriff';
    3232                    else {
    33                         $this->Modules['DB']->query("
     33                        $this->modules['DB']->query("
    3434                            UPDATE ".TBLPFX."posts
    3535                            SET
    36                                 PostText='$PostText',
     36                                PostText='$postText',
    3737                                PostEditedCounter=PostEditedCounter+1,
    38                                 PostLastEditorNick='".addslashes($this->Modules['Auth']->getValue('UserNick'))."'
     38                                PostLastEditorNick='".addslashes($this->modules['Auth']->getValue('UserNick'))."'
    3939                            WHERE
    40                                 PostID='$PostID'
     40                                PostID='$postID'
    4141                        ");
    4242
    43                         $PostText = Functions::stripSlashes($PostText);
    44                         $PostTextHTMLReady = $PostText;
    45                         if($PostData['PostEnableHtmlCode'] != 1 || $ForumData['ForumEnableHtmlCode'] == FALSE) $PostTextHTMLReady = Functions::HTMLSpecialChars($PostTextHTMLReady);
    46                         if($PostData['PostEnableSmilies'] == 1 && $ForumData['ForumEnableSmilies'] == TRUE) $PostTextHTMLReady = strtr($PostTextHTMLReady,$this->Modules['Cache']->getSmiliesData('write'));
    47                         $PostTextHTMLReady = nl2br($PostTextHTMLReady);
    48                         //if($PostData['PostEnableBBCode'] == 1 && $ForumData['ForumEnableBBCode'] == TRUE) $PostTextHTMLReady = Functions::BBCode($PostTextHTMLReady);
     43                        $postText = Functions::stripSlashes($postText);
     44                        $postTextHTMLReady = $postText;
     45                        if($postData['PostEnableHtmlCode'] != 1 || $forumData['ForumEnableHtmlCode'] == FALSE) $postTextHTMLReady = Functions::HTMLSpecialChars($postTextHTMLReady);
     46                        if($postData['PostEnableSmilies'] == 1 && $forumData['ForumEnableSmilies'] == TRUE) $postTextHTMLReady = strtr($postTextHTMLReady,$this->modules['Cache']->getSmiliesData('write'));
     47                        $postTextHTMLReady = nl2br($postTextHTMLReady);
     48                        //if($postData['PostEnableBBCode'] == 1 && $forumData['ForumEnableBBCode'] == TRUE) $postTextHTMLReady = Functions::BBCode($postTextHTMLReady);
    4949
    50                         $Values = array(
    51                             array('Name'=>'PostID','Value'=>$PostID),
    52                             array('Name'=>'PostTextRaw','Value'=>Functions::XMLEscapeString($PostText)),
    53                             array('Name'=>'PostTextHTMLReady','Value'=>Functions::XMLEscapeString($PostTextHTMLReady))
     50                        $values = array(
     51                            array('Name'=>'PostID','Value'=>$postID),
     52                            array('Name'=>'PostTextRaw','Value'=>Functions::XMLEscapeString($postText)),
     53                            array('Name'=>'PostTextHTMLReady','Value'=>Functions::XMLEscapeString($postTextHTMLReady))
    5454                        );
    5555
    56                         $Status = 'SUCC';
     56                        $status = 'SUCC';
    5757                    }
    5858                }
     
    6464        }
    6565
    66         $Values[] = array('Name'=>'Error','Value'=>$Error);
     66        $values[] = array('Name'=>'Error','Value'=>$error);
    6767
    68         $this->Modules['Template']->assign(array(
    69             'Status'=>$Status,
    70             'Mode'=>$Mode,
    71             'Values'=>$Values
     68        $this->modules['Template']->assign(array(
     69            'Status'=>$status,
     70            'Mode'=>$mode,
     71            'Values'=>$values
    7272        ));
    73         $this->Modules['Template']->display('AjaxResult.xml');
     73        $this->modules['Template']->display('AjaxResult.xml');
    7474    }
    7575}
  • trunk/modules/Auth.class.php

    r5 r6  
    1111
    1212    public function initializeMe() {
    13         if(isset($_SESSION['UserID']) == TRUE) {
    14             $this->modules['DB']->query("SELECT * FROM ".TBLPFX."users WHERE UserID='".$_SESSION['UserID']."'");
     13        if(isset($_SESSION['userID']) == TRUE) {
     14            $this->modules['DB']->query("SELECT * FROM ".TBLPFX."users WHERE userID='".$_SESSION['userID']."'");
    1515            if($this->modules['DB']->getAffectedRows() == 1) {
    16                 $tempUserData = $this->Modules['DB']->fetchArray();
    17                 if($tempUserData['UserPassword'] == $_SESSION['UserPassword']) {
    18                     $this->userID = $tempUserData['UserID'];
     16                $tempUserData = $this->modules['DB']->fetchArray();
     17                if($tempUserData['userPassword'] == $_SESSION['userPassword']) {
     18                    $this->userID = $tempUserData['userID'];
    1919                    $this->userLoggedIn = 1;
    2020                    $this->userData = $tempUserData;
     
    3838
    3939    public function setSessionUserID($newUserID) {
    40         $_SESSION['UserID'] = $newUserID;
     40        $_SESSION['userID'] = $newUserID;
    4141    }
    4242
    4343    public function setSessionUserPassword($newUserPassword) {
    44         $_SESSION['UserPassword'] = $newUserPassword;
     44        $_SESSION['userPassword'] = $newUserPassword;
    4545    }
    4646
     
    5858
    5959    public function destroySessionData() {
    60         unset($_SESSION['UserID']);
    61         unset($_SESSION['UserPassword']);
     60        unset($_SESSION['userID']);
     61        unset($_SESSION['userPassword']);
    6262    }
    6363}
  • trunk/modules/Cache.class.php

    r5 r6  
    2020        }
    2121
    22         $toWrite1 = '<?php $SmiliesDataRead = array('.implode(',',$toWrite1).'); ?>';
    23         $toWrite2 = '<?php $SmiliesDataWrite = array('.implode(',',$toWrite2).'); ?>';
     22        $toWrite1 = '<?php $smiliesDataRead = array('.implode(',',$toWrite1).'); ?>';
     23        $toWrite2 = '<?php $smiliesDataWrite = array('.implode(',',$toWrite2).'); ?>';
    2424
    2525        Functions::FileWrite('cache/cache_smilies_read.php',$toWrite1,'w');
     
    2727    }
    2828
    29     public function getSmiliesData($Mode = 'read') {
    30         if($Mode == 'read'){
    31             $SmiliesDataRead = array();
     29    public function getSmiliesData($mode = 'read') {
     30        if($mode == 'read'){
     31            $smiliesDataRead = array();
    3232
    3333            if(file_exists('cache/SmiliesRead.cache.php') == TRUE)
     
    3535            else {
    3636                $this->modules['DB']->query("SELECT SmileyID,SmileyFileName,SmileySynonym,SmileyStatus FROM ".TBLPFX."smilies WHERE SmileyType='".SMILEY_TYPE_SMILEY."'");
    37                 $SmiliesDataRead = $this->modules['DB']->Raw2Array();
    38             }
    39 
    40             return $SmiliesDataRead;
     37                $smiliesDataRead = $this->modules['DB']->raw2Array();
     38            }
     39
     40            return $smiliesDataRead;
    4141        }
    4242        else {
    43             $SmiliesDataWrite = array();
     43            $smiliesDataWrite = array();
    4444
    4545            if(file_exists('cache/SmiliesWrite.cache.php') == TRUE)
     
    4848                $this->modules['DB']->query("SELECT SmileyFileName,SmileySynonym FROM ".TBLPFX."smilies WHERE SmileyType='".SMILEY_TYPE_SMILEY."' OR SmileyType='".SMILEY_TYPE_ADMINSMILEY."'");
    4949                while($curSmiley = $this->modules['DB']->fetchArray())
    50                     $SmiliesDataWrite[$curSmiley['SmileySynonym']] = '<img src="'.$curSmiley['SmileyFileName'].'" border="0" alt="'.$curSmiley['SmileySynonym'].'"/>';
    51             }
    52 
    53             return $SmiliesDataWrite;
     50                    $smiliesDataWrite[$curSmiley['SmileySynonym']] = '<img src="'.$curSmiley['SmileyFileName'].'" border="0" alt="'.$curSmiley['SmileySynonym'].'"/>';
     51            }
     52
     53            return $smiliesDataWrite;
    5454        }
    5555    }
    5656
    5757    public function getAdminSmiliesData() {
    58         $AdminSmiliesData = array();
     58        $adminSmiliesData = array();
    5959
    6060        if(file_exists('cache/AdminSmilies.cache.php') == TRUE) include('cache/AdminSmilies.cache.php');
    6161        else return $this->setAdminSmiliesData();
    6262
    63         return $AdminSmiliesData;
     63        return $adminSmiliesData;
    6464    }
    6565
    6666    public function setAdminSmiliesData() {
    67         $AdminSmiliesData = $toWrite = array();
     67        $adminSmiliesData = $toWrite = array();
    6868
    6969        $this->modules['DB']->query("SELECT SmileyID,SmileyType,SmileyFileName,SmileySynonym,SmileyStatus FROM ".TBLPFX."smilies WHERE SmileyType='".SMILEY_TYPE_ADMINSMILEY."'");
    7070        while($curSmiley = $this->modules['DB']->fetchArray()) {
    71             $AdminSmiliesData[] = array(
     71            $adminSmiliesData[] = array(
    7272                'SmileyID'=>$curSmiley['SmileyID'],
    7373                'SmileyFileName'=>$curSmiley['SmileyFileName'],
     
    7878        }
    7979
    80         Functions::FileWrite('cache/AdminSmilies.cache.php','<?php $AdminSmiliesData = array('.implode(',',$toWrite).'); ?>','w');
    81 
    82         return $AdminSmiliesData;
     80        Functions::FileWrite('cache/AdminSmilies.cache.php','<?php $adminSmiliesData = array('.implode(',',$toWrite).'); ?>','w');
     81
     82        return $adminSmiliesData;
    8383    }
    8484
    8585    public function setPPicsData() {
    86         $toWrite = $PPicsData = array();
     86        $toWrite = $pPicsData = array();
    8787
    8888        $this->modules['DB']->query("SELECT SmileyID,SmileyFileName FROM ".TBLPFX."smilies WHERE SmileyType='1'");
    8989        while($curSmiley = $this->modules['DB']->fetchArray()) {
    9090            $toWrite[] = 'array(\'SmileyID\'=>\''.$curSmiley['SmileyID'].'\',\'SmileyFileName\'=>\''.$curSmiley['SmileyFileName'].'\')';
    91             $PPicsData[] = $curSmiley;
    92         }
    93 
    94         $toWrite = '<?php $PPicsData = array('.implode(',',$toWrite).'); ?>';
     91            $pPicsData[] = $curSmiley;
     92        }
     93
     94        $toWrite = '<?php $pPicsData = array('.implode(',',$toWrite).'); ?>';
    9595
    9696        Functions::FileWrite('cache/PPics.cache.php',$toWrite,'w');
    9797
    98         return $PPicsData;
     98        return $pPicsData;
    9999    }
    100100
    101101    public function getPPicsData() {
    102         $PPicsData = array();
     102        $pPicsData = array();
    103103
    104104        if(file_exists('cache/PPics.cache.php') == TRUE)
     
    106106        else return $$this->setPPicsData();
    107107
    108         return $PPicsData;
     108        return $pPicsData;
    109109    }
    110110
    111111    public function setRanksData() {
    112         $RanksData1 = $RanksData2 = array();
    113 
    114         $this->modules['DB']->query("SELECT * FROM ".TBLPFX."ranks ORDER BY RankPosts");
     112        $ranksData1 = $ranksData2 = array();
     113
     114        $this->modules['DB']->query("SELECT * FROM ".TBLPFX."ranks ORDER BY rankPosts");
    115115        while($curRank = $this->modules['DB']->fetchArray()) {
    116116            $curRankGfx = '';
    117117
    118             if($curRank['RankGfx'] != '') {
    119                 $curRankGfx = explode(';',$curRank['RankGfx']);
     118            if($curRank['rankGfx'] != '') {
     119                $curRankGfx = explode(';',$curRank['rankGfx']);
    120120                while(list($curKey) = each($curRankGfx))
    121121                    $curRankGfx[$curKey] = '<img src="'.$curRankGfx[$curKey].'" border="0" alt=""/>';
     
    123123            }
    124124
    125             if($curRank['RankType'] == 0)
    126                 $RanksData1[] = "array('RankName'=>'".$curRank['RankName']."','RankPosts'=>'".$curRank['RankPosts']."','RankGfx'=>'".$curRankGfx."')";
     125            if($curRank['rankType'] == 0)
     126                $ranksData1[] = "array('rankName'=>'".$curRank['rankName']."','rankPosts'=>'".$curRank['rankPosts']."','rankGfx'=>'".$curRankGfx."')";
    127127            else
    128                 $RanksData2[] = "'".$curRank['RankID']."'=>array('RankName'=>'".$curRank['RankName']."','RankGfx'=>'".$curRankGfx."')";
    129         }
    130 
    131         $toWrite = '<?php $RanksData = array(array('.implode(",",$RanksData1).'),array('.implode(",",$RanksData2).')); ?>';
     128                $ranksData2[] = "'".$curRank['rankID']."'=>array('rankName'=>'".$curRank['rankName']."','rankGfx'=>'".$curRankGfx."')";
     129        }
     130
     131        $toWrite = '<?php $ranksData = array(array('.implode(",",$ranksData1).'),array('.implode(",",$ranksData2).')); ?>';
    132132
    133133        Functions::FileWrite('cache/Ranks.cache.php',$toWrite,'w');
    134134
    135         return array($RanksData1,$RanksData2);
     135        return array($ranksData1,$ranksData2);
    136136    }
    137137
    138138    public function getRanksData() {
    139         $RanksData = array(array(),array());
     139        $ranksData = array(array(),array());
    140140
    141141        if(file_exists('cache/Ranks.cache.php') == TRUE)
     
    143143        else return $this->setRanksData();
    144144
    145         return $RanksData;
     145        return $ranksData;
    146146    }
    147147
    148148    public function setLanguages() {
    149         $Languages = $LanguageIDs = array();
     149        $languages = $languageIDs = array();
    150150
    151151        $toWrite1 = array();
    152152        $toWrite2 = array();
    153153
    154         $DP = opendir('languages');
    155         while($curObj = readdir($DP)) {
    156             if($DP == '..' || $DP == '.' || file_exists('languages/'.$curObj.'/Language.config') == FALSE) continue;
     154        $dP = opendir('languages');
     155        while($curObj = readdir($dP)) {
     156            if($dP == '..' || $dP == '.' || file_exists('languages/'.$curObj.'/Language.config') == FALSE) continue;
    157157
    158158            $curLanguageConfig = parse_ini_file('languages/'.$curObj.'/Language.config');
     
    161161            foreach($curSupportedLanguages AS $curLanguage) {
    162162                $toWrite1[] = "'$curLanguage'=>'$curObj'";
    163                 $LanguageIDs[$curLanguage] = $curObj;
    164             }
    165 
    166             $Languages[] = array(
     163                $languageIDs[$curLanguage] = $curObj;
     164            }
     165
     166            $languages[] = array(
    167167                'Name'=>$curLanguageConfig['language_name'],
    168168                'NativeName'=>$curLanguageConfig['language_name_native'],
     
    173173            $toWrite2[] = "array('Name'=>'".$curLanguageConfig['language_name']."','NativeName'=>'".$curLanguageConfig['language_name_native']."','Dir'=>'".$curObj."','SupportedLanguages'=>'".$curLanguageConfig['supported_languages']."')";
    174174        }
    175         closedir($DP);
    176 
    177         $toWrite = '<?php $LanguageIDs = array('.implode(',',$toWrite1).'); $Languages = array('.implode(',',$toWrite2).'); ?>';
     175        closedir($dP);
     176
     177        $toWrite = '<?php $languageIDs = array('.implode(',',$toWrite1).'); $languages = array('.implode(',',$toWrite2).'); ?>';
    178178
    179179        Functions::FileWrite('cache/Languages.cache.php',$toWrite,'w');
    180180
    181         return array($LanguageIDs,$Languages);
     181        return array($languageIDs,$languages);
    182182    }
    183183
    184184    public function getLanguages() {
    185         $LanguageIDs = array();
    186         $Languages = array();
     185        $languageIDs = array();
     186        $languages = array();
    187187
    188188        if(file_exists('cache/Languages.cache.php') == TRUE) {
    189189            include('cache/Languages.cache.php');
    190             return array($LanguageIDs,$Languages);
     190            return array($languageIDs,$languages);
    191191        }
    192192        else return $this->setLanguages();
     
    194194
    195195    public function setConfig() {
    196         $Config = $toWrite = array();
     196        $config = $toWrite = array();
    197197        $this->modules['DB']->query("SELECT * FROM ".TBLPFX."config");
    198198        while($curRow = $this->modules['DB']->fetchArray()) {
    199             $Config[$curRow['ConfigName']] = $curRow['ConfigValue'];
     199            $config[$curRow['ConfigName']] = $curRow['ConfigValue'];
    200200            $toWrite[] = '\''.$curRow['ConfigName'].'\'=>\''.addslashes($curRow['ConfigValue']).'\'';
    201201        }
    202202
    203         $toWrite = '<?php $Config = array('.implode(',',$toWrite).'); ?>';
     203        $toWrite = '<?php $config = array('.implode(',',$toWrite).'); ?>';
    204204
    205205        Functions::FileWrite('cache/Config.cache.php',$toWrite,'w');
    206206
    207         return $Config;
     207        return $config;
    208208    }
    209209
    210210    public function getConfig() {
    211         $Config = array();
     211        $config = array();
    212212        if(file_exists('cache/Config.cache.php') == TRUE) include('cache/Config.cache.php');
    213         else $Config = $this->setConfig();
    214         return $Config;
     213        else $config = $this->setConfig();
     214        return $config;
    215215    }
    216216
  • trunk/modules/Config.class.php

    r5 r6  
    1010    public function initializeMe() {
    1111        $this->myConfig = $this->modules['Cache']->getConfig();
    12         $this->modules['Cache']->setPPicsData();
     12        //$this->modules['Cache']->setPPicsData();
    1313    }
    1414
  • trunk/modules/DB.class.php

    r5 r6  
    22
    33class DB extends ModuleTemplate {
    4     protected $QueriesCounter = 0;
    5     protected $DBObject = NULL;
    6     protected $CurResult = NULL;
    7     protected $QueryTime = 0;
     4    protected $queriesCounter = 0;
     5    protected $dBObject = NULL;
     6    protected $curResult = NULL;
     7    protected $queryTime = 0;
    88
    99    public function initializeMe() {
    10         $this->DBObject = new mysqli;
     10        $this->dBObject = new mysqli;
    1111
    12         @$this->DBObject->connect($this->getC('dbServer'),$this->getC('dbUser'),$this->getC('dbPassword'),$this->getC('dbName'));
     12        @$this->dBObject->connect($this->getC('dbServer'),$this->getC('dbUser'),$this->getC('dbPassword'),$this->getC('dbName'));
    1313        if(mysqli_connect_error() != '') die('Database error: <b>'.mysqli_connect_error().'</b>');
    1414
     
    3939    }
    4040
    41     public function query($Query) {
    42         $StarTime = Functions::getMicroTime();
    43         if(($this->CurResult = $this->DBObject->query($Query)) == FALSE) die('Database error: <b>'.$this->DBObject->error.'</b><br/>Query: <b>'.$Query.'</b>');
    44         $this->QueryTime += Functions::getMicroTime()-$StarTime;
    45         $this->QueriesCounter++;
     41    public function query($query) {
     42        $starTime = Functions::getMicroTime();
     43        if(($this->curResult = $this->dBObject->query($query)) == FALSE) die('Database error: <b>'.$this->dBObject->error.'</b><br/>Query: <b>'.$query.'</b>');
     44        $this->queryTime += Functions::getMicroTime()-$starTime;
     45        $this->queriesCounter++;
    4646    }
    4747
    4848    public function getQueryTime() {
    49         return $this->QueryTime;
     49        return $this->queryTime;
    5050    }
    5151
    5252    public function getInsertID() {
    53         return $this->DBObject->insert_id;
     53        return $this->dBObject->insert_id;
    5454    }
    5555
    5656    public function Raw2Array() {
    57         $Temp = array();
    58         while($CurRow = $this->CurResult->fetch_array())
    59             $Temp[] = $CurRow;
     57        $temp = array();
     58        while($curRow = $this->curResult->fetch_array())
     59            $temp[] = $curRow;
    6060
    61         return $Temp;
     61        return $temp;
    6262    }
    6363
    6464    public function Raw2FVArray() {
    65         $Temp = array();
     65        $temp = array();
    6666
    6767        while(list($curValue) = $this->fetchArray())
    68             $Temp[] = $curValue;
     68            $temp[] = $curValue;
    6969
    70         return $Temp;
     70        return $temp;
    7171    }
    7272
    7373    public function fetchArray() {
    74         return $this->CurResult->fetch_array();
     74        return $this->curResult->fetch_array();
    7575    }
    7676
    7777    public function getAffectedRows() {
    78         return $this->DBObject->affected_rows;
     78        return $this->dBObject->affected_rows;
    7979    }
    8080
     
    8383    }
    8484
    85     public function fromUnixTimestamp($Timestamp) {
    86         return date('Y-m-d H:i:s',$Timestamp);
     85    public function fromUnixTimestamp($timestamp) {
     86        return date('Y-m-d H:i:s',$timestamp);
    8787    }
    8888
    89     public function toUnixTimstamp($Date) {
     89    public function toUnixTimstamp($date) {
    9090    }
    9191
    92     public function escapeString($String) {
    93         return mysql_escape_string($String);
     92    public function escapeString($string) {
     93        return mysql_escape_string($string);
    9494    }
    9595}
  • trunk/modules/EditProfile.class.php

    r2 r6  
    22
    33class EditProfile extends ModuleTemplate {
    4     protected $RequiredModules = array(
     4    protected $requiredModules = array(
    55        'Auth',
    66        'Config',
     
    1212
    1313    public function executeMe() {
    14         if($this->Modules['Auth']->isLoggedIn() != 1) die('Kein Zugriff: Nicht eingeloggt');
    15 
    16         $this->Modules['Language']->addFile('EditProfile');
    17         $this->Modules['PageParts']->setInEditProfile(TRUE);
    18 
    19         //add_navbar_items(array($this->Modules['Language']->getString('User_administration'],"index.php?action=editprofile&amp;$MYSID"));
     14        if($this->modules['Auth']->isLoggedIn() != 1) die('Kein Zugriff: Nicht eingeloggt');
     15
     16        $this->modules['Language']->addFile('EditProfile');
     17        $this->modules['PageParts']->setInEditProfile(TRUE);
     18
     19        //add_navbar_items(array($this->modules['Language']->getString('User_administration'],"index.php?action=editprofile&amp;$mYSID"));
    2020
    2121        switch(@$_GET['Mode']) {
    2222            default:
    23                 $p = Functions::getSGValues($_POST['p'],array('UserEmail','UserSignature'),'',Functions::addSlashes($this->Modules['Auth']->getUserData()));
     23                $p = Functions::getSGValues($_POST['p'],array('UserEmail','UserSignature'),'',Functions::addSlashes($this->modules['Auth']->getUserData()));
    2424                $p = array_merge($p,Functions::getSGValues($_POST['p'],array('UserOldPassword','UserNewPassword','UserNewPasswordConfirmation'),''));
    2525
    26                 $Error = '';
     26                $error = '';
    2727
    2828                if(isset($_GET['Doit'])) {
    29                     if(Functions::verifyEmail($p['UserEmail']) == FALSE) $Error = $this->Modules['Language']->getString('error_bad_email');
    30                     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');
    31                     elseif(trim($p['UserNewPassword']) != '' && $p['UserNewPassword'] != $p['UserNewPasswordConfirmation']) $Error = $this->Modules['Language']->getString('error_pws_no_match');
     29                    if(Functions::verifyEmail($p['UserEmail']) == FALSE) $error = $this->modules['Language']->getString('error_bad_email');
     30                    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');
     31                    elseif(trim($p['UserNewPassword']) != '' && $p['UserNewPassword'] != $p['UserNewPasswordConfirmation']) $error = $this->modules['Language']->getString('error_pws_no_match');
    3232                    else {
    33                         $this->Modules['DB']->query("
     33                        $this->modules['DB']->query("
    3434                            UPDATE
    3535                                ".TBLPFX."users
     
    4242
    4343                        if(trim($p['UserNewPassword']) != '') {
    44                             $NewPasswordSalt = Functions::getRandomString(10);
    45                             $NewPasswordEncrypted = Functions::getSaltedHash($p['UserNewPassword'],$NewPasswordSalt);
    46 
    47                             $this->Modules['DB']->query("
     44                            $newPasswordSalt = Functions::getRandomString(10);
     45                            $newPasswordEncrypted = Functions::getSaltedHash($p['UserNewPassword'],$newPasswordSalt);
     46
     47                            $this->modules['DB']->query("
    4848                                UPDATE
    4949                                    ".TBLPFX."users
    5050                                SET
    51                                     UserPassword='".$NewPasswordEncrypted."',
    52                                     UserPasswordSalt='".$NewPasswordSalt."'
     51                                    UserPassword='".$newPasswordEncrypted."',
     52                                    UserPasswordSalt='".$newPasswordSalt."'
    5353                                WHERE UserID='".USERID."'
    5454                            ");
    55                             $this->Modules['Auth']->setSessionUserPassword($NewPasswordEncrypted);
    56                         }
    57 
    58                         $NAVBAR->addElements('left',array($this->Modules['Language']->getString('Profile_saved'),''));
     55                            $this->modules['Auth']->setSessionUserPassword($newPasswordEncrypted);
     56                        }
     57
     58                        $nAVBAR->addElements('left',array($this->modules['Language']->getString('Profile_saved'),''));
    5959
    6060                        include_once('pheader.php');
    61                         show_message($this->Modules['Language']->getString('Profile_saved'),$this->Modules['Language']->getString('message_profile_saved'));
     61                        show_message($this->modules['Language']->getString('Profile_saved'),$this->modules['Language']->getString('message_profile_saved'));
    6262                        include_once('ptail.php'); exit;
    6363                    }
    6464                }
    6565
    66                 $this->Modules['PageParts']->printStdHeader();
    67 
    68                 $this->Modules['Template']->assign(array(
     66                $this->modules['PageParts']->printStdHeader();
     67
     68                $this->modules['Template']->assign(array(
    6969                    'p'=>Functions::HTMLSpecialChars(Functions::StripSlashes($p)),
    70                     'Error'=>$Error
    71                 ));
    72 
    73                 $this->Modules['Template']->display('EditProfileGeneral.tpl');
    74 
    75                 $this->Modules['PageParts']->printStdTail();
     70                    'Error'=>$error
     71                ));
     72
     73                $this->modules['Template']->display('EditProfileGeneral.tpl');
     74
     75                $this->modules['PageParts']->printStdTail();
    7676                break;
    7777
    7878            case 'ExtendedProfile':
    79                 $Error = '';
     79                $error = '';
    8080
    8181                // Erst werden die einzelnen Profilfelder geladen
    82                 $this->Modules['DB']->query("SELECT * FROM ".TBLPFX."profile_fields");
    83                 $ProfileFields = $this->Modules['DB']->Raw2Array();
     82                $this->modules['DB']->query("SELECT * FROM ".TBLPFX."profile_fields");
     83                $profileFields = $this->modules['DB']->raw2Array();
    8484
    8585
    8686                // Jetzt werde die eventuell vorhandenen Profildaten geladen
    87                 $FieldsData = array();
    88                 $this->Modules['DB']->query("SELECT FieldID,FieldValue FROM ".TBLPFX."profile_fields_data WHERE UserID='".USERID."'");
    89                 while($curData = $this->Modules['DB']->fetchArray())
    90                     $FieldsData[$curData['FieldID']] = $curData['FieldValue'];
     87                $fieldsData = array();
     88                $this->modules['DB']->query("SELECT FieldID,FieldValue FROM ".TBLPFX."profile_fields_data WHERE UserID='".USERID."'");
     89                while($curData = $this->modules['DB']->fetchArray())
     90                    $fieldsData[$curData['FieldID']] = $curData['FieldValue'];
    9191
    9292
    9393                // Jetzt werden eventuelle $_POST-Daten uebernommen
    9494                $p = array();
    95                 foreach($ProfileFields AS $curField) {
     95                foreach($profileFields AS $curField) {
    9696                    switch($curField['FieldType']) {
    97                         case PROFILE_FIELD_TYPE_TEXT:         $p['FieldsData'][$curField['FieldID']] = isset($_POST['p']['FieldsData'][$curField['FieldID']]) ? $_POST['p']['FieldsData'][$curField['FieldID']] : (isset($FieldsData[$curField['FieldID']]) ? addslashes($FieldsData[$curField['FieldID']]) : ''); break;
    98                         case PROFILE_FIELD_TYPE_TEXTAREA:     $p['FieldsData'][$curField['FieldID']] = isset($_POST['p']['FieldsData'][$curField['FieldID']]) ? $_POST['p']['FieldsData'][$curField['FieldID']] : (isset($FieldsData[$curField['FieldID']]) ? addslashes($FieldsData[$curField['FieldID']]) : ''); break;
    99                         case PROFILE_FIELD_TYPE_SELECTSINGLE: $p['FieldsData'][$curField['FieldID']] = isset($_POST['p']['FieldsData'][$curField['FieldID']]) ? intval($_POST['p']['FieldsData'][$curField['FieldID']]) : (isset($FieldsData[$curField['FieldID']]) ? $FieldsData[$curField['FieldID']] : ''); break;
    100                         case PROFILE_FIELD_TYPE_SELECTMULTI:  $p['FieldsData'][$curField['FieldID']] = (isset($_POST['p']['FieldsData'][$curField['FieldID']]) == TRUE && is_array($_POST['p']['FieldsData'][$curField['FieldID']]) == TRUE) ? $_POST['p']['FieldsData'][$curField['FieldID']] : (isset($FieldsData[$curField['FieldID']]) ? explode(',',$FieldsData[$curField['FieldID']]) : array()); break;
     97                        case PROFILE_FIELD_TYPE_TEXT:         $p['FieldsData'][$curField['FieldID']] = isset($_POST['p']['FieldsData'][$curField['FieldID']]) ? $_POST['p']['FieldsData'][$curField['FieldID']] : (isset($fieldsData[$curField['FieldID']]) ? addslashes($fieldsData[$curField['FieldID']]) : ''); break;
     98                        case PROFILE_FIELD_TYPE_TEXTAREA:     $p['FieldsData'][$curField['FieldID']] = isset($_POST['p']['FieldsData'][$curField['FieldID']]) ? $_POST['p']['FieldsData'][$curField['FieldID']] : (isset($fieldsData[$curField['FieldID']]) ? addslashes($fieldsData[$curField['FieldID']]) : ''); break;
     99                        case PROFILE_FIELD_TYPE_SELECTSINGLE: $p['FieldsData'][$curField['FieldID']] = isset($_POST['p']['FieldsData'][$curField['FieldID']]) ? intval($_POST['p']['FieldsData'][$curField['FieldID']]) : (isset($fieldsData[$curField['FieldID']]) ? $fieldsData[$curField['FieldID']] : ''); break;
     100                        case PROFILE_FIELD_TYPE_SELECTMULTI:  $p['FieldsData'][$curField['FieldID']] = (isset($_POST['p']['FieldsData'][$curField['FieldID']]) == TRUE && is_array($_POST['p']['FieldsData'][$curField['FieldID']]) == TRUE) ? $_POST['p']['FieldsData'][$curField['FieldID']] : (isset($fieldsData[$curField['FieldID']]) ? explode(',',$fieldsData[$curField['FieldID']]) : array()); break;
    101101                    }
    102102                }
     
    112112                    reset($profile_fields);
    113113
    114                     if($field_missing == TRUE) $error = $this->Modules['Language']->getString('error_required_fields_missing');
     114                    if($field_missing == TRUE) $error = $this->modules['Language']->getString('error_required_fields_missing');
    115115                    else {
    116116                        $delete_ids = array();
     
    121121                            if($cur_value === '' && isset($fields_data[$cur_field['field_id']]) == TRUE) $delete_ids[] = $cur_field['field_id'];
    122122                            elseif($cur_value === '' && isset($fields_data[$cur_field['field_id']]) == FALSE) {}
    123                             elseif(isset($fields_data[$cur_field['field_id']]) == TRUE) $this->Modules['DB']->query("UPDATE ".TBLPFX."profile_fields_data SET field_value='$cur_value' WHERE user_id='$USER_ID' AND field_id='".$cur_field['field_id']."'");
    124                             else $this->Modules['DB']->query("INSERT INTO ".TBLPFX."profile_fields_data (field_id,user_id,field_value) VALUES ('".$cur_field['field_id']."','$USER_ID','$cur_value')");
     123                            elseif(isset($fields_data[$cur_field['field_id']]) == TRUE) $this->modules['DB']->query("UPDATE ".TBLPFX."profile_fields_data SET field_value='$cur_value' WHERE user_id='$uSER_ID' AND field_id='".$cur_field['field_id']."'");
     124                            else $this->modules['DB']->query("INSERT INTO ".TBLPFX."profile_fields_data (field_id,user_id,field_value) VALUES ('".$cur_field['field_id']."','$uSER_ID','$cur_value')");
    125125                        }
    126126                        reset($profile_fields);
    127127
    128                         $this->Modules['DB']->query("DELETE FROM ".TBLPFX."profile_fields_data WHERE user_id='$USER_ID' AND field_id IN ('".implode(',',$delete_ids)."')");
    129                     }
    130                 }
    131 
    132                 $GroupsData = array(
    133                     array('GroupName'=>$this->Modules['Language']->getString('Required_information'),'GroupType'=>1,'GroupFields'=>array()),
    134                     array('GroupName'=>$this->Modules['Language']->getString('Other_information'),'GroupType'=>0,'GroupFields'=>array())
     128                        $this->modules['DB']->query("DELETE FROM ".TBLPFX."profile_fields_data WHERE user_id='$uSER_ID' AND field_id IN ('".implode(',',$delete_ids)."')");
     129                    }
     130                }
     131
     132                $groupsData = array(
     133                    array('GroupName'=>$this->modules['Language']->getString('Required_information'),'GroupType'=>1,'GroupFields'=>array()),
     134                    array('GroupName'=>$this->modules['Language']->getString('Other_information'),'GroupType'=>0,'GroupFields'=>array())
    135135                );
    136136
    137                 foreach($ProfileFields AS $curField) {
     137                foreach($profileFields AS $curField) {
    138138                    switch($curField['FieldType']) {
    139139                        case PROFILE_FIELD_TYPE_TEXT:
     
    148148                            break;
    149149                    }
    150                     if($curField['FieldIsRequired'] == 0) $GroupsData[1]['GroupFields'][] = $curField;
    151                     else $GroupsData[0]['GroupFields'][] = $curField;
    152                 }
    153 
    154                 $this->Modules['Template']->assign(array(
     150                    if($curField['FieldIsRequired'] == 0) $groupsData[1]['GroupFields'][] = $curField;
     151                    else $groupsData[0]['GroupFields'][] = $curField;
     152                }
     153
     154                $this->modules['Template']->assign(array(
    155155                    'p'=>$p,
    156                     'GroupsData'=>$GroupsData
    157                 ));
    158                 $this->Modules['PageParts']->printPage('EditProfileExtendedProfile.tpl');
     156                    'GroupsData'=>$groupsData
     157                ));
     158                $this->modules['PageParts']->printPage('EditProfileExtendedProfile.tpl');
    159159                break;
    160160
    161161            case 'ProfileSettings':
    162162                $p = array();
    163                 $p['UserTimeZone'] = isset($_POST['p']['UserTimeZone']) ? $_POST['p']['UserTimeZone'] : $this->Modules['Auth']->getValue('UserTimeZone');
    164                 $p['UserHideEmail'] = isset($_POST['p']['UserHideEmail']) ? intval($_POST['p']['UserHideEmail']) : $this->Modules['Auth']->getValue('UserHideEmail');
    165                 $p['UserReceiveEmails'] = isset($_POST['p']['UserReceiveEmails']) ? intval($_POST['p']['UserReceiveEmails']) : $this->Modules['Auth']->getValue('UserReceiveEmails');
    166 
    167                 $TimeZones = Functions::getTimeZones(TRUE);
     163                $p['UserTimeZone'] = isset($_POST['p']['UserTimeZone']) ? $_POST['p']['UserTimeZone'] : $this->modules['Auth']->getValue('UserTimeZone');
     164                $p['UserHideEmail'] = isset($_POST['p']['UserHideEmail']) ? intval($_POST['p']['UserHideEmail']) : $this->modules['Auth']->getValue('UserHideEmail');
     165                $p['UserReceiveEmails'] = isset($_POST['p']['UserReceiveEmails']) ? intval($_POST['p']['UserReceiveEmails']) : $this->modules['Auth']->getValue('UserReceiveEmails');
     166
     167                $timeZones = Functions::getTimeZones(TRUE);
    168168
    169169                if(in_array($p['UserHideEmail'],array(0,1)) == FALSE) $p['UserHideEmail'] = 0;
    170170                if(in_array($p['UserReceiveEmails'],array(0,1)) == FALSE) $p['UserReceiveEmails'] = 1;
    171                 if(!isset($TimeZones[$p['UserTimeZone']])) $p['UserTimeZone'] = 'gmt';
     171                if(!isset($timeZones[$p['UserTimeZone']])) $p['UserTimeZone'] = 'gmt';
    172172
    173173                if(isset($_GET['doit'])) {
    174                     $this->Modules['DB']->query("
     174                    $this->modules['DB']->query("
    175175                        UPDATE
    176176                            ".TBLPFX."users
     
    183183
    184184                    include_once('pheader.php');
    185                     show_message($this->Modules['Language']->getString('Settings_saved'),$this->Modules['Language']->getString('message_settings_successfully_saved'));
     185                    show_message($this->modules['Language']->getString('Settings_saved'),$this->modules['Language']->getString('message_settings_successfully_saved'));
    186186                    include_once('ptail.php'); exit;
    187187                }
    188188
    189                 $this->Modules['Template']->assign(array(
     189                $this->modules['Template']->assign(array(
    190190                    'p'=>$p,
    191                     'TimeZones'=>$TimeZones
    192                 ));
    193                 $this->Modules['PageParts']->printPage('EditProfileProfileSettings.tpl');
     191                    'TimeZones'=>$timeZones
     192                ));
     193                $this->modules['PageParts']->printPage('EditProfileProfileSettings.tpl');
    194194                break;
    195195
    196196            case 'TopicSubscriptions':
    197                 $TopicID = isset($_GET['TopicID']) ? intval($_GET['TopicID']) : 0;
    198                 $TopicIDs = (isset($_POST['TopicIDs']) && is_array($_POST['TopicIDs']) == TRUE) ? $_POST['TopicIDs'] : array();
     197                $topicID = isset($_GET['TopicID']) ? intval($_GET['TopicID']) : 0;
     198                $topicIDs = (isset($_POST['TopicIDs']) && is_array($_POST['TopicIDs']) == TRUE) ? $_POST['TopicIDs'] : array();
    199199
    200200                if(isset($_GET['Doit'])) {
    201                     if($TopicID != 0)
    202                         $this->Modules['DB']->query("DELETE FROM ".TBLPFX."topics_subscriptions WHERE UserID='".USERID."' AND TopicID='$TopicID'");
    203 
    204                     if(count($TopicIDs) > 0)
    205                         $this->Modules['DB']->query("DELETE FROM ".TBLPFX."topics_subscriptions WHERE UserID='".USERID."' AND TopicID IN('".implode("','",$TopicIDs)."')");
    206                 }
    207 
    208                 $this->Modules['DB']->query("SELECT t2.TopicTitle,t1.TopicID FROM (".TBLPFX."topics_subscriptions AS t1, ".TBLPFX."topics AS t2) WHERE t1.UserID='".USERID."' AND t2.TopicID=t1.TopicID");
    209                 $SubscriptionsData = $this->Modules['DB']->Raw2Array();
    210 
    211                 //add_navbar_items(array($this->Modules['Language']->getString('Topic_subscriptions'),''));
    212 
    213                 $this->Modules['Template']->assign(array(
    214                     'SubscriptionsData'=>$SubscriptionsData
    215                 ));
    216                 $this->Modules['PageParts']->printPage('EditProfileTopicSubscriptions.tpl');
     201                    if($topicID != 0)
     202                        $this->modules['DB']->query("DELETE FROM ".TBLPFX."topics_subscriptions WHERE UserID='".USERID."' AND TopicID='$topicID'");
     203
     204                    if(count($topicIDs) > 0)
     205                        $this->modules['DB']->query("DELETE FROM ".TBLPFX."topics_subscriptions WHERE UserID='".USERID."' AND TopicID IN('".implode("','",$topicIDs)."')");
     206                }
     207
     208                $this->modules['DB']->query("SELECT t2.TopicTitle,t1.TopicID FROM (".TBLPFX."topics_subscriptions AS t1, ".TBLPFX."topics AS t2) WHERE t1.UserID='".USERID."' AND t2.TopicID=t1.TopicID");
     209                $subscriptionsData = $this->modules['DB']->raw2Array();
     210
     211                //add_navbar_items(array($this->modules['Language']->getString('Topic_subscriptions'),''));
     212
     213                $this->modules['Template']->assign(array(
     214                    'SubscriptionsData'=>$subscriptionsData
     215                ));
     216                $this->modules['PageParts']->printPage('EditProfileTopicSubscriptions.tpl');
    217217                break;
    218218
    219219            case 'Avatar':
    220                 $p['AvatarAddress'] = isset($_POST['p']['AvatarAddress']) ? $_POST['p']['AvatarAddress'] : addslashes($this->Modules['Auth']->getValue('UserAvatarAddress'));
     220                $p['AvatarAddress'] = isset($_POST['p']['AvatarAddress']) ? $_POST['p']['AvatarAddress'] : addslashes($this->modules['Auth']->getValue('UserAvatarAddress'));
    221221
    222222                if(isset($_GET['Doit']))
    223                     $this->Modules['DB']->query("UPDATE ".TBLPFX."users SET UserAvatarAddress='".$p['AvatarAddress']."' WHERE UserID='".USERID."'");
    224 
    225                 $this->Modules['DB']->query("SELECT AvatarAddress FROM ".TBLPFX."avatars");
    226                 $AvatarsData = $this->Modules['DB']->Raw2Array();
    227                 $AvatarsCounter = count($AvatarsData);
    228 
    229                 $this->Modules['Template']->assign(array(
    230                     'AvatarsData'=>$AvatarsData,
    231                     'AvatarsCounter'=>$AvatarsCounter,
     223                    $this->modules['DB']->query("UPDATE ".TBLPFX."users SET UserAvatarAddress='".$p['AvatarAddress']."' WHERE UserID='".USERID."'");
     224
     225                $this->modules['DB']->query("SELECT AvatarAddress FROM ".TBLPFX."avatars");
     226                $avatarsData = $this->modules['DB']->raw2Array();
     227                $avatarsCounter = count($avatarsData);
     228
     229                $this->modules['Template']->assign(array(
     230                    'AvatarsData'=>$avatarsData,
     231                    'AvatarsCounter'=>$avatarsCounter,
    232232                    'p'=>$p
    233233                ));
    234                 $this->Modules['PageParts']->printPage('EditProfileAvatar.tpl');
     234                $this->modules['PageParts']->printPage('EditProfileAvatar.tpl');
    235235                break;
    236236
    237237            case 'Memo':
    238238                $p = array();
    239                 $p['UserMemo'] = isset($_POST['p']['UserMemo']) ? $_POST['p']['UserMemo'] : addslashes($this->Modules['Auth']->getValue('UserMemo'));
    240 
    241                 $MemoWasUpdated = FALSE;
     239                $p['UserMemo'] = isset($_POST['p']['UserMemo']) ? $_POST['p']['UserMemo'] : addslashes($this->modules['Auth']->getValue('UserMemo'));
     240
     241                $memoWasUpdated = FALSE;
    242242
    243243                if(isset($_GET['doit'])) {
    244                     $this->Modules['DB']->query("UPDATE ".TBLPFX."users SET user_memo='$p_user_memo' WHERE user_id='$USER_ID'");
    245                     $MemoWasUpdated = TRUE;
    246                 }
    247 
    248                 //add_navbar_items(array($this->Modules['Language']->getString('Memo'),"index.php?action=editprofile&amp;mode=memo&amp;$MYSID"));
    249 
    250                 $this->Modules['Template']->assign(array(
     244                    $this->modules['DB']->query("UPDATE ".TBLPFX."users SET user_memo='$p_user_memo' WHERE user_id='$uSER_ID'");
     245                    $memoWasUpdated = TRUE;
     246                }
     247
     248                //add_navbar_items(array($this->modules['Language']->getString('Memo'),"index.php?action=editprofile&amp;mode=memo&amp;$mYSID"));
     249
     250                $this->modules['Template']->assign(array(
    251251                    'p'=>Functions::HTMLSpecialChars(Functions::stripSlashes($p)),
    252                     'MemoWasUpdated'=>$MemoWasUpdated
    253                 ));
    254                 $this->Modules['PageParts']->printPage('EditProfileMemo.tpl');
     252                    'MemoWasUpdated'=>$memoWasUpdated
     253                ));
     254                $this->modules['PageParts']->printPage('EditProfileMemo.tpl');
    255255                break;
    256256
    257257            case 'UploadAvatar':
    258                 if($this->Modules['Config']->getValue('enable_avatar_upload') != 1) {
     258                if($this->modules['Config']->getValue('enable_avatar_upload') != 1) {
    259259                    include_once('pop_pheader.php');
    260                     show_message($this->Modules['Language']->getString('Avatar_upload_disabled'),$this->Modules['Language']->getString('message_avatar_upload_disabled'));
     260                    show_message($this->modules['Language']->getString('Avatar_upload_disabled'),$this->modules['Language']->getString('message_avatar_upload_disabled'));
    261261                    include_once('pop_ptail.php'); exit;
    262262                }
     
    265265
    266266                if(isset($_GET['doit'])) {
    267                     if(isset($_FILES['p_avatar_file']) == FALSE || $_FILES['p_avatar_file']['name'] == '') $error = $this->Modules['Language']->getString('error_invalid_file');
    268                     elseif($_FILES['p_avatar_file']['size'] > $CONFIG['max_avatar_file_size']*1024) $error = $this->Modules['Language']->getString('error_file_too_big');
     267                    if(isset($_FILES['p_avatar_file']) == FALSE || $_FILES['p_avatar_file']['name'] == '') $error = $this->modules['Language']->getString('error_invalid_file');
     268                    elseif($_FILES['p_avatar_file']['size'] > $cONFIG['max_avatar_file_size']*1024) $error = $this->modules['Language']->getString('error_file_too_big');
    269269                    else {
    270270                        preg_match("/^(.*)\.([^.]*)/i",strtolower($_FILES['p_avatar_file']['name']),$file_extension);
     
    279279                        );
    280280
    281                         if(in_array($file_extension,$good_file_extensions) != TRUE) $error = $this->Modules['Language']->getString('error_invalid_file_extension');
     281                        if(in_array($file_extension,$good_file_extensions) != TRUE) $error = $this->modules['Language']->getString('error_invalid_file_extension');
    282282                        else {
    283283
     
    286286                            //
    287287                            while(list(,$akt_extension) = each($good_file_extensions)) { // Die Dateiendungen durchgehen
    288                                 if(file_exists('upload/avatars/'.$USER_ID.'.'.$akt_extension) == TRUE) { // Falls eine Datei mit der aktuellen Dateiendung existiert...
    289                                     unlink('upload/avatars/'.$USER_ID.'.'.$akt_extension); // ...diese loeschen...
     288                                if(file_exists('upload/avatars/'.$uSER_ID.'.'.$akt_extension) == TRUE) { // Falls eine Datei mit der aktuellen Dateiendung existiert...
     289                                    unlink('upload/avatars/'.$uSER_ID.'.'.$akt_extension); // ...diese loeschen...
    290290                                    break; // ...und die Schleife beenden, da der User maximal ein Avatar haben kann
    291291                                }
    292292                            }
    293293
    294                             $remote_avatar_file_name = 'upload/avatars/'.$USER_ID.'.'.$file_extension;
     294                            $remote_avatar_file_name = 'upload/avatars/'.$uSER_ID.'.'.$file_extension;
    295295
    296296
     
    299299                            //
    300300                            move_uploaded_file($_FILES['p_avatar_file']['tmp_name'],$remote_avatar_file_name); // Datei verschieben
    301                             chmod('upload/avatars/'.$USER_ID.'.'.$file_extension,0777); // Datei aenderbar/loeschbar machen
    302                             $this->Modules['DB']->query("UPDATE ".TBLPFX."users SET user_avatar_address='$remote_avatar_file_name' WHERE user_id='$USER_ID'"); // Neuen Avatar in der Datenbank aktualisieren
    303 
    304                             $tpl = new Template($TEMPLATE_PATH.'/'.$TCONFIG['templates']['editprofile_avatarresult']);
     301                            chmod('upload/avatars/'.$uSER_ID.'.'.$file_extension,0777); // Datei aenderbar/loeschbar machen
     302                            $this->modules['DB']->query("UPDATE ".TBLPFX."users SET user_avatar_address='$remote_avatar_file_name' WHERE user_id='$uSER_ID'"); // Neuen Avatar in der Datenbank aktualisieren
     303
     304                            $tpl = new Template($tEMPLATE_PATH.'/'.$tCONFIG['templates']['editprofile_avatarresult']);
    305305
    306306                            $avatar_address = $remote_avatar_file_name;
    307                             $avatar_selected_text = sprintf($this->Modules['Language']->getString('avatar_selected_text'),'<img src="'.$remote_avatar_file_name.'" width="'.$CONFIG['avatar_image_width'].'" height="'.$CONFIG['avatar_image_height'].'" border="0" alt="" />');
     307                            $avatar_selected_text = sprintf($this->modules['Language']->getString('avatar_selected_text'),'<img src="'.$remote_avatar_file_name.'" width="'.$cONFIG['avatar_image_width'].'" height="'.$cONFIG['avatar_image_height'].'" border="0" alt="" />');
    308308
    309309                            include_once('pop_pheader.php');
     
    314314                }
    315315
    316                 //$tpl = new Template($TEMPLATE_PATH.'/'.$TCONFIG['templates']['editprofile_uploadavatar']);
    317 
    318                 $this->Modules['PageParts']->printPopupPage('EditProfileUploadAvatar.tpl');
     316                //$tpl = new Template($tEMPLATE_PATH.'/'.$tCONFIG['templates']['editprofile_uploadavatar']);
     317
     318                $this->modules['PageParts']->printPopupPage('EditProfileUploadAvatar.tpl');
    319319                break;
    320320
     
    323323
    324324                if(isset($_GET['doit'])) {
    325                     $this->Modules['DB']->query("UPDATE ".TBLPFX."users SET user_avatar_address='$avatar_address' WHERE user_id='$USER_ID'");
    326 
    327                     $tpl = new Template($TEMPLATE_PATH.'/'.$TCONFIG['templates']['editprofile_avatarresult']);
    328 
    329                     $avatar_selected_text = sprintf($this->Modules['Language']->getString('avatar_selected_text'),'<img src="'.$avatar_address.'" width="'.$CONFIG['avatar_image_width'].'" height="'.$CONFIG['avatar_image_height'].'" border="0" alt="" />');
     325                    $this->modules['DB']->query("UPDATE ".TBLPFX."users SET user_avatar_address='$avatar_address' WHERE user_id='$uSER_ID'");
     326
     327                    $tpl = new Template($tEMPLATE_PATH.'/'.$tCONFIG['templates']['editprofile_avatarresult']);
     328
     329                    $avatar_selected_text = sprintf($this->modules['Language']->getString('avatar_selected_text'),'<img src="'.$avatar_address.'" width="'.$cONFIG['avatar_image_width'].'" height="'.$cONFIG['avatar_image_height'].'" border="0" alt="" />');
    330330
    331331                    include_once('pop_pheader.php');
     
    334334                }
    335335
    336                 $tpl = new Template($TEMPLATE_PATH.'/'.$TCONFIG['templates']['editprofile_selectavatar']);
    337 
    338                 $this->Modules['DB']->query("SELECT avatar_address FROM ".TBLPFX."avatars");
    339                 $avatars_data = $this->Modules['DB']->raw2array();
     336                $tpl = new Template($tEMPLATE_PATH.'/'.$tCONFIG['templates']['editprofile_selectavatar']);
     337
     338                $this->modules['DB']->query("SELECT avatar_address FROM ".TBLPFX."avatars");
     339                $avatars_data = $this->modules['DB']->raw2array();
    340340                $avatars_counter = count($avatars_data);
    341341
     
    345345                        $akt_encoded_avatar_address = urlencode($akt_avatar['avatar_address']);
    346346
    347                         $tpl->Blocks['avatarrow']->Blocks['avatarcol']->parseCode(FALSE,TRUE);
     347                        $tpl->blocks['avatarrow']->blocks['avatarcol']->parseCode(FALSE,TRUE);
    348348
    349349                        if(($i+1) % 5 == 0 && $i != $avatars_counter-1) {
    350                             $tpl->Blocks['avatarrow']->parseCode(FALSE,TRUE);
    351                             $tpl->Blocks['avatarrow']->Blocks['avatarcol']->resetTpl();
    352                         }
    353                     }
    354                     $tpl->Blocks['avatarrow']->parseCode(FALSE,TRUE);
     350                            $tpl->blocks['avatarrow']->parseCode(FALSE,TRUE);
     351                            $tpl->blocks['avatarrow']->blocks['avatarcol']->resetTpl();
     352                        }
     353                    }
     354                    $tpl->blocks['avatarrow']->parseCode(FALSE,TRUE);
    355355                }
    356356
  • trunk/modules/ForumIndex.class.php

    r5 r6  
    1515    public function executeMe() {
    1616        $baseCatID = isset($_GET['baseCatID']) ? intval($_GET['baseCatID']) : 1;
    17         $catID = isset($_GET['CatID']) ? intval($_GET['CatID']) : $baseCatID;
     17        $catID = isset($_GET['catID']) ? intval($_GET['catID']) : $baseCatID;
    1818
    1919        // Kategoriedaten laden
     
    3333
    3434        // Zugriffsrechte auf die Foren laden
    35         $ForumsAuthData = $this->_loadForumsAuthData();
    36 
    37         $NewsData = $this->_loadNewsData();
    38         $WIOData = $this->_loadWIOData();
    39         $BoardStatsData = $this->_loadBoardStatsData();
    40 
    41 
    42         $ClosedCatIDs = array();
     35        $forumsAuthData = $this->_loadForumsAuthData();
     36
     37        $newsData = $this->_loadNewsData();
     38        $wioData = $this->_loadWIOData();
     39        $boardStatsData = $this->_loadBoardStatsData();
     40
     41
     42        $closedCatIDs = array();
    4343        if(!isset($_COOKIE['ClosedCatIDs'])) {
    4444            for($i = 0; $i < $catsCounter; $i++) {
    45                 if($catsData[$i]['CatStandardStatus'] != 1) $ClosedCatIDs[] = $catsData[$i]['CatID'];
    46             }
    47             setcookie('ClosedCatIDs',implode('.',$ClosedCatIDs),time()+31536000);
     45                if($catsData[$i]['catStandardStatus'] != 1) $closedCatIDs[] = $catsData[$i]['catID'];
     46            }
     47            setcookie('ClosedCatIDs',implode('.',$closedCatIDs),time()+31536000);
    4848        }
    4949        else
    50             $ClosedCatIDs = explode('.',$_COOKIE['ClosedCatIDs']);
     50            $closedCatIDs = explode('.',$_COOKIE['ClosedCatIDs']);
    5151
    5252        for($i = 0; $i < $catsCounter; $i++) {
    5353            $curCat = &$catsData[$i];
    5454
    55             if(in_array($curCat['CatID'],$ClosedCatIDs) == TRUE) $curCat['CatIsOpen'] = 0;
    56             else $curCat['CatIsOpen'] = 1;
    57 
    58             $curCat['CatName'] = Functions::HTMLSpecialChars($curCat['CatName']);
     55            if(in_array($curCat['catID'],$closedCatIDs) == TRUE) $curCat['catIsOpen'] = 0;
     56            else $curCat['catIsOpen'] = 1;
     57
     58            $curCat['catName'] = Functions::HTMLSpecialChars($curCat['catName']);
    5959        }
    6060
     
    6767            $curAuthViewForum = 1;
    6868            if($this->modules['Auth']->isLoggedIn() == 0) {
    69                 if($forumsData[$i]['GuestsAuthViewForum'] == 0) $curAuthViewForum = 0;
    70             }
    71             elseif($this->modules['Auth']->getValue('UserIsAdmin')!= 1 && $this->modules['Auth']->getValue('UserIsSupermod') != 1) {
    72                 if($forumsData[$i]['MembersAuthViewForum'] == 1) {
    73                     while(list($curKey,$curData) = each($ForumsAuthData)) {
    74                         if($curData['ForumID'] != $forumsData[$i]['ForumID']) continue;
    75 
    76                         unset($ForumsAuthData[$curKey]);
    77 
    78                         if($curData['AuthViewForum'] == 0) {
     69                if($forumsData[$i]['authViewForumGuests'] == 0) $curAuthViewForum = 0;
     70            }
     71            elseif($this->modules['Auth']->getValue('userIsAdmin')!= 1 && $this->modules['Auth']->getValue('userIsSupermod') != 1) {
     72                if($forumsData[$i]['membersAuthViewForum'] == 1) {
     73                    while(list($curKey,$curData) = each($forumsAuthData)) {
     74                        if($curData['forumID'] != $forumsData[$i]['forumID']) continue;
     75
     76                        unset($forumsAuthData[$curKey]);
     77
     78                        if($curData['authViewForum'] == 0) {
    7979                            $curAuthViewForum = 0;
    8080                            break;
     
    8484                else {
    8585                    $curAuthViewForum = 0;
    86                     while(list($akt_key,$akt_data) = each($ForumsAuthData)) {
    87                         if($curData['ForumID'] != $forumsData[$i]['ForumID']) continue;
    88 
    89                         unset($ForumsAuthData[$akt_key]);
    90 
    91                         if($curData['AuthViewForum'] == 1) {
     86                    while(list($akt_key,$akt_data) = each($forumsAuthData)) {
     87                        if($curData['forumID'] != $forumsData[$i]['forumID']) continue;
     88
     89                        unset($forumsAuthData[$akt_key]);
     90
     91                        if($curData['authViewForum'] == 1) {
    9292                            $curAuthViewForum = 1;
    9393                            break;
     
    9595                    }
    9696                }
    97                 reset($ForumsAuthData);
    98             }
    99             $forumsData[$i]['ForumIsAccessible'] = $curAuthViewForum;
    100 
    101 
    102             if($curAuthViewForum == 1 || $this->modules['Config']->getValue('HideNotAccessibleForums') == 0) {
     97                reset($forumsAuthData);
     98            }
     99            $forumsData[$i]['forumIsAccessible'] = $curAuthViewForum;
     100
     101
     102            if($curAuthViewForum == 1 || $this->modules['Config']->getValue('hideNotAccessibleForums') == 0) {
    103103                //
    104104                // Die Moderatoren (Mitglieder und Gruppen) des aktuellen Forums
     
    106106                $curForumMods = array(); // Array fuer die Moderatoren
    107107                while(list($curKey) = each($modsUsersData)) { // Erst werden alle Mitglieder-Moderatoren ueberprueft
    108                     if($modsUsersData[$curKey]['ForumID'] != $forumsData[$i]['ForumID']) continue;
    109 
    110                     $curForumMods[] = '<a href="'.INDEXFILE.'?Action=ViewProfile&amp;ProfileID='.$modsUsersData[$curKey]['UserID'].'&amp;'.MYSID.'">'.$modsUsersData[$curKey]['UserNick'].'</a>'; // Aktuelles Mitglied zu Array mit Moderatoren des aktuellen Forums hinzufuegen
     108                    if($modsUsersData[$curKey]['forumID'] != $forumsData[$i]['forumID']) continue;
     109
     110                    $curForumMods[] = '<a href="'.INDEXFILE.'?action=ViewProfile&amp;ProfileID='.$modsUsersData[$curKey]['userID'].'&amp;'.MYSID.'">'.$modsUsersData[$curKey]['userNick'].'</a>'; // Aktuelles Mitglied zu Array mit Moderatoren des aktuellen Forums hinzufuegen
    111111                    unset($modsUsersData[$curKey]); // Mitglied kann aus Array geloescht werden
    112112                }
     
    114114
    115115                while(list($curKey) = each($modsGroupsData)) { // Erst werden alle Gruppen-Moderatoren ueberprueft
    116                     if($modsGroupsData[$curKey]['ForumID'] != $forumsData[$i]['ForumID']) continue;
    117 
    118                     $curForumMods[] = '<a href="'.INDEXFILE.'?Action=ViewGroup&amp;GroupID='.$modsGroupsData[$curKey]['GroupID'].'&amp;'.MYSID.'">'.$modsGroupsData[$curKey]['GroupName'].'</a>'; // Aktuelle Gruppe zu Array mit Moderatoren des aktuellen Forums hinzufuegen
     116                    if($modsGroupsData[$curKey]['forumID'] != $forumsData[$i]['forumID']) continue;
     117
     118                    $curForumMods[] = '<a href="'.INDEXFILE.'?action=ViewGroup&amp;groupID='.$modsGroupsData[$curKey]['groupID'].'&amp;'.MYSID.'">'.$modsGroupsData[$curKey]['groupName'].'</a>'; // Aktuelle Gruppe zu Array mit Moderatoren des aktuellen Forums hinzufuegen
    119119                    unset($modsGroupsData[$curKey]); // Mitglied kann aus Array geloescht werden
    120120                }
    121121                reset($modsGroupsData); // Array resetten (Pointer auf Position 1 setzen)
    122122
    123                 $forumsData[$i]['ForumMods'] = implode(', ',$curForumMods);
     123                $forumsData[$i]['forumMods'] = implode(', ',$curForumMods);
    124124
    125125
     
    127127                // Die Anzeige, ob neue Beitraege vorhanden sind
    128128                //
    129                 //$akt_new_post_status = '<img src="'.(($forums_data[$j]['forum_last_post_id'] != 0 && isset($c_forums[$forums_data[$j]['forum_id']]) == TRUE && $c_forums[$forums_data[$j]['forum_id']] < $forums_data[$j]['forum_last_post_time']) ? $TEMPLATE_PATH.'/'.$TCONFIG['images']['forum_on'] : $TEMPLATE_PATH.'/'.$TCONFIG['images']['forum_off']).'" alt="" />';
     129                //$akt_new_post_status = '<img src="'.(($forums_data[$j]['forum_last_post_id'] != 0 && isset($c_forums[$forums_data[$j]['forum_id']]) == TRUE && $c_forums[$forums_data[$j]['forum_id']] < $forums_data[$j]['forum_last_post_time']) ? $tEMPLATE_PATH.'/'.$tCONFIG['images']['forum_on'] : $tEMPLATE_PATH.'/'.$tCONFIG['images']['forum_off']).'" alt="" />';
    130130
    131131
     
    134134                //
    135135                $curLastPostPic = $curLastPostText = '';
    136                 if($forumsData[$i]['ForumLastPostID'] != 0) {
     136                if($forumsData[$i]['forumLastPostID'] != 0) {
    137137                    if($curAuthViewForum == 1) {
    138                         $curLastPostPic = ($forumsData[$i]['ForumLastPostSmileyFileName'] == '') ? '' : '<img src="'.$forumsData[$i]['ForumLastPostSmileyFileName'].'" alt="" border="" />';
    139                         if(strlen($forumsData[$i]['ForumLastPostTitle']) > 22) $curLastPostLink = '<a href="'.INDEXFILE.'?Action=ViewTopic&amp;PostID='.$forumsData[$i]['ForumLastPostID'].'&amp;'.MYSID.'#Post'.$forumsData[$i]['ForumLastPostID'].'" title="'.Functions::HTMLSpecialChars(($forumsData[$i]['ForumLastPostTitle'])).'">'.Functions::HTMLSpecialChars(substr($forumsData[$i]['ForumLastPostTitle'],0,22)).'...</a>';
    140                         else $curLastPostLink = '<a href="'.INDEXFILE.'?Action=ViewTopic&amp;PostID='.$forumsData[$i]['ForumLastPostID'].'&amp;'.MYSID.'#Post'.$forumsData[$i]['ForumLastPostID'].'">'.Functions::HTMLSpecialChars($forumsData[$i]['ForumLastPostTitle']).'</a>';
    141 
    142                         if($forumsData[$i]['ForumLastPostPosterID'] == 0) $curLastPostPosterNick = $forumsData[$i]['ForumLastPostGuestNick'];
    143                         else $curLastPostPosterNick = '<a href="index.php?action=viewprofile&amp;profile_id='.$forumsData[$i]['ForumLastPostPosterID'].'&amp;'.MYSID.'">'.$forumsData[$i]['ForumLastPostPosterNick'].'</a>';
    144 
    145                         $curLastPostText = $curLastPostLink.' ('.$this->modules['Language']->getString('by').' '.$curLastPostPosterNick.')<br/>'.Functions::toDateTime($forumsData[$i]['ForumLastPostTimestamp']);
     138                        $curLastPostPic = ($forumsData[$i]['forumLastPostSmileyFileName'] == '') ? '' : '<img src="'.$forumsData[$i]['forumLastPostSmileyFileName'].'" alt="" border="0"/>';
     139                        if(strlen($forumsData[$i]['forumLastPostTitle']) > 22) $curLastPostLink = '<a href="'.INDEXFILE.'?action=ViewTopic&amp;postID='.$forumsData[$i]['forumLastPostID'].'&amp;'.MYSID.'#Post'.$forumsData[$i]['forumLastPostID'].'" title="'.Functions::HTMLSpecialChars(($forumsData[$i]['forumLastPostTitle'])).'">'.Functions::HTMLSpecialChars(substr($forumsData[$i]['forumLastPostTitle'],0,22)).'...</a>';
     140                        else $curLastPostLink = '<a href="'.INDEXFILE.'?action=ViewTopic&amp;PostID='.$forumsData[$i]['forumLastPostID'].'&amp;'.MYSID.'#Post'.$forumsData[$i]['forumLastPostID'].'">'.Functions::HTMLSpecialChars($forumsData[$i]['forumLastPostTitle']).'</a>';
     141
     142                        if($forumsData[$i]['forumLastPostPosterID'] == 0) $curLastPostPosterNick = $forumsData[$i]['forumLastPostGuestNick'];
     143                        else $curLastPostPosterNick = '<a href="index.php?action=ViewProfile&amp;profileID='.$forumsData[$i]['forumLastPostPosterID'].'&amp;'.MYSID.'">'.$forumsData[$i]['forumLastPostPosterNick'].'</a>';
     144
     145                        $curLastPostText = $curLastPostLink.' ('.$this->modules['Language']->getString('by').' '.$curLastPostPosterNick.')<br/>'.Functions::toDateTime($forumsData[$i]['forumLastPostTimestamp']);
    146146                    }
    147147                }
    148148                else $curLastPostText = $this->modules['Language']->getString('No_last_post');
    149149
    150                 $forumsData[$i]['ForumLastPostPic'] = $curLastPostPic;
    151                 $forumsData[$i]['ForumLastPostText'] = $curLastPostText;
     150                $forumsData[$i]['forumLastPostPic'] = $curLastPostPic;
     151                $forumsData[$i]['forumLastPostText'] = $curLastPostText;
    152152
    153153
     
    155155                // Sonstiges...
    156156                //
    157                 $curForum['ForumName'] = Functions::HTMLSpecialChars($curForum['ForumName']);
    158                 $curForum['ForumDescription'] = Functions::HTMLSpecialChars($curForum['ForumDescription']);
    159             }
    160         }
    161 
    162         $catsData = array_merge(array(array('CatID'=>$catID,'CatIsOpen'=>1)),$catsData);
     157                $curForum['forumName'] = Functions::HTMLSpecialChars($curForum['forumName']);
     158                $curForum['forumDescription'] = Functions::HTMLSpecialChars($curForum['forumDescription']);
     159            }
     160        }
     161
     162        $catsData = array_merge(array(array('catID'=>$catID,'catIsOpen'=>1)),$catsData);
    163163
    164164        $this->modules['Navbar']->addCategories($catID);
    165165
    166166        $this->modules['Template']->assign(array(
    167             'CatID'=>$catID,
    168             'CatsData'=>$catsData,
    169             'ForumsData'=>$forumsData,
    170             'NewsData'=>$NewsData,
    171             'WIOData'=>$WIOData,
    172             'BoardStatsData'=>$BoardStatsData
     167            'catID'=>$catID,
     168            'catsData'=>$catsData,
     169            'forumsData'=>$forumsData,
     170            'newsData'=>$newsData,
     171            'wioData'=>$wioData,
     172            'boardStatsData'=>$boardStatsData
    173173        ));
    174174        $this->modules['PageParts']->printPage('ForumIndex.tpl');
     
    178178        $this->modules['DB']->query("SELECT
    179179            t1.*,
    180             t2.PosterID AS ForumLastPostPosterID,
    181             t2.PostTimestamp AS ForumLastPostTimestamp,
    182             t2.PostTitle AS ForumLastPostTitle,
    183             t2.PostGuestNick AS ForumLastPostGuestNick,
    184             t3.UserNick AS ForumLastPostPosterNick,
    185             t5.SmileyFileName AS ForumLastPostSmileyFileName
     180            t2.posterID AS forumLastPostPosterID,
     181            t2.postTimestamp AS forumLastPostTimestamp,
     182            t2.postTitle AS forumLastPostTitle,
     183            t2.postGuestNick AS forumLastPostGuestNick,
     184            t3.userNick AS forumLastPostPosterNick,
     185            t5.smileyFileName AS forumLastPostSmileyFileName
    186186        FROM
    187187            ".TBLPFX."forums AS t1
    188         LEFT JOIN ".TBLPFX."posts AS t2 ON t2.PostID=t1.ForumLastPostID
    189         LEFT JOIN ".TBLPFX."users AS t3 ON t2.PosterID=t3.UserID
    190         LEFT JOIN ".TBLPFX."smilies AS t5 ON t2.SmileyID=t5.SmileyID
    191         ORDER BY t1.OrderID
     188        LEFT JOIN ".TBLPFX."posts AS t2 ON t2.postID=t1.forumLastPostID
     189        LEFT JOIN ".TBLPFX."users AS t3 ON t2.posterID=t3.userID
     190        LEFT JOIN ".TBLPFX."smilies AS t5 ON t2.smileyID=t5.smileyID
     191        ORDER BY t1.orderID
    192192        ");
    193         return $this->modules['DB']->Raw2Array();
     193        return $this->modules['DB']->raw2Array();
    194194    }
    195195
     
    202202    protected function _loadModsUsersData() {
    203203        $this->modules['DB']->query("SELECT
    204             t1.AuthID AS UserID,
    205             t1.ForumID,
    206             t2.UserNick
    207         FROM
     204            t1.authID AS userID,
     205            t1.forumID,
     206            t2.userNick
     207        FROM (
    208208            ".TBLPFX."forums_auth AS t1,
    209209            ".TBLPFX."users AS t2
     210        )
    210211        WHERE
    211             t1.AuthType='0'
    212             AND t1.AuthIsMod='1'
    213             AND t2.UserID=t1.AuthID
     212            t1.authType='0'
     213            AND t1.authIsMod='1'
     214            AND t2.userID=t1.authID
    214215        ");
    215         return $this->modules['DB']->Raw2Array();
     216        return $this->modules['DB']->raw2Array();
    216217    }
    217218
     
    224225    protected function _loadModsGroupsData() {
    225226        $this->modules['DB']->query("SELECT
    226             t1.AuthID AS GroupID,
    227             t1.ForumID,
    228             t2.GroupName
    229         FROM
     227            t1.authID AS groupID,
     228            t1.forumID,
     229            t2.groupName
     230        FROM (
    230231            ".TBLPFX."forums_auth AS t1,
    231232            ".TBLPFX."groups AS t2
     233        )
    232234        WHERE
    233             t1.AuthType='1'
    234             AND t1.AuthIsMod='1'
    235             AND t2.GroupID=t1.AuthID
     235            t1.authType='1'
     236            AND t1.authIsMod='1'
     237            AND t2.groupID=t1.authID
    236238        ");
    237         return $this->modules['DB']->Raw2Array();
     239        return $this->modules['DB']->raw2Array();
    238240    }
    239241
     
    245247     */
    246248    protected function _loadForumsAuthData() {
    247         $ForumsAuthData = array();
     249        $forumsAuthData = array();
    248250
    249251        if($this->modules['Auth']->isLoggedIn() == 1 && $this->modules['Auth']->getValue('UserIsAdmin') != 1 && $this->modules['Auth']->getValue('UserIsSupermod') != 1) {
    250252            $this->modules['DB']->query("SELECT
    251                 t1.ForumID,
    252                 t1.AuthViewForum
     253                t1.forumID,
     254                t1.authViewForum
    253255            FROM
    254256                ".TBLPFX."forums_auth AS t1
    255257            WHERE
    256                 t1.AuthType='0'
    257                 AND t1.AuthID='".USERID."'
     258                t1.authType='0'
     259                AND t1.authID='".USERID."'
    258260            ");
    259             $ForumsAuthData = $this->modules['DB']->Raw2Array();
     261            $forumsAuthData = $this->modules['DB']->raw2Array();
    260262
    261263            $this->modules['DB']->query("SELECT
    262                 t1.ForumID,
    263                 t1.AuthViewForum
     264                t1.forumID,
     265                t1.authViewForum
    264266            FROM
    265267                ".TBLPFX."forums_auth AS t1,
    266268                ".TBLPFX."groups_members AS t2
    267269            WHERE
    268                 t1.AuthType='1'
    269                 AND t1.AuthID=t2.GroupID
    270                 AND t2.MemberID='".USERID."'");
     270                t1.authType='1'
     271                AND t1.authID=t2.groupID
     272                AND t2.memberID='".USERID."'");
    271273            while($curData = $this->modules['DB']->fetchArray())
    272                 $ForumsAuthData[] = $curData;
    273         }
    274 
    275         return $ForumsAuthData;
     274                $forumsAuthData[] = $curData;
     275        }
     276
     277        return $forumsAuthData;
    276278    }
    277279
     
    283285     */
    284286    protected function _loadNewsData() {
    285         $NewsData = FALSE;
     287        $newsData = FALSE;
    286288
    287289        if($this->modules['Config']->getValue('news_forum') != 0 && $this->modules['Config']->getValue('show_news_forumindex') == 1) {
    288290            $this->modules['DB']->query("
    289291                SELECT
    290                     t2.PostText AS NewsText,
    291                     t2.PostID,
    292                     t1.TopicRepliesCounter AS NewsCommentsCounter,
    293                     t1.TopicTitle AS NewsTitle,
    294                     t2.PostEnableHtmlCode,
    295                     t2.PostEnableSmilies,
    296                     t2.PostEnableBBCode
     292                    t2.postText AS newsText,
     293                    t2.postID,
     294                    t1.topicRepliesCounter AS newsCommentsCounter,
     295                    t1.topicTitle AS newsTitle,
     296                    t2.postEnableHtmlCode,
     297                    t2.postEnableSmilies,
     298                    t2.postEnableBBCode
    297299                FROM (
    298300                    ".TBLPFX."topics AS t1,
     
    300302                )
    301303                WHERE
    302                     t1.ForumID='".$this->modules['Config']->getValue('news_forum')."'
    303                     AND t2.PostID=t1.TopicFirstPosID
    304                 ORDER BY t1.TopicTimestamp
     304                    t1.forumID='".$this->modules['Config']->getValue('news_forum')."'
     305                    AND t2.postID=t1.topicFirstPosID
     306                ORDER BY t1.topicTimestamp
    305307                DESC LIMIT 1
    306308            ");
    307309
    308310            if($this->modules['DB']->getAffectedRows() == 1) {
    309                 $NewsData = $this->modules['DB']->fetchArray();
    310                 //$news_comments_link = "<a href=\"index.php?action=viewtopic&amp;post_id=".$news_data['post_id']."&amp;$MYSID\">".sprintf($LNG['x_comments'],$news_data['news_comments_counter']).'</a>';
    311 
    312                 $NewsData['NewsTitle'] = Functions::HTMLSpecialChars($NewsData['NewsTitle']);
    313 
    314                 if($NewsData['PostEnableHtmlCode'] != 1) $NewsData['NewsText'] = Functions::HTMLSpecialChars($NewsData['NewsText']);
    315                 if($NewsData['PostEnableSmilies'] == 1 && $ForumData['ForumEnableSmilies'] == 1) $NewsData['NewsText'] = strtr($NewsData['NewsText']);
    316                 $NewsData['NewsText'] = nl2br($NewsData['NewsText']);
    317                 //if($NewsData['PostEnableBBCode'] == 1) $NewsData['NewsText'] = bbcode($news_data['news_text']);
    318             }
    319         }
    320 
    321         return $NewsData;
     311                $newsData = $this->modules['DB']->fetchArray();
     312                //$news_comments_link = "<a href=\"index.php?action=viewtopic&amp;post_id=".$news_data['post_id']."&amp;$mYSID\">".sprintf($lNG['x_comments'],$news_data['news_comments_counter']).'</a>';
     313
     314                $newsData['NewsTitle'] = Functions::HTMLSpecialChars($newsData['NewsTitle']);
     315
     316                if($newsData['PostEnableHtmlCode'] != 1) $newsData['NewsText'] = Functions::HTMLSpecialChars($newsData['NewsText']);
     317                if($newsData['PostEnableSmilies'] == 1 && $forumData['ForumEnableSmilies'] == 1) $newsData['NewsText'] = strtr($newsData['NewsText']);
     318                $newsData['NewsText'] = nl2br($newsData['NewsText']);
     319                //if($newsData['PostEnableBBCode'] == 1) $newsData['NewsText'] = bbcode($news_data['news_text']);
     320            }
     321        }
     322
     323        return $newsData;
    322324    }
    323325
     
    328330     */
    329331    protected function _loadWIOData() {
    330         $WIOData = FALSE;
     332        $wioData = FALSE;
    331333
    332334        if($this->modules['Config']->getValue('enable_wio') == 1 && $this->modules['Config']->getValue('show_wio_forumindex') == 1) {
    333             $OnlineGuestsCounter = $OnlineMembersCounter = $OnlineGhostsCounter = $OnlineUsersCounter = 0;
    334             $Members = array();
    335             $MembersChecks = array();
    336             $Guests = '';
     335            $onlineGuestsCounter = $onlineMembersCounter = $onlineGhostsCounter = $onlineUsersCounter = 0;
     336            $members = array();
     337            $membersChecks = array();
     338            $guests = '';
    337339
    338340            $this->modules['DB']->query("
    339341                SELECT
    340342                    t1.*,
    341                     t2.UserNick AS SessionUserNick
     343                    t2.userNick AS sessionUserNick
    342344                FROM ".TBLPFX."sessions AS t1
    343                 LEFT JOIN ".TBLPFX."users AS t2 ON t1.SessionUserID=t2.UserID
    344                 WHERE SessionLastUpdate>'".($this->modules['DB']->fromUnixTimestamp(time()-$this->modules['Config']->getValue('wio_timeout')*60))."'
     345                LEFT JOIN ".TBLPFX."users AS t2 ON t1.sessionUserID=t2.userID
     346                WHERE sessionLastUpdate>'".($this->modules['DB']->fromUnixTimestamp(time()-$this->modules['Config']->getValue('wio_timeout')*60))."'
    345347            ");
    346348            while($curData = $this->modules['DB']->fetchArray()) {
    347                 if($curData['SessionUserID'] == 0) $OnlineGuestsCounter++;
    348                 elseif($curData['SessionIsGhost'] == 1) $OnlineGhostsCounter++;
     349                if($curData['sessionUserID'] == 0) $onlineGuestsCounter++;
     350                elseif($curData['sessionIsGhost'] == 1) $onlineGhostsCounter++;
    349351                else {
    350                     if(in_array($curData['SessionUserID'],$MembersChecks) == FALSE) {
    351                         $OnlineMembersCounter++;
    352                         $Members[] = '<a href="'.INDEXFILE.'?Action=ViewProfile&amp;ProfileID='.$curData['SessionUserID'].'&amp;'.MYSID.'">'.$curData['SessionUserNick'].'</a>';
    353                         $MembersChecks[] = $curData['SessionUserID'];
     352                    if(in_array($curData['sessionUserID'],$membersChecks) == FALSE) {
     353                        $onlineMembersCounter++;
     354                        $members[] = '<a href="'.INDEXFILE.'?action=ViewProfile&amp;profileID='.$curData['sessionUserID'].'&amp;'.MYSID.'">'.$curData['sessionUserNick'].'</a>';
     355                        $membersChecks[] = $curData['sessionUserID'];
    354356                    }
    355357                }
    356358            }
    357359
    358             $OnlineUsersCounter = $OnlineGuestsCounter+$OnlineGhostsCounter+$OnlineMembersCounter;
     360            $onlineUsersCounter = $onlineGuestsCounter+$onlineGhostsCounter+$onlineMembersCounter;
    359361            if($this->modules['Config']->getValue('online_users_record') == '')
    360                 $OnlineUsersRecord = array(0,0);
     362                $onlineUsersRecord = array(0,0);
    361363            else
    362                 $OnlineUsersRecord = explode(',',$this->modules['Config']->getValue('online_users_record'));
    363 
    364             if($OnlineUsersCounter > $OnlineUsersRecord[0]) {
    365                 $OnlineUsersRecord = array($OnlineUsersCounter,time());
    366                 $this->modules['Config']->updateValue('online_users_record',implode(',',$OnlineUsersRecord));
    367             }
    368 
    369             if($OnlineMembersCounter == 0) $OnlineMembersCounter = $this->modules['Language']->getString('no_members');
    370             elseif($OnlineMembersCounter == 1) $OnlineMembersCounter = $this->modules['Language']->getString('one_member');
    371             else $OnlineMembersCounter = sprintf($this->modules['Language']->getString('x_members'),$OnlineMembersCounter);
    372 
    373             if($OnlineGhostsCounter == 0) $OnlineGhostsCounter = $this->modules['Language']->getString('no_ghosts');
    374             elseif($OnlineGhostsCounter == 1) $OnlineGhostsCounter = $this->modules['Language']->getString('one_ghost');
    375             else $OnlineGhostsCounter = sprintf($this->modules['Language']->getString('x_ghosts'),$OnlineGhostsCounter);
    376 
    377             if($OnlineGuestsCounter == 0) $OnlineGuestsCounter = $this->modules['Language']->getString('no_guests');
    378             elseif($OnlineGuestsCounter == 1) $OnlineGuestsCounter = $this->modules['Language']->getString('one_guest');
    379             else $OnlineGuestsCounter = sprintf($this->modules['Language']->getString('x_guests'),$OnlineGuestsCounter);
    380 
    381             $WIOData['Text'] = sprintf($this->modules['Language']->getString('wio_text'),$OnlineGuestsCounter,$OnlineGhostsCounter,$OnlineMembersCounter,$OnlineUsersCounter,Functions::toDateTime($OnlineUsersRecord[1],TRUE),$OnlineUsersRecord[0]);
    382             $WIOData['Members'] = implode(', ',$Members);
    383         }
    384 
    385         return $WIOData;
     364                $onlineUsersRecord = explode(',',$this->modules['Config']->getValue('online_users_record'));
     365
     366            if($onlineUsersCounter > $onlineUsersRecord[0]) {
     367                $onlineUsersRecord = array($onlineUsersCounter,time());
     368                $this->modules['Config']->updateValue('online_users_record',implode(',',$onlineUsersRecord));
     369            }
     370
     371            if($onlineMembersCounter == 0) $onlineMembersCounter = $this->modules['Language']->getString('no_members');
     372            elseif($onlineMembersCounter == 1) $onlineMembersCounter = $this->modules['Language']->getString('one_member');
     373            else $onlineMembersCounter = sprintf($this->modules['Language']->getString('x_members'),$onlineMembersCounter);
     374
     375            if($onlineGhostsCounter == 0) $onlineGhostsCounter = $this->modules['Language']->getString('no_ghosts');
     376            elseif($onlineGhostsCounter == 1) $onlineGhostsCounter = $this->modules['Language']->getString('one_ghost');
     377            else $onlineGhostsCounter = sprintf($this->modules['Language']->getString('x_ghosts'),$onlineGhostsCounter);
     378
     379            if($onlineGuestsCounter == 0) $onlineGuestsCounter = $this->modules['Language']->getString('no_guests');
     380            elseif($onlineGuestsCounter == 1) $onlineGuestsCounter = $this->modules['Language']->getString('one_guest');
     381            else $onlineGuestsCounter = sprintf($this->modules['Language']->getString('x_guests'),$onlineGuestsCounter);
     382
     383            $wioData['text'] = sprintf($this->modules['Language']->getString('wio_text'),$onlineGuestsCounter,$onlineGhostsCounter,$onlineMembersCounter,$onlineUsersCounter,Functions::toDateTime($onlineUsersRecord[1],TRUE),$onlineUsersRecord[0]);
     384            $wioData['members'] = implode(', ',$members);
     385        }
     386
     387        return $wioData;
    386388    }
    387389
    388390    protected function _loadBoardStatsData() {
    389         $BoardStatsData = FALSE;
     391        $boardStatsData = FALSE;
    390392        if($this->modules['Config']->getValue('show_boardstats_forumindex') == 1) {
    391             $MembersCounter = Functions::getUsersCounter();
    392             $TopicsCounter = Functions::getTopicsCounter();
    393             $PostsCounter = Functions::getPostsCounter();
    394 
    395             $BoardStatsData['Text'] = sprintf($this->modules['Language']->getString('board_stats_text'),$MembersCounter,$PostsCounter,$TopicsCounter,'<a href="index.php?action=viewprofile&amp;profile_id='.$this->modules['Config']->getValue('newest_user_id').'&amp;'.MYSID.'">'.$this->modules['Config']->getValue('newest_user_nick').'</a>');
    396         }
    397         return $BoardStatsData;
     393            $membersCounter = Functions::getUsersCounter();
     394            $topicsCounter = Functions::getTopicsCounter();
     395            $postsCounter = Functions::getPostsCounter();
     396
     397            $boardStatsData['text'] = sprintf($this->modules['Language']->getString('board_stats_text'),$membersCounter,$postsCounter,$topicsCounter,'<a href="index.php?action=viewprofile&amp;profile_id='.$this->modules['Config']->getValue('newest_user_id').'&amp;'.MYSID.'">'.$this->modules['Config']->getValue('newest_user_nick').'</a>');
     398        }
     399        return $boardStatsData;
    398400    }
    399401}
  • trunk/modules/Language.class.php

    r5 r6  
    3030    }
    3131
    32     public function addFile($FileName) {
    33         if(!isset($this->loadedFiles[$FileName])) {
    34             if(file_exists($this->languageDir.$FileName.'.language') == FALSE) die('Language file "'.$this->languageDir.$FileName.'.language" does not exist');
     32    public function addFile($fileName) {
     33        if(!isset($this->loadedFiles[$fileName])) {
     34            if(file_exists($this->languageDir.$fileName.'.language') == FALSE) die('Language file "'.$this->languageDir.$fileName.'.language" does not exist');
    3535
    36             foreach(explode("\n",file_get_contents($this->languageDir.$FileName.'.language')) AS $curLine) {
    37                 preg_match('/^([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)[ ]*=[ ]*"(.*)"$/',rtrim($curLine),$Matches);
     36            foreach(explode("\n",file_get_contents($this->languageDir.$fileName.'.language')) AS $curLine) {
     37                preg_match('/^([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)[ ]*=[ ]*"(.*)"$/',rtrim($curLine),$matches);
    3838
    39                 if(count($Matches) == 3)
    40                     $this->strings[$Matches[1]] = $Matches[2];
     39                if(count($matches) == 3)
     40                    $this->strings[$matches[1]] = $matches[2];
    4141            }
    4242
    43             $this->loadedFiles[$FileName] = TRUE;
     43            $this->loadedFiles[$fileName] = TRUE;
    4444        }
    4545    }
     
    4949    }
    5050
    51     public function getString($Index) {
    52         if(isset($this->strings[$Index]) == FALSE) {
    53             trigger_error('Language string "'.$Index.'" does not exist');
     51    public function getString($index) {
     52        if(isset($this->strings[$index]) == FALSE) {
     53            trigger_error('Language string "'.$index.'" does not exist');
    5454            return FALSE;
    5555        }
    56         return $this->strings[$Index];
     56        return $this->strings[$index];
    5757    }
    5858
  • trunk/modules/Login.class.php

    r2 r6  
    22
    33class Login extends ModuleTemplate {
    4     protected $RequiredModules = array(
     4    protected $requiredModules = array(
    55        'Auth',
    66        'Config',
     7        'Constants',
    78        'DB',
    89        'Language',
     
    1314
    1415    public function executeMe() {
    15         $this->Modules['Language']->addFile('Login');
     16        $this->modules['Language']->addFile('Login');
    1617
    17         $UserNick = isset($_REQUEST['UserNick']) ? $_REQUEST['UserNick'] : '';
    18         $p = Functions::getSGValues($_POST['p'],array('UserPassword'),'');
    19         $c = Functions::getSGValues($_POST['c'],array('EnableGhostMode','StayLoggedIn'),0);
     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);
    2021
    21         $Error = '';
     22        $error = '';
    2223
    23         if(isset($_GET['Doit'])) {
     24        if(isset($_GET['doit'])) {
    2425            //
    2526            // Im Folgenden wird ueberprueft, ob
     
    2930            // 4) der User gesperrt ist und falls ja wie lange
    3031            //
    31             if(trim($UserNick) == '' || ($UserData = Functions::getUserData($UserNick)) == FALSE) $Error = $this->Modules['Language']->getString('error_unknown_user');
    32             elseif($UserData['UserStatus'] == USER_STATUS_INACTIVE) $Error = sprintf($this->Modules['Language']->getString('error_inactive_account'),$UserData['UserNick']);
    33             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');
    34             elseif($UserData['UserIsLocked'] == 1 && Functions::checkLockStatus($UserData['UserID']) == TRUE) { // Falls der Benutzer sich nicht mehr einloggen darf
    35                 $DB->query("SELECT lock_start_time,lock_dur_time FROM ".TBLPFX."users_locks WHERE user_id='".$p_user_data['user_id']."'");
    36                 $lock_data = $DB->fetch_array();
     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']) == TRUE) { // 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();
    3738
    38                 if($lock_data['lock_dur_time'] == 0) $remaining_lock_time = $this->Modules['Language']->getString('locked_forever');
     39                if($lock_data['lock_dur_time'] == 0) $remaining_lock_time = $this->modules['Language']->getString('locked_forever');
    3940                else {
    4041                    $remaining_lock_time = split_time($lock_data['lock_start_time']+$lock_data['lock_dur_time']-time());
    4142
    42                     $remaining_months = sprintf($this->Modules['Language']->getString('x_months'),$remaining_lock_time['months']);
    43                     $remaining_weeks = sprintf($this->Modules['Language']->getString('x_weeks'),$remaining_lock_time['weeks']);
    44                     $remaining_days = sprintf($this->Modules['Language']->getString('x_days'),$remaining_lock_time['days']);
    45                     $remaining_hours = sprintf($this->Modules['Language']->getString('x_hours'),$remaining_lock_time['hours']);
    46                     $remaining_minutes = sprintf($this->Modules['Language']->getString('x_minutes'),$remaining_lock_time['minutes']);
    47                     $remaining_seconds = sprintf($this->Modules['Language']->getString('x_seconds'),$remaining_lock_time['seconds']);
     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']);
    4849
    4950                    $remaining_lock_time = "$remaining_months, $remaining_weeks, $remaining_days, $remaining_hours, $remaining_minutes, $remaining_seconds";
    5051                }
    5152
    52                 $Error = sprintf($this->Modules['Language']->getString('error_locked_account'),$remaining_lock_time);
     53                $error = sprintf($this->modules['Language']->getString('error_locked_account'),$remaining_lock_time);
    5354            }
    5455            else {
     
    5657                // Ueberpruefen, ob der Geist-Modus erlaubt sein soll
    5758                //
    58                 if($this->Modules['Config']->getValue('allow_ghost_mode') == 0) $c['EnableGhostMode'] = 0;
     59                if($this->modules['Config']->getValue('allow_ghost_mode') == 0) $c['enableGhostMode'] = 0;
    5960
    6061                //
     
    6263                // werden sie in noch in der Datenbank aktualisiert
    6364                //
    64                 $this->Modules['Auth']->setSessionUserID($UserData['UserID']);
    65                 $this->Modules['Auth']->setSessionUserPassword($UserData['UserPassword']);
    66                 $this->Modules['DB']->query("UPDATE ".TBLPFX."sessions SET SessionUserID='".$UserData['UserID']."', SessionIsGhost='".$c['EnableGhostMode']."' WHERE SessionID='".session_id()."'");
     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()."'");
    6768
    6869                //
     
    7273                // ein Jahr gesetzt, um einen permanenten/automatischen Login zu erreichen
    7374                //
    74                 if($c['StayLoggedIn'] == 1) setcookie('LoginData',$UserData['UserID'].','.$UserPasswordEncrypted,time()+31536000);
    75                 else setcookie('LoginData',$UserData['UserID'].','.$UserPasswordEncrypted);
     75                if($c['stayLoggedIn'] == 1) setcookie('loginData',$userData['userID'].','.$userData['userPassword'],time()+31536000);
     76                else setcookie('loginData',$userData['userID'].','.$userData['userPassword']);
    7677
    7778                //
     
    8081                // oder um das alte Passwort durch das neue zu ersetzen.
    8182                //
    82                 if(Functions::getSaltedHash($p['UserPassword'],$UserData['UserPasswordSalt']) == $UserData['UserPassword'] && $UserData['UserNewPassword'] != '')
    83                     $DB->query("UPDATE ".TBLPFX."users SET UserNewPassword='', UserNewPasswordSalt='' WHERE UserID='".$UserData['UserID']."'");
    84                 elseif($UserData['UserNewPassword'] != '' && Functions::getSaltedHash($p['UserPassword'],$UserData['UserNewPasswordSalt']) == $UserData['UserNewPassword'])
    85                     $DB->query("UPDATE ".TBLPFX."users SET UserNewPassword='', UserNewPasswordSalt='', UserPassword='".$UserData['UserNewPassword']."', UserPasswordSalt='".$UserData['UserPasswordSalt']."' WHERE UserID='".$UserData['UserID']."'");
     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']."'");
    8687
    8788                //
     
    9091                // die Forenuebersicht aufgerufen
    9192                //
    92                 isset($_SESSION['LastPlaceUrl']) ? Functions::myHeader($_SESSION['LastPlaceUrl']) : Functions::myHeader('index.php?'.MYSID);
     93                //isset($_SESSION['lastPlaceUrl']) ? Functions::myHeader($_SESSION['lastPlaceUrl']) : Functions::myHeader('index.php?'.MYSID);
    9394            }
    9495        }
    9596
    96         $this->Modules['Navbar']->addElement($this->Modules['Language']->getString('Login'),INDEXFILE.'?Action=Login&amp;'.MYSID);
     97        $this->modules['Navbar']->addElement($this->modules['Language']->getString('Login'),INDEXFILE.'?action=Login&amp;'.MYSID);
    9798
    98         $this->Modules['Template']->assign(array(
     99        $this->modules['Template']->assign(array(
    99100            'c'=>$c,
    100101            'p'=>$p,
    101             'UserNick'=>$UserNick,
    102             'Error'=>$Error
     102            'userNick'=>$userNick,
     103            'error'=>$error
    103104        ));
    104         $this->Modules['PageParts']->printPage('Login.tpl');
     105        $this->modules['PageParts']->printPage('Login.tpl');
    105106    }
    106107}
  • trunk/modules/Logout.class.php

    r2 r6  
    22
    33class Logout extends ModuleTemplate {
    4     protected $RequiredModules = array(
     4    protected $requiredModules = array(
    55        'Auth'
    66    );
    77
    88    public function executeMe() {
    9         $this->Modules['Auth']->destroySessionData();
     9        $this->modules['Auth']->destroySessionData();
    1010        Functions::myHeader(INDEXFILE);
    1111    }
  • trunk/modules/MemberList.class.php

    r2 r6  
    22
    33class MemberList extends ModuleTemplate {
    4     protected $RequiredModules = array(
     4    protected $requiredModules = array(
    55        'Auth',
    66        'Cache',
     
    1313
    1414    public function executeMe() {
    15         $UsersPerPage = isset($_REQUEST['UsersPerPage']) ? intval($_REQUEST['UsersPerPage']) : 20;
    16         $OrderBy = isset($_REQUEST['OrderBy']) ? $_REQUEST['OrderBy'] : 'id';
    17         $OrderType = isset($_REQUEST['OrderType']) ? $_REQUEST['OrderType'] : 'ASC';
    18         $Page = isset($_GET['Page']) ? $_GET['Page'] : '1';
     15        $usersPerPage = isset($_REQUEST['UsersPerPage']) ? intval($_REQUEST['UsersPerPage']) : 20;
     16        $orderBy = isset($_REQUEST['OrderBy']) ? $_REQUEST['OrderBy'] : 'id';
     17        $orderType = isset($_REQUEST['OrderType']) ? $_REQUEST['OrderType'] : 'ASC';
     18        $page = isset($_GET['Page']) ? $_GET['Page'] : '1';
    1919
    2020
     
    2222        // Stellt sicher, dass keine ungueltigen Werte uebergeben wurden
    2323        //
    24         if(!in_array($OrderBy,array('id','nick','rank','posts')))
    25             $OrderBy = 'id';
    26         if(!in_array($OrderType,array('ASC','DESC')))
    27             $OrderType = 'DESC';
     24        if(!in_array($orderBy,array('id','nick','rank','posts')))
     25            $orderBy = 'id';
     26        if(!in_array($orderType,array('ASC','DESC')))
     27            $orderType = 'DESC';
    2828
    2929
     
    3131        // Die Seitenanzeige
    3232        //
    33         $this->Modules['DB']->query("SELECT COUNT(*) AS UsersCounter FROM ".TBLPFX."users");
    34         list($UsersCounter) = $this->Modules['DB']->fetchArray();
     33        $this->modules['DB']->query("SELECT COUNT(*) AS UsersCounter FROM ".TBLPFX."users");
     34        list($usersCounter) = $this->modules['DB']->fetchArray();
    3535
    36         $PageListing = Functions::createPageListing($UsersCounter,$UsersPerPage,$Page,'<a href="'.INDEXFILE.'?Action=MemberList&amp;OrderBy='.$OrderBy.'&amp;OrderType='.$OrderType.'&amp;UsersPerPage='.$UsersPerPage.'&amp;Page=%1$s&amp;'.MYSID.'">%2$s</a>');
    37         $Start = $Page*$UsersPerPage-$UsersPerPage;
     36        $pageListing = Functions::createPageListing($usersCounter,$usersPerPage,$page,'<a href="'.INDEXFILE.'?Action=MemberList&amp;OrderBy='.$orderBy.'&amp;OrderType='.$orderType.'&amp;UsersPerPage='.$usersPerPage.'&amp;Page=%1$s&amp;'.MYSID.'">%2$s</a>');
     37        $start = $page*$usersPerPage-$usersPerPage;
    3838
    39         $this->Modules['Navbar']->setRightArea($PageListing);
     39        $this->modules['Navbar']->setRightArea($pageListing);
    4040
    4141
     
    4343        // Nach welchem Aspekt sortiert werden soll...
    4444        //
    45         $QueryOrderBy = '';
    46         if($OrderBy == 'id') $QueryOrderBy = 't1.UserID';
    47         elseif($OrderBy == 'nick') $QueryOrderBy = 't1.UserNick';
    48         elseif($OrderBy == 'rank') $QueryOrderBy = "t1.UserIsAdmin $OrderType,t1.UserIsSupermod $OrderType,t1.RankID $OrderType,t1.UserPostsCounter";
    49         else $QueryOrderBy = 't1.UserPostsCounter';
     45        $queryOrderBy = '';
     46        if($orderBy == 'id') $queryOrderBy = 't1.UserID';
     47        elseif($orderBy == 'nick') $queryOrderBy = 't1.UserNick';
     48        elseif($orderBy == 'rank') $queryOrderBy = "t1.UserIsAdmin $orderType,t1.UserIsSupermod $orderType,t1.RankID $orderType,t1.UserPostsCounter";
     49        else $queryOrderBy = 't1.UserPostsCounter';
    5050
    5151
     
    5353        // Rangdaten laden
    5454        //
    55         $RanksData = $this->Modules['Cache']->getRanksData();
     55        $ranksData = $this->modules['Cache']->getRanksData();
    5656
    5757
     
    5959        // User-IDs aller Moderatoren laden
    6060        //
    61         $ModIDs = array();
    62         $this->Modules['DB']->query("SELECT AuthID FROM ".TBLPFX."forums_auth WHERE AuthType='".AUTH_TYPE_USER."' AND AuthIsMod='1' GROUP BY AuthID");
    63         while(list($curUserID) = $this->Modules['DB']->fetchArray())
    64             $ModIDs[] = $curUserID;
     61        $modIDs = array();
     62        $this->modules['DB']->query("SELECT AuthID FROM ".TBLPFX."forums_auth WHERE AuthType='".AUTH_TYPE_USER."' AND AuthIsMod='1' GROUP BY AuthID");
     63        while(list($curUserID) = $this->modules['DB']->fetchArray())
     64            $modIDs[] = $curUserID;
    6565
    66         $this->Modules['DB']->query("SELECT t2.MemberID FROM ".TBLPFX."forums_auth AS t1, ".TBLPFX."groups_members AS t2 WHERE t1.AuthIsMod='1' AND t1.AuthType='".AUTH_TYPE_GROUP."' AND t2.GroupID=t1.AuthID GROUP BY t2.MemberID");
    67         while(list($curUserID) = $this->Modules['DB']->fetchArray())
    68             $ModIDs[] = $curUserID;
     66        $this->modules['DB']->query("SELECT t2.MemberID FROM ".TBLPFX."forums_auth AS t1, ".TBLPFX."groups_members AS t2 WHERE t1.AuthIsMod='1' AND t1.AuthType='".AUTH_TYPE_GROUP."' AND t2.GroupID=t1.AuthID GROUP BY t2.MemberID");
     67        while(list($curUserID) = $this->modules['DB']->fetchArray())
     68            $modIDs[] = $curUserID;
    6969
    70         $ModIDs = array_unique($ModIDs);
     70        $modIDs = array_unique($modIDs);
    7171
    7272
     
    7474        // Die Daten der Profilfelder laden, die in der Mitgliederliste zusaetzlich angezeigt werden sollen
    7575        //
    76         $this->Modules['DB']->query("SELECT * FROM ".TBLPFX."profile_fields WHERE FieldShowMemberList='1'");
    77         $FieldsData = $this->Modules['DB']->Raw2Array();
     76        $this->modules['DB']->query("SELECT * FROM ".TBLPFX."profile_fields WHERE FieldShowMemberList='1'");
     77        $fieldsData = $this->modules['DB']->raw2Array();
    7878
    7979
     
    8181        // Die Titel fuer die Profilfelder, gleichzeitig noch die IDs der Felder bestimmen
    8282        //
    83         $FieldIDs = array();
    84         foreach($FieldsData AS $curField)
    85             $FieldIDs[] = $curField['FieldID'];
     83        $fieldIDs = array();
     84        foreach($fieldsData AS $curField)
     85            $fieldIDs[] = $curField['FieldID'];
    8686
    8787
     
    8989        // Mitgliederdaten laden
    9090        //
    91         $this->Modules['DB']->query("SELECT t1.UserID,t1.UserNick,t1.UserEmail,t1.UserPostsCounter,t1.UserIsAdmin,t1.UserIsSupermod,t2.RankName AS UserRankName FROM ".TBLPFX."users AS t1 LEFT JOIN ".TBLPFX."ranks AS t2 ON t1.RankID=t2.RankID ORDER BY $QueryOrderBy $OrderType LIMIT $Start,$UsersPerPage");
    92         $UsersData = $this->Modules['DB']->Raw2Array();
     91        $this->modules['DB']->query("SELECT t1.UserID,t1.UserNick,t1.UserEmail,t1.UserPostsCounter,t1.UserIsAdmin,t1.UserIsSupermod,t2.RankName AS UserRankName FROM ".TBLPFX."users AS t1 LEFT JOIN ".TBLPFX."ranks AS t2 ON t1.RankID=t2.RankID ORDER BY $queryOrderBy $orderType LIMIT $start,$usersPerPage");
     92        $usersData = $this->modules['DB']->raw2Array();
    9393
    9494
     
    9696        // Mitglieder-IDs bestimmen
    9797        //
    98         $UserIDs = array();
    99         foreach($UsersData AS $curUser)
    100             $UserIDs[] = $curUser['UserID'];
     98        $userIDs = array();
     99        foreach($usersData AS $curUser)
     100            $userIDs[] = $curUser['UserID'];
    101101
    102102
     
    104104        // Die Mitgliederdaten der extra-Profilfelder laden
    105105        //
    106         $this->Modules['DB']->query("SELECT UserID,FieldID,FieldValue FROM ".TBLPFX."profile_fields_data WHERE UserID IN ('".implode("','",$UserIDs)."') AND FieldID IN ('".implode("','",$FieldIDs)."')");
    107         $FieldsValues = $this->Modules['DB']->Raw2Array();
     106        $this->modules['DB']->query("SELECT UserID,FieldID,FieldValue FROM ".TBLPFX."profile_fields_data WHERE UserID IN ('".implode("','",$userIDs)."') AND FieldID IN ('".implode("','",$fieldIDs)."')");
     107        $fieldsValues = $this->modules['DB']->raw2Array();
    108108
    109109
     
    111111        // Daten ausgeben
    112112        //
    113         for($i = 0; $i < count($UsersData); $i++) {
    114             $curUser = &$UsersData[$i];
     113        for($i = 0; $i < count($usersData); $i++) {
     114            $curUser = &$usersData[$i];
    115115
    116116            $curUserRank = '';
    117             if($curUser['UserIsAdmin'] == 1) $curUserRank = $this->Modules['Language']->getString('Administrator');
    118             elseif($curUser['UserIsSupermod'] == 1) $curUserRank = $this->Modules['Language']->getString('Supermoderator');
    119             elseif(in_array($curUser['UserID'],$ModIDs)) $curUserRank = $this->Modules['Language']->getString('Moderator');
     117            if($curUser['UserIsAdmin'] == 1) $curUserRank = $this->modules['Language']->getString('Administrator');
     118            elseif($curUser['UserIsSupermod'] == 1) $curUserRank = $this->modules['Language']->getString('Supermoderator');
     119            elseif(in_array($curUser['UserID'],$modIDs)) $curUserRank = $this->modules['Language']->getString('Moderator');
    120120            elseif($curUser['UserRankName'] != '') $curUserRank = $curUser['UserRankName'];
    121121            else {
    122                 foreach($RanksData[0] AS $curRank) {
     122                foreach($ranksData[0] AS $curRank) {
    123123                    if($curRank['RankPosts'] > $curUser['UserPostsCounter']) break;
    124124
     
    132132            // Die extra-Profilefelder
    133133            $curUserFieldsValues = array();
    134             foreach($FieldsData AS $curField) {
     134            foreach($fieldsData AS $curField) {
    135135                $curFieldValue = '';
    136136
    137                 while(list($curKey,$curValue) = each($FieldsValues)) {
     137                while(list($curKey,$curValue) = each($fieldsValues)) {
    138138                    if($curValue['UserID'] != $curUser['UserID'] || $curValue['FieldID'] != $curField['FieldID']) continue;
    139139                    $curFieldValue = $curValue['FieldValue'];
    140                     unset($FieldsValues[$curKey]);
     140                    unset($fieldsValues[$curKey]);
    141141                    break;
    142142                }
     
    150150
    151151
    152         $this->Modules['Navbar']->addElement($this->Modules['Language']->getString('Memberlist'),INDEXFILE.'?Action=MemberList&'.MYSID);
     152        $this->modules['Navbar']->addElement($this->modules['Language']->getString('Memberlist'),INDEXFILE.'?Action=MemberList&'.MYSID);
    153153
    154154        // Seite ausgeben
    155         $this->Modules['Template']->assign(array(
    156             'FieldsData'=>$FieldsData,
    157             'UsersData'=>$UsersData,
    158             'Page'=>$Page,
    159             'OrderBy'=>$OrderBy,
    160             'OrderType'=>$OrderType
     155        $this->modules['Template']->assign(array(
     156            'FieldsData'=>$fieldsData,
     157            'UsersData'=>$usersData,
     158            'Page'=>$page,
     159            'OrderBy'=>$orderBy,
     160            'OrderType'=>$orderType
    161161        ));
    162162
    163         $this->Modules['PageParts']->printPage('MemberList.tpl');
     163        $this->modules['PageParts']->printPage('MemberList.tpl');
    164164    }
    165165}
  • trunk/modules/Navbar.class.php

    r2 r6  
    22
    33class Navbar extends ModuleTemplate {
    4     protected $Elements = array();
    5     protected $Seperator = '&nbsp;&#187;&nbsp;';
    6     protected $RightArea = '';
     4    protected $elements = array();
     5    protected $seperator = '&nbsp;&#187;&nbsp;';
     6    protected $rightArea = '';
    77
    8     public function addElement($ElementName, $ElementLink = '') {
    9         $this->Elements[] = array($ElementName,$ElementLink);
     8    public function addElement($elementName, $elementLink = '') {
     9        $this->elements[] = array($elementName,$elementLink);
    1010    }
    1111
    1212    public function addElements() {
    13         $NewElementsCounter = func_num_args();
     13        $newElementsCounter = func_num_args();
    1414
    15         for($i = 0; $i < $NewElementsCounter; $i++) {
     15        for($i = 0; $i < $newElementsCounter; $i++) {
    1616            $curArg = func_get_arg($i);
    1717            $this->addElement($curArg[0],$curArg[1]);
     
    2020
    2121    public function setRightArea($newRightArea) {
    22         $this->RightArea = $newRightArea;
     22        $this->rightArea = $newRightArea;
    2323    }
    2424
    2525    public function getRightArea() {
    26         return $this->RightArea;
     26        return $this->rightArea;
    2727    }
    2828
    29     public function addCategories($CatID,$IncludeSelf = TRUE) {
    30         $CatsData = Functions::catsGetParentCatsData($CatID,$IncludeSelf);
     29    public function addCategories($catID,$includeSelf = TRUE) {
     30        $catsData = Functions::catsGetParentCatsData($catID,$includeSelf);
    3131
    32         foreach($CatsData AS $curCat)
     32        foreach($catsData AS $curCat)
    3333            $this->addElement(Functions::HTMLSpecialChars($curCat['CatName']),INDEXFILE.'?CatID='.$curCat['CatID'].'&amp;'.MYSID);
    3434    }
    3535
    36     public function parseElements($IntegrateLinks = TRUE) {
    37         $ElementsCounter = count($this->Elements);
     36    public function parseElements($integrateLinks = TRUE) {
     37        $elementsCounter = count($this->elements);
    3838
    39         if($ElementsCounter == 0) return '';
     39        if($elementsCounter == 0) return '';
    4040
    41         $Result = '';
     41        $result = '';
    4242
    43         if($IntegrateLinks == TRUE) {
    44             for($i = 0; $i < $ElementsCounter-1; $i++)
    45                 $Result .= '<a href="'.$this->Elements[$i][1].'">'.$this->Elements[$i][0].'</a>'.$this->Seperator;
     43        if($integrateLinks == TRUE) {
     44            for($i = 0; $i < $elementsCounter-1; $i++)
     45                $result .= '<a href="'.$this->elements[$i][1].'">'.$this->elements[$i][0].'</a>'.$this->seperator;
    4646
    47             $Result .= $this->Elements[$ElementsCounter-1][0];
     47            $result .= $this->elements[$elementsCounter-1][0];
    4848        }
    4949        else {
    50             for($i = 0; $i < $ElementsCounter-1; $i++)
    51                 $Result .= $this->Elements[$i][0].$this->Seperator;
    52             $Result .= $this->Elements[$ElementsCounter-1][0];
     50            for($i = 0; $i < $elementsCounter-1; $i++)
     51                $result .= $this->elements[$i][0].$this->seperator;
     52            $result .= $this->elements[$elementsCounter-1][0];
    5353        }
    5454
    55         return $Result;
     55        return $result;
    5656    }
    5757
    58     public function setSeperator($NewSeperator) {
    59         $this->Seperator = $NewSeperator;
     58    public function setSeperator($newSeperator) {
     59        $this->seperator = $newSeperator;
    6060    }
    6161}
  • trunk/modules/PageParts.class.php

    r5 r6  
    2020    }
    2121
    22     public function setInEditProfile($Value) {
    23         $this->flags['inEditProfile'] = $Value;
     22    public function setInEditProfile($value) {
     23        $this->flags['inEditProfile'] = $value;
    2424    }
    2525
    26     public function setInAdministration($Value) {
    27         $this->flags['inAdministration'] = $Value;
     26    public function setInAdministration($value) {
     27        $this->flags['inAdministration'] = $value;
    2828    }
    2929
    30     public function setInPrivateMessages($Value) {
    31         $this->flags['inPrivateMessages'] = $Value;
     30    public function setInPrivateMessages($value) {
     31        $this->flags['inPrivateMessages'] = $value;
    3232    }
    3333
     
    3737
    3838    public function printHeader() {
    39         if($this->modules['Config']->getValue('board_logo') != '') $BoardBanner = '<img src="'.$this->modules['Config']->getValue('board_logo').'" alt="'.$this->modules['Config']->getValue('board_name').'" />';
    40         else $BoardBanner = $this->modules['Config']->getValue('board_name');
     39        if($this->modules['Config']->getValue('board_logo') != '') $boardBanner = '<img src="'.$this->modules['Config']->getValue('board_logo').'" alt="'.$this->modules['Config']->getValue('board_name').'" />';
     40        else $boardBanner = $this->modules['Config']->getValue('board_name');
    4141
    42         if($this->modules['Auth']->isLoggedIn() == 1) $WelcomeText = sprintf($this->modules['Language']->getString('welcome_logged_in'),$this->modules['Auth']->getValue('UserNick'),Functions::toTime(time()),INDEXFILE,MYSID);
    43         else $WelcomeText = sprintf($this->modules['Language']->getString('welcome_not_logged_in'),$this->modules['Config']->getValue('board_name'),INDEXFILE,MYSID);
     42        if($this->modules['Auth']->isLoggedIn() == 1) $welcomeText = sprintf($this->modules['Language']->getString('welcome_logged_in'),$this->modules['Auth']->getValue('UserNick'),Functions::toTime(time()),INDEXFILE,MYSID);
     43        else $welcomeText = sprintf($this->modules['Language']->getString('welcome_not_logged_in'),$this->modules['Config']->getValue('board_name'),INDEXFILE,MYSID);
    4444
    4545        $this->modules['Template']->assign(array(
    46             'BoardBanner'=>$BoardBanner,
    47             'WelcomeText'=>$WelcomeText
     46            'BoardBanner'=>$boardBanner,
     47            'WelcomeText'=>$welcomeText
    4848        ));
    4949
     
    5454        elseif($this->flags['inPrivateMessages']) {
    5555            $this->modules['DB']->query("SELECT FolderName,FolderID FROM ".TBLPFX."pms_folders WHERE UserID='".USERID."' ORDER BY FolderName");
    56             $HeaderFoldersData = $this->modules['DB']->Raw2Array();
     56            $headerFoldersData = $this->modules['DB']->raw2Array();
    5757
    58             array_unshift($HeaderFoldersData, // Fuegt an den Anfang die Standardordner hinzu...
     58            array_unshift($headerFoldersData, // Fuegt an den Anfang die Standardordner hinzu...
    5959                array('FolderID'=>0,'FolderName'=>$this->modules['Language']->getString('Inbox')),
    6060                array('FolderID'=>1,'FolderName'=>$this->modules['Language']->getString('Outbox'))
    6161            );
    62             reset($HeaderFoldersData);
     62            reset($headerFoldersData);
    6363
    64             $this->modules['Template']->assign('HeaderFoldersData',$HeaderFoldersData);
     64            $this->modules['Template']->assign('HeaderFoldersData',$headerFoldersData);
    6565
    6666            $this->modules['Template']->display('PrivateMessagesHeader.tpl');
     
    6868    }
    6969
    70     public function printPage($TemplateName) {
     70    public function printPage($templateName) {
    7171        $this->printHeader();
    72         $this->modules['Template']->display($TemplateName);
     72        $this->modules['Template']->display($templateName);
    7373        $this->printTail();
    7474    }
    7575
    76     public function printMessage($MessageCode,$AdditionalLinks = array()) {
     76    public function printMessage($messageCode,$additionalLinks = array()) {
    7777        $this->modules['Language']->addFile('Messages');
    7878
     
    8080        $this->modules['Template']->assign(array(
    8181            'Flags'=>$this->flags,
    82             'MessageTitle'=>$this->modules['Language']->getString('message_title_'.$MessageCode),
    83             'MessageText'=>$this->modules['Language']->getString('message_text_'.$MessageCode),
    84             'AdditionalLinks'=>$AdditionalLinks
     82            'MessageTitle'=>$this->modules['Language']->getString('message_title_'.$messageCode),
     83            'MessageText'=>$this->modules['Language']->getString('message_text_'.$messageCode),
     84            'AdditionalLinks'=>$additionalLinks
    8585        ));
    8686        $this->modules['Template']->display('Message.tpl');
     
    105105    }
    106106
    107     public function printPopupPage($TemplateName) {
     107    public function printPopupPage($templateName) {
    108108        $this->printPopupHeader();
    109         $this->modules['Template']->display($TemplateName);
     109        $this->modules['Template']->display($templateName);
    110110        $this->printPopupTail();
    111111    }
  • trunk/modules/Posting.class.php

    r2 r6  
    22
    33class Posting extends ModuleTemplate {
    4     protected $RequiredModules = array(
     4    protected $requiredModules = array(
    55        'Auth',
    66        'DB',
     
    2121
    2222        // Einen falschen Modus ausschliessen
    23         $Mode = isset($_GET['Mode']) ? $_GET['Mode'] : '';
    24         if(in_array($Mode,array('Topic','Reply','Edit')) == FALSE) $Mode = 'Topic';
     23        $mode = isset($_GET['Mode']) ? $_GET['Mode'] : '';
     24        if(in_array($mode,array('Topic','Reply','Edit')) == FALSE) $mode = 'Topic';
    2525
    2626        // Alle angegebenen IDs bestimmen (normalerweise ist immer nur eine ID wichtig
    27         $ForumID = isset($_GET['ForumID']) ? intval($_GET['ForumID']) : 0;
    28         $TopicID = isset($_GET['TopicID']) ? intval($_GET['TopicID']) : 0;
    29         $PostID = isset($_GET['PostID']) ? intval($_GET['PostID']) : 0;
    30 
    31         switch($Mode) {
     27        $forumID = isset($_GET['ForumID']) ? intval($_GET['ForumID']) : 0;
     28        $topicID = isset($_GET['TopicID']) ? intval($_GET['TopicID']) : 0;
     29        $postID = isset($_GET['PostID']) ? intval($_GET['PostID']) : 0;
     30
     31        switch($mode) {
    3232            case 'Edit':
    33                 if(!$PostData = Functions::getPostData($PostID)) die('Kann Daten nicht laden: Beitrag');
    34                 $TopicID = &$PostData['TopicID'];
     33                if(!$postData = Functions::getPostData($postID)) die('Kann Daten nicht laden: Beitrag');
     34                $topicID = &$postData['TopicID'];
    3535            case 'Reply':
    36                 if(!$TopicData = Functions::getTopicData($TopicID)) die('Kann Daten nicht laden: Thema');
    37                 $ForumID = &$TopicData['ForumID'];
     36                if(!$topicData = Functions::getTopicData($topicID)) die('Kann Daten nicht laden: Thema');
     37                $forumID = &$topicData['ForumID'];
    3838            case 'Topic':
    39                 if(!$ForumData = Functions::getForumData($ForumID)) die('Kann Daten nicht laden: Forum');
     39                if(!$forumData = Functions::getForumData($forumID)) die('Kann Daten nicht laden: Forum');
    4040                break;
    4141        }
    4242
    43         $this->Modules['Language']->addFile('Posting');
    44 
    45         $AuthData = $this->_authenticateUser($Mode,$ForumData);
    46 
    47         $Error = '';
     43        $this->modules['Language']->addFile('Posting');
     44
     45        $authData = $this->_authenticateUser($mode,$forumData);
     46
     47        $error = '';
    4848
    4949        //
     
    5252        $p = array();
    5353
    54         $p['MessageText'] = isset($_POST['p']['MessageText']) ? $_POST['p']['MessageText'] : (($Mode == 'Edit') ? addslashes($PostData['PostText']) : '');
    55         $p['MessageTitle'] = isset($_POST['p']['MessageTitle']) ? $_POST['p']['MessageTitle'] : (($Mode == 'Edit') ? addslashes($PostData['PostTitle']) : (($Mode == 'Reply') ? 'Re: '.addslashes($TopicData['TopicTitle']) : ''));
     54        $p['MessageText'] = isset($_POST['p']['MessageText']) ? $_POST['p']['MessageText'] : (($mode == 'Edit') ? addslashes($postData['PostText']) : '');
     55        $p['MessageTitle'] = isset($_POST['p']['MessageTitle']) ? $_POST['p']['MessageTitle'] : (($mode == 'Edit') ? addslashes($postData['PostTitle']) : (($mode == 'Reply') ? 'Re: '.addslashes($topicData['TopicTitle']) : ''));
    5656        $p['GuestNick'] = isset($_POST['p']['GuestNick']) ? $_POST['p']['GuestNick'] : '';
    5757        $p['SmileyID'] = isset($_POST['p']['SmileyID']) ? intval($_POST['p']['SmileyID']) : 0;
     
    5959        $p['PollOptions'] = (isset($_POST['p']['PollOptions']) == TRUE && is_array($_POST['p']['PollOptions']) == TRUE) ? $_POST['p']['PollOptions'] : array();
    6060
    61         $SubscriptionStatus = ($Mode == 'Reply' && Functions::getSubscriptionStatus(SUBSCRIPTION_TYPE_TOPIC,USERID,$TopicID) == TRUE) ? 1 : 0;
    62 
    63         $c['ShowEditings'] = ($Mode == 'Edit') ? $PostData['PostShowEditings'] : 1;
    64         $c['EnableURITransformation'] = ($Mode == 'Edit') ? $PostData['PostEnableURITransformation'] : 1;
    65         $c['EnableSmilies'] = ($Mode == 'Edit') ? $PostData['PostEnableSmilies'] : 1;
    66         $c['ShowSignature'] = ($Mode == 'Edit') ? $PostData['PostShowSignature'] : 1;
    67         $c['EnableBBCode'] = ($Mode == 'Edit') ? $PostData['PostEnableBBCode'] : 1;
    68         $c['EnableHtmlCode'] = ($Mode == 'Edit') ? $PostData['PostEnableHtmlCode'] : 0;
    69 
    70         $c['PinTopic'] = ($Mode == 'Reply') ? $TopicData['TopicIsPinned'] : 0;
    71         $c['CloseTopic'] = ($Mode == 'Reply') ? $TopicData['TopicStatus'] : 0;
    72         $c['SubscribeTopic'] = $SubscriptionStatus;
     61        $subscriptionStatus = ($mode == 'Reply' && Functions::getSubscriptionStatus(SUBSCRIPTION_TYPE_TOPIC,USERID,$topicID) == TRUE) ? 1 : 0;
     62
     63        $c['ShowEditings'] = ($mode == 'Edit') ? $postData['PostShowEditings'] : 1;
     64        $c['EnableURITransformation'] = ($mode == 'Edit') ? $postData['PostEnableURITransformation'] : 1;
     65        $c['EnableSmilies'] = ($mode == 'Edit') ? $postData['PostEnableSmilies'] : 1;
     66        $c['ShowSignature'] = ($mode == 'Edit') ? $postData['PostShowSignature'] : 1;
     67        $c['EnableBBCode'] = ($mode == 'Edit') ? $postData['PostEnableBBCode'] : 1;
     68        $c['EnableHtmlCode'] = ($mode == 'Edit') ? $postData['PostEnableHtmlCode'] : 0;
     69
     70        $c['PinTopic'] = ($mode == 'Reply') ? $topicData['TopicIsPinned'] : 0;
     71        $c['CloseTopic'] = ($mode == 'Reply') ? $topicData['TopicStatus'] : 0;
     72        $c['SubscribeTopic'] = $subscriptionStatus;
    7373
    7474        if(isset($_GET['Doit'])) {
    75             $c['EnableBBCode'] = (isset($_POST['c']['EnableBBCode']) && $ForumData['ForumEnableBBCode'] == 1) ? 1 : 0;
    76             $c['EnableSmilies'] = (isset($_POST['c']['EnableSmilies']) && $ForumData['ForumEnableSmilies'] == 1) ? 1 : 0;
    77             $c['EnableHtmlCode'] = (isset($_POST['c']['EnableHtmlCode']) && $ForumData['ForumEnableHtmlCode'] == 1) ? 1 : 0;
    78             $c['ShowSignature'] = (isset($_POST['c']['ShowSignature']) && $this->Modules['Config']->getValue('enable_sig') == 1 && $this->Modules['Auth']->isLoggedIn() == 1) ? 1 : 0;
     75            $c['EnableBBCode'] = (isset($_POST['c']['EnableBBCode']) && $forumData['ForumEnableBBCode'] == 1) ? 1 : 0;
     76            $c['EnableSmilies'] = (isset($_POST['c']['EnableSmilies']) && $forumData['ForumEnableSmilies'] == 1) ? 1 : 0;
     77            $c['EnableHtmlCode'] = (isset($_POST['c']['EnableHtmlCode']) && $forumData['ForumEnableHtmlCode'] == 1) ? 1 : 0;
     78            $c['ShowSignature'] = (isset($_POST['c']['ShowSignature']) && $this->modules['Config']->getValue('enable_sig') == 1 && $this->modules['Auth']->isLoggedIn() == 1) ? 1 : 0;
    7979            $c['SubscribeTopic'] = isset($_POST['c']['SubscribeTopic']) ? 1 : 0;
    80             $c['EnableURITransformation'] = (isset($_POST['c']['EnableURITransformation']) && $ForumData['ForumEnableURITransformation'] == 1) ? 1 : 0;
    81 
    82             if($this->Modules['Auth']->isLoggedIn() == 1 && ($this->Modules['Auth']->getValue('UserIsAdmin') == 1 || $this->Modules['Auth']->getValue('UserIsSupermod') == 1 || $AuthData['AuthIsMod'] == 1)) {
     80            $c['EnableURITransformation'] = (isset($_POST['c']['EnableURITransformation']) && $forumData['ForumEnableURITransformation'] == 1) ? 1 : 0;
     81
     82            if($this->modules['Auth']->isLoggedIn() == 1 && ($this->modules['Auth']->getValue('UserIsAdmin') == 1 || $this->modules['Auth']->getValue('UserIsSupermod') == 1 || $authData['AuthIsMod'] == 1)) {
    8383                $c['ShowEditings'] = isset($_POST['c']['ShowEditings']) ? 1 : 0;
    8484                $c['PinTopic'] = isset($_POST['c']['PinTopic']) ? 1 : 0;
     
    8787
    8888            if(!isset($_POST['ShowPreview'])) {
    89                 if(trim($p['MessageTitle']) == '') $Error = $this->Modules['Language']->getString('error_no_title');
    90                 elseif(strlen($p['MessageTitle']) > 100) $Error = $this->Modules['Language']->getString('error_title_too_long');
    91                 elseif(trim($p['MessageText']) == '') $Error = $this->Modules['Language']->getString('error_no_post');
    92                 elseif($Mode != 'Edit' && $this->Modules['Auth']->isLoggedIn() != 1 && Functions::verifyEmail($p['GuestNick']) == FALSE) $Error = $this->Modules['Language']->getString('error_invalid_name');
    93                 elseif($Mode != 'Edit' && $this->Modules['Auth']->isLoggedIn() != 1 && Functions::unifyNick($p['GuestNick']) == FALSE) $Error = $this->Modules['Language']->getString('error_existing_user_name');
    94                 elseif($Mode == 'Edit') {
    95                     $this->Modules['DB']->query("
     89                if(trim($p['MessageTitle']) == '') $error = $this->modules['Language']->getString('error_no_title');
     90                elseif(strlen($p['MessageTitle']) > 100) $error = $this->modules['Language']->getString('error_title_too_long');
     91                elseif(trim($p['MessageText']) == '') $error = $this->modules['Language']->getString('error_no_post');
     92                elseif($mode != 'Edit' && $this->modules['Auth']->isLoggedIn() != 1 && Functions::verifyEmail($p['GuestNick']) == FALSE) $error = $this->modules['Language']->getString('error_invalid_name');
     93                elseif($mode != 'Edit' && $this->modules['Auth']->isLoggedIn() != 1 && Functions::unifyNick($p['GuestNick']) == FALSE) $error = $this->modules['Language']->getString('error_existing_user_name');
     94                elseif($mode == 'Edit') {
     95                    $this->modules['DB']->query("
    9696                        UPDATE
    9797                            ".TBLPFX."posts
     
    105105                            PostShowEditings='".$c['ShowEditings']."',
    106106                            PostEditedCounter=PostEditedCounter+1,
    107                             PostLastEditorNick='".$this->Modules['Auth']->getValue('UserNick')."',
     107                            PostLastEditorNick='".$this->modules['Auth']->getValue('UserNick')."',
    108108                            PostTitle='".$p['MessageTitle']."',
    109109                            PostText='".$p['MessageText']."'
    110110                        WHERE
    111                             PostID='$PostID'
     111                            PostID='$postID'
    112112                    ");
    113                     //Functions::myHeader("index.php?p=$PostID&".MYSID."#post$PostID"); exit;
    114                     Functions::myHeader(INDEXFILE."?Action=ViewTopic&PostID=$PostID&".MYSID."#Post$PostID"); exit;
     113                    //Functions::myHeader("index.php?p=$postID&".MYSID."#post$postID"); exit;
     114                    Functions::myHeader(INDEXFILE."?Action=ViewTopic&PostID=$postID&".MYSID."#Post$postID"); exit;
    115115                }
    116116                else {
     
    118118                        $p['GuestNick'] = '';
    119119
    120                     if($Mode == 'Topic') {
     120                    if($mode == 'Topic') {
    121121                        // Das Thema in die Datenbank eintragen
    122                         $this->Modules['DB']->query("
     122                        $this->modules['DB']->query("
    123123                            INSERT INTO
    124124                                ".TBLPFX."topics
    125125                            SET
    126126                                TopicTitle='".$p['MessageTitle']."',
    127                                 ForumID='$ForumID',
     127                                ForumID='$forumID',
    128128                                TopicStatus='".$c['CloseTopic']."',
    129129                                TopicIsPinned='".$c['PinTopic']."',
    130130                                PosterID='".USERID."',
    131                                 SmileyID='$SmileyID',
     131                                SmileyID='$smileyID',
    132132                                TopicTimestamp='".time()."',
    133133                                TopicGuestNick='".$p['GuestNick']."'
    134134                        ");
    135                         $TopicID = $this->Modules['DB']->getInsertID();
     135                        $topicID = $this->modules['DB']->getInsertID();
    136136
    137137                        // Eventuell die Umfrage zum Thema hinzufuegen
    138                         if(($this->Modules['Auth']->getValue('UserIsAdmin') == 1 || $this->Modules['Auth']->getValue('UserIsSupermod') == 1 || $AuthData['AuthIsMod'] == 1 || $AuthData['AuthPostPoll'] == 1) && trim($p['PollTitle']) != '') {
     138                        if(($this->modules['Auth']->getValue('UserIsAdmin') == 1 || $this->modules['Auth']->getValue('UserIsSupermod') == 1 || $authData['AuthIsMod'] == 1 || $authData['AuthPostPoll'] == 1) && trim($p['PollTitle']) != '') {
    139139                            while(list($curKey) = each($p['PollOptions'])) {
    140140                                if(trim($p['PollOptions'][$curKey]) == '')
     
    144144
    145145                            if(count($p['PollOptions']) > 1) {
    146                                 $this->Modules['DB']->query("
     146                                $this->modules['DB']->query("
    147147                                    INSERT INTO
    148148                                        ".TBLPFX."polls
    149149                                    SET
    150                                         TopicID='$TopicID',
     150                                        TopicID='$topicID',
    151151                                        PosterID='".USERID.",
    152152                                        PollTitle='".$p['PollTitle']."',
     
    156156                                $i = 1;
    157157                                foreach($p['PollOptions'] AS $curOption) {
    158                                     $this->Modules['DB']->query("
     158                                    $this->modules['DB']->query("
    159159                                        INSERT INTO
    160160                                            ".TBLPFX."polls_options
    161161                                        SET
    162                                             TopicID='$TopicID',
     162                                            TopicID='$topicID',
    163163                                            OptionID='$i',
    164164                                            OptionTitle='$curOption'
     
    167167                                }
    168168
    169                                 $this->Modules['DB']->query("UPDATE ".TBLPFX."topics SET TopicHasPoll='1' WHERE TopicID='$TopicID'");
     169                                $this->modules['DB']->query("UPDATE ".TBLPFX."topics SET TopicHasPoll='1' WHERE TopicID='$topicID'");
    170170                            }
    171171                        }
     
    173173
    174174                    // Den Beitrag in die Datenbank eintragen
    175                     $this->Modules['DB']->query("
     175                    $this->modules['DB']->query("
    176176                        INSERT INTO
    177177                            ".TBLPFX."posts
    178178                        SET
    179                             TopicID='$TopicID',
    180                             ForumID='$ForumID',
     179                            TopicID='$topicID',
     180                            ForumID='$forumID',
    181181                            PosterID='".USERID."',
    182182                            SmileyID='".$p['SmileyID']."',
     
    193193                            PostGuestNick='".$p['GuestNick']."'
    194194                    ");
    195                     $PostID = $this->Modules['DB']->getInsertID();
     195                    $postID = $this->modules['DB']->getInsertID();
    196196
    197197                    // Verschiedene Dinge updaten (Beitragszahl, erster/letzter Beitrag usw.)
    198                     if($Mode == 'Topic') $this->Modules['DB']->query("UPDATE ".TBLPFX."topics SET TopicFirstPostID='$PostID', TopicLastPostID='$PostID' WHERE TopicID='$TopicID'");
    199                     else $this->Modules['DB']->query("UPDATE ".TBLPFX."topics SET TopicLastPostID='$PostID', TopicRepliesCounter=TopicRepliesCounter+1, TopicStatus='".$c['CloseTopic']."', TopicIsPinned='".$c['PinTopic']."' WHERE TopicID='$TopicID'");
    200 
    201                     $this->Modules['DB']->query("UPDATE ".TBLPFX."forums SET ForumLastPostID='$PostID', ForumPostsCounter=ForumPostsCounter+1, ForumTopicsCounter=ForumTopicsCounter+1 WHERE ForumID='$ForumID'");
    202                     $this->Modules['DB']->query("UPDATE ".TBLPFX."users SET UserPostsCounter=UserPostsCounter+1 WHERE UserID='".USERID."'");
     198                    if($mode == 'Topic') $this->modules['DB']->query("UPDATE ".TBLPFX."topics SET TopicFirstPostID='$postID', TopicLastPostID='$postID' WHERE TopicID='$topicID'");
     199                    else $this->modules['DB']->query("UPDATE ".TBLPFX."topics SET TopicLastPostID='$postID', TopicRepliesCounter=TopicRepliesCounter+1, TopicStatus='".$c['CloseTopic']."', TopicIsPinned='".$c['PinTopic']."' WHERE TopicID='$topicID'");
     200
     201                    $this->modules['DB']->query("UPDATE ".TBLPFX."forums SET ForumLastPostID='$postID', ForumPostsCounter=ForumPostsCounter+1, ForumTopicsCounter=ForumTopicsCounter+1 WHERE ForumID='$forumID'");
     202                    $this->modules['DB']->query("UPDATE ".TBLPFX."users SET UserPostsCounter=UserPostsCounter+1 WHERE UserID='".USERID."'");
    203203
    204204                    // Eventuell Themenabo entfernen oder hinzufuegen
    205                     if($Mode != 'Edit' && $this->Modules['Auth']->isLoggedIn() == 1 && $this->Modules['Config']->getValue('enable_email_functions') == 1 && $this->Modules['Config']->getValue('enable_topic_subscription') == 1 && $c['SubscribeTopic'] != $SubscriptionStatus) {
    206                         if($c['SubscribeTopic'] == 0) $this->Modules['DB']->query("DELETE FROM ".TBLPFX."topics_subscriptions WHERE TopicID='$TopicID' AND UserID='$USER_ID'");
    207                         else $this->Modules['DB']->query("INSERT INTO ".TBLPFX."topics_subscriptions SET TopicID='$TopicID', UserID='".USERID."'");
     205                    if($mode != 'Edit' && $this->modules['Auth']->isLoggedIn() == 1 && $this->modules['Config']->getValue('enable_email_functions') == 1 && $this->modules['Config']->getValue('enable_topic_subscription') == 1 && $c['SubscribeTopic'] != $subscriptionStatus) {
     206                        if($c['SubscribeTopic'] == 0) $this->modules['DB']->query("DELETE FROM ".TBLPFX."topics_subscriptions WHERE TopicID='$topicID' AND UserID='$uSER_ID'");
     207                        else $this->modules['DB']->query("INSERT INTO ".TBLPFX."topics_subscriptions SET TopicID='$topicID', UserID='".USERID."'");
    208208                    }
    209                     //Functions::myHeader("index.php?t=$TopicID&".MYSID); exit;
     209                    //Functions::myHeader("index.php?t=$topicID&".MYSID); exit;
    210210                    exit;
    211211                }
     
    213213        }
    214214
    215         $Show = array();
    216 
    217         $Show['EnableSmilies'] = $ForumData['ForumEnableSmilies'] == 1;
    218         $Show['ShowSignature'] = $this->Modules['Config']->getValue('enable_sig') == 1 && $this->Modules['Auth']->isLoggedIn() == 1;
    219         $Show['EnableBBCode'] = $ForumData['ForumEnableBBCode'] == 1;
    220         $Show['EnableURITransformation'] = $ForumData['ForumEnableURITransformation'];
    221         $Show['EnableHtmlCode'] = $ForumData['ForumEnableHtmlCode'] == 1;
    222         $Show['SubscribeTopic'] = $Mode != 'Edit' && $this->Modules['Auth']->isLoggedIn() == 1 && $this->Modules['Config']->getValue('enable_email_functions') == 1 && $this->Modules['Config']->getValue('enable_topic_subscription') == 1;
    223         $Show['CloseTopic'] = $Mode != 'Edit' && $this->Modules['Auth']->isLoggedIn() == 1 && ($this->Modules['Auth']->getValue('UserIsAdmin') == 1 || $this->Modules['Auth']->getValue('UserIsSupermod') == 1 || $AuthData['AuthIsMod'] == 1);
    224         $Show['PinTopic'] = $Mode != 'Edit' && $this->Modules['Auth']->isLoggedIn() == 1 && ($this->Modules['Auth']->getValue('UserIsAdmin') == 1 || $this->Modules['Auth']->getValue('UserIsSupermod') == 1 || $AuthData['AuthIsMod'] == 1);
    225         $Show['ShowEditings'] = $this->Modules['Auth']->isLoggedIn() == 1 && ($this->Modules['Auth']->getValue('UserIsAdmin') == 1 || $this->Modules['Auth']->getValue('UserIsSupermod') == 1 || $AuthData['auth_is_mod'] == 1);
    226         $Show['PollBox'] = $Mode == 'Topic' && ($this->Modules['Auth']->getValue('UserIsAdmin') == 1 || $this->Modules['Auth']->getValue('UserIsSupermod') == 1 || $AuthData['AuthIsMod'] == 1 || $AuthData['AuthPostPoll'] == 1);
    227         $Show['PreviewBox'] = isset($_POST['ShowPreview']);
     215        $show = array();
     216
     217        $show['EnableSmilies'] = $forumData['ForumEnableSmilies'] == 1;
     218        $show['ShowSignature'] = $this->modules['Config']->getValue('enable_sig') == 1 && $this->modules['Auth']->isLoggedIn() == 1;
     219        $show['EnableBBCode'] = $forumData['ForumEnableBBCode'] == 1;
     220        $show['EnableURITransformation'] = $forumData['ForumEnableURITransformation'];
     221        $show['EnableHtmlCode'] = $forumData['ForumEnableHtmlCode'] == 1;
     222        $show['SubscribeTopic'] = $mode != 'Edit' && $this->modules['Auth']->isLoggedIn() == 1 && $this->modules['Config']->getValue('enable_email_functions') == 1 && $this->modules['Config']->getValue('enable_topic_subscription') == 1;
     223        $show['CloseTopic'] = $mode != 'Edit' && $this->modules['Auth']->isLoggedIn() == 1 && ($this->modules['Auth']->getValue('UserIsAdmin') == 1 || $this->modules['Auth']->getValue('UserIsSupermod') == 1 || $authData['AuthIsMod'] == 1);
     224        $show['PinTopic'] = $mode != 'Edit' && $this->modules['Auth']->isLoggedIn() == 1 && ($this->modules['Auth']->getValue('UserIsAdmin') == 1 || $this->modules['Auth']->getValue('UserIsSupermod') == 1 || $authData['AuthIsMod'] == 1);
     225        $show['ShowEditings'] = $this->modules['Auth']->isLoggedIn() == 1 && ($this->modules['Auth']->getValue('UserIsAdmin') == 1 || $this->modules['Auth']->getValue('UserIsSupermod') == 1 || $authData['auth_is_mod'] == 1);
     226        $show['PollBox'] = $mode == 'Topic' && ($this->modules['Auth']->getValue('UserIsAdmin') == 1 || $this->modules['Auth']->getValue('UserIsSupermod') == 1 || $authData['AuthIsMod'] == 1 || $authData['AuthPostPoll'] == 1);
     227        $show['PreviewBox'] = isset($_POST['ShowPreview']);
    228228
    229229        // Smilies und Beitragsbilder laden
    230         $Smilies = array(); $SmiliesBox = '';
    231         if($Show['EnableSmilies'] == TRUE) {
    232             $Smilies = $this->Modules['Cache']->getSmiliesData('write');
    233             $SmiliesBox = Functions::getSmiliesBox();
    234         }
    235         $PPicsBox = Functions::getPPicsBox($p['SmileyID']);
     230        $smilies = array(); $smiliesBox = '';
     231        if($show['EnableSmilies'] == TRUE) {
     232            $smilies = $this->modules['Cache']->getSmiliesData('write');
     233            $smiliesBox = Functions::getSmiliesBox();
     234        }
     235        $pPicsBox = Functions::getPPicsBox($p['SmileyID']);
    236236
    237237        // Die Vorschau
    238         $PreviewData = array();
    239         if($Show['PreviewBox'] == TRUE) {
    240             if($c['EnableHtmlCode'] != 1 || $Show['EnableHtmlCode'] == FALSE) $PreviewData['MessageText'] = Functions::HTMLSpecialChars($p['MessageText']);
    241             if($c['EnableSmilies'] == 1 && $Show['EnableSmilies'] == TRUE) $PreviewData['MessageText'] = strtr($PreviewData['MessageText'],$Smilies);
    242             $PreviewData['MessageText'] = nl2br($PreviewData['MessageText']);
    243             if($c['EnableBBCode'] == 1 && $Show['EnableBBCode'] == TRUE) $PreviewData['MessageText'] = Functions::BBCode($PreviewData['MessageText']);
    244             $PreviewData['MessageTitle'] = Functions::HTMLSpecialChars($p['MessageTitle']);
     238        $previewData = array();
     239        if($show['PreviewBox'] == TRUE) {
     240            if($c['EnableHtmlCode'] != 1 || $show['EnableHtmlCode'] == FALSE) $previewData['MessageText'] = Functions::HTMLSpecialChars($p['MessageText']);
     241            if($c['EnableSmilies'] == 1 && $show['EnableSmilies'] == TRUE) $previewData['MessageText'] = strtr($previewData['MessageText'],$smilies);
     242            $previewData['MessageText'] = nl2br($previewData['MessageText']);
     243            if($c['EnableBBCode'] == 1 && $show['EnableBBCode'] == TRUE) $previewData['MessageText'] = Functions::BBCode($previewData['MessageText']);
     244            $previewData['MessageTitle'] = Functions::HTMLSpecialChars($p['MessageTitle']);
    245245        }
    246246
    247247        // Fuer die richtige Anzeige des Navileiste usw.
    248         $this->Modules['Navbar']->addCategories($ForumData['CatID']);
    249         $this->Modules['Navbar']->addElement(Functions::HTMLSpecialChars($ForumData['ForumName']),INDEXFILE.'?Action=ViewForum&amp;ForumID='.$ForumID.'&amp;'.MYSID);
    250 
    251         if($Mode == 'Topic') {
    252             $ActionText = $this->Modules['Language']->getString('Post_topic');
    253             $this->Modules['Navbar']->addElement($this->Modules['Language']->getString('Post_topic'),INDEXFILE.'?Action=Posting&amp;Mode=Topic&amp;ForumID='.$ForumID.'&amp;'.MYSID);
    254         }
    255         elseif($Mode == 'Reply') {
    256             $ActionText = $this->Modules['Language']->getString('Post_reply');
    257             $this->Modules['Navbar']->addElements(
    258                 array(Functions::HTMLSpecialChars($TopicData['TopicTitle']),INDEXFILE.'?Action=ViewTopic&amp;TopicID='.$TopicID.'&amp;'.MYSID),
    259                 array($this->Modules['Language']->getString('Post_reply'),INDEXFILE.'?Action=Posting&amp;Mode=Reply&amp;TopicID='.$TopicID.'&amp;'.MYSID)
     248        $this->modules['Navbar']->addCategories($forumData['CatID']);
     249        $this->modules['Navbar']->addElement(Functions::HTMLSpecialChars($forumData['ForumName']),INDEXFILE.'?Action=ViewForum&amp;ForumID='.$forumID.'&amp;'.MYSID);
     250
     251        if($mode == 'Topic') {
     252            $actionText = $this->modules['Language']->getString('Post_topic');
     253            $this->modules['Navbar']->addElement($this->modules['Language']->getString('Post_topic'),INDEXFILE.'?Action=Posting&amp;Mode=Topic&amp;ForumID='.$forumID.'&amp;'.MYSID);
     254        }
     255        elseif($mode == 'Reply') {
     256            $actionText = $this->modules['Language']->getString('Post_reply');
     257            $this->modules['Navbar']->addElements(
     258                array(Functions::HTMLSpecialChars($topicData['TopicTitle']),INDEXFILE.'?Action=ViewTopic&amp;TopicID='.$topicID.'&amp;'.MYSID),
     259                array($this->modules['Language']->getString('Post_reply'),INDEXFILE.'?Action=Posting&amp;Mode=Reply&amp;TopicID='.$topicID.'&amp;'.MYSID)
    260260            );
    261261        }
    262         elseif($Mode == 'Edit') {
    263             $ActionText = $this->Modules['Language']->getString('Edit_post');
    264             $this->Modules['Navbar']->addElements(
    265                 array(Functions::HTMLSpecialChars($TopicData['TopicTitle']),INDEXFILE.'?Action=ViewTopic&amp;TopicID='.$TopicID.'&amp;'.MYSID),
    266                 array($this->Modules['Language']->getString('Edit_post'),INDEXFILE.'?Action=Posting&amp;Mode=Edit&amp;PostID='.$PostID.'&amp;'.MYSID)
     262        elseif($mode == 'Edit') {
     263            $actionText = $this->modules['Language']->getString('Edit_post');
     264            $this->modules['Navbar']->addElements(
     265                array(Functions::HTMLSpecialChars($topicData['TopicTitle']),INDEXFILE.'?Action=ViewTopic&amp;TopicID='.$topicID.'&amp;'.MYSID),
     266                array($this->modules['Language']->getString('Edit_post'),INDEXFILE.'?Action=Posting&amp;Mode=Edit&amp;PostID='.$postID.'&amp;'.MYSID)
    267267            );
    268268        }
     
    272272        // Der Rest...
    273273        //
    274         $title_max_chars = sprintf($this->Modules['Language']->getString('Maximum_x_chars'),100);
    275 
    276         $this->Modules['PageParts']->printStdHeader();
    277 
    278         $this->Modules['Template']->assign(array(
     274        $title_max_chars = sprintf($this->modules['Language']->getString('Maximum_x_chars'),100);
     275
     276        $this->modules['PageParts']->printStdHeader();
     277
     278        $this->modules['Template']->assign(array(
    279279            'p'=>Functions::HTMLSpecialChars(Functions::StripSlashes($p)),
    280280            'c'=>$c,
    281             'ActionText'=>$ActionText,
    282             'Show'=>$Show,
     281            'ActionText'=>$actionText,
     282            'Show'=>$show,
    283283            'PollOptionsCounter'=>count($p['PollOptions']),
    284             'ForumID'=>$ForumID,
    285             'TopicID'=>$TopicID,
    286             'PostID'=>$PostID,
    287             'Mode'=>$Mode,
    288             'Error'=>$Error,
    289             'PPicsBox'=>$PPicsBox,
    290             'SmiliesBox'=>$SmiliesBox
     284            'ForumID'=>$forumID,
     285            'TopicID'=>$topicID,
     286            'PostID'=>$postID,
     287            'Mode'=>$mode,
     288            'Error'=>$error,
     289            'PPicsBox'=>$pPicsBox,
     290            'SmiliesBox'=>$smiliesBox
    291291        ));
    292         $this->Modules['Template']->display('Posting.tpl');
    293 
    294         $this->Modules['PageParts']->printStdTail();
     292        $this->modules['Template']->display('Posting.tpl');
     293
     294        $this->modules['PageParts']->printStdTail();
    295295    }
    296296
    297     protected function _authenticateUser(&$Mode,&$ForumData) {
    298         $AuthData = Functions::getAuthData($ForumData,array('AuthPostTopic','AuthPostReply','AuthPostPoll','AuthEditPosts','AuthIsMod'));
    299         if($Mode == 'Reply' && $AuthData['AuthPostReply'] == 0 || $Mode == 'Edit' && $AuthData['AuthEditPosts'] == 0 || $Mode == 'Topic' && $AuthData['AuthPostTopic'] == 0) {
     297    protected function _authenticateUser(&$mode,&$forumData) {
     298        $authData = Functions::getAuthData($forumData,array('AuthPostTopic','AuthPostReply','AuthPostPoll','AuthEditPosts','AuthIsMod'));
     299        if($mode == 'Reply' && $authData['AuthPostReply'] == 0 || $mode == 'Edit' && $authData['AuthEditPosts'] == 0 || $mode == 'Topic' && $authData['AuthPostTopic'] == 0) {
    300300            // TODO
    301301            die('Leider kein Zugriff');
    302302        }
    303303
    304         return $AuthData;
     304        return $authData;
    305305    }
    306306}
  • trunk/modules/PrivateMessages.class.php

    r2 r6  
    22
    33class PrivateMessages extends ModuleTemplate {
    4     protected $RequiredModules = array(
     4    protected $requiredModules = array(
    55        'Auth',
    66        'Cache',
     
    1414
    1515    function executeMe() {
    16         if($this->Modules['Auth']->isLoggedIn() != 1) die('Kein Zugriff: Nicht eingeloggt');
    17         elseif($this->Modules['Config']->getValue('enable_pms') != 1) {
    18             add_navbar_items(array($LNG['Function_deactivated'],''));
     16        if($this->modules['Auth']->isLoggedIn() != 1) die('Kein Zugriff: Nicht eingeloggt');
     17        elseif($this->modules['Config']->getValue('enable_pms') != 1) {
     18            add_navbar_items(array($lNG['Function_deactivated'],''));
    1919
    2020            include_once('pheader.php');
    21             show_message($LNG['Function_deactivated'],$LNG['message_function_deactivated']);
     21            show_message($lNG['Function_deactivated'],$lNG['message_function_deactivated']);
    2222            include_once('ptail.php'); exit;
    2323        }
    2424
    25         $this->Modules['PageParts']->setInPrivateMessages(TRUE);
    26         $this->Modules['Language']->addFile('PrivateMessages');
    27         $this->Modules['Navbar']->addElement($this->Modules['Language']->getString('Private_messages'),INDEXFILE.'?Action=PrivateMessages&amp;'.MYSID);
    28 
    29         $InboxFolderData = array('FolderID'=>0,'FolderName'=>$this->Modules['Language']->getString('Inbox'));
    30         $OutboxFolderData = array('FolderID'=>1,'FolderName'=>$this->Modules['Language']->getString('Outbox'));
     25        $this->modules['PageParts']->setInPrivateMessages(TRUE);
     26        $this->modules['Language']->addFile('PrivateMessages');
     27        $this->modules['Navbar']->addElement($this->modules['Language']->getString('Private_messages'),INDEXFILE.'?Action=PrivateMessages&amp;'.MYSID);
     28
     29        $inboxFolderData = array('FolderID'=>0,'FolderName'=>$this->modules['Language']->getString('Inbox'));
     30        $outboxFolderData = array('FolderID'=>1,'FolderName'=>$this->modules['Language']->getString('Outbox'));
    3131
    3232        switch(@$_GET['Mode']) {
    3333            default:
    34                 $FolderID = isset($_GET['FolderID']) ? intval($_GET['FolderID']) : 0;
    35                 $Page = isset($_GET['Page']) ? intval($_GET['Page']) : 1;
    36 
    37                 if($FolderID == 0) $FolderData = $InboxFolderData;
    38                 elseif($FolderID == 1) $FolderData = $OutboxFolderData;
     34                $folderID = isset($_GET['FolderID']) ? intval($_GET['FolderID']) : 0;
     35                $page = isset($_GET['Page']) ? intval($_GET['Page']) : 1;
     36
     37                if($folderID == 0) $folderData = $inboxFolderData;
     38                elseif($folderID == 1) $folderData = $outboxFolderData;
    3939                else {
    40                     $this->Modules['DB']->query("SELECT FolderID, FolderName FROM ".TBLPFX."pms_folders WHERE UserID='".USERID."' AND FolderID='$FolderID'");
    41                     if($this->Modules['DB']->getAffectedRows() == 0) {
    42                         $FolderData = $InboxFolderData;
    43                         $FolderID = 0;
    44                     }
    45                     else $FolderData = $this->Modules['DB']->fetchArray();
    46                 }
    47 
    48                 $this->Modules['DB']->query("SELECT COUNT(*) FROM ".TBLPFX."pms WHERE PMToID='".USERID."' AND FolderID='$FolderID'");
    49                 list($PMsCounter) = $this->Modules['DB']->fetchArray();
    50 
    51                 $PMsPerPage = 20;
    52                 //$this->Modules['Config']->getValue('pms_per_page') = 10;
    53 
    54                 $PageListing = Functions::createPageListing($PMsCounter,$PMsPerPage,$Page,"<a href=\"".INDEXFILE."?Action=PrivateMessages&amp;Mode=ViewFolder&amp;FolderID=$FolderID&amp;Page=%1\$s&amp;".MYSID."\">%2\$s</a>");
    55                 $Start = $Page*$this->Modules['Config']->getValue('pms_per_page')-$this->Modules['Config']->getValue('pms_per_page');
     40                    $this->modules['DB']->query("SELECT FolderID, FolderName FROM ".TBLPFX."pms_folders WHERE UserID='".USERID."' AND FolderID='$folderID'");
     41                    if($this->modules['DB']->getAffectedRows() == 0) {
     42                        $folderData = $inboxFolderData;
     43                        $folderID = 0;
     44                    }
     45                    else $folderData = $this->modules['DB']->fetchArray();
     46                }
     47
     48                $this->modules['DB']->query("SELECT COUNT(*) FROM ".TBLPFX."pms WHERE PMToID='".USERID."' AND FolderID='$folderID'");
     49                list($pMsCounter) = $this->modules['DB']->fetchArray();
     50
     51                $pMsPerPage = 20;
     52                //$this->modules['Config']->getValue('pms_per_page') = 10;
     53
     54                $pageListing = Functions::createPageListing($pMsCounter,$pMsPerPage,$page,"<a href=\"".INDEXFILE."?Action=PrivateMessages&amp;Mode=ViewFolder&amp;FolderID=$folderID&amp;Page=%1\$s&amp;".MYSID."\">%2\$s</a>");
     55                $start = $page*$this->modules['Config']->getValue('pms_per_page')-$this->modules['Config']->getValue('pms_per_page');
    5656
    5757
    5858                // PM-Daten laden
    59                 $this->Modules['DB']->query("
     59                $this->modules['DB']->query("
    6060                    SELECT
    6161                        t1.PMID,
     
    7373                    WHERE
    7474                        PMToID='".USERID."'
    75                         AND FolderID='$FolderID'
     75                        AND FolderID='$folderID'
    7676                    ORDER BY
    7777                        PMSendTimestamp DESC
    78                     LIMIT $Start,$PMsPerPage
     78                    LIMIT $start,$pMsPerPage
    7979                ");
    8080
    81                 $PMsData = array();
    82                 while($curPM = $this->Modules['DB']->fetchArray()) {
     81                $pMsData = array();
     82                while($curPM = $this->modules['DB']->fetchArray()) {
    8383                    $curSenderNick = ($curPM['PMFromID'] == 0) ? $curPM['PMGuestNick'] : $curPM['PMFromNick'];
    84                     $curPM['_PMSender'] = ($curPM['PMType'] == 0) ? sprintf($this->Modules['Language']->getString('from_x'),$curSenderNick) : sprintf($this->Modules['Language']->getString('to_x'),$curSenderNick);
     84                    $curPM['_PMSender'] = ($curPM['PMType'] == 0) ? sprintf($this->modules['Language']->getString('from_x'),$curSenderNick) : sprintf($this->modules['Language']->getString('to_x'),$curSenderNick);
    8585                    $curPM['_PMSendDateTime'] = Functions::toDateTime($curPM['PMSendTimestamp']);
    86                     $PMsData[] = $curPM;
    87                 }
    88 
    89                 $this->Modules['Navbar']->addElement(Functions::HTMLSpecialChars($FolderData['FolderName']),INDEXFILE.'?Action=PrivateMessages&amp;FolderID='.$FolderID.'&amp;'.MYSID);
    90 
    91                 $this->Modules['Template']->assign(array(
    92                     'PageListing'=>$PageListing,
    93                     'PMsData'=>$PMsData
    94                 ));
    95 
    96                 $this->Modules['PageParts']->printPage('PrivateMessagesDefault.tpl');
     86                    $pMsData[] = $curPM;
     87                }
     88
     89                $this->modules['Navbar']->addElement(Functions::HTMLSpecialChars($folderData['FolderName']),INDEXFILE.'?Action=PrivateMessages&amp;FolderID='.$folderID.'&amp;'.MYSID);
     90
     91                $this->modules['Template']->assign(array(
     92                    'PageListing'=>$pageListing,
     93                    'PMsData'=>$pMsData
     94                ));
     95
     96                $this->modules['PageParts']->printPage('PrivateMessagesDefault.tpl');
    9797            break;
    9898
    9999            case 'NewPM':
    100                 $this->Modules['Navbar']->addElement($this->Modules['Language']->getString('New_private_message'),INDEXFILE.'?Action=PrivateMessages&amp;Mode=NewPM&amp;'.MYSID);
     100                $this->modules['Navbar']->addElement($this->modules['Language']->getString('New_private_message'),INDEXFILE.'?Action=PrivateMessages&amp;Mode=NewPM&amp;'.MYSID);
    101101
    102102                $p = Functions::getSGValues($_POST['p'],array('Recipients','PMSubject','PMMessageText'),'');
     
    106106                $c['EnableHtmlCode'] = $c['RequestReadReceipt'] = 0;
    107107
    108                 $Error = '';
     108                $error = '';
    109109
    110110                if(isset($_GET['Doit'])) {
    111                     $c['EnableSmilies'] = (isset($_POST['c']['EnableSmilies']) && $this->Modules['Config']->getValue('allow_pms_smilies') == 1) ? 1 : 0;
    112                     $c['ShowSignature'] = (isset($_POST['c']['ShowSignature']) && $this->Modules['Config']->getValue('enable_sig') == 1) ? 1 : 0;
    113                     $c['EnableBBCode'] = (isset($_POST['c']['EnableBBCode']) && $this->Modules['Config']->getValue('allow_pms_bbcode') == 1) ? 1 : 0;
    114                     $c['SaveOutbox'] = (isset($_POST['c']['SaveOutbox']) && $this->Modules['Config']->getValue('enable_outbox') == 1) ? 1 : 0;
    115                     $c['RequestReadReceipt'] = (isset($_POST['c']['RequestReadReceipt']) && $this->Modules['Config']->getValue('allow_pms_rconfirmation') == 1) ? 1 : 0;
    116 
    117                     $Recipients = explode(',',$p['Recipients']);
    118                     while(list($curKey) = each($Recipients)) {
    119                         $Recipients[$curKey] = trim($Recipients[$curKey]);
    120                         if(!$Recipients[$curKey] = Functions::getUserID($Recipients[$curKey])) unset($Recipients[$curKey]);
    121                     }
    122                     reset($Recipients);
    123 
    124                     if(count($Recipients) == 0) $Error = $this->Modules['Language']->getString('error_no_recipient');
    125                     elseif(trim($p['PMSubject']) == '') $Error = $this->Modules['Language']->getString('error_no_subject');
    126                     elseif(trim($p['PMMessageText']) == '') $Error = $this->Modules['Language']->getString('error_no_message');
     111                    $c['EnableSmilies'] = (isset($_POST['c']['EnableSmilies']) && $this->modules['Config']->getValue('allow_pms_smilies') == 1) ? 1 : 0;
     112                    $c['ShowSignature'] = (isset($_POST['c']['ShowSignature']) && $this->modules['Config']->getValue('enable_sig') == 1) ? 1 : 0;
     113                    $c['EnableBBCode'] = (isset($_POST['c']['EnableBBCode']) && $this->modules['Config']->getValue('allow_pms_bbcode') == 1) ? 1 : 0;
     114                    $c['SaveOutbox'] = (isset($_POST['c']['SaveOutbox']) && $this->modules['Config']->getValue('enable_outbox') == 1) ? 1 : 0;
     115                    $c['RequestReadReceipt'] = (isset($_POST['c']['RequestReadReceipt']) && $this->modules['Config']->getValue('allow_pms_rconfirmation') == 1) ? 1 : 0;
     116
     117                    $recipients = explode(',',$p['Recipients']);
     118                    while(list($curKey) = each($recipients)) {
     119                        $recipients[$curKey] = trim($recipients[$curKey]);
     120                        if(!$recipients[$curKey] = Functions::getUserID($recipients[$curKey])) unset($recipients[$curKey]);
     121                    }
     122                    reset($recipients);
     123
     124                    if(count($recipients) == 0) $error = $this->modules['Language']->getString('error_no_recipient');
     125                    elseif(trim($p['PMSubject']) == '') $error = $this->modules['Language']->getString('error_no_subject');
     126                    elseif(trim($p['PMMessageText']) == '') $error = $this->modules['Language']->getString('error_no_message');
    127127                    else {
    128                         foreach($Recipients AS $curRecipient) {
    129                             $this->Modules['DB']->query("INSERT INTO ".TBLPFX."pms SET
     128                        foreach($recipients AS $curRecipient) {
     129                            $this->modules['DB']->query("INSERT INTO ".TBLPFX."pms SET
    130130                                FolderID='0',
    131131                                PMFromID='".USERID."',
     
    144144
    145145                            if($c['SaveOutbox'] == 1) {
    146                                 $this->Modules['DB']->query("INSERT INTO ".TBLPFX."pms SET
     146                                $this->modules['DB']->query("INSERT INTO ".TBLPFX."pms SET
    147147                                    FolderID='1',
    148148                                    PMFromID='".$curRecipient."',
     
    165165                }
    166166
    167                 $Show = array();
    168                 $Show['EnableSmilies'] = $this->Modules['Config']->getValue('allow_pms_smilies') == 1;
    169                 $Show['ShowSignature'] = $this->Modules['Config']->getValue('enable_sig') == 1 && $this->Modules['Config']->getValue('allow_pms_signature') == 1;
    170                 $Show['EnableBBCode'] = $this->Modules['Config']->getValue('allow_pms_bbcode') == 1;
    171                 $Show['EnableHtmlCode'] = $this->Modules['Config']->getValue('allow_pms_htmlcode') == 1;
    172                 $Show['SaveOutbox'] = $this->Modules['Config']->getValue('enable_outbox') == 1;
    173                 $Show['RequestReadReceipt'] = $this->Modules['Config']->getValue('allow_pms_rconfirmation') == 1;
    174 
    175                 $Smilies = array(); $SmiliesBox = '';
    176                 if($Show['EnableSmilies']) {
    177                     $Smilies = $this->Modules['Cache']->getSmiliesData('write');
    178                     $SmiliesBox = Functions::getSmiliesBox();
    179                 }
    180                 $PPicsBox = Functions :: getPPicsBox();
    181 
    182                 $this->Modules['Template']->assign(array(
    183                     'Show'=>$Show,
    184                     'Error'=>$Error,
    185                     'SmiliesBox'=>$SmiliesBox,
     167                $show = array();
     168                $show['EnableSmilies'] = $this->modules['Config']->getValue('allow_pms_smilies') == 1;
     169                $show['ShowSignature'] = $this->modules['Config']->getValue('enable_sig') == 1 && $this->modules['Config']->getValue('allow_pms_signature') == 1;
     170                $show['EnableBBCode'] = $this->modules['Config']->getValue('allow_pms_bbcode') == 1;
     171                $show['EnableHtmlCode'] = $this->modules['Config']->getValue('allow_pms_htmlcode') == 1;
     172                $show['SaveOutbox'] = $this->modules['Config']->getValue('enable_outbox') == 1;
     173                $show['RequestReadReceipt'] = $this->modules['Config']->getValue('allow_pms_rconfirmation') == 1;
     174
     175                $smilies = array(); $smiliesBox = '';
     176                if($show['EnableSmilies']) {
     177                    $smilies = $this->modules['Cache']->getSmiliesData('write');
     178                    $smiliesBox = Functions::getSmiliesBox();
     179                }
     180                $pPicsBox = Functions :: getPPicsBox();
     181
     182                $this->modules['Template']->assign(array(
     183                    'Show'=>$show,
     184                    'Error'=>$error,
     185                    'SmiliesBox'=>$smiliesBox,
    186186                    'p'=>$p,
    187187                    'c'=>$c
    188188                ));
    189189
    190                 $this->Modules['PageParts']->printPage('PrivateMessagesNewPM.tpl');
     190                $this->modules['PageParts']->printPage('PrivateMessagesNewPM.tpl');
    191191            break;
    192192
    193193            case 'newpmreceived':
    194                 $pms_tpl = new Template($TEMPLATE_PATH.'/'.$TCONFIG['templates']['pms_newpmreceived']);
     194                $pms_tpl = new Template($tEMPLATE_PATH.'/'.$tCONFIG['templates']['pms_newpmreceived']);
    195195
    196196                include_once('pop_pheader.php');
     
    207207                if(count($pm_ids) != 0) {
    208208                    $pm_ids = implode("','",$pm_ids);
    209                     $this->Modules['DB']->query("UPDATE ".TBLPFX."pms SET pm_read_status='1' WHERE pm_id IN ('$pm_ids') AND pm_to_id='$USER_ID' AND pm_request_rconfirmation<>'1'");
    210                 }
    211 
    212                 header("Location: index.php?action=pms&mode=viewfolder&folder_id=$return_f&z=$return_z&$MYSID"); exit;
     209                    $this->modules['DB']->query("UPDATE ".TBLPFX."pms SET pm_read_status='1' WHERE pm_id IN ('$pm_ids') AND pm_to_id='$uSER_ID' AND pm_request_rconfirmation<>'1'");
     210                }
     211
     212                header("Location: index.php?action=pms&mode=viewfolder&folder_id=$return_f&z=$return_z&$mYSID"); exit;
    213213            break;
    214214
     
    221221
    222222                if($pm_id != 0)
    223                     $this->Modules['DB']->query("DELETE FROM ".TBLPFX."pms WHERE pm_id='$pm_id' AND pm_to_id='$USER_ID'");
     223                    $this->modules['DB']->query("DELETE FROM ".TBLPFX."pms WHERE pm_id='$pm_id' AND pm_to_id='$uSER_ID'");
    224224
    225225                if(count($pm_ids) != 0) {
    226226                    $pm_ids = implode("','",$pm_ids);
    227                     $this->Modules['DB']->query("SELECT pm_id FROM ".TBLPFX."pms WHERE pm_id IN ('$pm_ids') AND pm_to_id='$USER_ID'");
     227                    $this->modules['DB']->query("SELECT pm_id FROM ".TBLPFX."pms WHERE pm_id IN ('$pm_ids') AND pm_to_id='$uSER_ID'");
    228228
    229229                    $pm_ids = array();
    230                     while(list($akt_pm_id) = $this->Modules['DB']->fetch_array())
     230                    while(list($akt_pm_id) = $this->modules['DB']->fetch_array())
    231231                        $pm_ids[] = $akt_pm_id;
    232232
    233233                    $pm_ids = implode("','",$pm_ids);
    234                     $this->Modules['DB']->query("DELETE FROM ".TBLPFX."pms WHERE pm_id IN ('$pm_ids')");
    235                 }
    236 
    237                 header("Location: index.php?action=pms&mode=viewfolder&folder_id=$return_f&z=$return_z&$MYSID"); exit;
     234                    $this->modules['DB']->query("DELETE FROM ".TBLPFX."pms WHERE pm_id IN ('$pm_ids')");
     235                }
     236
     237                header("Location: index.php?action=pms&mode=viewfolder&folder_id=$return_f&z=$return_z&$mYSID"); exit;
    238238            break;
    239239
    240240            case 'ViewPM':
    241                 $PMID = isset($_GET['PMID']) ? intval($_GET['PMID']) : 0;
    242                 $ReturnPage = isset($_GET['ReturnPage']) ? intval($_GET['ReturnPage']) : 1;
     241                $pMID = isset($_GET['PMID']) ? intval($_GET['PMID']) : 0;
     242                $returnPage = isset($_GET['ReturnPage']) ? intval($_GET['ReturnPage']) : 1;
    243243
    244244                // PM-Daten laden
    245                 $this->Modules['DB']->query("
     245                $this->modules['DB']->query("
    246246                    SELECT
    247247                        t1.PMSubject,
     
    260260                    LEFT JOIN ".TBLPFX."users AS t2 ON t1.PMFromID=t2.UserID
    261261                    LEFT JOIN ".TBLPFX."pms_folders AS t4 ON (t4.FolderID=t1.FolderID AND t4.UserID='".USERID."')
    262                     WHERE t1.PMID='$PMID'
     262                    WHERE t1.PMID='$pMID'
    263263                ");
    264                 if($this->Modules['DB']->getAffectedRows() == 0) die('Kann PM-Daten nicht laden!');
    265                 $PMData = $this->Modules['DB']->fetchArray();
     264                if($this->modules['DB']->getAffectedRows() == 0) die('Kann PM-Daten nicht laden!');
     265                $pMData = $this->modules['DB']->fetchArray();
    266266
    267267                // Ueberpruefen ob...
    268                 if($PMData['PMToID'] != USERID) die('Kein Zugriff auf diese Nachricht!'); // ...User Zugriff auf PM hat...
    269                 if($PMData['PMIsRead'] != 1) {  // ...die PM schon gelesen ist...
    270                     $this->Modules['DB']->query("UPDATE ".TBLPFX."pms SET PMIsRead='1' WHERE PMID='$PMID'");
    271                     if($PMData['PMRequestReadReceipt'] == 1 && $this->Modules['Config']->getValue('allow_pms_rconfirmation') == 1 && $PMData['PMFromID'] != 0) // ...und eine Lesebestaetigung angefordert wurde
    272                         $this->Modules['DB']->query("
     268                if($pMData['PMToID'] != USERID) die('Kein Zugriff auf diese Nachricht!'); // ...User Zugriff auf PM hat...
     269                if($pMData['PMIsRead'] != 1) {  // ...die PM schon gelesen ist...
     270                    $this->modules['DB']->query("UPDATE ".TBLPFX."pms SET PMIsRead='1' WHERE PMID='$pMID'");
     271                    if($pMData['PMRequestReadReceipt'] == 1 && $this->modules['Config']->getValue('allow_pms_rconfirmation') == 1 && $pMData['PMFromID'] != 0) // ...und eine Lesebestaetigung angefordert wurde
     272                        $this->modules['DB']->query("
    273273                            INSERT INTO ".TBLPFX."pms SET
    274                                 (folder_id,pm_from_id,pm_to_id,pm_read_status,pm_type,pm_subject,pm_send_time,pm_enable_bbcode,pm_enable_smilies,pm_enable_htmlcode,pm_show_sig,pm_request_rconfirmation,pm_text) VALUES ('0','$USER_ID','".$pm_data['pm_from_id']."','0','0','".$LNG['read_confirmation_subject']."','".time()."','0','0','0','0','0','".mysql_escape_string(sprintf($LNG['read_confirmation_message'],$pm_data['pm_from_nick'],$pm_data['pm_subject']))."')
     274                                (folder_id,pm_from_id,pm_to_id,pm_read_status,pm_type,pm_subject,pm_send_time,pm_enable_bbcode,pm_enable_smilies,pm_enable_htmlcode,pm_show_sig,pm_request_rconfirmation,pm_text) VALUES ('0','$uSER_ID','".$pm_data['pm_from_id']."','0','0','".$lNG['read_confirmation_subject']."','".time()."','0','0','0','0','0','".mysql_escape_string(sprintf($lNG['read_confirmation_message'],$pm_data['pm_from_nick'],$pm_data['pm_subject']))."')
    275275                        ");
    276276                }
    277277
    278278                $p = array();
    279                 $p['PMSubject'] = isset($_POST['p']['PMSubject']) ? $_POST['p']['PMSubject'] : $PMData['PMSubject'];
     279                $p['PMSubject'] = isset($_POST['p']['PMSubject']) ? $_POST['p']['PMSubject'] : $pMData['PMSubject'];
    280280                $p['PMMessageText'] = isset($_POST['p']['PMMessageText']) ? $_POST['p']['PMMessageText'] : '';
    281281
     
    286286                $c['EnableHtmlCode'] = $c['RequestReadReceipt'] = 0;
    287287
    288                 $Error = '';
    289 
    290                 if(isset($_GET['Doit']) && $PMData['PMType'] == 0 && $PMData['PMFromID'] != 0) {
    291                     $c['EnableSmilies'] = (isset($_POST['c']['EnableSmilies']) && $this->Modules['Config']->getValue('allow_pms_smilies') == 1) ? 1 : 0;
    292                     $c['ShowSignature'] = (isset($_POST['c']['ShowSignature']) && $this->Modules['Config']->getValue('enable_sig') == 1) ? 1 : 0;
    293                     $c['EnableBBCode'] = (isset($_POST['c']['EnableBBCode']) && $this->Modules['Config']->getValue('allow_pms_bbcode') == 1) ? 1 : 0;
    294                     $c['SaveOutbox'] = (isset($_POST['c']['SaveOutbox']) && $this->Modules['Config']->getValue('enable_outbox') == 1) ? 1 : 0;
    295                     $c['RequestReadReceipt'] = (isset($_POST['c']['RequestReadReceipt']) && $this->Modules['Config']->getValue('allow_pms_rconfirmation') == 1) ? 1 : 0;
    296 
    297                     /*$Recipients = explode(',',$p['Recipients']);
    298                     while(list($curKey) = each($Recipients)) {
    299                         $Recipients[$curKey] = trim($Recipients[$curKey]);
    300                         if(!$Recipients[$curKey] = Functions::getUserID($Recipients[$curKey])) unset($Recipients[$curKey]);
    301                     }
    302                     reset($Recipients);*/
    303 
    304                     //if(count($Recipients) == 0) $Error = $this->Modules['Language']->getString('error_no_recipient');
    305                     if(trim($p['PMSubject']) == '') $Error = $this->Modules['Language']->getString('error_no_subject');
    306                     elseif(trim($p['PMMessageText']) == '') $Error = $this->Modules['Language']->getString('error_no_message');
     288                $error = '';
     289
     290                if(isset($_GET['Doit']) && $pMData['PMType'] == 0 && $pMData['PMFromID'] != 0) {
     291                    $c['EnableSmilies'] = (isset($_POST['c']['EnableSmilies']) && $this->modules['Config']->getValue('allow_pms_smilies') == 1) ? 1 : 0;
     292                    $c['ShowSignature'] = (isset($_POST['c']['ShowSignature']) && $this->modules['Config']->getValue('enable_sig') == 1) ? 1 : 0;
     293                    $c['EnableBBCode'] = (isset($_POST['c']['EnableBBCode']) && $this->modules['Config']->getValue('allow_pms_bbcode') == 1) ? 1 : 0;
     294                    $c['SaveOutbox'] = (isset($_POST['c']['SaveOutbox']) && $this->modules['Config']->getValue('enable_outbox') == 1) ? 1 : 0;
     295                    $c['RequestReadReceipt'] = (isset($_POST['c']['RequestReadReceipt']) && $this->modules['Config']->getValue('allow_pms_rconfirmation') == 1) ? 1 : 0;
     296
     297                    /*$recipients = explode(',',$p['Recipients']);
     298                    while(list($curKey) = each($recipients)) {
     299                        $recipients[$curKey] = trim($recipients[$curKey]);
     300                        if(!$recipients[$curKey] = Functions::getUserID($recipients[$curKey])) unset($recipients[$curKey]);
     301                    }
     302                    reset($recipients);*/
     303
     304                    //if(count($recipients) == 0) $error = $this->modules['Language']->getString('error_no_recipient');
     305                    if(trim($p['PMSubject']) == '') $error = $this->modules['Language']->getString('error_no_subject');
     306                    elseif(trim($p['PMMessageText']) == '') $error = $this->modules['Language']->getString('error_no_message');
    307307                    else {
    308                         $this->Modules['DB']->query("INSERT INTO ".TBLPFX."pms SET
     308                        $this->modules['DB']->query("INSERT INTO ".TBLPFX."pms SET
    309309                            FolderID='0',
    310310                            PMFromID='".USERID."',
    311                             PMToID='".$PMData['PMFromID']."',
     311                            PMToID='".$pMData['PMFromID']."',
    312312                            PMIsRead='0',
    313313                            PMType='0',
     
    323323
    324324                        if($c['SaveOutbox'] == 1) {
    325                             $this->Modules['DB']->query("INSERT INTO ".TBLPFX."pms SET
     325                            $this->modules['DB']->query("INSERT INTO ".TBLPFX."pms SET
    326326                                FolderID='1',
    327                                 PMFromID='".$PMData['PMFromID']."',
     327                                PMFromID='".$pMData['PMFromID']."',
    328328                                PMToID='".USERID."',
    329329                                PMIsRead='1',
     
    340340                        }
    341341
    342                         if($PMData['PMIsReplied'] != 1)
    343                             $this->Modules['DB']->query("UPDATE ".TBLPFX."pms SET PMIsReplied='1' WHERE PMID='$PMID'");
     342                        if($pMData['PMIsReplied'] != 1)
     343                            $this->modules['DB']->query("UPDATE ".TBLPFX."pms SET PMIsReplied='1' WHERE PMID='$pMID'");
    344344
    345345                        Functions::myHeader(INDEXFILE."?Action=PrivateMessages&".MYSID);
     
    348348
    349349
    350                 if($PMData['PMType'] == 0) {
    351                     $Show = array();
    352                     $Show['EnableSmilies'] = $this->Modules['Config']->getValue('allow_pms_smilies') == 1;
    353                     $Show['ShowSignature'] = $this->Modules['Config']->getValue('enable_sig') == 1 && $this->Modules['Config']->getValue('allow_pms_signature') == 1;
    354                     $Show['EnableBBCode'] = $this->Modules['Config']->getValue('allow_pms_bbcode') == 1;
    355                     $Show['EnableHtmlCode'] = $this->Modules['Config']->getValue('allow_pms_htmlcode') == 1;
    356                     $Show['SaveOutbox'] = $this->Modules['Config']->getValue('enable_outbox') == 1;
    357                     $Show['RequestReadReceipt'] = $this->Modules['Config']->getValue('allow_pms_rconfirmation') == 1;
    358 
    359                     $Smilies = array(); $SmiliesBox = '';
    360                     if($Show['EnableSmilies']) {
    361                         $Smilies = $this->Modules['Cache']->getSmiliesData('write');
    362                         $SmiliesBox = Functions::getSmiliesBox();
    363                     }
    364                     $PPicsBox = Functions :: getPPicsBox();
    365 
    366                     $this->Modules['Template']->assign(array(
    367                         'Show'=>$Show,
    368                         'Error'=>$Error,
    369                         'SmiliesBox'=>$SmiliesBox,
     350                if($pMData['PMType'] == 0) {
     351                    $show = array();
     352                    $show['EnableSmilies'] = $this->modules['Config']->getValue('allow_pms_smilies') == 1;
     353                    $show['ShowSignature'] = $this->modules['Config']->getValue('enable_sig') == 1 && $this->modules['Config']->getValue('allow_pms_signature') == 1;
     354                    $show['EnableBBCode'] = $this->modules['Config']->getValue('allow_pms_bbcode') == 1;
     355                    $show['EnableHtmlCode'] = $this->modules['Config']->getValue('allow_pms_htmlcode') == 1;
     356                    $show['SaveOutbox'] = $this->modules['Config']->getValue('enable_outbox') == 1;
     357                    $show['RequestReadReceipt'] = $this->modules['Config']->getValue('allow_pms_rconfirmation') == 1;
     358
     359                    $smilies = array(); $smiliesBox = '';
     360                    if($show['EnableSmilies']) {
     361                        $smilies = $this->modules['Cache']->getSmiliesData('write');
     362                        $smiliesBox = Functions::getSmiliesBox();
     363                    }
     364                    $pPicsBox = Functions :: getPPicsBox();
     365
     366                    $this->modules['Template']->assign(array(
     367                        'Show'=>$show,
     368                        'Error'=>$error,
     369                        'SmiliesBox'=>$smiliesBox,
    370370                        'p'=>$p,
    371371                        'c'=>$c
     
    373373                }
    374374
    375                 $PMData['_PMSendDateTime'] = Functions::toDateTime($PMData['PMSendTimestamp']);
    376                 $PMData['_PMSender'] = ($PMData['PMType'] == 0) ? sprintf($this->Modules['Language']->getString('from_x'),$PMData['PMFromNick']) : sprintf($this->Modules['Language']->getString('to_x'),$PMData['PMFromNick']);
    377 
    378                 if($PMData['FolderID'] == 0) $PMData['PMFolderName'] = $this->Modules['Language']->getString('Inbox');
    379                 elseif($PMData['FolderID'] == 1) $PMData['PMFolderName'] = $this->Modules['Language']->getString('Outbox');
    380 
    381                 $PMData['_PMSubject'] = Functions::HTMLSpecialChars($PMData['PMSubject']);
    382                 $PMData['_PMMessageText'] = nl2br(Functions::HTMLSpecialChars($PMData['PMMessageText']));
    383 
    384                 $this->Modules['Template']->assign(array(
    385                     'PMID'=>$PMID,
    386                     'PMData'=>$PMData
    387                 ));
    388 
    389                 $this->Modules['Navbar']->addElements(
    390                     array(Functions::HTMLSpecialChars($PMData['PMFolderName']),INDEXFILE.'?Action=PrivateMessages&amp;FolderID='.$PMData['FolderID'].'&amp;'.MYSID),
    391                     array($this->Modules['Language']->getString('View_private_message'),INDEXFILE.'?Action=PrivateMessages&amp;PMID='.$PMID.'&amp;'.MYSID)
     375                $pMData['_PMSendDateTime'] = Functions::toDateTime($pMData['PMSendTimestamp']);
     376                $pMData['_PMSender'] = ($pMData['PMType'] == 0) ? sprintf($this->modules['Language']->getString('from_x'),$pMData['PMFromNick']) : sprintf($this->modules['Language']->getString('to_x'),$pMData['PMFromNick']);
     377
     378                if($pMData['FolderID'] == 0) $pMData['PMFolderName'] = $this->modules['Language']->getString('Inbox');
     379                elseif($pMData['FolderID'] == 1) $pMData['PMFolderName'] = $this->modules['Language']->getString('Outbox');
     380
     381                $pMData['_PMSubject'] = Functions::HTMLSpecialChars($pMData['PMSubject']);
     382                $pMData['_PMMessageText'] = nl2br(Functions::HTMLSpecialChars($pMData['PMMessageText']));
     383
     384                $this->modules['Template']->assign(array(
     385                    'PMID'=>$pMID,
     386                    'PMData'=>$pMData
     387                ));
     388
     389                $this->modules['Navbar']->addElements(
     390                    array(Functions::HTMLSpecialChars($pMData['PMFolderName']),INDEXFILE.'?Action=PrivateMessages&amp;FolderID='.$pMData['FolderID'].'&amp;'.MYSID),
     391                    array($this->modules['Language']->getString('View_private_message'),INDEXFILE.'?Action=PrivateMessages&amp;PMID='.$pMID.'&amp;'.MYSID)
    392392                );
    393393
    394                 $this->Modules['PageParts']->printPage('PrivateMessagesViewPM.tpl');
     394                $this->modules['PageParts']->printPage('PrivateMessagesViewPM.tpl');
    395395                break;
    396396
    397397            case 'ManageFolders':
    398                 $this->Modules['DB']->query("SELECT * FROM ".TBLPFX."pms_folders WHERE UserID='".USERID."' ORDER BY FolderName ASC");
    399                 $FoldersData = $this->Modules['DB']->Raw2Array();
    400 
    401                 $this->Modules['Template']->assign(array(
    402                     'FoldersData'=>$FoldersData
    403                 ));
    404 
    405                 $this->Modules['PageParts']->printPage('PrivateMessagesManageFolders.tpl');
     398                $this->modules['DB']->query("SELECT * FROM ".TBLPFX."pms_folders WHERE UserID='".USERID."' ORDER BY FolderName ASC");
     399                $foldersData = $this->modules['DB']->raw2Array();
     400
     401                $this->modules['Template']->assign(array(
     402                    'FoldersData'=>$foldersData
     403                ));
     404
     405                $this->modules['PageParts']->printPage('PrivateMessagesManageFolders.tpl');
    406406                break;
    407407
     
    409409                $p = Functions::getSGValues($_POST['p'],array('FolderName'),'');
    410410
    411                 $Error = '';
     411                $error = '';
    412412
    413413                if(isset($_GET['Doit'])) {
    414                     if($p['FolderName'] == '') $Error = $this->Modules['Language']->getString('error_invalid_folder_name');
     414                    if($p['FolderName'] == '') $error = $this->modules['Language']->getString('error_invalid_folder_name');
    415415                    else {
    416                         $this->Modules['DB']->query("SELECT MAX(FolderID) AS MaxFolderID FROM ".TBLPFX."pms_folders WHERE UserID='".USERID."'");
    417                         list($MaxFolderID) = $this->Modules['DB']->fetchArray();
    418 
    419                         if($MaxFolderID < 1) $MaxFolderID = 1;
    420 
    421                         $this->Modules['DB']->query("
     416                        $this->modules['DB']->query("SELECT MAX(FolderID) AS MaxFolderID FROM ".TBLPFX."pms_folders WHERE UserID='".USERID."'");
     417                        list($maxFolderID) = $this->modules['DB']->fetchArray();
     418
     419                        if($maxFolderID < 1) $maxFolderID = 1;
     420
     421                        $this->modules['DB']->query("
    422422                            INSERT INTO
    423423                                ".TBLPFX."pms_folders
    424424                            SET
    425                                 FolderID='".($MaxFolderID+1)."',
     425                                FolderID='".($maxFolderID+1)."',
    426426                                UserID='".USERID."',
    427427                                FolderName='".$p['FolderName']."'
     
    432432                }
    433433
    434                 $this->Modules['Template']->assign(array(
     434                $this->modules['Template']->assign(array(
    435435                    'p'=>$p,
    436                     'Error'=>$Error
    437                 ));
    438 
    439                 $this->Modules['PageParts']->printPage('PrivateMessagesAddFolder.tpl');
     436                    'Error'=>$error
     437                ));
     438
     439                $this->modules['PageParts']->printPage('PrivateMessagesAddFolder.tpl');
    440440                break;
    441441
    442442            case 'EditFolder':
    443                 $FolderID = isset($_GET['FolderID']) ? intval($_GET['FolderID']) : 0;
    444 
    445                 $this->Modules['DB']->query("SELECT * FROM ".TBLPFX."pms_folders WHERE UserID='".USERID."' AND FolderID='".$FolderID."'");
    446                 ($this->Modules['DB']->getAffectedRows() != 1) ? die('Kann Daten nich laden: PM-Ordner') : $FolderData = $this->Modules['DB']->fetchArray();
    447 
    448                 $p = Functions::getSGValues($_POST['p'],array('FolderName'),'',$FolderData);
    449 
    450                 $Error = '';
     443                $folderID = isset($_GET['FolderID']) ? intval($_GET['FolderID']) : 0;
     444
     445                $this->modules['DB']->query("SELECT * FROM ".TBLPFX."pms_folders WHERE UserID='".USERID."' AND FolderID='".$folderID."'");
     446                ($this->modules['DB']->getAffectedRows() != 1) ? die('Kann Daten nich laden: PM-Ordner') : $folderData = $this->modules['DB']->fetchArray();
     447
     448                $p = Functions::getSGValues($_POST['p'],array('FolderName'),'',$folderData);
     449
     450                $error = '';
    451451
    452452                if(isset($_GET['Doit'])) {
    453                     if($p['FolderName'] == '') $Error = $this->Modules['Language']->getString('error_invalid_folder_name');
     453                    if($p['FolderName'] == '') $error = $this->modules['Language']->getString('error_invalid_folder_name');
    454454                    else {
    455                         $this->Modules['DB']->query("SELECT MAX(FolderID) AS MaxFolderID FROM ".TBLPFX."pms_folders WHERE UserID='".USERID."'");
    456                         list($MaxFolderID) = $this->Modules['DB']->fetchArray();
    457 
    458                         if($MaxFolderID < 1) $MaxFolderID = 1;
    459 
    460                         $this->Modules['DB']->query("
     455                        $this->modules['DB']->query("SELECT MAX(FolderID) AS MaxFolderID FROM ".TBLPFX."pms_folders WHERE UserID='".USERID."'");
     456                        list($maxFolderID) = $this->modules['DB']->fetchArray();
     457
     458                        if($maxFolderID < 1) $maxFolderID = 1;
     459
     460                        $this->modules['DB']->query("
    461461                            UPDATE
    462462                                ".TBLPFX."pms_folders
     
    465465                            WHERE
    466466                                UserID='".USERID."'
    467                                 AND FolderID='".$FolderID."'
     467                                AND FolderID='".$folderID."'
    468468                        ");
    469469
     
    472472                }
    473473
    474                 $this->Modules['Template']->assign(array(
    475                     'FolderID'=>$FolderID,
     474                $this->modules['Template']->assign(array(
     475                    'FolderID'=>$folderID,
    476476                    'p'=>$p,
    477                     'Error'=>$Error
    478                 ));
    479 
    480                 $this->Modules['PageParts']->printPage('PrivateMessagesEditFolder.tpl');
     477                    'Error'=>$error
     478                ));
     479
     480                $this->modules['PageParts']->printPage('PrivateMessagesEditFolder.tpl');
    481481                break;
    482482
    483483            case 'DeleteFolder':
    484                 $FolderID = isset($_GET['FolderID']) ? intval($_GET['FolderID']) : 0;
    485                 $MoveFolderID = isset($_POST['MoveFolderID']) ? intval($_POST['MoveFolderID']) : -1;
    486 
    487                 $this->Modules['DB']->query("SELECT * FROM ".TBLPFX."pms_folders WHERE UserID='".USERID."' AND FolderID='".$FolderID."'");
    488                 ($this->Modules['DB']->getAffectedRows() != 1) ? die('Kann Daten nich laden: PM-Ordner') : $FolderData = $this->Modules['DB']->fetchArray();
    489 
    490                 $this->Modules['DB']->query("SELECT COUNT(*) AS FolderPMsCounter FROM ".TBLPFX."pms WHERE PMToID='".USERID."' AND FolderID='$FolderID'");
    491                 list($FolderPMsCounter) = $this->Modules['DB']->fetchArray();
    492 
    493                 $FoldersData = array($InboxFolderData,$OutboxFolderData);
    494                 $this->Modules['DB']->query("SELECT * FROM ".TBLPFX."pms_folders WHERE UserID='".USERID."' AND FolderID<>'".$FolderID."' ORDER BY FolderName ASC");
    495                 $FoldersData = array_merge($FoldersData,$this->Modules['DB']->Raw2Array());
    496 
    497                 $Error = '';
    498 
    499                 if(isset($_GET['Doit']) || $FolderPMsCounter == 0) {
    500                     $ValidFolder = FALSE;
    501                     foreach($FoldersData AS $curFolder) {
    502                         if($curFolder['FolderID'] == $MoveFolderID) {
    503                             $ValidFolder = TRUE;
     484                $folderID = isset($_GET['FolderID']) ? intval($_GET['FolderID']) : 0;
     485                $moveFolderID = isset($_POST['MoveFolderID']) ? intval($_POST['MoveFolderID']) : -1;
     486
     487                $this->modules['DB']->query("SELECT * FROM ".TBLPFX."pms_folders WHERE UserID='".USERID."' AND FolderID='".$folderID."'");
     488                ($this->modules['DB']->getAffectedRows() != 1) ? die('Kann Daten nich laden: PM-Ordner') : $folderData = $this->modules['DB']->fetchArray();
     489
     490                $this->modules['DB']->query("SELECT COUNT(*) AS FolderPMsCounter FROM ".TBLPFX."pms WHERE PMToID='".USERID."' AND FolderID='$folderID'");
     491                list($folderPMsCounter) = $this->modules['DB']->fetchArray();
     492
     493                $foldersData = array($inboxFolderData,$outboxFolderData);
     494                $this->modules['DB']->query("SELECT * FROM ".TBLPFX."pms_folders WHERE UserID='".USERID."' AND FolderID<>'".$folderID."' ORDER BY FolderName ASC");
     495                $foldersData = array_merge($foldersData,$this->modules['DB']->raw2Array());
     496
     497                $error = '';
     498
     499                if(isset($_GET['Doit']) || $folderPMsCounter == 0) {
     500                    $validFolder = FALSE;
     501                    foreach($foldersData AS $curFolder) {
     502                        if($curFolder['FolderID'] == $moveFolderID) {
     503                            $validFolder = TRUE;
    504504                            break;
    505505                        }
    506506                    }
    507507
    508                     if($MoveFolderID != -1 && !$ValidFolder) $Error = $this->Modules['Language']->getString('Invalid_selection');
     508                    if($moveFolderID != -1 && !$validFolder) $error = $this->modules['Language']->getString('Invalid_selection');
    509509                    else {
    510                         if($MoveFolderID == -1) $this->Modules['DB']->query("DELETE FROM ".TBLPFX."pms WHERE PMToID='".USERID."' AND FolderID='".$FolderID."'");
    511                         else $this->Modules['DB']->query("UPDATE ".TBLPFX."pms SET FolderID='".$MoveFolderID."' WHERE PMToID='".USERID."' AND FolderID='".$FolderID."'");
    512 
    513                         $this->Modules['DB']->query("DELETE FROM ".TBLPFX."pms_folders WHERE UserID='".USERID."' AND FolderID='".$FolderID."'");
     510                        if($moveFolderID == -1) $this->modules['DB']->query("DELETE FROM ".TBLPFX."pms WHERE PMToID='".USERID."' AND FolderID='".$folderID."'");
     511                        else $this->modules['DB']->query("UPDATE ".TBLPFX."pms SET FolderID='".$moveFolderID."' WHERE PMToID='".USERID."' AND FolderID='".$folderID."'");
     512
     513                        $this->modules['DB']->query("DELETE FROM ".TBLPFX."pms_folders WHERE UserID='".USERID."' AND FolderID='".$folderID."'");
    514514
    515515                        // TODO: Richtige Meldung ausgeben
     
    518518                }
    519519
    520                 while(list($curKey) = each($FoldersData))
    521                     $FoldersData[$curKey]['_MoveText'] = sprintf($this->Modules['Language']->getString('Move_messages_to'),$FoldersData[$curKey]['FolderName']);
    522 
    523                 $this->Modules['Template']->assign(array(
    524                     'FoldersData'=>$FoldersData,
    525                     'FolderID'=>$FolderID
    526                 ));
    527 
    528                 $this->Modules['PageParts']->printPage('PrivateMessagesDeleteFolder.tpl');
     520                while(list($curKey) = each($foldersData))
     521                    $foldersData[$curKey]['_MoveText'] = sprintf($this->modules['Language']->getString('Move_messages_to'),$foldersData[$curKey]['FolderName']);
     522
     523                $this->modules['Template']->assign(array(
     524                    'FoldersData'=>$foldersData,
     525                    'FolderID'=>$folderID
     526                ));
     527
     528                $this->modules['PageParts']->printPage('PrivateMessagesDeleteFolder.tpl');
    529529                break;
    530530        }
  • trunk/modules/Register.class.php

    r3 r6  
    11<?php
    22
    3 echo Functions::getSaltedHash('test','j5%qaeVLnV');
    4 
    53class Register extends ModuleTemplate {
    6     protected $RequiredModules = array(
     4    protected $requiredModules = array(
    75        'Auth',
    86        'Cache',
     
    1614
    1715    public function executeMe() {
    18         $this->Modules['Language']->addFile('Register');
    19         $this->Modules['Language']->addFile('BoardRules');
     16        $this->modules['Language']->addFile('Register');
     17        $this->modules['Language']->addFile('BoardRules');
    2018
    2119        // Zuerst einige Ueberpruefungen...
    22         if($this->Modules['Auth']->isLoggedIn() == 1) Functions::myHeader(INDEXFILE.'?'.MYSID);
    23         elseif($this->Modules['Config']->getValue('enable_registration') != 1) { // Ist die Registrierung ueberhaupt aktiviert?
    24             $this->Modules['Navbar']->addElement($this->Modules['Language']->getString('Registration_disabled'),INDEXFILE.'?Action=Register&amp'.MYSID);
    25             $this->Modules['PageParts']->printMessage('registration_disabled');
     20        if($this->modules['Auth']->isLoggedIn() == 1) Functions::myHeader(INDEXFILE.'?'.MYSID);
     21        elseif($this->modules['Config']->getValue('enable_registration') != 1) { // Ist die Registrierung ueberhaupt aktiviert?
     22            $this->modules['Navbar']->addElement($this->modules['Language']->getString('Registration_disabled'),INDEXFILE.'?Action=Register&amp'.MYSID);
     23            $this->modules['PageParts']->printMessage('registration_disabled');
    2624            exit;
    2725        }
    28         elseif($this->Modules['Config']->getValue('maximum_registrations') != -1 && $this->Modules['Config']->getValue('maximum_registrations') <= Functions::getUsersCounter()) { // Gibt es eine Grenze an maximalen Registrierungen/ist diese ueberschritten?
    29             $this->Modules['Navbar']->addElement($this->Modules['Language']->getString('Too_many_registrations'),INDEXFILE.'?Action=Register&amp'.MYSID);
    30             $this->Modules['PageParts']->printMessage('too_many_registrations');
     26        elseif($this->modules['Config']->getValue('maximum_registrations') != -1 && $this->modules['Config']->getValue('maximum_registrations') <= Functions::getUsersCounter()) { // Gibt es eine Grenze an maximalen Registrierungen/ist diese ueberschritten?
     27            $this->modules['Navbar']->addElement($this->modules['Language']->getString('Too_many_registrations'),INDEXFILE.'?Action=Register&amp'.MYSID);
     28            $this->modules['PageParts']->printMessage('too_many_registrations');
    3129            exit;
    3230        }
    3331
    34         $this->Modules['Navbar']->addElement($this->Modules['Language']->getString('Register'),INDEXFILE."?Action=Register&amp;".MYSID);
     32        $this->modules['Navbar']->addElement($this->modules['Language']->getString('Register'),INDEXFILE."?Action=Register&amp;".MYSID);
    3533
    3634        switch(@$_GET['Mode']) {
     
    4038                }
    4139
    42                 $this->Modules['Navbar']->addElement($this->Modules['Language']->getString('Board_rules'),INDEXFILE."?Action=Register&amp;".MYSID);
    43 
    44                 $this->Modules['PageParts']->printPage('RegisterBoardRules.tpl');
     40                $this->modules['Navbar']->addElement($this->modules['Language']->getString('Board_rules'),INDEXFILE."?Action=Register&amp;".MYSID);
     41
     42                $this->modules['PageParts']->printPage('RegisterBoardRules.tpl');
    4543                break;
    4644
    4745            case 'RegisterForm':
    48                 $Error = '';
     46                $error = '';
    4947
    5048                //
    5149                // Die Profilfelder laden, die bei der Registrierung angezeigt werden sollen
    5250                //
    53                 $this->Modules['DB']->query("SELECT * FROM ".TBLPFX."profile_fields WHERE FieldShowRegistration='1'");
    54                 $ProfileFields = $this->Modules['DB']->Raw2Array();
    55                 $FieldsCounter = count($ProfileFields);
     51                $this->modules['DB']->query("SELECT * FROM ".TBLPFX."profile_fields WHERE FieldShowRegistration='1'");
     52                $profileFields = $this->modules['DB']->raw2Array();
     53                $fieldsCounter = count($profileFields);
    5654
    5755                //
     
    5957                //
    6058                $p = array();
    61                 foreach($ProfileFields AS $curField) {
     59                foreach($profileFields AS $curField) {
    6260                    switch($curField['FieldType']) {
    6361                        case PROFILE_FIELD_TYPE_TEXT        : $p['FieldsData'][$curField['FieldID']] = isset($_POST['p']['FieldsData'][$curField['FieldID']]) ? $_POST['p']['FieldsData'][$curField['FieldID']] : ''; break;
     
    7472                //
    7573                if(isset($_GET['Doit'])) {
    76                     $FieldIsMissing = FALSE;
    77                     foreach($ProfileFields AS $curField) {
     74                    $fieldIsMissing = FALSE;
     75                    foreach($profileFields AS $curField) {
    7876                        if($curField['FieldIsRequired'] == 1 && ($curField['FieldType'] != PROFILE_FIELD_TYPE_SELECTMULTI && $p['FieldsData'][$curField['FieldID']] === '' || $curField['FieldType'] == PROFILE_FIELD_TYPE_SELECTMULTI && count($p['FieldsData'][$curField['FieldID']]) == 0)) {
    79                             $FieldIsMissing = TRUE;
     77                            $fieldIsMissing = TRUE;
    8078                            break;
    8179                        }
    8280                    }
    8381
    84                     $FieldIsInvalid = FALSE;
    85                     foreach($ProfileFields AS $curField) {
     82                    $fieldIsInvalid = FALSE;
     83                    foreach($profileFields AS $curField) {
    8684                        if(($curField['FieldType'] == PROFILE_FIELD_TYPE_TEXT || $curField['FieldType'] == PROFILE_FIELD_TYPE_TEXTAREA) && $curField['FieldRegexVerification'] != '' && !preg_match($curField['FieldRegexVerification'],$p['FieldsData'][$curField['FieldID']])) {
    87                             $FieldIsInvalid = TRUE;
     85                            $fieldIsInvalid = TRUE;
    8886                            break;
    8987                        }
    9088                    }
    9189
    92                     if($p['UserName'] == '' || !Functions::verifyUserName($p['UserName'])) $Error = $this->Modules['Language']->getString('error_bad_nick'); // Hat der Nick ein falsches Format?
    93                     elseif(!Functions::unifyUserName($p['UserName'])) $Error = $this->Modules['Language']->getString('error_nick_already_in_use'); // Wird der Nick schon verwendet?
    94                     elseif($p['UserEmail'] == '' || !Functions::verifyEmail($p['UserEmail'])) $Error = $this->Modules['Language']->getString('error_bad_email'); // Hat die Emailadresse das richtige Format?
    95                     elseif(!Functions::unifyEmail($p['UserEmail'])) $Error = $this->Modules['Language']->getString('error_emailaddress_already_in_use');
    96                     elseif($p['UserEmail'] != $p['UserEmailConfirmation']) $Error = $this->Modules['Language']->getString('error_emails_no_match'); // Stimmen die Emailadressen ueberein?
    97                     elseif(trim($p['UserPassword']) == '' && ($this->Modules['Config']->getValue('verify_email_address') != 1 || $this->Modules['Config']->getValue('enable_email_functions') != 1)) $Error = $this->Modules['Language']->getString('error_no_pw'); // Wurde ein Passwort angegeben?
    98                     elseif($p['UserPassword'] != $p['UserPasswordConfirmation'] && ($this->Modules['Config']->getValue('verify_email_address') != 1 || $this->Modules['Config']->getValue('enable_email_functions') != 1)) $Error = $this->Modules['Language']->getString('error_pws_no_match'); // Stimmen die Passworter ueberein?
    99                     elseif($FieldIsMissing) $Error = $this->Modules['Language']->getString('error_required_fields_missing'); // Fehlt ein benoetigtes Feld?
    100                     elseif($FieldIsInvalid) $Error = $this->Modules['Language']->getString('error_bad_information'); // Hat ein Feld ein falsches Format?
     90                    if($p['UserName'] == '' || !Functions::verifyUserName($p['UserName'])) $error = $this->modules['Language']->getString('error_bad_nick'); // Hat der Nick ein falsches Format?
     91                    elseif(!Functions::unifyUserName($p['UserName'])) $error = $this->modules['Language']->getString('error_nick_already_in_use'); // Wird der Nick schon verwendet?
     92                    elseif($p['UserEmail'] == '' || !Functions::verifyEmail($p['UserEmail'])) $error = $this->modules['Language']->getString('error_bad_email'); // Hat die Emailadresse das richtige Format?
     93                    elseif(!Functions::unifyEmail($p['UserEmail'])) $error = $this->modules['Language']->getString('error_emailaddress_already_in_use');
     94                    elseif($p['UserEmail'] != $p['UserEmailConfirmation']) $error = $this->modules['Language']->getString('error_emails_no_match'); // Stimmen die Emailadressen ueberein?
     95                    elseif(trim($p['UserPassword']) == '' && ($this->modules['Config']->getValue('verify_email_address') != 1 || $this->modules['Config']->getValue('enable_email_functions') != 1)) $error = $this->modules['Language']->getString('error_no_pw'); // Wurde ein Passwort angegeben?
     96                    elseif($p['UserPassword'] != $p['UserPasswordConfirmation'] && ($this->modules['Config']->getValue('verify_email_address') != 1 || $this->modules['Config']->getValue('enable_email_functions') != 1)) $error = $this->modules['Language']->getString('error_pws_no_match'); // Stimmen die Passworter ueberein?
     97                    elseif($fieldIsMissing) $error = $this->modules['Language']->getString('error_required_fields_missing'); // Fehlt ein benoetigtes Feld?
     98                    elseif($fieldIsInvalid) $error = $this->modules['Language']->getString('error_bad_information'); // Hat ein Feld ein falsches Format?
    10199                    else {
    102100                        // Falls noch kein User existiert, wird man automatisch als Admin registriert
    103                         $UserIsAdmin = (Functions::getUsersCounter() == 0) ? 1 : 0;
     101                        $userIsAdmin = (Functions::getUsersCounter() == 0) ? 1 : 0;
    104102
    105103                        // Im Folgenden wird ueberprueft, ob der User Admin ist. Ist er kein Admin,
    106104                        // wird ueberprueft, ob er seine Emailadresse irgendwie verifizieren muss
    107                         $UserStatus = 1; // bedeutet, der User ist freigeschaltet
    108                         $UserHash = '';
    109                         if($UserIsAdmin != 1) {
    110                             if($this->Modules['Config']->getValue('verify_email_address') == 1 && $this->Modules['Config']->getValue('enable_email_functions') == 1)
     105                        $userStatus = 1; // bedeutet, der User ist freigeschaltet
     106                        $userHash = '';
     107                        if($userIsAdmin != 1) {
     108                            if($this->modules['Config']->getValue('verify_email_address') == 1 && $this->modules['Config']->getValue('enable_email_functions') == 1)
    111109                                $p['UserPassword'] = Functions::getRandomString(8);
    112                             elseif($this->Modules['Config']->getValue('verify_email_address') == 2 && $this->Modules['Config']->getValue('enable_email_functions') == 1) {
    113                                 $UserStatus = USER_STATUS_INACTIVE; // bedeutet, der User ist noch _nicht_ freigeschaltet
    114                                 $UserHash = Functions::getRandomString(32,TRUE); // ist spaeter der Verifizierungscode
     110                            elseif($this->modules['Config']->getValue('verify_email_address') == 2 && $this->modules['Config']->getValue('enable_email_functions') == 1) {
     111                                $userStatus = USER_STATUS_INACTIVE; // bedeutet, der User ist noch _nicht_ freigeschaltet
     112                                $userHash = Functions::getRandomString(32,TRUE); // ist spaeter der Verifizierungscode
    115113                            }
    116114                        }
    117115
    118                         $UserPasswordSalt = Functions::getRandomString(10);
    119                         $UserPasswordEncrypted = Functions::getSaltedHash($p['UserPassword'],$UserPasswordSalt); // Passwort fuer Datenbank verschluesseln
    120 
    121                         /*$this->Modules['DB']->query("
     116                        $userPasswordSalt = Functions::getRandomString(10);
     117                        $userPasswordEncrypted = Functions::getSaltedHash($p['UserPassword'],$userPasswordSalt); // Passwort fuer Datenbank verschluesseln
     118
     119                        /*$this->modules['DB']->query("
    122120                            INSERT INTO
    123121                                ".TBLPFX."users
    124122                            SET
    125                                 UserStatus='".$UserStatus."',
    126                                 UserIsAdmin='".$UserIsAdmin."',
    127                                 UserHash='".$UserHash."',
     123                                UserStatus='".$userStatus."',
     124                                UserIsAdmin='".$userIsAdmin."',
     125                                UserHash='".$userHash."',
    128126                                UserNick='".$p['UserName']."',
    129127                                UserEmail='".$p['UserEmail']."',
    130                                 UserPassword='".$UserPasswordEncrypted."',
    131                                 UserPasswordSalt='".$UserPasswordSalt."',
     128                                UserPassword='".$userPasswordEncrypted."',
     129                                UserPasswordSalt='".$userPasswordSalt."',
    132130                                UserRegistrationTimestamp='".time()."',
    133                                 UserTimeZone='".$this->Modules['Config']->getValue('standard_tz')."'
     131                                UserTimeZone='".$this->modules['Config']->getValue('standard_tz')."'
    134132                        ");*/
    135133
    136                         $UserID = $this->Modules['DB']->getInsertID();
    137 
    138                         /*foreach($ProfileFields AS $curField) {
     134                        $userID = $this->modules['DB']->getInsertID();
     135
     136                        /*foreach($profileFields AS $curField) {
    139137                            $curValue = ($curField['FieldType'] == PROFILE_FIELD_TYPE_SELECTMULTI) ? implode(',',$p['FieldsData'][$curField['FieldID']]) : $p['FieldsData'][$curField['FieldID']];
    140                             $this->Modules['DB']->query("
     138                            $this->modules['DB']->query("
    141139                                INSERT INTO
    142140                                    ".TBLPFX."profile_fields_data
    143141                                SET
    144142                                    FieldID='".$curField['FieldID']."',
    145                                     UserID='".$UserID."'
     143                                    UserID='".$userID."'
    146144                                    FieldValue='".$curValue."'
    147145                            ");
     
    150148                        $_SESSION['LastPlaceUrl'] = INDEXFILE.'?'.MYSID;
    151149
    152                         echo nl2br($this->Modules['Template']->fetch($this->Modules['Language']->getLD().'mails/RegistrationWelcome.mail'));  exit;
    153 
    154                         if($UserIsAdmin != 1 && $this->Modules['Config']->getValue('enable_email_functions') == 1) {
    155                             $this->Modules['Template']->assign(array(
     150                        echo nl2br($this->modules['Template']->fetch($this->modules['Language']->getLD().'mails/RegistrationWelcome.mail'));  exit;
     151
     152                        if($userIsAdmin != 1 && $this->modules['Config']->getValue('enable_email_functions') == 1) {
     153                            $this->modules['Template']->assign(array(
    156154                                'UserNick'=>$p['UserName'],
    157                                 'UserID'=>$UserID,
     155                                'UserID'=>$userID,
    158156                                'UserEmail'=>$p['UserEmail'],
    159157                                'UserPassword'=>$p['UserPassword']
    160158                            ));
    161159                            Functions::myMail(
    162                                 $this->Modules['Config']->getValue('board_name').' <'.$this->Modules['Config']->getValue('board_email_address').'>',
     160                                $this->modules['Config']->getValue('board_name').' <'.$this->modules['Config']->getValue('board_email_address').'>',
    163161                                $p['UserEmail'],
    164                                 sprintf($this->Modules['Language']->getString('email_subject_welcome'),$this->Modules['Config']->getValue('board_name')),
    165                                 $this->Modules['Template']->fetch($this->Modules['Language']->getLD().'mails/RegistrationWelcome.mail')
     162                                sprintf($this->modules['Language']->getString('email_subject_welcome'),$this->modules['Config']->getValue('board_name')),
     163                                $this->modules['Template']->fetch($this->modules['Language']->getLD().'mails/RegistrationWelcome.mail')
    166164                            );
    167165
    168166
    169                             if($CONFIG['verify_email_address'] == 2) {
    170                                 $activation_link = $CONFIG['board_address'].'/index.php?action=activateaccount&account_id='.$p_user_nick.'&activation_code='.$p_user_hash.'&doit=1';
    171                                 $email_tpl->loadTpl($LANGUAGE_PATH.'/emails/email_account_activation.tpl');
    172                                 mymail('"'.$CONFIG['board_name'].'" <'.$CONFIG['board_email_address'].'>',$p_user_email,sprintf($LNG['email_subject_account_activation'],$CONFIG['board_name']),$email_tpl->parseCode());
     167                            if($cONFIG['verify_email_address'] == 2) {
     168                                $activation_link = $cONFIG['board_address'].'/index.php?action=activateaccount&account_id='.$p_user_nick.'&activation_code='.$p_user_hash.'&doit=1';
     169                                $email_tpl->loadTpl($lANGUAGE_PATH.'/emails/email_account_activation.tpl');
     170                                mymail('"'.$cONFIG['board_name'].'" <'.$cONFIG['board_email_address'].'>',$p_user_email,sprintf($lNG['email_subject_account_activation'],$cONFIG['board_name']),$email_tpl->parseCode());
    173171                            }
    174172                        }
     
    176174                        //update_latest_user($new_user_id,$p_user_nick);
    177175
    178                         $this->Modules['Navbar']->addElement($this->Modules['Language']->getString('Registration_successful'),INDEXFILE."?Action=Register&amp;".MYSID);
    179 
    180                         $this->Modules['PageParts']->printMessage('registration_successful',array('login'));
     176                        $this->modules['Navbar']->addElement($this->modules['Language']->getString('Registration_successful'),INDEXFILE."?Action=Register&amp;".MYSID);
     177
     178                        $this->modules['PageParts']->printMessage('registration_successful',array('login'));
    181179                        include_once('pheader.php');
    182                         show_message($LNG['Registration_successful'],$LNG['message_registration_successful'].'<br />'.sprintf($LNG['click_here_login'],"<a href=\"index.php?action=login&amp;$MYSID\">",'</a>'));
     180                        show_message($lNG['Registration_successful'],$lNG['message_registration_successful'].'<br />'.sprintf($lNG['click_here_login'],"<a href=\"index.php?action=login&amp;$mYSID\">",'</a>'));
    183181                        include_once('ptail.php'); exit;
    184182                    }
     
    188186                // Die Spezial-Profilfelder
    189187                //
    190                 if($FieldsCounter > 0) {
    191                     $GroupsData = array(
    192                         array('GroupName'=>$this->Modules['Language']->getString('Required_information'),'GroupType'=>1,'GroupFields'=>array()),
    193                         array('GroupName'=>$this->Modules['Language']->getString('Other_information'),'GroupType'=>0,'GroupFields'=>array())
     188                if($fieldsCounter > 0) {
     189                    $groupsData = array(
     190                        array('GroupName'=>$this->modules['Language']->getString('Required_information'),'GroupType'=>1,'GroupFields'=>array()),
     191                        array('GroupName'=>$this->modules['Language']->getString('Other_information'),'GroupType'=>0,'GroupFields'=>array())
    194192                    );
    195193
    196                     foreach($ProfileFields AS $curField) {
     194                    foreach($profileFields AS $curField) {
    197195                        switch($curField['FieldType']) {
    198196                            case PROFILE_FIELD_TYPE_TEXT:
     
    207205                                break;
    208206                        }
    209                         if($curField['FieldIsRequired'] == 0) $GroupsData[1]['GroupFields'][] = $curField;
    210                         else $GroupsData[0]['GroupFields'][] = $curField;
    211                     }
    212                 }
    213 
    214                 $this->Modules['Template']->assign(array(
    215                     'Error'=>$Error,
     207                        if($curField['FieldIsRequired'] == 0) $groupsData[1]['GroupFields'][] = $curField;
     208                        else $groupsData[0]['GroupFields'][] = $curField;
     209                    }
     210                }
     211
     212                $this->modules['Template']->assign(array(
     213                    'Error'=>$error,
    216214                    'p'=>$p,
    217                     'GroupsData'=>$GroupsData,
    218                     'FieldsCounter'=>$FieldsCounter
     215                    'GroupsData'=>$groupsData,
     216                    'FieldsCounter'=>$fieldsCounter
    219217                ));
    220                 $this->Modules['PageParts']->printPage('RegisterRegisterForm.tpl');
     218                $this->modules['PageParts']->printPage('RegisterRegisterForm.tpl');
    221219            break;
    222220        }
  • trunk/modules/Session.class.php

    r5 r6  
    2424        }
    2525
    26         $MySID = (SID == '') ? 'sid=0' : 'sid='.session_id(); // Falls die Session-ID per Cookie uebergeben wird ist SID leer, man braucht also auch keine (gueltige) Session-ID per URL zu uebergeben
     26        $mySID = (SID == '') ? 'sid=0' : 'sid='.session_id(); // Falls die Session-ID per Cookie uebergeben wird ist SID leer, man braucht also auch keine (gueltige) Session-ID per URL zu uebergeben
    2727
    28         define('MYSID',$MySID);
    29         $this->modules['Template']->assign('MySID',$MySID);
     28        define('MYSID',$mySID);
     29        $this->modules['Template']->assign('mySID',$mySID);
    3030    }
    3131
    32     public function DataHandlerOpen($SavePath,$SessionName) {
     32    public function DataHandlerOpen($savePath,$sessionName) {
    3333        return TRUE;
    3434    }
     
    3838    }
    3939
    40     public function DataHandlerRead($SessionID) {
    41         $this->modules['DB']->query("SELECT SessionData FROM ".TBLPFX."sessions WHERE SessionID='$SessionID'");
     40    public function DataHandlerRead($sessionID) {
     41        $this->modules['DB']->query("SELECT SessionData FROM ".TBLPFX."sessions WHERE SessionID='$sessionID'");
    4242        if($this->modules['DB']->getAffectedRows() == 0) {
    43             $this->modules['DB']->query("INSERT INTO ".TBLPFX."sessions (SessionID) VALUES ('$SessionID')");
     43            $this->modules['DB']->query("INSERT INTO ".TBLPFX."sessions (SessionID) VALUES ('$sessionID')");
    4444            return "";
    4545        }
    4646
    47         list($SessionData) = $this->modules['DB']->fetchArray();
    48         return $SessionData;
     47        list($sessionData) = $this->modules['DB']->fetchArray();
     48        return $sessionData;
    4949    }
    5050
    51     public function DataHandlerWrite($SessionID,$SessionData) {
    52         $SessionData = $this->modules['DB']->escapeString($SessionData);
     51    public function DataHandlerWrite($sessionID,$sessionData) {
     52        $sessionData = $this->modules['DB']->escapeString($sessionData);
    5353
    54         $this->modules['DB']->query("UPDATE ".TBLPFX."sessions SET SessionData='$SessionData', SessionLastUpdate=NOW() WHERE SessionID='$SessionID'");
     54        $this->modules['DB']->query("UPDATE ".TBLPFX."sessions SET SessionData='$sessionData', SessionLastUpdate=NOW() WHERE SessionID='$sessionID'");
    5555        if($this->modules['DB']->getAffectedRows() == 0)
    5656            return FALSE;
     
    5959    }
    6060
    61     function DataHandlerDestroy($SessionID) {
    62         $this->modules['DB']->query("DELETE FROM ".TBLPFX."sessions WHERE SessionID='$SessionID'");
     61    function DataHandlerDestroy($sessionID) {
     62        $this->modules['DB']->query("DELETE FROM ".TBLPFX."sessions WHERE SessionID='$sessionID'");
    6363        return ($this->modules['DB']->getAffectedRows() == 0) ? FALSE : TRUE;
    6464    }
    6565
    66     function DataHandlerGc($SessionMaxLifeTime) {
    67         $this->modules['DB']->query("DELETE FROM ".TBLPFX."sessions WHERE SessionLastUpdate<'".$this->modules['DB']->fromUnixTimestamp(time()-$SessionMaxLifeTime)."'");
     66    function DataHandlerGc($sessionMaxLifeTime) {
     67        $this->modules['DB']->query("DELETE FROM ".TBLPFX."sessions WHERE SessionLastUpdate<'".$this->modules['DB']->fromUnixTimestamp(time()-$sessionMaxLifeTime)."'");
    6868
    6969        return TRUE;
  • trunk/modules/Template.class.php

    r5 r6  
    2424        $this->smarty = new Smarty;
    2525
     26        $this->smarty->error_reporting = E_ALL;
     27
    2628        $this->setDirs($this->getC('defaultTemplateDir'));
    27         $this->smarty->assign('IndexFile',INDEXFILE);
     29        $this->smarty->assign('indexFile',INDEXFILE);
    2830
    2931        $modules = &Factory::getInstances();
  • trunk/modules/ViewForum.class.php

    r2 r6  
    22
    33class ViewForum extends ModuleTemplate {
    4     protected $RequiredModules = array(
     4    protected $requiredModules = array(
    55        'Auth',
    66        'Config',
     
    1313
    1414    public function executeMe() {
    15         $ForumID = isset($_GET['ForumID']) ? intval($_GET['ForumID']) : 0;
    16         $Page = isset($_GET['Page']) ? $_GET['Page'] : 1;
    17 
    18         if(!$ForumData = Functions::getForumData($ForumID)) die('Cannot load data: Forum');
    19 
    20         $this->Modules['Language']->addFile('ViewForum');
     15        $forumID = isset($_GET['forumID']) ? intval($_GET['forumID']) : 0;
     16        $page = isset($_GET['page']) ? $_GET['page'] : 1;
     17
     18        if(!$forumData = Functions::getForumData($forumID)) die('Cannot load data: Forum');
     19
     20        $this->modules['Language']->addFile('ViewForum');
    2121
    2222        // Authentifizierung
    23         $this->_authenticateUser($ForumData);
     23        $this->_authenticateUser($forumData);
    2424
    2525        //update_forum_cookie($forum_id);
    2626
    27         if(isset($_GET['mark'])) {
     27        /*/if(isset($_GET['mark'])) {
    2828            $c_topics = isset($_COOKIE['c_topics']) ? explode('x',$_COOKIE['c_topics']) : array();
    2929            while(list($akt_key,$akt_value) = each($c_topics)) {
     
    3737            setcookie('c_topics',$c_topics,time()+31536000,'/');
    3838            $_COOKIE['c_topics'] = $c_topics;
     39        }/**/
     40
     41        /**
     42         * Page listing
     43         */
     44        $topicsCounter = Functions::getTopicsCounter($forumID);
     45        $pageListing = Functions::createPageListing($topicsCounter,$this->modules['Config']->getValue('topics_per_page'),$page,"<a href=\"".INDEXFILE."?action=ViewForum&amp;ForumID=$forumID&amp;Page=%1\$s&amp;".MYSID."\">%2\$s</a>");
     46        $start = $page*$this->modules['Config']->getValue('topics_per_page')-$this->modules['Config']->getValue('topics_per_page');
     47
     48
     49        /*/$c_forums = array();
     50        $c_forums_temp = isset($_COOKIE['c_forums']) ? explode('x',$_COOKIE['c_forums']) : array();
     51        while(list(,$akt_value) = each($c_forums_temp)) {
     52            $akt_value = explode('_',$akt_value);
     53            $c_forums[$akt_value[0]] = $akt_value[1];
    3954        }
    4055
    41 
    42         //
    43         // Die Seitenanzeige
    44         //
    45         $TopicsCounter = Functions::getTopicsCounter($ForumID);
    46         $PageListing = Functions::createPageListing($TopicsCounter,$this->Modules['Config']->getValue('topics_per_page'),$Page,"<a href=\"".INDEXFILE."?Action=ViewForum&amp;ForumID=$ForumID&amp;Page=%1\$s&amp;".MYSID."\">%2\$s</a>");
    47         $Start = $Page*$this->Modules['Config']->getValue('topics_per_page')-$this->Modules['Config']->getValue('topics_per_page');
    48 
    49 
    50             /*$c_forums = array();
    51             $c_forums_temp = isset($_COOKIE['c_forums']) ? explode('x',$_COOKIE['c_forums']) : array();
    52             while(list(,$akt_value) = each($c_forums_temp)) {
    53                 $akt_value = explode('_',$akt_value);
    54                 $c_forums[$akt_value[0]] = $akt_value[1];
    55             }
    56 
    57             $c_topics = array();
    58             $c_topics_temp = isset($_COOKIE['c_topics']) ? explode('x',$_COOKIE['c_topics']) : $c_topics_temp = array();
    59             while(list($akt_key,$akt_value_2) = each($c_topics_temp)) {
    60                 $akt_value_2 = explode('y',$akt_value_2);
    61                 if($akt_value_2[0] == $forum_id) {
    62                     $akt_value_2[1] = explode('z',$akt_value_2[1]);
    63                     while(list(,$akt_value) = each($akt_value_2[1])) {
    64                         $akt_value = explode('_',$akt_value);
    65                         $c_topics[$akt_value[0]] = $akt_value[1];
    66                     }
     56        $c_topics = array();
     57        $c_topics_temp = isset($_COOKIE['c_topics']) ? explode('x',$_COOKIE['c_topics']) : $c_topics_temp = array();
     58        while(list($akt_key,$akt_value_2) = each($c_topics_temp)) {
     59            $akt_value_2 = explode('y',$akt_value_2);
     60            if($akt_value_2[0] == $forum_id) {
     61                $akt_value_2[1] = explode('z',$akt_value_2[1]);
     62                while(list(,$akt_value) = each($akt_value_2[1])) {
     63                    $akt_value = explode('_',$akt_value);
     64                    $c_topics[$akt_value[0]] = $akt_value[1];
    6765                }
    68             }*/
    69 
    70         $AnnouncementsForumID = $this->Modules['Config']->getValue('AnnouncementsForumID');
     66            }
     67        }/**/
     68
     69        $announcementsForumID = $this->modules['Config']->getValue('announcementsForumID');
    7170
    7271        // Die Ankuendigungen laden
    73         $TopicsData = array();
    74         if($AnnouncementsForumID != 0 && $ForumID != $AnnouncementsForumID)
    75             $TopicsData = $this->_loadAnnouncementsData($AnnouncementsForumID);
     72        $topicsData = array();
     73        if($announcementsForumID != 0 && $forumID != $announcementsForumID)
     74            $topicsData = $this->_loadAnnouncementsData($announcementsForumID);
    7675
    7776        // Die normalen Themen laden
    78         $TopicsData = array_merge($TopicsData,$this->_loadTopicsData($ForumID,$Start));
    79         $TopicsCounter = count($TopicsData);
     77        $topicsData = array_merge($topicsData,$this->_loadTopicsData($forumID,$start));
     78        $topicsCounter = count($topicsData);
    8079
    8180        // Jetzt koennen die Themen angezeigt werden
    82         for($i = 0; $i < $TopicsCounter; $i++) {
     81        for($i = 0; $i < $topicsCounter; $i++) {
    8382            $curPrefix = $curLastPost = '';
    84             $curTopic = &$TopicsData[$i];
    85 
    86             if($curTopic['TopicMovedID'] != 0) { // Falls das Thema nur eine Referenz zu einem verschobenem Thema ist...
    87                 $curPrefix .= $this->Modules['Language']->getString('Prefix_moved'); // ...das hinschreiben...
     83            $curTopic = &$topicsData[$i];
     84
     85            if($curTopic['topicMovedID'] != 0) { // Falls das Thema nur eine Referenz zu einem verschobenem Thema ist...
     86                $curPrefix .= $this->modules['Language']->getString('Prefix_moved'); // ...das hinschreiben...
    8887
    8988                $curTopic['TopicRepliesCounter'] = '-'; // ...den Antwortenzaehler auf "nichts" setzen...
     
    9291            }
    9392            else { // Falls es sich um ein normales Thema handelt die normalen Sachen erledigen
    94                 if($curTopic['ForumID'] == $AnnouncementsForumID && $AnnouncementsForumID != $ForumID) $curPrefix .= $this->Modules['Language']->getString('Prefix_announcement');
    95                 if($curTopic['TopicIsPinned'] == 1) $curPrefix .= $this->Modules['Language']->getString('Prefix_important');
    96                 if($curTopic['TopicHasPoll'] == 1) $curPrefix .= $this->Modules['Language']->getString('Prefix_poll');
    97 
    98                 if($curTopic['TopicLastPostPosterID'] == 0)
    99                     $curLastPostPoster = $curTopic['TopicLastPostPosterNick'];
    100                 else $curLastPostPoster = '<a href="'.INDEXFILE.'?Action=ViewProfile&amp;ProfileID='.$curTopic['TopicLastPostPosterID'].'&amp;'.MYSID.'">'.$curTopic['TopicLastPostPosterNick'].'</a>';
    101                 $curLastPost = Functions::toDateTime($curTopic['TopicLastPostTimestamp']).'<br/>'.$this->Modules['Language']->getString('by').' '.$curLastPostPoster.' <a href="'.INDEXFILE.'?Action=ViewTopic&amp;TopicID='.$curTopic['TopicID'].'&amp;Page=last&amp;'.MYSID.'#Post'.$curTopic['TopicLastPostID'].'">&#187;</a>';
    102 
    103                 $curTopic['TopicRepliesCounter'] = number_format($curTopic['TopicRepliesCounter'],0,',','.');
    104                 $curTopic['TopicViewsCounter'] = number_format($curTopic['TopicViewsCounter'],0,',','.');
    105             }
    106 
     93                if($curTopic['forumID'] == $announcementsForumID && $announcementsForumID != $forumID) $curPrefix .= $this->modules['Language']->getString('Prefix_announcement');
     94                if($curTopic['topicIsPinned'] == 1) $curPrefix .= $this->modules['Language']->getString('Prefix_important');
     95                if($curTopic['topicHasPoll'] == 1) $curPrefix .= $this->modules['Language']->getString('Prefix_poll');
     96
     97                if($curTopic['topicLastPostPosterID'] == 0)
     98                    $curLastPostPoster = $curTopic['topicLastPostPosterNick'];
     99                else $curLastPostPoster = '<a href="'.INDEXFILE.'?action=ViewProfile&amp;profileID='.$curTopic['topicLastPostPosterID'].'&amp;'.MYSID.'">'.$curTopic['topicLastPostPosterNick'].'</a>';
     100                $curLastPost = Functions::toDateTime($curTopic['topicLastPostTimestamp']).'<br/>'.$this->modules['Language']->getString('by').' '.$curLastPostPoster.' <a href="'.INDEXFILE.'?action=ViewTopic&amp;topicID='.$curTopic['topicID'].'&amp;page=last&amp;'.MYSID.'#Post'.$curTopic['topicLastPostID'].'">&#187;</a>';
     101
     102                $curTopic['topicRepliesCounter'] = number_format($curTopic['topicRepliesCounter'],0,',','.');
     103                $curTopic['topicViewsCounter'] = number_format($curTopic['topicViewsCounter'],0,',','.');
     104            }
    107105
    108106            //
     
    110108            //
    111109            $curPosterNick = '';
    112             if($curTopic['PosterID'] == 0) $curPosterNick = $curTopic['TopicGuestNick']; // Falls es ein Gast ist...
    113             else $curPosterNick = "<a href=\"".INDEXFILE."?Action=ViewProfile&amp;ProfileID=".$curTopic['PosterID']."&amp;".MYSID."\">".$curTopic['TopicPosterNick'].'</a>'; // ...und falls nicht
    114 
    115             if(isset($c_topics[$curTopic['TopicID']]) == FALSE && isset($c_forums[$ForumID]) == TRUE && $c_forums[$forum_id] < $curTopic['topic_post_time']) {
     110            if($curTopic['posterID'] == 0) $curPosterNick = $curTopic['topicGuestNick']; // Falls es ein Gast ist...
     111            else $curPosterNick = "<a href=\"".INDEXFILE."?action=ViewProfile&amp;profileID=".$curTopic['posterID']."&amp;".MYSID."\">".$curTopic['topicPosterNick'].'</a>'; // ...und falls nicht
     112
     113            /*/if(isset($c_topics[$curTopic['topicID']]) == FALSE && isset($c_forums[$forumID]) == TRUE && $c_forums[$forum_id] < $curTopic['topic_post_time']) {
    116114                update_topic_cookie($curTopic['forum_id'],$curTopic['topic_id'],0);
    117115                $c_topics[$curTopic['topic_id']] = 0;
    118             }
     116            }/**/
    119117
    120118
     
    122120            // Der "Neue Beitraege"-Status
    123121            //
    124             if($curTopic['TopicMovedID'] != 0) $curStatus = ''; // Falls das Thema verschoben wurde...
    125             elseif(isset($c_topics[$curTopic['TopicID']]) == TRUE && $c_topics[$curTopic['topic_id']] < $curTopic['topic_last_post_time'])
     122            $curStatus = '';
     123            if($curTopic['topicMovedID'] != 0) $curStatus = ''; // Falls das Thema verschoben wurde...
     124            /*/elseif(isset($c_topics[$curTopic['topicID']]) == TRUE && $c_topics[$curTopic['topic_id']] < $curTopic['topic_last_post_time'])
    126125                $curStatus = ''; // ...falls es neue Beitraege gibt
    127             else $curStatus = ''; // und falls nicht
     126            else $curStatus = ''; // und falls nicht/**/
    128127
    129128
     
    132131            //
    133132            $curTopicPic = '';
    134             if($curTopic['TopicSmileyFileName'] != '')
    135                 $curTopicPic = '<img src="'.$curTopic['TopicSmileyFileName'].'" alt="" />';
    136 
    137             $curTopic['_TopicPrefix'] = $curPrefix;
    138             $curTopic['_TopicStatus'] = $curStatus;
    139             $curTopic['_TopicPosterNick'] = $curPosterNick;
    140             $curTopic['_TopicLastPost'] = $curLastPost;
    141             $curTopic['_TopicPic'] = $curTopicPic;
     133            if($curTopic['topicSmileyFileName'] != '')
     134                $curTopicPic = '<img src="'.$curTopic['topicSmileyFileName'].'" alt="" border="0"/>';
     135
     136            $curTopic['_topicPrefix'] = $curPrefix;
     137            $curTopic['_topicStatus'] = $curStatus;
     138            $curTopic['_topicPosterNick'] = $curPosterNick;
     139            $curTopic['_topicLastPost'] = $curLastPost;
     140            $curTopic['_topicPic'] = $curTopicPic;
    142141        }
    143142
    144         $this->Modules['Navbar']->addCategories($ForumData['CatID']);
    145         $this->Modules['Navbar']->addElement(Functions::HTMLSpecialChars($ForumData['ForumName']),INDEXFILE.'?Action=ViewForum&amp;ForumID='.$ForumID.'&amp;'.MYSID);
    146         $this->Modules['Navbar']->setRightArea('<a href="'.INDEXFILE.'?Action=ViewForum&amp;ForumID='.$ForumID.'&amp;MarkAll=1&amp;'.MYSID.'">'.$this->Modules['Language']->getString('Mark_topics_read').'</a>');
    147 
    148         $this->Modules['Template']->assign(array(
    149             'ForumID'=>$ForumID,
    150             'TopicsData'=>$TopicsData,
    151             'PageListing'=>$PageListing
     143        $this->modules['Navbar']->addCategories($forumData['catID']);
     144        $this->modules['Navbar']->addElement(Functions::HTMLSpecialChars($forumData['forumName']),INDEXFILE.'?action=ViewForum&amp;forumID='.$forumID.'&amp;'.MYSID);
     145        $this->modules['Navbar']->setRightArea('<a href="'.INDEXFILE.'?action=ViewForum&amp;ForumID='.$forumID.'&amp;markAll=1&amp;'.MYSID.'">'.$this->modules['Language']->getString('Mark_topics_read').'</a>');
     146
     147        $this->modules['Template']->assign(array(
     148            'forumID'=>$forumID,
     149            'topicsData'=>$topicsData,
     150            'pageListing'=>$pageListing
    152151        ));
    153         $this->Modules['PageParts']->printPage('ViewForum.tpl');
    154     }
    155 
    156     protected function _loadAnnouncementsData($ForumID) {
    157         $this->Modules['DB']->query("SELECT
     152        $this->modules['PageParts']->printPage('ViewForum.tpl');
     153    }
     154
     155    protected function _loadAnnouncementsData($forumID) {
     156        $this->modules['DB']->query("SELECT
    158157            t1.*,
    159             t2.PostTimestamp AS TopicLastPostTimestamp,
    160             t2.PosterID AS TopicLastPostPosterID,
    161             t3.UserNick AS TopicPosterNick,
    162             t2.PostGuestNick AS TopicLastPostGuestNick,
    163             t4.UserNick AS TopicLastPostPosterNick,
    164             t5.SmileyFileName AS TopicSmileyFileName
     158            t2.postTimestamp AS topicLastPostTimestamp,
     159            t2.posterID AS topicLastPostPosterID,
     160            t3.userNick AS topicPosterNick,
     161            t2.postGuestNick AS topicLastPostGuestNick,
     162            t4.userNick AS topicLastPostPosterNick,
     163            t5.smileyFileName AS topicSmileyFileName
     164        FROM (
     165            ".TBLPFX."posts AS t2,
     166            ".TBLPFX."topics AS t1
     167        )
     168        LEFT JOIN ".TBLPFX."users AS t3 ON t1.posterID=t3.userID
     169        LEFT JOIN ".TBLPFX."users AS t4 ON t2.posterID=t4.userID
     170        LEFT JOIN ".TBLPFX."smilies AS t5 ON t1.smileyID=t5.smileyID
     171        WHERE
     172            t1.forumID='".$forumID."'
     173            AND t1.topicLastPostID=t2.postID
     174        ORDER BY
     175            t1.topicIsPinned DESC,
     176            t2.postTimestamp DESC
     177        ");
     178        return $this->modules['DB']->raw2Array();
     179    }
     180
     181    protected function _loadTopicsData($forumID,$start) {
     182        $this->modules['DB']->query("SELECT
     183            t1.*,
     184            t2.postTimestamp AS topicLastPostTimestamp,
     185            t2.posterID AS topicLastPostPosterID,
     186            t3.userNick AS topicPosterNick,
     187            t2.postGuestNick AS topicLastPostGuestNick,
     188            t4.userNick AS topicLastPostPosterNick,
     189            t5.smileyFileName AS topicSmileyFileName
    165190        FROM (
    166191            ".TBLPFX."posts AS t2,
    167192            ".TBLPFX."topics AS t1 )
    168         LEFT JOIN ".TBLPFX."users AS t3 ON t1.PosterID=t3.UserID
    169         LEFT JOIN ".TBLPFX."users AS t4 ON t2.PosterID=t4.UserID
    170         LEFT JOIN ".TBLPFX."smilies AS t5 ON t1.SmileyID=t5.SmileyID
     193        LEFT JOIN ".TBLPFX."users AS t3 ON t1.posterID=t3.userID
     194        LEFT JOIN ".TBLPFX."users AS t4 ON t2.posterID=t4.userID
     195        LEFT JOIN ".TBLPFX."smilies AS t5 ON t1.smileyID=t5.smileyID
    171196        WHERE
    172             t1.ForumID='".$ForumID."'
    173             AND t1.TopicLastPostID=t2.PostID
     197            t1.forumID='$forumID'
     198            AND t1.topicLastPostID=t2.PostID
    174199        ORDER BY
    175             t1.TopicIsPinned DESC,
    176             t2.PostTimestamp DESC
    177         ");
    178         return $this->Modules['DB']->Raw2Array();
    179     }
    180 
    181     protected function _loadTopicsData($ForumID,$Start) {
    182         $this->Modules['DB']->query("SELECT
    183             t1.*,
    184             t2.PostTimestamp AS TopicLastPostTimestamp,
    185             t2.PosterID AS TopicLastPostPosterID,
    186             t3.UserNick AS TopicPosterNick,
    187             t2.PostGuestNick AS TopicLastPostGuestNick,
    188             t4.UserNick AS TopicLastPostPosterNick,
    189             t5.SmileyFileName AS TopicSmileyFileName
    190         FROM (
    191             ".TBLPFX."posts AS t2,
    192             ".TBLPFX."topics AS t1 )
    193         LEFT JOIN ".TBLPFX."users AS t3 ON t1.PosterID=t3.UserID
    194         LEFT JOIN ".TBLPFX."users AS t4 ON t2.PosterID=t4.UserID
    195         LEFT JOIN ".TBLPFX."smilies AS t5 ON t1.SmileyID=t5.SmileyID
    196         WHERE
    197             t1.ForumID='$ForumID'
    198             AND t1.TopicLastPostID=t2.PostID
    199         ORDER BY
    200             t1.TopicIsPinned DESC,
    201             t2.PostTimestamp DESC
     200            t1.topicIsPinned DESC,
     201            t2.postTimestamp DESC
    202202        LIMIT
    203             $Start,".$this->Modules['Config']->getValue('topics_per_page')
     203            $start,".$this->modules['Config']->getValue('topics_per_page')
    204204        );
    205         return $this->Modules['DB']->Raw2Array();
    206     }
    207 
    208     protected function _authenticateUser(&$ForumData) {
    209         $AuthData = Functions::getAuthData($ForumData,array('AuthViewForum','AuthPostTopic','AuthIsMod'));
    210         if($AuthData['AuthViewForum'] != 1) {
     205        return $this->modules['DB']->raw2Array();
     206    }
     207
     208    protected function _authenticateUser(&$forumData) {
     209        $authData = Functions::getAuthData($forumData,array('AuthViewForum','AuthPostTopic','AuthIsMod'));
     210
     211        if($authData['AuthViewForum'] != 1) {
    211212            // TODO
    212213            exit;
    213214        }
    214215
    215         return $AuthData;
     216        return $authData;
    216217    }
    217218}
  • trunk/modules/ViewTopic.class.php

    r2 r6  
    22
    33class ViewTopic extends ModuleTemplate {
    4     protected $RequiredModules = array(
     4    protected $requiredModules = array(
    55        'Auth',
    66        'Cache',
     7        'Constants',
    78        'Config',
    89        'DB',
     
    1415
    1516    public function executeMe() {
    16         $this->Modules['Language']->addFile('ViewTopic');
    17 
    18         $TopicID = isset($_GET['TopicID']) ? $_GET['TopicID'] : 0; // ID des Themas
    19         $PostID = isset($_GET['PostID']) ? $_GET['PostID'] : 0; // ID des Beitrags
    20         $Page = isset($_GET['Page']) ? $_GET['Page'] : 1; // Seite
    21 
    22         unset($TopicPostsCounter);
     17        $this->modules['Language']->addFile('ViewTopic');
     18
     19        $topicID = isset($_GET['topicID']) ? $_GET['topicID'] : 0; // ID des Themas
     20        $postID = isset($_GET['postID']) ? $_GET['postID'] : 0; // ID des Beitrags
     21        $page = isset($_GET['page']) ? $_GET['page'] : 1; // Seite
     22
     23        unset($topicPostsCounter);
    2324
    2425        // Thema und Seite eventuell ueber Beitrags-ID bestimmen
    25         if($TopicID == 0) {
    26             $this->Modules['DB']->query("SELECT TopicID FROM ".TBLPFX."posts WHERE PostID='$PostID'"); // Laedt eventuell die ID des Themas
    27             if($this->Modules['DB']->getAffectedRows() != 1) die('Kann Beitragsdaten nicht laden/Beitrag existiert nicht!'); // Falls nicht Meldung ausgeben
    28             list($TopicID) = $this->Modules['DB']->fetchArray(); // ID des Themas verfuegbar machen
    29 
    30             $this->Modules['DB']->query("SELECT PostID FROM ".TBLPFX."posts WHERE TopicID='$TopicID' ORDER BY PostTimestamp"); // Die IDs aller Beitraege des Themas laden
    31             $PostIDs = $this->Modules['DB']->Raw2FVArray(); // DB-Daten in Array umwandeln
    32             $TopicPostsCounter = count($PostIDs); // Anzahl der IDs (Beitraege)
    33 
    34             $Page = 1; // Standardseite ist Seite 1
    35             for($i = 0; $i < $TopicPostsCounter; $i++) {
    36                 if($PostIDs[$i] == $PostID) break; // Falls die gewuenschte ID gefunden wurde kann die Schleife beendet werden (damit ist die Seite gefunden)
    37                 if(($i + 1) % $this->Modules['Config']->getValue('posts_per_page') == 0) $Page++; // Falls die Anzahl der Beitraege pro Seite erreicht wurde, naechste Seite angeben
     26        if($topicID == 0) {
     27            $this->modules['DB']->query("SELECT topicID FROM ".TBLPFX."posts WHERE postID='$postID'"); // Laedt eventuell die ID des Themas
     28            if($this->modules['DB']->getAffectedRows() != 1) die('Kann Beitragsdaten nicht laden/Beitrag existiert nicht!'); // Falls nicht Meldung ausgeben
     29            list($topicID) = $this->modules['DB']->fetchArray(); // ID des Themas verfuegbar machen
     30
     31            $this->modules['DB']->query("SELECT postID FROM ".TBLPFX."posts WHERE topicID='$topicID' ORDER BY postTimestamp"); // Die IDs aller Beitraege des Themas laden
     32            $postIDs = $this->modules['DB']->raw2FVArray(); // DB-Daten in Array umwandeln
     33            $topicPostsCounter = count($postIDs); // Anzahl der IDs (Beitraege)
     34
     35            $page = 1; // Standardseite ist Seite 1
     36            for($i = 0; $i < $topicPostsCounter; $i++) {
     37                if($postIDs[$i] == $postID) break; // Falls die gewuenschte ID gefunden wurde kann die Schleife beendet werden (damit ist die Seite gefunden)
     38                if(($i + 1) % $this->modules['Config']->getValue('posts_per_page') == 0) $page++; // Falls die Anzahl der Beitraege pro Seite erreicht wurde, naechste Seite angeben
    3839            }
    3940        }
    4041
    4142        // Thema- und Forumdaten laden
    42         if(!$TopicData = Functions::getTopicData($TopicID)) die('Kann Daten nicht laden: Thema'); // Themendaten laden
    43         if($TopicData['TopicMovedID'] != 0 && ($TopicData = Functions::getTopicData($TopicData['TopicMovedID'])) == FALSE) die('Thema wurde verschoben/kann neues Thema nicht laden!'); // Falls das Thema verschoben wurde und die neuen Daten nicht gefunden werden koennen
    44         elseif($TopicData['ForumID'] != 0 && ($ForumData = Functions::getForumData($TopicData['ForumID'])) == FALSE) die('Kann Daten nicht laden: Forum');
    45 
    46         $TopicID = &$TopicData['TopicID']; // ID des Themas, ist wichtig, falls es ein verschobenes Thema ist
    47         $ForumID = &$TopicData['ForumID']; // ID des Forums
     43        if(!$topicData = Functions::getTopicData($topicID)) die('Kann Daten nicht laden: Thema'); // Themendaten laden
     44        if($topicData['topicMovedID'] != 0 && ($topicData = Functions::getTopicData($topicData['topicMovedID'])) == FALSE) die('Thema wurde verschoben/kann neues Thema nicht laden!'); // Falls das Thema verschoben wurde und die neuen Daten nicht gefunden werden koennen
     45        elseif($topicData['forumID'] != 0 && ($forumData = Functions::getForumData($topicData['forumID'])) == FALSE) die('Kann Daten nicht laden: Forum');
     46
     47        $topicID = &$topicData['topicID']; // ID des Themas, ist wichtig, falls es ein verschobenes Thema ist
     48        $forumID = &$topicData['forumID']; // ID des Forums
    4849
    4950
    5051        // User-IDs aller Moderatoren laden
    51         $ForumModIDs = $this->_loadForumModIDs($ForumID);
     52        $forumModIDs = $this->_loadForumModIDs($forumID);
    5253
    5354
    5455        // Authehtifizierung
    55         $AuthData = $this->_authenticateUser($ForumData);
    56 
    57 
    58         //update_topic_cookie($forum_id,$TopicID,time());
    59 
    60         if(!isset($_SESSION['TopicViews'][$TopicID])) { // Falls dieses Thema in dieser Session noch nicht besucht wurde...
    61             $this->Modules['DB']->query("UPDATE ".TBLPFX."topics SET TopicViewsCounter=TopicViewsCounter+1 WHERE TopicID='$TopicID'"); // ...Anzahl der Views um 1 erhoehen...
    62             $_SESSION['TopicViews'][$TopicID] = TRUE; // ...Und Thema in dieser Session vermerken
     56        $authData = $this->_authenticateUser($forumData);
     57
     58
     59        //update_topic_cookie($forum_id,$topicID,time());
     60
     61        if(!isset($_SESSION['topicViews'][$topicID])) { // Falls dieses Thema in dieser Session noch nicht besucht wurde...
     62            $this->modules['DB']->query("UPDATE ".TBLPFX."topics SET TopicViewsCounter=TopicViewsCounter+1 WHERE TopicID='$topicID'"); // ...Anzahl der Views um 1 erhoehen...
     63            $_SESSION['topicViews'][$topicID] = TRUE; // ...Und Thema in dieser Session vermerken
    6364        }
    6465
     
    6768        // Seitenanzeige erstellen
    6869        //
    69         if(!isset($TopicPostsCounter)) $TopicPostsCounter = Functions::getPostsCounter($TopicID); // Anzahl der Beitraege bestimmen (kann eventuell aus schon vorhandenen Daten geschehen)
    70         $PageListing = Functions::createPageListing($TopicPostsCounter,$this->Modules['Config']->getValue('posts_per_page'),$Page,"<a href=\"".INDEXFILE."?Action=ViewTopic&amp;TopicID=$TopicID&amp;Page=%1\$s&amp;".MYSID."\">%2\$s</a>"); // Die Seitenansicht erstellen
    71         $Start = $Page*$this->Modules['Config']->getValue('posts_per_page')-$this->Modules['Config']->getValue('posts_per_page'); // Startbeitrag
     70        if(!isset($topicPostsCounter)) $topicPostsCounter = Functions::getPostsCounter($topicID); // Anzahl der Beitraege bestimmen (kann eventuell aus schon vorhandenen Daten geschehen)
     71        $pageListing = Functions::createPageListing($topicPostsCounter,$this->modules['Config']->getValue('posts_per_page'),$page,"<a href=\"".INDEXFILE."?action=ViewTopic&amp;TopicID=$topicID&amp;Page=%1\$s&amp;".MYSID."\">%2\$s</a>"); // Die Seitenansicht erstellen
     72        $start = $page*$this->modules['Config']->getValue('posts_per_page')-$this->modules['Config']->getValue('posts_per_page'); // Startbeitrag
    7273
    7374
     
    7576        // Die Moderatorenwerkzeuge bestimmen
    7677        //
    77         $ModTools = array(); // Beinhaltet spaeter pro Element eine Moderationsoption
    78         if($this->Modules['Auth']->getValue('UserIsAdmin') == 1 || $this->Modules['Auth']->getValue('UserIsSuperMod') == 1 || $TopicData['PosterID'] != 0 && USERID == $TopicData['PosterID'] && $AuthData['AuthEditPosts'] == 1 || $AuthData['AuthIsMod'] == 1) $ModTools[] = "<a href=\"".INDEXFILE."?Action=EditTopic&amp;Mode=Edit&amp;TopicID=$TopicID&amp;".MYSID."\">".$this->Modules['Language']->getString('Edit_topic').'</a>'; // Thema bearbeiten (duerfen auch User, die das Thema erstellt haben)
    79         if($this->Modules['Auth']->getValue('UserIsAdmin') == 1 || $this->Modules['Auth']->getValue('UserIsSupermod') == 1 || $AuthData['AuthIsMod'] == 1) {
    80             if($ForumID != 0) $ModTools[] = "<a href=\"".INDEXFILE."?action=edittopic&amp;mode=move&amp;topic_id=$TopicID&amp;".MYSID."\">".$this->Modules['Language']->getString('Move_topic').'</a>';
    81             $ModTools[] = "<a href=\"".INDEXFILE."?action=edittopic&amp;mode=delete&amp;topic_id=$TopicID&amp;".MYSID."\">".$this->Modules['Language']->getString('Delete_topic').'</a>';
    82 
    83             $Temp = ($TopicData['TopicIsPinned'] == 1) ? $this->Modules['Language']->getString('Mark_topic_unimportant') : $this->Modules['Language']->getString('Mark_topic_important');
    84             $ModTools[] = "<a href=\"".INDEXFILE."?action=edittopic&amp;mode=pinn&amp;topic_id=$TopicID&amp;".MYSID."\">".$Temp.'</a>';
    85 
    86             $Temp = ($TopicData['TopicStatus'] == TOPIC_STATUS_CLOSED) ? $this->Modules['Language']->getString('Open_topic') : $this->Modules['Language']->getString('Close_topic');
    87             $ModTools[] = "<a href=\"".INDEXFILE."?action=edittopic&amp;mode=openclose&amp;topic_id=$TopicID&amp;".MYSID."\">".$Temp.'</a>';
    88         }
    89         $ModTools = implode(' | ',$ModTools);
     78        $modTools = array(); // Beinhaltet spaeter pro Element eine Moderationsoption
     79        if($this->modules['Auth']->getValue('userIsAdmin') == 1 || $this->modules['Auth']->getValue('userIsSuperMod') == 1 || $topicData['posterID'] != 0 && USERID == $topicData['posterID'] && $authData['authEditPosts'] == 1 || $authData['authIsMod'] == 1) $modTools[] = "<a href=\"".INDEXFILE."?action=EditTopic&amp;mode=Edit&amp;topicID=$topicID&amp;".MYSID."\">".$this->modules['Language']->getString('Edit_topic').'</a>'; // Thema bearbeiten (duerfen auch User, die das Thema erstellt haben)
     80        if($this->modules['Auth']->getValue('userIsAdmin') == 1 || $this->modules['Auth']->getValue('userIsSupermod') == 1 || $authData['authIsMod'] == 1) {
     81            if($forumID != 0) $modTools[] = "<a href=\"".INDEXFILE."?action=edittopic&amp;mode=move&amp;topic_id=$topicID&amp;".MYSID."\">".$this->modules['Language']->getString('Move_topic').'</a>';
     82            $modTools[] = "<a href=\"".INDEXFILE."?action=edittopic&amp;mode=delete&amp;topic_id=$topicID&amp;".MYSID."\">".$this->modules['Language']->getString('Delete_topic').'</a>';
     83
     84            $temp = ($topicData['TopicIsPinned'] == 1) ? $this->modules['Language']->getString('Mark_topic_unimportant') : $this->modules['Language']->getString('Mark_topic_important');
     85            $modTools[] = "<a href=\"".INDEXFILE."?action=edittopic&amp;mode=pinn&amp;topic_id=$topicID&amp;".MYSID."\">".$temp.'</a>';
     86
     87            $temp = ($topicData['TopicStatus'] == TOPIC_STATUS_CLOSED) ? $this->modules['Language']->getString('Open_topic') : $this->modules['Language']->getString('Close_topic');
     88            $modTools[] = "<a href=\"".INDEXFILE."?action=edittopic&amp;mode=openclose&amp;topic_id=$topicID&amp;".MYSID."\">".$temp.'</a>';
     89        }
     90        $modTools = implode(' | ',$modTools);
    9091
    9192
     
    9394        // Die Umfrage
    9495        //
    95         $PollData = FALSE;
    96         if($TopicData['TopicHasPoll'] == 1) { // Falls fuer das Thema eine Umfrage angegeben wurde...
    97             $this->Modules['DB']->query("SELECT * FROM ".TBLPFX."polls WHERE TopicID='$TopicID' LIMIT 1"); // ...versuchen die Daten der Umfrage zu laden...
    98             if($PollData = $this->Modules['DB']->fetchArray()) { // ...und falls diese existiert...
    99                 if($this->Modules['Auth']->isLoggedIn() == 1) { // Falls User eingeloggt ist
    100                     $this->Modules['DB']->query("SELECT VoterID FROM ".TBLPFX."polls_votes WHERE PollID='".$PollData['PollID']."' AND VoterID='".USERID."'"); // Ueberpruefen, ob User shcon abgestimmt hat...
    101                     if($this->Modules['DB']->getAffectedRows() == 0) // ...falls nicht...
    102                         $poll_tpl = new Template($TEMPLATE_PATH.'/'.$TCONFIG['templates']['viewtopic_poll_voting']); // ...Abstimmungsboxtemplate laden...
     96        $pollData = FALSE;
     97        if($topicData['topicHasPoll'] == 1) { // Falls fuer das Thema eine Umfrage angegeben wurde...
     98            $this->modules['DB']->query("SELECT * FROM ".TBLPFX."polls WHERE topicID='$topicID' LIMIT 1"); // ...versuchen die Daten der Umfrage zu laden...
     99            if($pollData = $this->modules['DB']->fetchArray()) { // ...und falls diese existiert...
     100                if($this->modules['Auth']->isLoggedIn() == 1) { // Falls User eingeloggt ist
     101                    $this->modules['DB']->query("SELECT VoterID FROM ".TBLPFX."polls_votes WHERE PollID='".$pollData['PollID']."' AND VoterID='".USERID."'"); // Ueberpruefen, ob User shcon abgestimmt hat...
     102                    if($this->modules['DB']->getAffectedRows() == 0) // ...falls nicht...
     103                        $poll_tpl = new Template($tEMPLATE_PATH.'/'.$tCONFIG['templates']['viewtopic_poll_voting']); // ...Abstimmungsboxtemplate laden...
    103104                    else { // ...andernfalls...
    104                         $info_text = $this->Modules['Language']->getString('poll_already_voted_info'); // ...und Infotext fuer "schon abgestimmt" erzeugen
     105                        $info_text = $this->modules['Language']->getString('poll_already_voted_info'); // ...und Infotext fuer "schon abgestimmt" erzeugen
    105106                    }
    106107                }
    107108                else { // Falls User nicht eingeloggt ist...
    108                     $poll_tpl = new Template($TEMPLATE_PATH.'/'.$TCONFIG['templates']['viewtopic_poll_results']); // ...Ergebnisboxtemplate laden...
    109                     $info_text = $this->Modules['Language']->getString('poll_not_logged_in_info'); // ...und Infotext fuer "nicht eingeloggt" erzeugen
    110                 }
    111 
    112                 $this->Modules['DB']->query("SELECT OptionID,OptionTitle,OptionVotesCounter FROM ".TBLPFX."polls_options WHERE TopicID='$TopicID' ORDER BY OptionID"); // Die Auswahlmoeglichkeiten fuer die Umfrage laden
    113                 while($akt_option = $this->Modules['DB']->fetchArray()) {
     109                    $poll_tpl = new Template($tEMPLATE_PATH.'/'.$tCONFIG['templates']['viewtopic_poll_results']); // ...Ergebnisboxtemplate laden...
     110                    $info_text = $this->modules['Language']->getString('poll_not_logged_in_info'); // ...und Infotext fuer "nicht eingeloggt" erzeugen
     111                }
     112
     113                $this->modules['DB']->query("SELECT OptionID,OptionTitle,OptionVotesCounter FROM ".TBLPFX."polls_options WHERE TopicID='$topicID' ORDER BY OptionID"); // Die Auswahlmoeglichkeiten fuer die Umfrage laden
     114                while($akt_option = $this->modules['DB']->fetchArray()) {
    114115                    $akt_fraction = ($poll_data['poll_votes'] == 0) ? 0 : round($akt_option['option_votes']/$poll_data['poll_votes'],2); // Der Anteil an Stimmen (0,xx)
    115116                    $akt_percent = $akt_fraction*100; // Stimmenanteil in Prozent
    116                     $akt_votes = ($akt_option['option_votes'] == 1) ? $this->Modules['Language']->getString('one_vote') : sprintf($this->Modules['Language']->getString('x_votes'),$akt_option['option_votes']); // Anzahl der Stimmen
     117                    $akt_votes = ($akt_option['option_votes'] == 1) ? $this->modules['Language']->getString('one_vote') : sprintf($this->modules['Language']->getString('x_votes'),$akt_option['option_votes']); // Anzahl der Stimmen
    117118                    $akt_checked = ($akt_option['option_id'] == 1) ? ' checked="checked"' : ''; // checked="checked" fuer den ersten Radiobutton erzeugen (damit auf jeden Fall was ausgewaehlt ist)
    118119                }
     
    122123
    123124        // Smilies laden
    124         $SmiliesData = array();
    125         if($ForumData['ForumEnableSmilies'] == 1 || $CONFIG['enable_sig'] == 1 && $CONFIG['allow_sig_smilies'] == 1)
    126             $SmiliesData = $this->Modules['Cache']->getSmiliesData('write');
     125        $smiliesData = array();
     126        if($forumData['forumEnableSmilies'] == 1 || $this->Modules['Config']->getValue('enable_sig') == 1 && $this->Modules['Config']->getValue('allow_sig_smilies') == 1)
     127            $smiliesData = $this->modules['Cache']->getSmiliesData('write');
    127128
    128129
    129130        // Rangdaten laden
    130         $RanksData = $this->Modules['Cache']->getRanksData();
    131 
    132 
    133         $ParsedSignatures = array(); // Hier werden spaeter eventuell die geparsten Signaturen gespeichert um das nicht mehrfach machen zu muessen
     131        $ranksData = $this->modules['Cache']->getRanksData();
     132
     133
     134        $parsedSignatures = array(); // Hier werden spaeter eventuell die geparsten Signaturen gespeichert um das nicht mehrfach machen zu muessen
    134135
    135136
    136137        // Beitraege laden
    137         $PostsData = $this->_loadPostsData($TopicID,$Start);
    138         $PostsCounter = count($PostsData);
    139 
    140         //$akt_cell_class = $TCONFIG['cell_classes']['start_class'];
    141         for($i = 0; $i < $PostsCounter; $i++) {
    142             $curPost = &$PostsData[$i];
     138        $postsData = $this->_loadPostsData($topicID,$start);
     139        $postsCounter = count($postsData);
     140
     141        //$akt_cell_class = $tCONFIG['cell_classes']['start_class'];
     142        for($i = 0; $i < $postsCounter; $i++) {
     143            $curPost = &$postsData[$i];
    143144
    144145            $curEditedText = '';
    145             if($curPost['PostEditedCounter'] > 0 && $curPost['PostShowEditings'] == 1)
    146                 $curEditedText = sprintf($this->Modules['Language']->getString('edited_post_text'),$curPost['PostEditedCounter'],$curPost['PostLastEditorID']);
    147 
    148             $Show = array(
    149                 'EditButton'=>FALSE,
    150                 'DeleteButton'=>FALSE
     146            if($curPost['postEditedCounter'] > 0 && $curPost['postShowEditings'] == 1)
     147                $curEditedText = sprintf($this->modules['Language']->getString('edited_post_text'),$curPost['postEditedCounter'],$curPost['postLastEditorID']);
     148
     149            $show = array(
     150                'editButton'=>FALSE,
     151                'deleteButton'=>FALSE
    151152            );
    152153
    153             if($this->Modules['Auth']->isLoggedIn() == 1) {
    154                 if($this->Modules['Auth']->getValue('UserIsAdmin') == 1 || $this->Modules['Auth']->getValue('UserIsSupermod') == 1 || $AuthData['AuthIsMod'] == 1 || (($ForumData['AuthMembersEditPosts'] == 1 && $AuthData['AuthEditPosts'] == 1 || $ForumData['AuthMembersEditPosts'] != 1 && $AuthData['AuthEditPosts'] == 1) && USER_ID == $curPost['PosterID'])) {
    155                     $Show['EditButton'] = TRUE;
    156                     if($curPost['PostID'] != $TopicData['TopicFirstPostID'])
    157                         $Show['DeleteButton'] = TRUE;
    158                 }
    159             }
    160 
    161             $curPostDateTime = Functions::toDateTime($curPost['PostTimestamp']);
     154            if($this->modules['Auth']->isLoggedIn() == 1) {
     155                if($this->modules['Auth']->getValue('userIsAdmin') == 1 || $this->modules['Auth']->getValue('userIsSupermod') == 1 || $authData['authIsMod'] == 1 || (($forumData['authMembersEditPosts'] == 1 && $authData['authEditPosts'] == 1 || $forumData['authEditPostsMembers'] != 1 && $authData['authEditPosts'] == 1) && USERID == $curPost['posterID'])) {
     156                    $show['editButton'] = TRUE;
     157                    if($curPost['postID'] != $topicData['topicFirstPostID'])
     158                        $show['deleteButton'] = TRUE;
     159                }
     160            }
     161
     162            $curPostDateTime = Functions::toDateTime($curPost['postTimestamp']);
    162163
    163164
     
    166167            //
    167168            $curPosterNick = $curPosterRankText = $curPosterRankPic = $curPosterIDText = $curPosterAvatar = '';
    168             if($curPost['PosterID'] == 0) {
    169                 $curPosterNick = $curPost['PostGuestNick'];
    170                 $curPosterRankText = $this->Modules['Language']->getString('Guest');
     169            if($curPost['posterID'] == 0) {
     170                $curPosterNick = $curPost['postGuestNick'];
     171                $curPosterRankText = $this->modules['Language']->getString('Guest');
    171172            } else {
    172                 $curPosterNick = '<a href="'.INDEXFILE.'?Action=ViewProfile&amp;ProfileID='.$curPost['PosterID'].'&amp;'.MYSID.'">'.$curPost['PostPosterNick'].'</a>';
    173                 $curPosterIDText = sprintf($this->Modules['Language']->getString('ID_x'),$curPost['PosterID']);
     173                $curPosterNick = '<a href="'.INDEXFILE.'?action=ViewProfile&amp;profileID='.$curPost['posterID'].'&amp;'.MYSID.'">'.$curPost['postPosterNick'].'</a>';
     174                $curPosterIDText = sprintf($this->modules['Language']->getString('ID_x'),$curPost['posterID']);
    174175
    175176
     
    179180                // nicht doch aus Versehen anzeigen l?sst
    180181                //
    181                 if($curPost['PostPosterHideEmail'] == 1) $curPost['PosterEmail'] = '';
     182                if($curPost['postPosterHideEmail'] == 1) $curPost['posterEmail'] = '';
    182183
    183184
     
    185186                // Avatar
    186187                //
    187                 if($this->Modules['Config']->getValue('enable_avatars') == 1 && $curPost['PostPosterAvatarAddress'] != '')
    188                     $curPosterAvatar = '<img src="'.$curPost['PostPosterAvatarAddress'].'" alt="" border="0"/>';
     188                if($this->modules['Config']->getValue('enable_avatars') == 1 && $curPost['postPosterAvatarAddress'] != '')
     189                    $curPosterAvatar = '<img src="'.$curPost['postPosterAvatarAddress'].'" alt="" border="0"/>';
    189190
    190191
     
    192193                // Rangbild und Rangtext des Users festlegen
    193194                //
    194                 if($curPost['PostPosterRankID'] != 0) { // Falls der User einen speziellen Rang zugewiessen bekommen hat...
    195                     $curPosterRankText = $RanksData[1][$curPost['PostPosterRankID']]['RankName']; // ...den Namen des Rang verwenden...
    196                     $curPosterRankPic = $RanksData[1][$curPost['PostPosterRankID']]['RankGfx']; // ...und das Bild des Rangs verwenden
    197                 }
    198                 elseif($curPost['PostPosterIsAdmin'] == 1) { // Falls der User Administrator ist...
    199                     $curPosterRankText = $this->Modules['Language']->getString('rank_administrator'); // ...seinen Rang darauf setzen...
    200                     $curPosterRankPic = '<img src="'.$this->Modules['Config']->getValue('admin_rank_pic').'" alt="" border="0"/>'; // ...und das entsprechende Bild verwenden
    201                 }
    202                 elseif($curPost['PostPosterIsSupermod'] == 1) { // Falls der User Supermoderator ist...
    203                     $curPosterRankText = $this->Modules['Language']->getString('rank_supermoderator'); // ...seinen Rang darauf setzen...
    204                     $curPosterRankPic = '<img src="'.$this->Modules['Config']->getValue('supermod_rank_pic').'" alt="" border="0"/>'; // ...und das entsprechende Bild verwenden
    205                 }
    206                 elseif(isset($ForumModIDs[$curPost['PosterID']]) == TRUE) { // Falls der User Moderator ist...
    207