258. File Comparison Report

Produced on Mon May 12 13:05:39 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.

258.1 Files compared

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

258.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 31 1026
Changed 27 85
Inserted 3 16
Removed 0 0

258.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

258.4 Active regular expressions

No regular expressions were active.

258.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 TypeByTopi cId   ($ topic_id )   135        function   getForum  
($ f )
133       {   136       {
134           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");   137           re turn $this ->getForum By ('forum _id', $f);
135       }   138       }
136     139  
137        function   getForum Type By PostId   ($ post_id )   140        function   getForum
By Uri   ($ f )
138       {   141       {
139           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");   142           re turn $this ->getForum By ('forum _uri', $f) ;
140       }   143       }
141     144  
142        function   getForum Id By PostId   ($ po s t_id )   145        function   getForum
By  
($
s Name,   $sVal )
143       {   146       {
144            return   $this->get One   (   "SELECT   `
forum_id`  
FROM   "   .   TF_FORUM
_POST   .   "  
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" );
    149       }
    150  
    151       functi on getForu mByPostId  ($post_id)
    152       {
    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");
145       }   154       }
146     155  
147       functi on getPost Ids ($p)   156       functi on getPost Ids ($p)
148       {   157       {
149           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" );
150       }   159       }
151     160  
152       functi on getTopi csNum ($f)   161       functi on getTopi csNum ($f)
153       {   162       {
154           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'");
155       }   164       }
156     165  
157       functi on getTopi cs ($f, $s tart)   166       functi on getTopi cs ($f, $s tart)
158       {   167       {
159           gl obal $gCon f;   168           gl obal $gCon f;
160            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']}");
161       }   171       }
162     172  
163       functi on getMyFl aggedTopic s ($u)   173       functi on getMyFl aggedTopic s ($u)
164       {   174       {
165           gl obal $gCon f;   175           gl obal $gCon f;
166     176  
167            $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";
168     178  
169           re turn $this ->getAll ( $sql);   179           re turn $this ->getAll ( $sql);
170       }   180       }
171     181  
172       functi on getMyTh readsTopic s ($u)   182       functi on getMyTh readsTopic s ($u)
173       {   183       {
174           gl obal $gCon f;   184           gl obal $gCon f;
175     185  
176            $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";
177     187  
178           re turn $this ->getAll ( $sql);   188           re turn $this ->getAll ( $sql);
179       }   189       }
180     190  
181       functi on getTopi c ($t)   191       functi on getTopi c ($t)
182       {   192       {
183            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");
184       }   204       }
185     205  
186       functi on getPost User ($p)   206       functi on getPost User ($p)
187       {   207       {
188           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'");
189       }   209       }
190     210  
191       functi on getTopi cPost ($t,  $x = 'las t')   211       functi on getTopi cPost ($t,  $x = 'las t')
192       {   212       {
193           gl obal $gCon f;   213           gl obal $gCon f;
194           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");
195       }   215       }
196     216  
197       functi on getTopi cDesc ($t)   217       functi on getTopi cDesc ($t)
198       {   218       {
199           gl obal $gCon f;   219           gl obal $gCon f;
200           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");
201       }   221       }
202     222  
203       functi on editPos t ($p, $te xt)   223       functi on editPos t ($p, $te xt)
204       {   224       {
205           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'");
206       }   226       }
207     227  
208        function   newTopic   ($f,   $title,   $text,   $sticky,   $user
)
  228        function   newTopic   ($f,   $title,   $text,   $sticky,   $user ,   $uri )
209       {           229       {        
210           $t s = time ( );   230           $t s = time ( );
211     231  
212           $s ticky = $s ticky ? $t s : 0;   232           $s ticky = $s ticky ? $t s : 0;
213     233  
214           //  add topic  title   234           //  add topic  title
215            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' "))
216                return f alse;   236                return f alse;
217     237  
218           //  get topic _id   238           //  get topic _id
219           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' ")))
220                return f alse;   240                return f alse;
221     241  
222           //  add topic  post   242           //  add topic  post
223           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'"))
224                return f alse;   244                return f alse;
225     245  
226           //  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
227           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 '"))
228                return f alse;   248                return f alse;
229     249  
230           //  update us er stats   250           //  update us er stats
231           if  (!$this-> userStatsI nc ($user,  $ts))   251           if  (!$this-> userStatsI nc ($user,  $ts))
232                return f alse;   252                return f alse;
233     253  
234           re turn true;   254           re turn true;
235       }   255       }
236     256  
237       functi on deleteP ost ($post _id)   257       functi on deleteP ost ($post _id)
238       {   258       {
239           $a  = $this-> getPostIds  ($post_id );   259           $a  = $this-> getPostIds  ($post_id );
240     260  
241           $u ser = $thi s->getPost User ($pos t_id);   261           $u ser = $thi s->getPost User ($pos t_id);
242     262  
243           //  delete po st   263           //  delete po st
244           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' "))
245                return f alse;   265                return f alse;
246     266  
247           //  decrease  number of  forum post s   267           //  decrease  number of  forum post s
248           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']}'"))
249                return f alse;   269                return f alse;
250     270  
251           //  update us er stats   271           //  update us er stats
252           if  (!$this-> userStatsD ec ($user) )   272           if  (!$this-> userStatsD ec ($user) )
253                return f alse;   273                return f alse;
254     274  
255           //  update la st post   275           //  update la st post
256           $l ast = $thi s->getTopi cPost ($a[ 'topic_id' ], 'last') ;   276           $l ast = $thi s->getTopi cPost ($a[ 'topic_id' ], 'last') ;
257     277  
258           //  decrease  number of  topic post s   278           //  decrease  number of  topic post s
259           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']}'" ))
260                return f alse;   280                return f alse;
261                   281                
262           //  delete to pic   282           //  delete to pic
263           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'] }'"))
264           {   284           {
265                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'] }'"))
266                {   286                {
267                    // d escrease n umber of t opics                        287                    // d escrease n umber of t opics                     
268                    $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'] }'");
269                }   289                }
270           }   290           }
271     291  
272           re turn true;   292           re turn true;
273       }   293       }
274     294  
275       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)
276       {           296       {        
277           $t s = time ( );   297           $t s = time ( );
278     298  
279           //  add topic  post   299           //  add topic  post
280           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'"))
281                return f alse;   301                return f alse;
282     302  
283           //  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
284           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 '"))
285                return f alse;   305                return f alse;
286     306  
287           //  update la st post   307           //  update la st post
288           $l ast = $thi s->getTopi cPost ($to pic_id, 'l ast');   308           $l ast = $thi s->getTopi cPost ($to pic_id, 'l ast');
289     309  
290           //  increase  number of  topic post s   310           //  increase  number of  topic post s
291           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}'"))
292                return f alse;   312                return f alse;
293     313  
294           //  update us er stats   314           //  update us er stats
295           if  (!$this-> userStatsI nc ($user,  $ts))   315           if  (!$this-> userStatsI nc ($user,  $ts))
296                return f alse;   316                return f alse;
297     317  
298           re turn true;   318           re turn true;
299       }   319       }
300     320  
301       functi on getPost s ($t, $u)   321       functi on getPost s ($t, $u)
302       {   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       {
303           gl obal $gCon f;   333           gl obal $gCon f;
304              334           
305           $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` , ";
306           $s ql_add2 =  '';   336           $s ql_add2 =  '';
307              337           
308           if  ($u)   338           if  ($u)
309           {   339           {
310                $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` , ";
311                $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`) ";
312           }   342           }
313              343           
314            $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";
315                       345  
316           re turn $this ->getAll ( $sql);   346           re turn $this ->getAll ( $sql);
317       }   347       }    
318     348  
    349  
