93. File Comparison Report

Produced on Mon May 12 13:04:46 2008 UTC. This report uses XHTML and CSS2, and is best viewed with a reasonably standards compliant browser such as the latest version of Firefox or Internet Explorer. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

93.1 Files compared

# Location File Last Modified
1 Dolphin-v.6.0.5\groups\orca\classes DbForum.php Mon Jan 21 04:08:28 2008 UTC
2 Dolphin-v.6.1.0\groups\orca\classes DbForum.php Thu Apr 10 09:53:30 2008 UTC

93.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 33 1032
Changed 29 84
Inserted 3 16
Removed 0 0

93.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

93.4 Active regular expressions

No regular expressions were active.

93.5 Comparison detail

1   <?php   1   <?php
2   /********* ********** ********** ********** ********** ********** ********** ******   2   /********* ********** ********** ********** ********** ********** ********** ******
3   *                              O rca Intera ctive Foru m Script   3   *                              O rca Intera ctive Foru m Script
4   *                                  ---------- -----
  4   *                                  ---------- ----- --
5   *       Start e d                :   Fr   Nov   10   2006   5   *       b e gin                   :   Fr   Nov   10   2006
6   *       C opyright          :   (C)   200 7   BoonEx   Group   6   *       c opyright               :   (C)   200 6   BoonEx   Group
7   *       W ebsite                :   http://www .boonex.co m
  7   *       w ebsite                 :   http://www .boonex.co m /
8   * This fil e is part  of Orca -  Interactiv e Forum Sc ript   8   * This fil e is part  of Orca -  Interactiv e Forum Sc ript
9   *   9   *
10   *   Orca   is   free   software ;   y o u   c a n   r ed
i
s
tribut e   i t   and/ o r   modify   i t   u n d e r  
  10   *   Orca   is   free   software .   This   w o rk   is   li c e n s ed   under   a   Creat i ve   Common s   At tribut
i
o n   3.0   L i ce n s e .  
11   * the term s of the G NU General  Public Li cense as p ublished b y the    11   * http://c reativecom mons.org/l icenses/by /3.0/
12   * Free Sof tware Foun dation; ei ther versi on 2 of th    
13   * License,  or any la ter versio n.          
14   *   12   *
15   * Orca is  distribute d in the h ope that i t will be  useful, bu t WITHOUT  ANY WARRAN TY;   13   * Orca is  distribute d in the h ope that i t will be  useful, bu t WITHOUT  ANY WARRAN TY;
16   * without  even the i mplied war ranty of   MERCHANTAB ILITY or F ITNESS FOR  A PARTICU LAR PURPOS E.   14   * without  even the i mplied war ranty of   MERCHANTAB ILITY or F ITNESS FOR  A PARTICU LAR PURPOS E.
17   *   See   the   GNU   G e n e
r al   Pu b l i c   License   for   more   details.  
  15   *   See   the   Cr e ativ e   Commons   Att r i b ut i on   3.0   License   for   more   details.  
18   *   You   should   have   received   a   copy   of   the   GNU   G e n e
r al   Pu b l i c   License   along   with   Orca,  
  16   *   You   should   have   received   a   copy   of   the   Cr e ativ e   Commons   Att r i b ut i on   3.0   License   along   with   Orca,  
19   * see lice nse.txt fi le; if not , write to  marketing @boonex.co m   17   * see lice nse.txt fi le; if not , write to  marketing @boonex.co m
20   ********** ********** ********** ********** ********** ********** ********** *****/   18   ********** ********** ********** ********** ********** ********** ********** *****/
21     19  
22     20  
23   define ('T F_FORUM',           ' `'.$gConf[ 'db']['pre fix'].'for um`');   21   define ('T F_FORUM',           ' `'.$gConf[ 'db']['pre fix'].'for um`');
24   define ('T F_FORUM_CA T',      ' `'.$gConf[ 'db']['pre fix'].'for um_cat`');   22   define ('T F_FORUM_CA T',      ' `'.$gConf[ 'db']['pre fix'].'for um_cat`');
25   define ('T F_FORUM_PO ST',     ' `'.$gConf[ 'db']['pre fix'].'for um_post`') ;   23   define ('T F_FORUM_PO ST',     ' `'.$gConf[ 'db']['pre fix'].'for um_post`') ;
26   define ('T F_FORUM_TO PIC',    ' `'.$gConf[ 'db']['pre fix'].'for um_topic`' );   24   define ('T F_FORUM_TO PIC',    ' `'.$gConf[ 'db']['pre fix'].'for um_topic`' );
27   define ('T F_FORUM_VO TE',     ' `'.$gConf[ 'db']['pre fix'].'for um_vote`') ;   25   define ('T F_FORUM_VO TE',     ' `'.$gConf[ 'db']['pre fix'].'for um_vote`') ;
28   define ('T F_FORUM_RE PORT',   ' `'.$gConf[ 'db']['pre fix'].'for um_report` ');   26   define ('T F_FORUM_RE PORT',   ' `'.$gConf[ 'db']['pre fix'].'for um_report` ');
29   define ('T F_FORUM_FL AG',     ' `'.$gConf[ 'db']['pre fix'].'for um_flag`') ;   27   define ('T F_FORUM_FL AG',     ' `'.$gConf[ 'db']['pre fix'].'for um_flag`') ;
30   define ('T F_FORUM_US ER_ACT', ' `'.$gConf[ 'db']['pre fix'].'for um_user_ac tivity`');   28   define ('T F_FORUM_US ER_ACT', ' `'.$gConf[ 'db']['pre fix'].'for um_user_ac tivity`');
31   define ('T F_FORUM_US ER_STAT',' `'.$gConf[ 'db']['pre fix'].'for um_user_st at`');   29   define ('T F_FORUM_US ER_STAT',' `'.$gConf[ 'db']['pre fix'].'for um_user_st at`');
32     30  
33   // forum d atabase fu nctions   31   // forum d atabase fu nctions
34     32  
35   class DbFo rum extend s BxDb   33   class DbFo rum extend s BxDb
36   {   34   {
37     35  
38       /**   36       /**
39        * con structor   37        * con structor
40        */   38        */
41       functi on DbForum  ()   39       functi on DbForum  ()
42       {   40       {
43           gl obal $gCon f;   41           gl obal $gCon f;
44           pa rent::BxDb  ($gConf[' db']['db'] , $gConf[' db']['user '], $gConf ['db']['pw d'], $gCon f['db']['h ost'], $gC onf['db'][ 'port'], $ gConf['db' ]['sock']) ;   42           pa rent::BxDb  ($gConf[' db']['db'] , $gConf[' db']['user '], $gConf ['db']['pw d'], $gCon f['db']['h ost'], $gC onf['db'][ 'port'], $ gConf['db' ]['sock']) ;
45       }   43       }
46          44       
47       functi on searchM essages ($ s, $u, $f,  $type, $p osts, $lim it)   45       functi on searchM essages ($ s, $u, $f,  $type, $p osts, $lim it)
48       {   46       {
49           gl obal $gCon f;   47           gl obal $gCon f;
50     48  
51           if  ($limit >  500)  $li mit = 500;   49           if  ($limit >  500)  $li mit = 500;
52     50  
53           $u  = trim ($ u);   51           $u  = trim ($ u);
54           $s  = trim ($ s);   52           $s  = trim ($ s);
55     53  
56           $s ql_w = '';   54           $s ql_w = '';
57     55  
58           if  (strlen($ s) > 2)    56           if  (strlen($ s) > 2) 
59           {   57           {
60                $s = pre g_replace  ('/\s+/',  '%', $s);   58                $s = pre g_replace  ('/\s+/',  '%', $s);
61                if ('msg s' == $typ e) // mess ages   59                if ('msg s' == $typ e) // mess ages
62                    $sql _w .= " AN D `post_te xt` LIKE ' %$s%' ";   60                    $sql _w .= " AN D `post_te xt` LIKE ' %$s%' ";
63                else //  titles   61                else //  titles
64                    $sql _w .= " AN D `topic_t itle` LIKE  '%$s%' ";   62                    $sql _w .= " AN D `topic_t itle` LIKE  '%$s%' ";
65           }   63           }
66     64  
67           if  (strlen($ u) > 2)    65           if  (strlen($ u) > 2) 
68           {               66           {            
69                $u = pre g_replace  ('/\s+/',  '%', $u);   67                $u = pre g_replace  ('/\s+/',  '%', $u);
70                if ('msg s' == $typ e)   68                if ('msg s' == $typ e)
71                    $sql _w .= " AN D `user` L IKE '%$u%'  ";   69                    $sql _w .= " AN D `user` L IKE '%$u%'  ";
72                else   70                else
73                    $sql _w .= " AN D `first_p ost_user`  LIKE '%$u% ' ";   71                    $sql _w .= " AN D `first_p ost_user`  LIKE '%$u% ' ";
74           }   72           }
75              73           
76           if  ($f > 0)   74           if  ($f > 0)
77           {   75           {
78                $sql_w . = " AND t3 .`forum_id ` = '$f' " ;   76                $sql_w . = " AND t3 .`forum_id ` = '$f' " ;
79           }   77           }
80     78  
81           $x  = '';   79           $x  = '';
82           if  ($posts)  $x .= ', ` post_text`  ';   80           if  ($posts)  $x .= ', ` post_text`  ';
83     81  
84     82  
85           if  ('msgs' = = $type)   83           if  ('msgs' = = $type)
86           {   84           {
87                return $ this->getA ll ("   85                return $ this->getA ll ("
88        SELECT   DISTINCTRO W   t4.`cat_id `,  
`cat_name` ,   t3.`forum_ id`,  
`forum_tit le`,   t2.`topic_ id`,  
`topic_tit le`,   `post_id`,   DATE_FORMA T(FROM_UNI XTIME(t1.` when`),'{$ gConf['dat e_format'] }')   AS   `date`,   `user`   $x
  86        SELECT   DISTINCTRO W   t4.`cat_id `,   t4.`cat_ur i`,   `cat_name` ,   t3.`forum_ id`,   t3.`forum_ uri`,   `forum_tit le`,   t2.`topic_ id`,   t2.`topic_ uri`,   `topic_tit le`,   `post_id`,   DATE_FORMA T(FROM_UNI XTIME(t1.` when`),'{$ gConf['dat e_format'] }')   AS   `date`,   `user`   $x
89       FROM "  . TF_FORU M_POST . "  AS t1   87       FROM "  . TF_FORU M_POST . "  AS t1
90       INNER  JOIN  " .  TF_FORUM_T OPIC . " A S t2 ON (t 2.`topic_i d` = t1.`t opic_id`)   88       INNER  JOIN  " .  TF_FORUM_T OPIC . " A S t2 ON (t 2.`topic_i d` = t1.`t opic_id`)
91       INNER  JOIN  " .  TF_FORUM .  " AS t3 O N (t1.`for um_id` = t 3.`forum_i d`)   89       INNER  JOIN  " .  TF_FORUM .  " AS t3 O N (t1.`for um_id` = t 3.`forum_i d`)
92       INNER  JOIN " . T F_FORUM_CA T . " AS t 4 ON (t3.` cat_id` =  t4.`cat_id `)   90       INNER  JOIN " . T F_FORUM_CA T . " AS t 4 ON (t3.` cat_id` =  t4.`cat_id `)
93       WHERE  1 $sql_w   91       WHERE  1 $sql_w
94       ORDER  BY `last_p ost_when`  DESC   92       ORDER  BY `last_p ost_when`  DESC
95       LIMIT  $limit");   93       LIMIT  $limit");
96           }   94           }
97           el se // sear ch titles       95           el se // sear ch titles    
98           {   96           {
99                return $ this->getA ll ("   97                return $ this->getA ll ("
100        SELECT   t4.`cat_id `,  
`cat_name` ,   t3.`forum_ id`,  
`forum_tit le`,   t2.`topic_ id`,  
`topic_tit le`,   DATE_FORMA T(FROM_UNI XTIME(`fir st_post_wh en`),'{$gC onf['date_ format']}' )   AS   `date`,   `first_pos t_user`   AS   `user`
  98        SELECT   t4.`cat_id `,   t4.`cat_ur i`,   `cat_name` ,   t3.`forum_ id`,   t3.`forum_ uri`,   `forum_tit le`,   t2.`topic_ id`,   t2.`topic_ uri`,   `topic_tit le`,   DATE_FORMA T(FROM_UNI XTIME(`fir st_post_wh en`),'{$gC onf['date_ format']}' )   AS   `date`,   `first_pos t_user`   AS   `user`
101       FROM "  . TF_FORU M_TOPIC .  " AS t2   99       FROM "  . TF_FORU M_TOPIC .  " AS t2
102       INNER  JOIN  " .  TF_FORUM .  " AS t3 O N (t2.`for um_id` = t 3.`forum_i d`)   100       INNER  JOIN  " .  TF_FORUM .  " AS t3 O N (t2.`for um_id` = t 3.`forum_i d`)
103       INNER  JOIN " . T F_FORUM_CA T . " AS t 4 ON (t3.` cat_id` =  t4.`cat_id `)   101       INNER  JOIN " . T F_FORUM_CA T . " AS t 4 ON (t3.` cat_id` =  t4.`cat_id `)
104       WHERE  1 $sql_w   102       WHERE  1 $sql_w
105       ORDER  BY `last_p ost_when`  DESC   103       ORDER  BY `last_p ost_when`  DESC
106       LIMIT  $limit");   104       LIMIT  $limit");
107           }   105           }
108       }   106       }
109     107  
110       functi on getCate gs ()   108       functi on getCate gs ()
111       {   109       {
112            return   $this->get All   ("SELECT   `cat_id`,   `cat_
name`,   `cat_icon`   FROM   "   .   TF_FORUM_C AT   .   "   ORDER   BY   `cat_order `   ASC");
  110            return   $this->get All   ("SELECT   `cat_id`,   `cat_ uri`,   `cat_ name`,   `cat_icon`   FROM   "   .   TF_FORUM_C AT   .   "   ORDER   BY   `cat_order `   ASC");
113       }   111       }
114     112  
115       functi on getCatT itle ($id)   113       functi on getCatT itle ($id)
116       {   114       {
117           re turn $this ->getOne ( "SELECT `c at_name` F ROM " . TF _FORUM_CAT  . " WHERE  `cat_id`  = '$id'");   115           re turn $this ->getOne ( "SELECT `c at_name` F ROM " . TF _FORUM_CAT  . " WHERE  `cat_id`  = '$id'");
118       }   116       }
119     117  
    118       functi on getCat  ($id)
    119       {
    120           re turn $this ->getRow ( "SELECT `c at_id`, `c at_uri`, ` cat_name`  FROM " . T F_FORUM_CA T . " WHER E `cat_id`  = '$id'") ;
    121       }
    122  
120       functi on getForu ms ($c)   123       functi on getForu ms ($c)
121       {   124       {
122           gl obal $gCon f;   125           gl obal $gCon f;
123            return   $this->get All   (   "SELECT   `forum_id` ,   `
cat_id`,   `forum_tit le`,   `forum_des c`,   `forum_typ e`,   `forum_pos ts`,   `forum_top ics`,   DATE_FORMA T(FROM_UNI XTIME(`for um_last`), '{$gConf[' date_forma t']}')   AS   `forum_las t`,   `forum_las t`   AS   `forum_las t_ts`   FROM   "   .   TF_FORUM   .   ($c   ?   "   WHERE   `cat_id`   =   '$c'":   '')   .   '   ORDER   BY   `forum_id`   ASC');
  126            return   $this->get All   (   "SELECT   `forum_id` ,   ` forum_uri` ,   ` cat_id`,   `forum_tit le`,   `forum_des c`,   `forum_typ e`,   `forum_pos ts`,   `forum_top ics`,   DATE_FORMA T(FROM_UNI XTIME(`for um_last`), '{$gConf[' date_forma t']}')   AS   `forum_las t`,   `forum_las t`   AS   `forum_las t_ts`   FROM   "   .   TF_FORUM   .   ($c   ?   "   WHERE   `cat_id`   =   '$c'":   '')   .   '   ORDER   BY   `forum_id`   ASC');
124       }   127       }
125     128  
126        function   getForum  
($ f )
  129        function   getForum sByCatUri   ($ c )
127       {   130       {
128           gl obal $gCon f;   131           gl obal $gCon f;
129            return   $this->get Row   (   "SELECT   `
cat_id`,   `
forum_titl e`,   `forum_des c`,   `forum_typ e`,   `forum_pos ts`,  
DATE_FORMA T(FROM_UNI XTIME(`for um_last`), '{$gConf[' date_forma t']}')   AS   `forum_las t`  
FROM   "   .   TF_FORUM   .   "  
WHERE   `
forum_id`   =   '$f '   LIMIT   1" );
  132            return   $this->get All   (   "SELECT   ` forum_id`,   `forum_uri `,   `tc`.` cat_id`,   ` tc`.`cat_u ri`,   ` forum_titl e`,   `forum_des c`,   `forum_typ e`,   `forum_pos ts`,   `forum_top ics`,   DATE_FORMA T(FROM_UNI XTIME(`for um_last`), '{$gConf[' date_forma t']}')   AS   `forum_las t` ,   `forum_las t`   AS   `forum_las t_ts`   FROM   "   .   TF_FORUM   .   "   AS   `tf`   INNER   JOIN   "   .   TF_FORUM_C AT   .   "   AS   `tc`   ON   (`tf`.`cat _id`   =   `tc`.`cat_ id`)   "   .   ($c   ?   "   WHERE   ` cat_uri`   =   '$c'":   '')   .   '   ORDER   BY   ` forum_id`   ASC '
);
130       }   133       }    
131     134  
132        function   getForum IdByTopicI d   ($ topic_id )   135        function   getForum  
($ f )
133       {   136       {
134           re turn $this ->getOne (  "SELECT ` forum_id`  FROM" . TF _FORUM_TOP IC . " WHE RE `topic_ id` = '$to pic_id' LI MIT 1");   137           re turn $this ->getForum By ('forum _id', $f);
135       }   138       }
136          139  
137        function   getForum Type By Top i cId   ($ topic_id )   140        function   getForum
By Ur i  
($ f )
138       {   141       {
139           re turn $this ->getOne (  "SELECT ` forum_type ` FROM " .  TF_FORUM  . " INNER  JOIN " . T F_FORUM_TO PIC . " US ING(`forum _id`) WHER E `topic_i d` = '$top ic_id' LIM IT 1");   142           re turn $this ->getForum By ('forum _uri', $f) ;
140       }   143       }
141     144  
142        function   getForum Type By PostId   ($ po s t_id )   145        function   getForum
By  
($
s Name,   $sVal )
143       {   146       {
144           re turn $this ->getOne (  "SELECT ` forum_type ` FROM " .  TF_FORUM  . " INNER  JOIN " . T F_FORUM_PO ST . " USI NG(`forum_ id`) WHERE  `post_id`  = '$post_ id' LIMIT  1");   147           gl obal $gCon f;
    148           re turn $this ->getRow (  "SELECT ` cat_id`, ` forum_id`,  `forum_ur i`, `forum _title`, ` forum_desc `, `forum_ type`, `fo rum_posts` , DATE_FOR MAT(FROM_U NIXTIME(`f orum_last` ),'{$gConf ['date_for mat']}') A S `forum_l ast` FROM  " . TF_FOR UM . " WHE RE `$sName ` = '$sVal ' LIMIT 1" );
145       }   149       }
146     150  
147        function   getForum Id ByPostId   ($post_id)   151        function   getForum
ByPostId   ($post_id)
148       {   152       {
149            return   $this->get One   (   "SELECT   `
forum_id`  
FROM   "   .   TF_FORUM
_POST   .   "  
WHERE   `post_id`   =   '$post_id'   LIMIT   1");
  153            return   $this->get Row   (   "SELECT   ` tf`.` forum_id` ,   `tf`.`foru m_uri`,   `tf`.`foru m_type`   FROM   "   .   TF_FORUM   .   "   AS   `tf`   INNER   JOIN   "   .   TF_FORUM _POST   .   "   USING(`for um_id`)   WHERE   `post_id`   =   '$post_id'   LIMIT   1");
150       }   154       }
151     155  
152       functi on getPost Ids ($p)   156       functi on getPost Ids ($p)
153       {   157       {
154           re turn $this ->getRow (  "SELECT ` forum_id`,  `topic_id ` FROM " .  TF_FORUM_ POST . " W HERE `post _id` = '$p ' LIMIT 1" );   158           re turn $this ->getRow (  "SELECT ` forum_id`,  `topic_id ` FROM " .  TF_FORUM_ POST . " W HERE `post _id` = '$p ' LIMIT 1" );
155       }   159       }
156     160  
157       functi on getTopi csNum ($f)   161       functi on getTopi csNum ($f)
158       {   162       {
159           re turn $this ->getOne ( "SELECT CO UNT(`topic _id`) FROM  " . TF_FO RUM_TOPIC  . " WHERE  `forum_id`  = '$f'");   163           re turn $this ->getOne ( "SELECT CO UNT(`topic _id`) FROM  " . TF_FO RUM_TOPIC  . " WHERE  `forum_id`  = '$f'");
160       }   164       }
161     165  
162       functi on getTopi cs ($f, $s tart)   166       functi on getTopi cs ($f, $s tart)
163       {   167       {
164           gl obal $gCon f;   168           gl obal $gCon f;
165            return   $this->get All   (   "SELECT   f1.`topic_ id`,  
`topic_tit le`,   `first_pos t_user`,   DATE_FORMA T(FROM_UNI XTIME(`fir st_post_wh en`),'{$gC onf['date_ format']}' )   AS   `first_whe n`,   `last_post _user`,   DATE_FORMA T(FROM_UNI XTIME(`las t_post_whe n`),'{$gCo nf['date_f ormat']}')   AS   `last_when `,   `last_post _when`,   `topic_pos ts`   AS   `count_pos ts`,   `topic_sti cky`,   `topic_loc ked`   FROM   "   .   TF_FORUM_T OPIC   .   "   AS   f1   WHERE   f1.`forum_ id`   =   '$f'   ORDER   BY   `topic_sti cky`   DESC,   `last_post _when`   DESC   LIMIT   $start,   {$gConf['t opics_per_ page']}");
  169  
    170            return   $this->get All   (   "SELECT   f1.`topic_ id`,   f1.`topic_ uri`,   `topic_tit le`,   `first_pos t_user`,   DATE_FORMA T(FROM_UNI XTIME(`fir st_post_wh en`),'{$gC onf['date_ format']}' )   AS   `first_whe n`,   `last_post _user`,   DATE_FORMA T(FROM_UNI XTIME(`las t_post_whe n`),'{$gCo nf['date_f ormat']}')   AS   `last_when `,   `last_post _when`,   `topic_pos ts`   AS   `count_pos ts`,   `topic_sti cky`,   `topic_loc ked`   FROM   "   .   TF_FORUM_T OPIC   .   "   AS   f1   WHERE   f1.`forum_ id`   =   '$f'   ORDER   BY   `topic_sti cky`   DESC,   `last_post _when`   DESC   LIMIT   $start,   {$gConf['t opics_per_ page']}");
166       }   171       }
167     172  
168       functi on getMyFl aggedTopic s ($u)   173       functi on getMyFl aggedTopic s ($u)
169       {   174       {
170           gl obal $gCon f;   175           gl obal $gCon f;
171     176  
172            $sql   =   "SELECT   f1.`topic_ id`,  
`topic_tit le`,   `last_post _when`,   `topic_pos ts`   AS   `count_pos ts`   FROM   "   .   TF_FORUM_T OPIC   .   "   AS   f1   INNER   JOIN   "    .   TF_FORUM_F LAG   .   "   AS   f2   USING   (`topic_id `)   WHERE   f2.`user`   =   '$u'   ORDER   BY   `last_post _when`   DESC";
  177            $sql   =   "SELECT   f1.`topic_ id`,   f1.`topic_ uri`,   `topic_tit le`,   `last_post _when`,   `topic_pos ts`   AS   `count_pos ts`   FROM   "   .   TF_FORUM_T OPIC   .   "   AS   f1   INNER   JOIN   "    .   TF_FORUM_F LAG   .   "   AS   f2   USING   (`topic_id `)   WHERE   f2.`user`   =   '$u'   ORDER   BY   `last_post _when`   DESC";
173     178  
174           re turn $this ->getAll ( $sql);   179           re turn $this ->getAll ( $sql);
175       }   180       }
176     181  
177       functi on getMyTh readsTopic s ($u)   182       functi on getMyTh readsTopic s ($u)
178       {   183       {
179           gl obal $gCon f;   184           gl obal $gCon f;
180     185  
181            $sql   =   "SELECT   DISTINCTRO W   f1.`topic_ id`,  
`topic_tit le`,   `last_post _when`,   `topic_pos ts`   AS   `count_pos ts`   FROM   "   .   TF_FORUM_T OPIC   .   "   AS   f1   INNER   JOIN   "    .   TF_FORUM_P OST   .   "   AS   f2   USING   (`topic_id `)   WHERE   f2.`user`   =   '$u'   ORDER   BY   `last_post _when`   DESC";
  186            $sql   =   "SELECT   DISTINCTRO W   f1.`topic_ id`,   f1.`topic_ uri`,   `topic_tit le`,   `last_post _when`,   `topic_pos ts`   AS   `count_pos ts`   FROM   "   .   TF_FORUM_T OPIC   .   "   AS   f1   INNER   JOIN   "    .   TF_FORUM_P OST   .   "   AS   f2   USING   (`topic_id `)   WHERE   f2.`user`   =   '$u'   ORDER   BY   `last_post _when`   DESC";
182     187  
183           re turn $this ->getAll ( $sql);   188           re turn $this ->getAll ( $sql);
184       }   189       }
185     190  
186       functi on getTopi c ($t)   191       functi on getTopi c ($t)
187       {   192       {
188            return   $this->get Row   (   "SELECT   `topic_id` ,   `topic_
title`,   `forum_tit le`,   `forum_des c`,   `forum_typ e`,  
f1.`forum_ id`,   `cat_id`,   `topic_loc ked`   FROM   "   .   TF_FORUM_T OPIC   .   "   AS   f1   INNER   JOIN   "   .   TF_FORUM   .   "   USING   (`forum_id `)   WHERE   f1.` topic_id `   =   '$ t '   LIMIT   1");
  193           re turn $this ->getTopic By ('topic _id', $t);
    194       }
    195  
    196       functi on getTopi cByUri ($t )
    197       {
    198           re turn $this ->getTopic By ('topic _uri', $t) ;
    199       }
    200  
    201       functi on getTopi cBy ($sNam e, $sVal)
    202       {
    203            return   $this->get Row   (   "SELECT   `topic_id` ,   `topic_ uri`,   `topic_ title`,   `forum_tit le`,   `forum_des c`,   `forum_typ e`,   `forum_uri `,   f1.`forum_ id`,   `cat_id`,   `topic_loc ked`   FROM   "   .   TF_FORUM_T OPIC   .   "   AS   f1   INNER   JOIN   "   .   TF_FORUM   .   "   USING   (`forum_id `)   WHERE   f1.` $sName `   =   '$ sVal '   LIMIT   1");
189       }   204       }
190     205  
191       functi on getPost User ($p)   206       functi on getPost User ($p)
192       {   207       {
193           re turn $this ->getOne (  "SELECT ` user` FROM  " . TF_FO RUM_POST .  " WHERE ` post_id` =  '$p'");   208           re turn $this ->getOne (  "SELECT ` user` FROM  " . TF_FO RUM_POST .  " WHERE ` post_id` =  '$p'");
194       }   209       }
195     210  
196       functi on getTopi cPost ($t,  $x = 'las t')   211       functi on getTopi cPost ($t,  $x = 'las t')
197       {   212       {
198           gl obal $gCon f;   213           gl obal $gCon f;
199           re turn $this ->getRow (  "SELECT ` user`, t1. `when` AS  `when2`, D ATE_FORMAT (FROM_UNIX TIME(`when `),'{$gCon f['date_fo rmat']}')  AS `when`  FROM " . T F_FORUM_PO ST . " AS  t1 WHERE ` topic_id`  = '$t' ORD ER BY t1.` when` " .  ('last' ==  $x ?  'DE SC' : 'ASC ') .  "  L IMIT 1");   214           re turn $this ->getRow (  "SELECT ` user`, t1. `when` AS  `when2`, D ATE_FORMAT (FROM_UNIX TIME(`when `),'{$gCon f['date_fo rmat']}')  AS `when`  FROM " . T F_FORUM_PO ST . " AS  t1 WHERE ` topic_id`  = '$t' ORD ER BY t1.` when` " .  ('last' ==  $x ?  'DE SC' : 'ASC ') .  "  L IMIT 1");
200       }   215       }
201     216  
202       functi on getTopi cDesc ($t)   217       functi on getTopi cDesc ($t)
203       {   218       {
204           gl obal $gCon f;   219           gl obal $gCon f;
205           re turn $this ->getOne (  "SELECT L EFT(`post_ text`, {$g Conf['topi cs_desc_le n']}) FROM  " . TF_FO RUM_POST .  " WHERE ` topic_id`  = '$t' ORD ER BY `whe n` ASC LIM IT 1");   220           re turn $this ->getOne (  "SELECT L EFT(`post_ text`, {$g Conf['topi cs_desc_le n']}) FROM  " . TF_FO RUM_POST .  " WHERE ` topic_id`  = '$t' ORD ER BY `whe n` ASC LIM IT 1");
206       }   221       }
207     222  
208       functi on editPos t ($p, $te xt)   223       functi on editPos t ($p, $te xt)
209       {   224       {
210           re turn $this ->query (" UPDATE " .  TF_FORUM_ POST . " S ET `post_t ext` = '$t ext' WHERE  post_id =  '$p'");   225           re turn $this ->query (" UPDATE " .  TF_FORUM_ POST . " S ET `post_t ext` = '$t ext' WHERE  post_id =  '$p'");
211       }   226       }
212     227  
213        function   newTopic   ($f,   $title,   $text,   $sticky,   $user
)
  228        function   newTopic   ($f,   $title,   $text,   $sticky,   $user ,   $uri )
214       {           229       {        
215           $t s = time ( );   230           $t s = time ( );
216     231  
217           $s ticky = $s ticky ? $t s : 0;   232           $s ticky = $s ticky ? $t s : 0;
218     233  
219           //  add topic  title   234           //  add topic  title
220            if   (!$this->q uery   ("INSERT   INTO"   .   TF_FORUM_T OPIC   .   "   SET   `topic_pos ts`   =   1,   `forum_id`   =   '$f',   `topic_tit le`   =   '$title',   `when`   =   '$ts',   `first_pos t_user`   =   '$user',   `first_pos t_when`   =   '$ts',   `last_post _user`   =   '$user',   `last_post _when`   =   '$ts',   `topic_sti cky`   =   '$sticky'
"))
  235            if   (!$this->q uery   ("INSERT   INTO"   .   TF_FORUM_T OPIC   .   "   SET   `topic_pos ts`   =   1,   `forum_id`   =   '$f',   `topic_tit le`   =   '$title',   `when`   =   '$ts',   `first_pos t_user`   =   '$user',   `first_pos t_when`   =   '$ts',   `last_post _user`   =   '$user',   `last_post _when`   =   '$ts',   `topic_sti cky`   =   '$sticky' ,   `topic_uri `   =   '$uri' "))
221                return f alse;   236                return f alse;
222     237  
223           //  get topic _id   238           //  get topic _id
224           if  (!($topic _id = $thi s->getOne  ("SELECT ` topic_id`  FROM " . T F_FORUM_TO PIC . " WH ERE `forum _id` = '$f ' AND `whe n` = '$ts' ")))   239           if  (!($topic _id = $thi s->getOne  ("SELECT ` topic_id`  FROM " . T F_FORUM_TO PIC . " WH ERE `forum _id` = '$f ' AND `whe n` = '$ts' ")))
225                return f alse;   240                return f alse;
226     241  
227           //  add topic  post   242           //  add topic  post
228           if  (!$this-> query ("IN SERT INTO"  . TF_FORU M_POST . "  SET `topi c_id` = '$ topic_id',  `forum_id ` = '$f',  `user` = ' $user', `p ost_text`  = '$text',  `when` =  '$ts'"))   243           if  (!$this-> query ("IN SERT INTO"  . TF_FORU M_POST . "  SET `topi c_id` = '$ topic_id',  `forum_id ` = '$f',  `user` = ' $user', `p ost_text`  = '$text',  `when` =  '$ts'"))
229                return f alse;   244                return f alse;
230     245  
231           //  increase  number of  forum post s and set  timeof las t post   246           //  increase  number of  forum post s and set  timeof las t post
232           if  (!$this-> query ("UP DATE" . TF _FORUM . "  SET `foru m_posts` =  `forum_po sts` + 1,  `forum_top ics` = `fo rum_topics ` + 1, `fo rum_last`  = '$ts' WH ERE `forum _id` = '$f '"))   247           if  (!$this-> query ("UP DATE" . TF _FORUM . "  SET `foru m_posts` =  `forum_po sts` + 1,  `forum_top ics` = `fo rum_topics ` + 1, `fo rum_last`  = '$ts' WH ERE `forum _id` = '$f '"))
233                return f alse;   248                return f alse;
234     249  
235           //  update us er stats   250           //  update us er stats
236           if  (!$this-> userStatsI nc ($user,  $ts))   251           if  (!$this-> userStatsI nc ($user,  $ts))
237                return f alse;   252                return f alse;
238     253  
239           re turn true;   254           re turn true;
240       }   255       }
241     256  
242       functi on deleteP ost ($post _id)   257       functi on deleteP ost ($post _id)
243       {   258       {
244           $a  = $this-> getPostIds  ($post_id );   259           $a  = $this-> getPostIds  ($post_id );
245     260  
246           $u ser = $thi s->getPost User ($pos t_id);   261           $u ser = $thi s->getPost User ($pos t_id);
247     262  
248           //  delete po st   263           //  delete po st
249           if  (!$this-> query ("DE LETE FROM  " . TF_FOR UM_POST .  " WHERE `p ost_id` =  '$post_id' "))   264           if  (!$this-> query ("DE LETE FROM  " . TF_FOR UM_POST .  " WHERE `p ost_id` =  '$post_id' "))
250                return f alse;   265                return f alse;
251     266  
252           //  decrease  number of  forum post s   267           //  decrease  number of  forum post s
253           if  (!$this-> query ("UP DATE" . TF _FORUM . "  SET `foru m_posts` =  `forum_po sts` - 1 W HERE `foru m_id` = '{ $a['forum_ id']}'"))   268           if  (!$this-> query ("UP DATE" . TF _FORUM . "  SET `foru m_posts` =  `forum_po sts` - 1 W HERE `foru m_id` = '{ $a['forum_ id']}'"))
254                return f alse;   269                return f alse;
255     270  
256           //  update us er stats   271           //  update us er stats
257           if  (!$this-> userStatsD ec ($user) )   272           if  (!$this-> userStatsD ec ($user) )
258                return f alse;   273                return f alse;
259     274  
260           //  update la st post   275           //  update la st post
261           $l ast = $thi s->getTopi cPost ($a[ 'topic_id' ], 'last') ;   276           $l ast = $thi s->getTopi cPost ($a[ 'topic_id' ], 'last') ;
262     277  
263           //  decrease  number of  topic post s   278           //  decrease  number of  topic post s
264           if  (!$this-> query ("UP DATE" . TF _FORUM_TOP IC . " SET  `topic_po sts` = `to pic_posts`  - 1, `las t_post_use r` = '{$la st['user'] }', `last_ post_when`  = '{$last ['when2']} ' WHERE `t opic_id` =  '{$a['top ic_id']}'" ))   279           if  (!$this-> query ("UP DATE" . TF _FORUM_TOP IC . " SET  `topic_po sts` = `to pic_posts`  - 1, `las t_post_use r` = '{$la st['user'] }', `last_ post_when`  = '{$last ['when2']} ' WHERE `t opic_id` =  '{$a['top ic_id']}'" ))
265                return f alse;   280                return f alse;
266                   281                
267           //  delete to pic   282           //  delete to pic
268           if  (0 == $th is->getOne ("SELECT C OUNT(*) FR OM " . TF_ FORUM_POST  . " WHERE  `topic_id ` = '{$a[' topic_id'] }'"))   283           if  (0 == $th is->getOne ("SELECT C OUNT(*) FR OM " . TF_ FORUM_POST  . " WHERE  `topic_id ` = '{$a[' topic_id'] }'"))
269           {   284           {
270                if ($thi s->query(" DELETE FRO M " . TF_F ORUM_TOPIC  . " WHERE  `topic_id ` = '{$a[' topic_id'] }'"))   285                if ($thi s->query(" DELETE FRO M " . TF_F ORUM_TOPIC  . " WHERE  `topic_id ` = '{$a[' topic_id'] }'"))
271                {   286                {
272                    // d escrease n umber of t opics                        287                    // d escrease n umber of t opics                     
273                    $thi s->query ( "UPDATE "  . TF_FORUM  . " SET ` forum_topi cs` = `for um_topics`  - 1 WHERE  `forum_id ` = '{$a[' forum_id'] }'");   288                    $thi s->query ( "UPDATE "  . TF_FORUM  . " SET ` forum_topi cs` = `for um_topics`  - 1 WHERE  `forum_id ` = '{$a[' forum_id'] }'");
274                }   289                }
275           }   290           }
276     291  
277           re turn true;   292           re turn true;
278       }   293       }
279     294  
280       functi on postRep ly ($forum _id, $topi c_id, $tex t, $user)   295       functi on postRep ly ($forum _id, $topi c_id, $tex t, $user)
281       {           296       {        
282           $t s = time ( );   297           $t s = time ( );
283     298  
284           //  add topic  post   299           //  add topic  post
285           if  (!$this-> query ("IN SERT INTO"  . TF_FORU M_POST . "  SET `topi c_id` = '$ topic_id',  `forum_id ` = '$foru m_id', `us er` = '$us er', `post _text` = ' $text', `w hen` = '$t s'"))   300           if  (!$this-> query ("IN SERT INTO"  . TF_FORU M_POST . "  SET `topi c_id` = '$ topic_id',  `forum_id ` = '$foru m_id', `us er` = '$us er', `post _text` = ' $text', `w hen` = '$t s'"))
286                return f alse;   301                return f alse;
287     302  
288           //  increase  number of  forum post s and set  timeof las t post   303           //  increase  number of  forum post s and set  timeof las t post
289           if  (!$this-> query ("UP DATE" . TF _FORUM . "  SET `foru m_posts` =  `forum_po sts` + 1,  `forum_las t` = '$ts'  WHERE `fo rum_id` =  '$forum_id '"))   304           if  (!$this-> query ("UP DATE" . TF _FORUM . "  SET `foru m_posts` =  `forum_po sts` + 1,  `forum_las t` = '$ts'  WHERE `fo rum_id` =  '$forum_id '"))
290                return f alse;   305                return f alse;
291     306  
292           //  update la st post   307           //  update la st post
293           $l ast = $thi s->getTopi cPost ($to pic_id, 'l ast');   308           $l ast = $thi s->getTopi cPost ($to pic_id, 'l ast');
294     309  
295           //  increase  number of  topic post s   310           //  increase  number of  topic post s
296           if  (!$this-> query ("UP DATE" . TF _FORUM_TOP IC . " SET  `topic_po sts` = `to pic_posts`  + 1, `las t_post_use r` = '{$la st['user'] }', `last_ post_when`  = '{$last ['when2']} ' WHERE `t opic_id` =  '{$topic_ id}'"))   311           if  (!$this-> query ("UP DATE" . TF _FORUM_TOP IC . " SET  `topic_po sts` = `to pic_posts`  + 1, `las t_post_use r` = '{$la st['user'] }', `last_ post_when`  = '{$last ['when2']} ' WHERE `t opic_id` =  '{$topic_ id}'"))
297                return f alse;   312                return f alse;
298     313  
299           //  update us er stats   314           //  update us er stats
300           if  (!$this-> userStatsI nc ($user,  $ts))   315           if  (!$this-> userStatsI nc ($user,  $ts))
301                return f alse;   316                return f alse;
302     317  
303           re turn true;   318           re turn true;
304       }   319       }
305     320  
306       functi on getPost s ($t, $u)   321       functi on getPost s ($t, $u)
307       {   322       {
    323           re turn $this ->getPosts By ($u, '` ft`.`topic _id`', $t) ;
    324       }
    325  
    326       functi on getPost sByUri ($t , $u)
    327       {
    328           re turn $this ->getPosts By ($u, '` ft`.`topic _uri`', $t );
    329       }
    330  
    331       functi on getPost sBy ($u, $ sName, $sV al)
    332       {
308           gl obal $gCon f;   333           gl obal $gCon f;
309              334           
310           $s ql_add1 =  "'-1' AS ` voted`, 0  as `vote_u ser_point` , ";   335           $s ql_add1 =  "'-1' AS ` voted`, 0  as `vote_u ser_point` , ";
311           $s ql_add2 =  '';   336           $s ql_add2 =  '';
312              337           
313           if  ($u)   338           if  ($u)
314           {   339           {
315                $sql_add 1 = "(1 -  ISNULL(t2. `post_id`) ) AS `vote d`, t2.`vo te_point`  as `vote_u ser_point` , ";   340                $sql_add 1 = "(1 -  ISNULL(t2. `post_id`) ) AS `vote d`, t2.`vo te_point`  as `vote_u ser_point` , ";
316                $sql_add 2 = " LEFT  JOIN " .  TF_FORUM_V OTE . " AS  t2 ON ( t 2.`user_na me` = '$u'  AND t1.`p ost_id` =  t2.`post_i d`) ";   341                $sql_add 2 = " LEFT  JOIN " .  TF_FORUM_V OTE . " AS  t2 ON ( t 2.`user_na me` = '$u'  AND t1.`p ost_id` =  t2.`post_i d`) ";
317           }   342           }
318              343           
319            $sql   =    "SELECT   `f
orum_id`,   `t
opic_id`,  
t1
.`post_id` ,   `user`,   `post_text `,   `votes`,   $sql_add1   DATE_FORMA T(FROM_UNI XTIME(t1.` when`),'{$ gConf['dat e_format'] }')   AS   `when`   FROM   "   .   TF_FORUM_P OST   .   "   AS   t1   $sql_add2   WH ER E   `topic_id`   =  
'$ t '   ORDER   BY   t1.`when`   ASC";
  344            $sql   =    "SELECT   `f t`.`f orum_id`,   `t 1`.`t opic_id`,   ` t1 ` .`post_id` ,   `user`,   `post_text `,   `votes`,   $sql_add1   DATE_FORMA T(FROM_UNI XTIME(t1.` when`),'{$ gConf['dat e_format'] }')   AS   `when`   FROM   "   .   TF_FORUM_P OST   .   "   AS   t1   $sql_add2   INN ER   JOIN   "   .   TF_FORUM_T OPIC   .   "   AS   `ft`    ON   (`ft`. `topic_id`   =   `t1`.`topi c_id`)   WHERE   $sName   =   '$ sVal '   ORDER   BY   t1.`when`   ASC";
320                       345  
321           re turn $this ->getAll ( $sql);   346           re turn $this ->getAll ( $sql);
322       }   347       }    
323     348  
    349  
324       functi on getUser PostsList  ($user, $s ort, $limi t = 10)   350       functi on getUser PostsList  ($user, $s ort, $limi t = 10)
325       {   351       {
326           gl obal $gCon f;   352           gl obal $gCon f;
327     353  
328           sw itch ($sor t)   354           sw itch ($sor t)
329           {   355           {
330                case 'to p':   356                case 'to p':
331                    $ord er_by = "  t1.`votes`  DESC ";   357                    $ord er_by = "  t1.`votes`  DESC ";
332                    brea k;   358                    brea k;
333                case 'rn d':   359                case 'rn d':
334                    $ord er_by = "  RAND() ";   360                    $ord er_by = "  RAND() ";
335                    brea k;   361                    brea k;
336                default:   362                default:
337                    $ord er_by = "  t1.`when`  DESC ";   363                    $ord er_by = "  t1.`when`  DESC ";
338           }   364           }
339                       365                    
340           $s ql =  "   366           $s ql =  "
341            SELECT   t1.`forum_ id`,   t1.`topic_ id`,   t2.`topic_
title`,   t1.`post_i d`,   t1.`user`,   LEFT(`post _text`,   256)   AS   `post_text `,   DATE_FORMA T(FROM_UNI XTIME(t1.` when`),'{$ gConf['dat e_format'] }')   AS   `when`
  367            SELECT   t1.`forum_ id`,   t1.`topic_ id`,   t2.`topic_ uri`,   t2.`topic_ title`,   t1.`post_i d`,   t1.`user`,   LEFT(`post _text`,   256)   AS   `post_text `,   DATE_FORMA T(FROM_UNI XTIME(t1.` when`),'{$ gConf['dat e_format'] }')   AS   `when`
342                FROM " .  TF_FORUM_ POST . " A S t1   368                FROM " .  TF_FORUM_ POST . " A S t1
343           IN NER JOIN "  . TF_FORU M_TOPIC .  " AS t2   369           IN NER JOIN "  . TF_FORU M_TOPIC .  " AS t2
344                ON (t1.` topic_id`  = t2.`topi c_id`)   370                ON (t1.` topic_id`  = t2.`topi c_id`)
345           WH ERE  t1.`u ser` = '$u ser'   371           WH ERE  t1.`u ser` = '$u ser'
346           OR DER BY " .  $order_by  . "   372           OR DER BY " .  $order_by  . "
347           LI MIT $limit ";         373           LI MIT $limit ";      
348              374           
349           re turn $this ->getAll ( $sql);   375           re turn $this ->getAll ( $sql);
350       }   376       }
351                       377                    
352       functi on getAllP ostsList ( $sort, $li mit = 10)   378       functi on getAllP ostsList ( $sort, $li mit = 10)
353       {   379       {
354           gl obal $gCon f;   380           gl obal $gCon f;
355     381  
356           sw itch ($sor t)   382           sw itch ($sor t)
357           {   383           {
358                case 'to p':   384                case 'to p':
359                    $ord er_by = "  t1.`votes`  DESC ";   385                    $ord er_by = "  t1.`votes`  DESC ";
360                    brea k;   386                    brea k;
361                case 'rn d':   387                case 'rn d':
362                    $ord er_by = "  RAND() ";   388                    $ord er_by = "  RAND() ";
363                    brea k;   389                    brea k;
364                default:   390                default:
365                    $ord er_by = "  t1.`when`  DESC ";   391                    $ord er_by = "  t1.`when`  DESC ";
366           }   392           }
367                       393                    
368           $s ql =  "   394           $s ql =  "
369            SELECT   t1.`forum_ id`,   t1.`topic_ id`,   t2.`topic_
title`,   t1.`post_i d`,   t1.`user`,   LEFT(`post _text`,   256)   AS   `post_text `,   DATE_FORMA T(FROM_UNI XTIME(t1.` when`),'{$ gConf['dat e_format'] }')   AS   `when`
  395            SELECT   t1.`forum_ id`,   t1.`topic_ id`,   t2.`topic_ uri`,   t2.`topic_ title`,   t1.`post_i d`,   t1.`user`,   LEFT(`post _text`,   256)   AS   `post_text `,   DATE_FORMA T(FROM_UNI XTIME(t1.` when`),'{$ gConf['dat e_format'] }')   AS   `when`
370                FROM " .  TF_FORUM_ POST . " A S t1   396                FROM " .  TF_FORUM_ POST . " A S t1
371           IN NER JOIN "  . TF_FORU M_TOPIC .  " AS t2   397           IN NER JOIN "  . TF_FORU M_TOPIC .  " AS t2
372                ON (t1.` topic_id`  = t2.`topi c_id`)   398                ON (t1.` topic_id`  = t2.`topi c_id`)
373           WH ERE  1   399           WH ERE  1
374           OR DER BY " .  $order_by  . "   400           OR DER BY " .  $order_by  . "
375           LI MIT $limit ";         401           LI MIT $limit ";      
376              402           
377           re turn $this ->getAll ( $sql);   403           re turn $this ->getAll ( $sql);
378       }   404       }
379     405           
380       functi on getPost  ($post_id , $u)   406       functi on getPost  ($post_id , $u)
381       {   407       {
382           gl obal $gCon f;   408           gl obal $gCon f;
383              409           
384           $s ql_add1 =  "'-1' AS ` voted`, 0  as `vote_u ser_point` , ";   410           $s ql_add1 =  "'-1' AS ` voted`, 0  as `vote_u ser_point` , ";
385           $s ql_add2 =  '';   411           $s ql_add2 =  '';
386              412           
387           if  ($u)   413           if  ($u)
388           {   414           {
389                $sql_add 1 = "(1 -  ISNULL(t2. `post_id`) ) AS `vote d`, t2.`vo te_point`  as `vote_u ser_point` , ";   415                $sql_add 1 = "(1 -  ISNULL(t2. `post_id`) ) AS `vote d`, t2.`vo te_point`  as `vote_u ser_point` , ";
390                $sql_add 2 = " LEFT  JOIN " .  TF_FORUM_V OTE . " AS  t2 ON ( t 2.`user_na me` = '$u'  AND t1.`p ost_id` =  t2.`post_i d`) ";   416                $sql_add 2 = " LEFT  JOIN " .  TF_FORUM_V OTE . " AS  t2 ON ( t 2.`user_na me` = '$u'  AND t1.`p ost_id` =  t2.`post_i d`) ";
391           }   417           }
392              418           
393           $s ql =  "SEL ECT `forum _id`, `top ic_id`, t1 .`post_id` , `user`,  `post_text `, `votes` , $sql_add 1 DATE_FOR MAT(FROM_U NIXTIME(t1 .`when`),' {$gConf['d ate_format ']}') AS ` when` FROM  " . TF_FO RUM_POST .  " AS t1 $ sql_add2 W HERE t1.`p ost_id` =  '$post_id'  LIMIT 1";            419           $s ql =  "SEL ECT `forum _id`, `top ic_id`, t1 .`post_id` , `user`,  `post_text `, `votes` , $sql_add 1 DATE_FOR MAT(FROM_U NIXTIME(t1 .`when`),' {$gConf['d ate_format ']}') AS ` when` FROM  " . TF_FO RUM_POST .  " AS t1 $ sql_add2 W HERE t1.`p ost_id` =  '$post_id'  LIMIT 1";         
394           re turn $this ->getRow ( $sql);   420           re turn $this ->getRow ( $sql);
395       }   421       }
396     422  
397          423       
398       functi on getUser Posts ($u)   424       functi on getUser Posts ($u)
399       {   425       {
400           // return $th is->getOne  ("SELECT  COUNT(`pos t_id`) FRO M " . TF_F ORUM_POST  . " WHERE  `user` = ' $u'");   426           // return $th is->getOne  ("SELECT  COUNT(`pos t_id`) FRO M " . TF_F ORUM_POST  . " WHERE  `user` = ' $u'");
401           re turn (int) $this->get One ("SELE CT `posts`  FROM " .  TF_FORUM_U SER_STAT .  " WHERE ` user` = '$ u'");   427           re turn (int) $this->get One ("SELE CT `posts`  FROM " .  TF_FORUM_U SER_STAT .  " WHERE ` user` = '$ u'");
402       }   428       }
403     429  
404       functi on insertV ote ($post _id, $u, $ vote)   430       functi on insertV ote ($post _id, $u, $ vote)
405       {                   431       {                
406           $s ql = "INSE RT INTO "  . TF_FORUM _VOTE . "  SET `user_ name` = '$ u', `post_ id` = '$po st_id', `v ote_point`  = " . ($v ote > 0 ?  '1' : '-1' ) . ", `vo te_when` =  UNIX_TIME STAMP()";         432           $s ql = "INSE RT INTO "  . TF_FORUM _VOTE . "  SET `user_ name` = '$ u', `post_ id` = '$po st_id', `v ote_point`  = " . ($v ote > 0 ?  '1' : '-1' ) . ", `vo te_when` =  UNIX_TIME STAMP()";      
407           if  (!$this-> query($sql )) return  false;   433           if  (!$this-> query($sql )) return  false;
408              434           
409           $s ql = "UPDA TE " . TF_ FORUM_POST  . " SET ` votes` = ` votes` " .  ($vote >  0 ? '+ 1'  : '- 1') .  " WHERE ` post_id` =  '$post_id ' LIMIT 1" ;   435           $s ql = "UPDA TE " . TF_ FORUM_POST  . " SET ` votes` = ` votes` " .  ($vote >  0 ? '+ 1'  : '- 1') .  " WHERE ` post_id` =  '$post_id ' LIMIT 1" ;
410           re turn $this ->query($s ql);   436           re turn $this ->query($s ql);
411       }   437       }
412          438  
413        function   getTopic Id ByPostId   ($post_id)   439        function   getTopic
ByPostId   ($post_id)
414       {   440       {
415            $sql   =   "SELECT   `topic_id`  
FROM   "   .   TF_FORUM_P OST   .   "   WHERE   `post_id`   =   '$post_id' ";
  441            $sql   =   "SELECT   `topic_id` ,   `forum_id`   FROM   "   .   TF_FORUM_P OST   .   "   WHERE   `post_id`   =   '$post_id' ";
416            return   $this->get One   ($sql);            442            return   $this->get Row   ($sql);         
417       }   443       }
418     444  
419       functi on report  ($post_id,  $u)   445       functi on report  ($post_id,  $u)
420       {   446       {
421           $s ql = "INSE RT INTO "  . TF_FORUM _REPORT .  " SET `use r_name` =  '$u', `pos t_id` = '$ post_id'";   447           $s ql = "INSE RT INTO "  . TF_FORUM _REPORT .  " SET `use r_name` =  '$u', `pos t_id` = '$ post_id'";
422           if  (!$this-> query($sql )) return  false;   448           if  (!$this-> query($sql )) return  false;
423              449           
424           $s ql = "UPDA TE " . TF_ FORUM_POST  . " SET ` reports` =  `reports`  + 1 WHERE  `post_id`  = '$post_ id' LIMIT  1";   450           $s ql = "UPDA TE " . TF_ FORUM_POST  . " SET ` reports` =  `reports`  + 1 WHERE  `post_id`  = '$post_ id' LIMIT  1";
425           re turn $this ->query($s ql);   451           re turn $this ->query($s ql);
426       }   452       }
427     453  
428       functi on isFlagg ed ($topic _id, $u)   454       functi on isFlagg ed ($topic _id, $u)
429       {   455       {
430           $s ql = "SELE CT `topic_ id` FROM "  . TF_FORU M_FLAG . "  WHERE `us er` = '$u'  AND `topi c_id` = '$ topic_id'" ;   456           $s ql = "SELE CT `topic_ id` FROM "  . TF_FORU M_FLAG . "  WHERE `us er` = '$u'  AND `topi c_id` = '$ topic_id'" ;
431           re turn $this ->getOne ( $sql);   457           re turn $this ->getOne ( $sql);
432       }   458       }
433     459  
434       functi on flag ($ topic_id,  $u)   460       functi on flag ($ topic_id,  $u)
435       {   461       {
436           $s ql = "INSE RT INTO "  . TF_FORUM _FLAG . "  SET `user`  = '$u', ` topic_id`  = '$topic_ id', `when ` = UNIX_T IMESTAMP() ";   462           $s ql = "INSE RT INTO "  . TF_FORUM _FLAG . "  SET `user`  = '$u', ` topic_id`  = '$topic_ id', `when ` = UNIX_T IMESTAMP() ";
437           re turn $this ->query ($ sql);   463           re turn $this ->query ($ sql);
438       }   464       }
439     465  
440       functi on unflag  ($topic_id , $u)   466       functi on unflag  ($topic_id , $u)
441       {   467       {
442           $s ql = "DELE TE FROM "  . TF_FORUM _FLAG . "  WHERE `use r` = '$u'  AND `topic _id` = '$t opic_id' L IMIT 1";   468           $s ql = "DELE TE FROM "  . TF_FORUM _FLAG . "  WHERE `use r` = '$u'  AND `topic _id` = '$t opic_id' L IMIT 1";
443           re turn $this ->query ($ sql);   469           re turn $this ->query ($ sql);
444       }   470       }
445     471  
446       functi on updateU serActivit y ($user)   472       functi on updateU serActivit y ($user)
447       {   473       {
448           gl obal $gCon f;   474           gl obal $gCon f;
449     475  
450           $s ql = "SELE CT `act_cu rrent` FRO M " . TF_F ORUM_USER_ ACT . " WH ERE `user`   = '$user ' LIMIT 1" ;   476           $s ql = "SELE CT `act_cu rrent` FRO M " . TF_F ORUM_USER_ ACT . " WH ERE `user`   = '$user ' LIMIT 1" ;
451           $c urrent = ( int)$this- >getOne ($ sql);           477           $c urrent = ( int)$this- >getOne ($ sql);        
452     478  
453           if  ((time()  - $current ) > $gConf ['online'] )   479           if  ((time()  - $current ) > $gConf ['online'] )
454           {   480           {
455                if ($cur rent)   481                if ($cur rent)
456                    $sql  = "UPDATE  " . TF_FO RUM_USER_A CT . " SET  `act_curr ent`='" .  time() . " ', `act_la st` = '$cu rrent' WHE RE `user`  = '$user'" ;   482                    $sql  = "UPDATE  " . TF_FO RUM_USER_A CT . " SET  `act_curr ent`='" .  time() . " ', `act_la st` = '$cu rrent' WHE RE `user`  = '$user'" ;
457                else   483                else
458                    $sql  = "INSERT  INTO " .  TF_FORUM_U SER_ACT .  " (`user`, `act_curre nt`,`act_l ast`) VALU ES ('$user ', '" . ti me() . "',  '$current ')";   484                    $sql  = "INSERT  INTO " .  TF_FORUM_U SER_ACT .  " (`user`, `act_curre nt`,`act_l ast`) VALU ES ('$user ', '" . ti me() . "',  '$current ')";
459           }   485           }
460           el se   486           el se
461           {   487           {
462                $sql = " UPDATE " .  TF_FORUM_ USER_ACT .  " SET `ac t_current` ='" . time () . "' WH ERE `user`  = '$user' ";   488                $sql = " UPDATE " .  TF_FORUM_ USER_ACT .  " SET `ac t_current` ='" . time () . "' WH ERE `user`  = '$user' ";
463           }   489           }
464     490  
465           re turn $this ->query ($ sql);   491           re turn $this ->query ($ sql);
466       }   492       }
467     493  
468       functi on updateU serLastAct ivity ($us er)   494       functi on updateU serLastAct ivity ($us er)
469       {   495       {
470           gl obal $gCon f;   496           gl obal $gCon f;
471     497  
472           $t  = time();   498           $t  = time();
473              499           
474           $s ql = "UPDA TE " . TF_ FORUM_USER _ACT . " S ET `act_cu rrent`='$t ', `act_la st` = '$t'  WHERE `us er` = '$us er'";   500           $s ql = "UPDA TE " . TF_ FORUM_USER _ACT . " S ET `act_cu rrent`='$t ', `act_la st` = '$t'  WHERE `us er` = '$us er'";
475     501  
476           re turn $this ->query ($ sql);   502           re turn $this ->query ($ sql);
477       }   503       }
478     504  
479       functi on getUser LastActivi ty ($user)   505       functi on getUser LastActivi ty ($user)
480       {   506       {
481           $s ql = "SELE CT `act_la st` FROM "  . TF_FORU M_USER_ACT  . " WHERE  `user`  =  '$user' L IMIT 1";   507           $s ql = "SELE CT `act_la st` FROM "  . TF_FORU M_USER_ACT  . " WHERE  `user`  =  '$user' L IMIT 1";
482           re turn (int) $this->get One ($sql) ;   508           re turn (int) $this->get One ($sql) ;
483       }   509       }
484     510  
485       functi on getUser LastOnline Time ($use r)   511       functi on getUser LastOnline Time ($use r)
486       {   512       {
487           gl obal $gCon f;   513           gl obal $gCon f;
488           re turn $this ->getOne ( "SELECT DA TE_FORMAT( FROM_UNIXT IME(`act_c urrent`),' {$gConf['d ate_format ']}') AS ` act_curren t` FROM "  . TF_FORUM _USER_ACT  . " WHERE  `user`  =  '$user' LI MIT 1");   514           re turn $this ->getOne ( "SELECT DA TE_FORMAT( FROM_UNIXT IME(`act_c urrent`),' {$gConf['d ate_format ']}') AS ` act_curren t` FROM "  . TF_FORUM _USER_ACT  . " WHERE  `user`  =  '$user' LI MIT 1");
489       }   515       }
490     516  
491       functi on userSta tsInc ($us er, $when)   517       functi on userSta tsInc ($us er, $when)
492       {   518       {
493           $u  = $this-> getOne ("S ELECT `use r` FROM "  . TF_FORUM _USER_STAT  . " WHERE  `user` =  '$user'");   519           $u  = $this-> getOne ("S ELECT `use r` FROM "  . TF_FORUM _USER_STAT  . " WHERE  `user` =  '$user'");
494           if  ($u)   520           if  ($u)
495           {   521           {
496                $this->q uery ("UPD ATE " . TF _FORUM_USE R_STAT . "  SET `post s` = `post s` + 1, `u ser_last_p ost` = '$w hen' WHERE  `user` =  '$user'");   522                $this->q uery ("UPD ATE " . TF _FORUM_USE R_STAT . "  SET `post s` = `post s` + 1, `u ser_last_p ost` = '$w hen' WHERE  `user` =  '$user'");
497           }   523           }
498           el se   524           el se
499           {   525           {
500                $this->q uery ("INS ERT INTO "  . TF_FORU M_USER_STA T . " SET  `posts` =  1, `user_l ast_post`  = '$when',  `user` =  '$user'");   526                $this->q uery ("INS ERT INTO "  . TF_FORU M_USER_STA T . " SET  `posts` =  1, `user_l ast_post`  = '$when',  `user` =  '$user'");
501           }               527           }            
502       }   528       }
503     529  
504       functi on userSta tsDec ($us er)   530       functi on userSta tsDec ($us er)
505       {   531       {
506           $u  = $this-> getOne ("S ELECT `use r` FROM "  . TF_FORUM _USER_STAT  . " WHERE  `user` =  '$user'");   532           $u  = $this-> getOne ("S ELECT `use r` FROM "  . TF_FORUM _USER_STAT  . " WHERE  `user` =  '$user'");
507           if  (!$u) ret urn;   533           if  (!$u) ret urn;
508     534  
509           $w hen = $thi s->getOne  ("SELECT ` when` FROM  " . TF_FO RUM_POST .  " WHERE ` user` = '$ user' ORDE R BY `when ` DESC LIM IT 1");   535           $w hen = $thi s->getOne  ("SELECT ` when` FROM  " . TF_FO RUM_POST .  " WHERE ` user` = '$ user' ORDE R BY `when ` DESC LIM IT 1");
510     536  
511           re turn $this ->query (" UPDATE " .  TF_FORUM_ USER_STAT  . " SET `p osts` = `p osts` - 1,  `user_las t_post` =  '$when' WH ERE `user`  = '$user' ");   537           re turn $this ->query (" UPDATE " .  TF_FORUM_ USER_STAT  . " SET `p osts` = `p osts` - 1,  `user_las t_post` =  '$when' WH ERE `user`  = '$user' ");
512       }   538       }
513     539  
514       functi on getUser Stat ($u)   540       functi on getUser Stat ($u)
515       {   541       {
516           gl obal $gCon f;   542           gl obal $gCon f;
517     543  
518           re turn $this ->getRow ( "SELECT `p osts`, DAT E_FORMAT(F ROM_UNIXTI ME(`user_l ast_post`) ,'{$gConf[ 'date_form at']}') AS  `user_las t_post` FR OM " . TF_ FORUM_USER _STAT . "  WHERE `use r` = '$u'" );   544           re turn $this ->getRow ( "SELECT `p osts`, DAT E_FORMAT(F ROM_UNIXTI ME(`user_l ast_post`) ,'{$gConf[ 'date_form at']}') AS  `user_las t_post` FR OM " . TF_ FORUM_USER _STAT . "  WHERE `use r` = '$u'" );
519       }   545       }
520     546  
521       functi on getLive Posts ($c,  $ts)   547       functi on getLive Posts ($c,  $ts)
522       {   548       {
523           gl obal $gCon f;   549           gl obal $gCon f;
524     550  
525           $w here = '1' ;   551           $w here = '1' ;
526           $o rder = 'DE SC';   552           $o rder = 'DE SC';
527           if  ($ts)   553           if  ($ts)
528           {   554           {
529                $where =  "tp.`when ` > $ts";   555                $where =  "tp.`when ` > $ts";
530                $order =  'ASC';   556                $order =  'ASC';
531           }   557           }
532              558  
533            $sql   =   "SELECT   (UNIX_TIME STAMP()   -   tp.`when`)   AS   `sec`,   tp.`when`   AS   `ts`,   `tp`.`user `,   `tp`.`post _id`,   LEFT(`tp`. `post_text `,   {$gConf['l ive_tracke r_desc_len ']})   AS   `post_text `,   tt.`topic_ id`,  
`tt`.`topi c_title`,   tf.`forum_ id`,  
`tf`.`foru m_title`,   tc.`cat_id `,  
`tc`.`cat_ name`   FROM   "   .   TF_FORUM_P OST   .   "   AS   tp   INNER   JOIN   "   .   TF_FORUM_T OPIC   .   "   AS   tt   USING(`top ic_id`)   INNER   JOIN   "   .   TF_FORUM   .   "   AS   tf   ON   (tf.`forum _id`   =   tp.`forum_ id`   AND   `tt`.`foru m_id`   =   tf.`forum_ id`)   INNER   JOIN   "   .   TF_FORUM_C AT   .   "   AS   tc   USING(`cat _id`)   WHERE   $where   ORDER   BY   tp.`when`   $order   LIMIT   $c";
  559            $sql   =   "SELECT   (UNIX_TIME STAMP()   -   tp.`when`)   AS   `sec`,   tp.`when`   AS   `ts`,   `tp`.`user `,   `tp`.`post _id`,   LEFT(`tp`. `post_text `,   {$gConf['l ive_tracke r_desc_len ']})   AS   `post_text `,   tt.`topic_ id`,   tt.`topic_ uri`,   `tt`.`topi c_title`,   tf.`forum_ id`,   tf.`forum_ uri`,   `tf`.`foru m_title`,   tc.`cat_id `,   tc.`cat_ur i`,   `tc`.`cat_ name`   FROM   "   .   TF_FORUM_P OST   .   "   AS   tp   INNER   JOIN   "   .   TF_FORUM_T OPIC   .   "   AS   tt   USING(`top ic_id`)   INNER   JOIN   "   .   TF_FORUM   .   "   AS   tf   ON   (tf.`forum _id`   =   tp.`forum_ id`   AND   `tt`.`foru m_id`   =   tf.`forum_ id`)   INNER   JOIN   "   .   TF_FORUM_C AT   .   "   AS   tc   USING(`cat _id`)   WHERE   $where   ORDER   BY   tp.`when`   $order   LIMIT   $c";
534     560  
535          561       
536           re turn $this ->getAll ( $sql);   562           re turn $this ->getAll ( $sql);
537       }   563       }
538     564  
539     565  
540       functi on getNewP ostTs ($ts )   566       functi on getNewP ostTs ($ts )
541       {   567       {
542           re turn $this ->getOne(" SELECT `wh en` FROM "  . TF_FORU M_POST . "  WHERE `wh en` > '$ts ' ORDER BY  `when` AS C LIMIT 1" );   568           re turn $this ->getOne(" SELECT `wh en` FROM "  . TF_FORU M_POST . "  WHERE `wh en` > '$ts ' ORDER BY  `when` AS C LIMIT 1" );
543       }   569       }
544     570  
545   // private  functions   571   // private  functions
546     572  
547   }   573   }
548     574  
549     575  
550     576  
551     577  
552     578  
553   ?>   579   ?>