/[LeafOK_CVS]/fenglin/bbs/list.php
ViewVC logotype

Diff of /fenglin/bbs/list.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.5 by sysadm, Tue Apr 15 01:10:48 2025 UTC Revision 1.11 by sysadm, Wed Feb 11 10:59:14 2026 UTC
# Line 1  Line 1 
1  <?  <?php
2          require_once "../lib/db_open.inc.php";          require_once "../lib/db_open.inc.php";
3          require_once "./session_init.inc.php";          require_once "./session_init.inc.php";
4          require_once "./section_list_gen.inc.php";          require_once "./section_list_gen.inc.php";
# Line 179  Line 179 
179                          "username" => $row["username"],                          "username" => $row["username"],
180                          "major" => $row["major"],                          "major" => $row["major"],
181                  ));                  ));
182          }          }
183          mysqli_free_result($rs);          mysqli_free_result($rs);
184    
185          // Query articles          // Query articles
# Line 205  Line 205 
205    
206          if ($_SESSION["BBS_uid"] > 0)          if ($_SESSION["BBS_uid"] > 0)
207          {          {
208                  $aid_list = "-1";                  $aid_list = array(-1);
209    
210                  while ($row = mysqli_fetch_array($rs))                  while ($row = mysqli_fetch_array($rs))
211                  {                  {
212                          if ((new DateTimeImmutable("-" . $BBS_new_article_period . " day")) < (new DateTimeImmutable($row["sub_dt"])))                          if ((new DateTimeImmutable("-" . $BBS_new_article_period . " day")) < (new DateTimeImmutable($row["sub_dt"])))
213                          {                          {
214                                  $aid_list .= (", " . $row["AID"]);                                  array_push($aid_list, $row["AID"]);
215                          }                          }
216                          else                          else
217                          {                          {
218                                  array_push($visited_aid_list, $row["AID"]);                                  array_push($visited_aid_list, $row["AID"]);
219                          }                          }
220                  }                  }
221                    
222                  mysqli_data_seek($rs, 0);                  mysqli_data_seek($rs, 0);
223    
224                  if ($aid_list != "-1")                  if (count($aid_list) > 1)
225                  {                  {
226                          $sql = "SELECT AID FROM view_article_log WHERE AID IN ($aid_list) AND UID = " . $_SESSION["BBS_uid"];                          $sql = "SELECT AID FROM view_article_log WHERE AID IN (" .
227                                            implode(",", $aid_list) .
228                                            ") AND UID = " . $_SESSION["BBS_uid"];
229    
230                          $rs_view = mysqli_query($db_conn, $sql);                          $rs_view = mysqli_query($db_conn, $sql);
231                          if ($rs_view == false)                          if ($rs_view == false)
232                          {                          {
233                                  $result_set["return"]["code"] = -2;                                  $result_set["return"]["code"] = -2;
234                                  $result_set["return"]["message"] = "Query view_article_log error: " . mysqli_error($db_conn);                                  $result_set["return"]["message"] = "Query view_article_log error: " . mysqli_error($db_conn);
235                    
236                                  mysqli_close($db_conn);                                  mysqli_close($db_conn);
237                                  exit(json_encode($result_set));                                  exit(json_encode($result_set));
238                          }                          }
239                    
240                          while ($row_view = mysqli_fetch_array($rs_view))                          while ($row_view = mysqli_fetch_array($rs_view))
241                          {                          {
242                                  array_push($visited_aid_list, $row_view["AID"]);                                  array_push($visited_aid_list, $row_view["AID"]);
243                          }                          }
244                    
245                          mysqli_free_result($rs_view);                          mysqli_free_result($rs_view);
246                  }                  }
247          }          }
# Line 248  Line 250 
250    
251          while ($row = mysqli_fetch_array($rs))          while ($row = mysqli_fetch_array($rs))
252          {          {
253                    // Rewrite title with "Re: Re: " prefix into "Re: ... "
254                    $title = $row["title"];
255                    if ($row["TID"] != 0)
256                    {
257                            $j = 0;
258                            while (substr_compare($row["title"], "Re: ", $j, strlen("Re: ")) == 0)
259                            {
260                                    $j += strlen("Re: ");
261                            }
262                            if ($j >= strlen("Re: Re: "))
263                            {
264                                    $title = "Re: ... " . substr($row["title"], $j);
265                            }
266                    }
267    
268                  array_push($result_set["data"]["articles"], array(                  array_push($result_set["data"]["articles"], array(
269                          "aid" => $row["AID"],                          "aid" => $row["AID"],
270                          "tid" => $row["TID"],                          "tid" => $row["TID"],
271                          "title" => $row["title"],                          "title" => $title,
272                          "sub_dt" => (new DateTimeImmutable($row["sub_dt"]))->setTimezone($_SESSION["BBS_user_tz"]),                          "sub_dt" => (new DateTimeImmutable($row["sub_dt"]))->setTimezone($_SESSION["BBS_user_tz"]),
273                          "length" => $row["length"],                          "length" => $row["length"],
274                          "icon" => $row["icon"],                          "icon" => $row["icon"],
# Line 269  Line 286 
286                          "last_reply_uid" => $row["last_reply_UID"],                          "last_reply_uid" => $row["last_reply_UID"],
287                          "last_reply_username" => $row["last_reply_username"],                          "last_reply_username" => $row["last_reply_username"],
288                          "last_reply_nickname" => $row["last_reply_nickname"],                          "last_reply_nickname" => $row["last_reply_nickname"],
289                          "visited" => (($_SESSION["BBS_uid"] > 0 && in_array($row["AID"], $visited_aid_list)) ? 1 : 0),                          "visited" => (($_SESSION["BBS_uid"] > 0 && ($row["UID"] == $_SESSION["BBS_uid"] || in_array($row["AID"], $visited_aid_list))) ? 1 : 0),
290                  ));                  ));
291    
292                  if (!isset($author_list[$row["UID"]]))                  if (!isset($author_list[$row["UID"]]))
# Line 280  Line 297 
297                  {                  {
298                          $author_list[$row["last_reply_UID"]] = true;                          $author_list[$row["last_reply_UID"]] = true;
299                  }                  }
300    
301                    unset($title);
302          }          }
303          mysqli_free_result($rs);          mysqli_free_result($rs);
304    
305          $uid_list = "-1";          $uid_list = array(-1);
306          foreach ($author_list as $uid => $status)          foreach ($author_list as $uid => $status)
307          {          {
308                  $uid_list .= (", " . $uid);                  array_push($uid_list, $uid);
309          }          }
310          unset($author_list);          unset($author_list);
311    
312          $author_list = array();          $author_list = array();
313    
314          $sql = "SELECT UID FROM user_list WHERE UID IN ($uid_list) AND enable";          $sql = "SELECT UID FROM user_list WHERE UID IN (" .
315                            implode(",", $uid_list) .
316                            ") AND enable";
317    
318          $rs = mysqli_query($db_conn, $sql);          $rs = mysqli_query($db_conn, $sql);
319          if ($rs == false)          if ($rs == false)
# Line 343  Line 364 
364                  exit(json_encode($result_set)); // Output data in Json                  exit(json_encode($result_set)); // Output data in Json
365          }          }
366          include $theme_view_file;          include $theme_view_file;
 ?>  


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1