<? /*

Title page script for Intellect Board 2 Project

(C) 2004, XXXX Pro, United Open Project
Visit us online: http://intboard.ru

*/

if (!$IBOARD) die("Hack attempt!");

function view() {
  $link = $GLOBALS['link'];

  $category=getvar("ct");
  $oldcat = 0;
  if ($GLOBALS['inuser']['u_multilang']==0) {
    $lang="(f_lnid=0 OR f_lnid=".$GLOBALS['inuser']['ln_id'].") AND ";
  }
  if (!$GLOBALS['opt_fixviews']) {
    $sql = "UPDATE ".$GLOBALS['DBprefix']."LastVisit SET lv_time2=lv_time1 WHERE uid=".$GLOBALS['inuserid']." AND lv_time1<".($GLOBALS['curtime']-$GLOBALS['opt_heretime']*60);
    $res = db_query($sql,$link);
  }

  if ($GLOBALS['opt_foreword'] && !$category && !$GLOBALS['forum']) main_foreword($GLOBALS['opt_foreword']);

  if (!$category && !$GLOBALS['forum'] && $GLOBALS['opt_summary']) {
    $sql = "SELECT SUM(f__pcount), SUM(f__tcount) FROM ".$GLOBALS['DBprefix']."Forum ".
    "LEFT JOIN ".$GLOBALS['DBprefix']."UserAccess ON (uid=".$GLOBALS['inuserid']." AND fid=f_id) ".
    "WHERE f_nostats=0 AND $lang f_lview<=IFNULL(ua_level,".$GLOBALS['inuserbasic'].")";
    $res = db_query($sql,$link);
    $tmp = db_fetch_row($res);
    db_free_result($res);
    $p_total=$tmp[0];
    $t_total=$tmp[1];

    $sql = "SELECT COUNT(u_id) AS u_total FROM ".$GLOBALS['DBprefix']."User u WHERE u_id>3";
    $res = db_query($sql,$link);
    $tmp = db_fetch_row($res);
    db_free_result($res);
    $u_total=$tmp[0];

    $sql = "SELECT u_id, u__name FROM ".$GLOBALS['DBprefix']."User u ORDER BY u_id DESC LIMIT 1";
    $res = db_query($sql,$link);
    $ucount = db_fetch_assoc($res);
    $ucount['u_total'] = $u_total;
    db_free_result($res);

    main_statistics($t_total,$p_total,$ucount);
  }
  $parent=$GLOBALS['forum'];
  if (!$parent) $parent=0;

  $sql = "SELECT MIN(f_lmoderate) FROM ".$GLOBALS['DBprefix']."Forum WHERE f_lmoderate>0";
  $res = db_query($sql,$link);
  list($minlevel)=db_fetch_row($res);
  db_free_result($res);

  if ($minlevel) {
    $sql = "SELECT u_id, u__name, u__level ".
    "FROM ".$GLOBALS['DBprefix']."User u ".
    "WHERE u__level>=$minlevel AND u__level<1000 AND u_id>3 ORDER BY u__name";
    $res = db_query($sql,$link);
    $globalmod=array();
    while ($globalmod[]=db_fetch_array($res)) { }
    db_free_result($res);
  }

  $sql = "SELECT u_id, u__name, f_id, f_lmoderate ".
  "FROM ".$GLOBALS['DBprefix']."User u, ".$GLOBALS['DBprefix']."Forum f, ".
  $GLOBALS['DBprefix']."UserAccess ua WHERE uid=u_id AND fid=f_id ".
  "AND ua_level>=f_lmoderate AND u__level<1000 AND u_id>3 ORDER BY f_id,u__name";
  $res = db_query($sql,$link);
//  if ($GLOBALS['inuserlevel']>=1000) db_explain($sql);
  $oldforum=0;
  $counter=0;

  while ($moddata=db_fetch_array($res)) {
    if ($GLOBALS['moderators'][$moddata['f_id']]) $GLOBALS['moderators'][$moddata['f_id']].=", ";
    $GLOBALS['moderators'][$moddata['f_id']].= user_out($moddata['u__name'],$moddata['u_id']);
  }
  db_free_result($res);

  if ($GLOBALS['opt_fixviews'] && $GLOBALS['inuserid']>3) {
    $sql = "DELETE FROM ".$GLOBALS['DBprefix']."ForumView WHERE uid=".$GLOBALS['inuserid'];
    $res = db_query($sql,$link);

    $sql = "INSERT INTO ".$GLOBALS['DBprefix']."ForumView (uid,fid,fv_count) SELECT ".$GLOBALS['inuserid'].", t_fid, COUNT(tid) FROM ".$GLOBALS['DBprefix']."TopicView tv, ".$GLOBALS['DBprefix']."Topic WHERE t_id=tid AND tv.uid=".$GLOBALS['inuserid']." GROUP BY t_fid";
    $res = db_query($sql,$link);
  }

  $sql = "SELECT ct.*, f.*, lv.*, tp_template, tp_container, f__tcount AS tf_tcount, f__pcount AS tf_pcount, lv_time2, p1.p__time AS tf_lasttime, p1.p_uname, p1.p_uid, p2.p__time AS tf_laststart, f__views AS tf_views, IFNULL(fv_count,0)+IFNULL(lv_markcount,0) AS tf_visited ".
  "FROM ".$GLOBALS['DBprefix']."Forum f, ".$GLOBALS['DBprefix']."Category ct, ".
  $GLOBALS['DBprefix']."ForumType tp ".
  "LEFT JOIN ".$GLOBALS['DBprefix']."UserAccess ua ON (ua.fid=f_id AND ua.uid=".$GLOBALS['inuserid'].") ".
  "LEFT JOIN ".$GLOBALS['DBprefix']."LastVisit lv ON (lv.fid=f_id AND lv.uid=".$GLOBALS['inuserid'].") ".
  "LEFT JOIN ".$GLOBALS['DBprefix']."ForumView fv ON (fv.fid=f_id AND fv.uid=".$GLOBALS['inuserid'].") ".
  "LEFT JOIN ".$GLOBALS['DBprefix']."Post p1 ON (p1.p_id=f.f__lastpostid) ".
  "LEFT JOIN ".$GLOBALS['DBprefix']."Post p2 ON (p2.p_id=f.f__startpostid) ".
  "WHERE ct_id=f_ctid AND tp_id=f_tpid AND $lang  f_lview<=IFNULL(ua_level,".$GLOBALS['inuserbasic'].") ";
  if ($category) $sql .= " AND ct_id=$category";
  $sql.=" ORDER BY ct_sortfield,f_sortfield";
  $res = db_query($sql,$link);
  $GLOBALS['forumlist']=array();
  while ($fdata=db_fetch_array($res)) {
    $GLOBALS['forumlist'][]=$fdata;
  }

  main_list_start();
  $IBOARD=1;
  load_style("titles.php");
  require_once($GLOBALS['opt_dir']."/titles.php");

  foreach ($GLOBALS['forumlist'] as $fdata) if ($fdata['f_parent']==$parent) {
    foreach ($globalmod as $curmod) {
      if ($curmod['u__level']>=$fdata['f_lmoderate']) {
        if ($GLOBALS['moderators'][$moddata['f_id']]) $GLOBALS['moderators'][$moddata['f_id']].=",  ";
        $GLOBALS['moderators'][$moddata['f_id']].= user_out($curmod['u__name'],$curmod['u_id']);
      }
    }
    if (strlen($GLOBALS['moderators'][$fdata['f_id']])>0) {
      $counter=strpos($GLOBALS['moderators'][$fdata['f_id']],",");
      if ($counter===false) $GLOBALS['moderators'][$fdata['f_id']]=MSG_moderator.": ".$GLOBALS['moderators'][$fdata['f_id']];
      elseif ($counter>1) $GLOBALS['moderators'][$fdata['f_id']]=MSG_moderators.": ".$GLOBALS['moderators'][$fdata['f_id']];
    }

    if ($fdata['ct_id']!=$oldcat) {
      main_category($fdata);
      $oldcat = $fdata['ct_id'];
    }
    if (!$fdata['t_count']) $fdata['p_count']=0;
    call_user_func($fdata['tp_template']."_title",$fdata);
  }
  main_list_end();
}

function contnr_view() {
  view();
}

function contnr_locations($locations) {
  return locations($locations);
}

function locations($locations) {
  $ctid=getvar("ct");
  $link=$GLOBALS['link'];
  if ($ctid) {
    $sql = "SELECT ct_name FROM ".$GLOBALS['DBprefix']."Category WHERE ct_id=\"$ctid\"";
    $res = db_query($sql,$link);
    $ctname = db_fetch_row($res);
    push_parents($locations,$GLOBALS['forum']);
    array_push($locations,$ctname[0]);
  }
  elseif ($GLOBALS['forum']) {
    push_parents($locations,$GLOBALS['inforum']['f_parent']);
    array_push($locations,$GLOBALS['inforum']['f_title']);
  }
  return $locations;
}