319       functi on getUser PostsList  ($user, $s ort, $limi t = 10)   350       functi on getUser PostsList  ($user, $s ort, $limi t = 10)
320       {   351       {
321           gl obal $gCon f;   352           gl obal $gCon f;
322     353  
323           sw itch ($sor t)   354           sw itch ($sor t)
324           {   355           {
325                case 'to p':   356                case 'to p':
326                    $ord er_by = "  t1.`votes`  DESC ";   357                    $ord er_by = "  t1.`votes`  DESC ";
327                    brea k;   358                    brea k;
328                case 'rn d':   359                case 'rn d':
329                    $ord er_by = "  RAND() ";   360                    $ord er_by = "  RAND() ";
330                    brea k;   361                    brea k;
331                default:   362                default:
332                    $ord er_by = "  t1.`when`  DESC ";   363                    $ord er_by = "  t1.`when`  DESC ";
333           }   364           }
334                       365                    
335           $s ql =  "   366           $s ql =  "
336            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`
337                FROM " .  TF_FORUM_ POST . " A S t1   368                FROM " .  TF_FORUM_ POST . " A S t1
338           IN NER JOIN "  . TF_FORU M_TOPIC .  " AS t2   369           IN NER JOIN "  . TF_FORU M_TOPIC .  " AS t2
339                ON (t1.` topic_id`  = t2.`topi c_id`)   370                ON (t1.` topic_id`  = t2.`topi c_id`)
340           WH ERE  t1.`u ser` = '$u ser'   371           WH ERE  t1.`u ser` = '$u ser'
341           OR DER BY " .  $order_by  . "   372           OR DER BY " .  $order_by  . "
342           LI MIT $limit ";         373           LI MIT $limit ";      
343              374           
344           re turn $this ->getAll ( $sql);   375           re turn $this ->getAll ( $sql);
345       }   376       }
346                       377                    
347       functi on getAllP ostsList ( $sort, $li mit = 10)   378       functi on getAllP ostsList ( $sort, $li mit = 10)
348       {   379       {
349           gl obal $gCon f;   380           gl obal $gCon f;
350     381  
351           sw itch ($sor t)   382           sw itch ($sor t)
352           {   383           {
353                case 'to p':   384                case 'to p':
354                    $ord er_by = "  t1.`votes`  DESC ";   385                    $ord er_by = "  t1.`votes`  DESC ";
355                    brea k;   386                    brea k;
356                case 'rn d':   387                case 'rn d':
357                    $ord er_by = "  RAND() ";   388                    $ord er_by = "  RAND() ";
358                    brea k;   389                    brea k;
359                default:   390                default:
360                    $ord er_by = "  t1.`when`  DESC ";   391                    $ord er_by = "  t1.`when`  DESC ";
361           }   392           }
362                       393                    
363           $s ql =  "   394           $s ql =  "
364            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`
365                FROM " .  TF_FORUM_ POST . " A S t1   396                FROM " .  TF_FORUM_ POST . " A S t1
366           IN NER JOIN "  . TF_FORU M_TOPIC .  " AS t2   397           IN NER JOIN "  . TF_FORU M_TOPIC .  " AS t2
367                ON (t1.` topic_id`  = t2.`topi c_id`)   398                ON (t1.` topic_id`  = t2.`topi c_id`)
368           WH ERE  1   399           WH ERE  1
369           OR DER BY " .  $order_by  . "   400           OR DER BY " .  $order_by  . "
370           LI MIT $limit ";         401           LI MIT $limit ";      
371              402           
372           re turn $this ->getAll ( $sql);   403           re turn $this ->getAll ( $sql);
373       }   404       }
374     405           
375       functi on getPost  ($post_id , $u)   406       functi on getPost  ($post_id , $u)
376       {   407       {
377           gl obal $gCon f;   408           gl obal $gCon f;
378              409           
379           $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` , ";
380           $s ql_add2 =  '';   411           $s ql_add2 =  '';
381              412           
382           if  ($u)   413           if  ($u)
383           {   414           {
384                $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` , ";
385                $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`) ";
386           }   417           }
387              418           
388           $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";         
389           re turn $this ->getRow ( $sql);   420           re turn $this ->getRow ( $sql);
390       }   421       }
391     422  
392          423       
393       functi on getUser Posts ($u)   424       functi on getUser Posts ($u)
394       {   425       {
395           // 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'");
396           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'");
397       }   428       }
398     429  
399       functi on insertV ote ($post _id, $u, $ vote)   430       functi on insertV ote ($post _id, $u, $ vote)
400       {                   431       {                
401           $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()";      
402           if  (!$this-> query($sql )) return  false;   433           if  (!$this-> query($sql )) return  false;
403              434           
404           $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" ;
405           re turn $this ->query($s ql);   436           re turn $this ->query($s ql);
406       }   437       }
407          438  
408        function   getTopic Id ByPostId   ($post_id)   439        function   getTopic
ByPostId   ($post_id)
409       {   440       {
410            $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' ";
411            return   $this->get One   ($sql);            442            return   $this->get Row   ($sql);         
412       }   443       }
413     444  
414       functi on report  ($post_id,  $u)   445       functi on report  ($post_id,  $u)
415       {   446       {
416           $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'";
417           if  (!$this-> query($sql )) return  false;   448           if  (!$this-> query($sql )) return  false;
418              449           
419           $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";
420           re turn $this ->query($s ql);   451           re turn $this ->query($s ql);
421       }   452       }
422     453  
423       functi on isFlagg ed ($topic _id, $u)   454       functi on isFlagg ed ($topic _id, $u)
424       {   455       {
425           $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'" ;
426           re turn $this ->getOne ( $sql);   457           re turn $this ->getOne ( $sql);
427       }   458       }
428     459  
429       functi on flag ($ topic_id,  $u)   460       functi on flag ($ topic_id,  $u)
430       {   461       {
431           $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() ";
432           re turn $this ->query ($ sql);   463           re turn $this ->query ($ sql);
433       }   464       }
434     465  
435       functi on unflag  ($topic_id , $u)   466       functi on unflag  ($topic_id , $u)
436       {   467       {
437           $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";
438           re turn $this ->query ($ sql);   469           re turn $this ->query ($ sql);
439       }   470       }
440     471  
441       functi on updateU serActivit y ($user)   472       functi on updateU serActivit y ($user)
442       {   473       {
443           gl obal $gCon f;   474           gl obal $gCon f;
444     475  
445           $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" ;
446           $c urrent = ( int)$this- >getOne ($ sql);           477           $c urrent = ( int)$this- >getOne ($ sql);        
447     478  
448           if  ((time()  - $current ) > $gConf ['online'] )   479           if  ((time()  - $current ) > $gConf ['online'] )
449           {   480           {
450                if ($cur rent)   481                if ($cur rent)
451                    $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'" ;
452                else   483                else
453                    $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 ')";
454           }   485           }
455           el se   486           el se
456           {   487           {
457                $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' ";
458           }   489           }
459     490  
460           re turn $this ->query ($ sql);   491           re turn $this ->query ($ sql);
461       }   492       }
462     493  
463       functi on updateU serLastAct ivity ($us er)   494       functi on updateU serLastAct ivity ($us er)
464       {   495       {
465           gl obal $gCon f;   496           gl obal $gCon f;
466     497  
467           $t  = time();   498           $t  = time();
468              499           
469           $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'";
470     501  
471           re turn $this ->query ($ sql);   502           re turn $this ->query ($ sql);
472       }   503       }
473     504  
474       functi on getUser LastActivi ty ($user)   505       functi on getUser LastActivi ty ($user)
475       {   506       {
476           $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";
477           re turn (int) $this->get One ($sql) ;   508           re turn (int) $this->get One ($sql) ;
478       }   509       }
479     510  
480       functi on getUser LastOnline Time ($use r)   511       functi on getUser LastOnline Time ($use r)
481       {   512       {
482           gl obal $gCon f;   513           gl obal $gCon f;
483           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");
484       }   515       }
485     516  
486       functi on userSta tsInc ($us er, $when)   517       functi on userSta tsInc ($us er, $when)
487       {   518       {
488           $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'");
489           if  ($u)   520           if  ($u)
490           {   521           {
491                $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'");
492           }   523           }
493           el se   524           el se
494           {   525           {
495                $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'");
496           }               527           }            
497       }   528       }
498     529  
499       functi on userSta tsDec ($us er)   530       functi on userSta tsDec ($us er)
500       {   531       {
501           $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'");
502           if  (!$u) ret urn;   533           if  (!$u) ret urn;
503     534  
504           $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");
505     536  
506           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' ");
507       }   538       }
508     539  
509       functi on getUser Stat ($u)   540       functi on getUser Stat ($u)
510       {   541       {
511           gl obal $gCon f;   542           gl obal $gCon f;
512     543  
513           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'" );
514       }   545       }
515     546  
516       functi on getLive Posts ($c,  $ts)   547       functi on getLive Posts ($c,  $ts)
517       {   548       {
518           gl obal $gCon f;   549           gl obal $gCon f;
519     550  
520           $w here = '1' ;   551           $w here = '1' ;
521           $o rder = 'DE SC';   552           $o rder = 'DE SC';
522           if  ($ts)   553           if  ($ts)
523           {   554           {
524                $where =  "tp.`when ` > $ts";   555                $where =  "tp.`when ` > $ts";
525                $order =  'ASC';   556                $order =  'ASC';
526           }   557           }
527              558  
528            $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";
529     560  
530          561       
531           re turn $this ->getAll ( $sql);   562           re turn $this ->getAll ( $sql);
532       }   563       }
533     564  
534     565  
535       functi on getNewP ostTs ($ts )   566       functi on getNewP ostTs ($ts )
536       {   567       {
537           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" );
538       }   569       }
539     570  
540   // private  functions   571   // private  functions
541     572  
542   }   573   }
543     574  
544     575  
545     576  
546     577  
547     578  
548   ?>   579   ?>