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

Annotation of /fenglin/bbs/section_setting.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.7 - (hide annotations)
Wed Apr 16 08:38:44 2025 UTC (11 months ago) by sysadm
Branch: MAIN
Changes since 1.6: +34 -0 lines
Merge section config feature from admin portal to section_setting page

1 sysadm 1.1 <?
2     require_once "../lib/db_open.inc.php";
3 sysadm 1.4 require_once "./section_list.inc.php";
4 sysadm 1.1 require_once "./session_init.inc.php";
5 sysadm 1.7 require_once "./user_priv.inc.php";
6 sysadm 1.1 require_once "./theme.inc.php";
7    
8     force_login();
9    
10     $result_set = array(
11     "return" => array(
12     "code" => 0,
13     "message" => "",
14     "errorFields" => array(),
15     )
16     );
17    
18     $sid = (isset($_GET["sid"]) ? intval($_GET["sid"]) : $BBS_default_sid);
19    
20     if (!$_SESSION["BBS_priv"]->checkpriv($sid, S_POST | S_MAN_S))
21     {
22     $result_set["return"]["code"] = -1;
23     $result_set["return"]["message"] = "没有权限";
24    
25     mysqli_close($db_conn);
26     exit(json_encode($result_set));
27     }
28    
29 sysadm 1.3 // Load section setting
30 sysadm 1.1 $sql = "SELECT * FROM section_config WHERE SID = $sid AND enable";
31    
32     $rs = mysqli_query($db_conn, $sql);
33     if ($rs == false)
34     {
35     $result_set["return"]["code"] = -2;
36     $result_set["return"]["message"] = "Query section data error: " . mysqli_error($db_conn);
37    
38     mysqli_close($db_conn);
39     exit(json_encode($result_set));
40     }
41    
42 sysadm 1.3 if ($row = mysqli_fetch_array($rs))
43 sysadm 1.1 {
44 sysadm 1.2 $result_set["data"] = array(
45 sysadm 1.1 "sid" => $sid,
46 sysadm 1.7 "cid" => $row["CID"],
47     "sname" => $row["sname"],
48     "title" => $row["title"],
49     "exp_get" => $row["exp_get"],
50     "recommend" => $row["recommend"],
51     "read_user_level" => $row["read_user_level"],
52     "write_user_level" => $row["write_user_level"],
53 sysadm 1.1 "announcement" => $row["announcement"],
54     "comment" => $row["comment"],
55     "ex_update" => $row["ex_update"],
56 sysadm 1.7 "sort_order" => $row["sort_order"],
57     "class_sections" => array(),
58 sysadm 1.2 "section_hierachy" => array(),
59 sysadm 1.3 "masters" => array(),
60 sysadm 1.1 );
61     }
62     else
63     {
64     $result_set["return"]["code"] = -1;
65     $result_set["return"]["message"] = "Section data not exist";
66    
67     mysqli_close($db_conn);
68     exit(json_encode($result_set));
69     }
70    
71     mysqli_free_result($rs);
72    
73 sysadm 1.3 // Load section master
74     $sql = "SELECT section_master.UID, username, major, begin_dt, end_dt FROM section_master
75     INNER JOIN user_list ON section_master.UID = user_list.UID
76     WHERE SID = $sid AND section_master.enable AND (NOW() BETWEEN begin_dt AND end_dt)
77     ORDER BY major DESC, begin_dt ASC, end_dt ASC";
78    
79     $rs = mysqli_query($db_conn, $sql);
80     if ($rs == false)
81     {
82     $result_set["return"]["code"] = -2;
83     $result_set["return"]["message"] = "Query section master error: " . mysqli_error($db_conn);
84    
85     mysqli_close($db_conn);
86     exit(json_encode($result_set));
87     }
88    
89     while ($row = mysqli_fetch_array($rs))
90     {
91     array_push($result_set["data"]["masters"], array(
92     "uid" => $row["UID"],
93     "username" => $row["username"],
94     "major" => $row["major"],
95     "begin_dt" => $row["begin_dt"],
96     "end_dt" => $row["end_dt"],
97     ));
98     }
99     mysqli_free_result($rs);
100    
101 sysadm 1.7 // Load sections in current class
102     $sql = "SELECT SID, title, sort_order FROM section_config WHERE CID = " .
103     $result_set["data"]["cid"] . " AND enable ORDER BY sort_order";
104    
105     $rs = mysqli_query($db_conn, $sql);
106     if ($rs == false)
107     {
108     $result_set["return"]["code"] = -2;
109     $result_set["return"]["message"] = "Query section list error: " . mysqli_error($db_conn);
110    
111     mysqli_close($db_conn);
112     exit(json_encode($result_set));
113     }
114    
115     while ($row = mysqli_fetch_array($rs))
116     {
117     array_push($result_set["data"]["class_sections"], array(
118     "sid" => $row["SID"],
119     "title" => $row["title"],
120     "sort_order" => $row["sort_order"],
121     ));
122     }
123     mysqli_free_result($rs);
124    
125 sysadm 1.2 // Load section list
126 sysadm 1.4 $ret = load_section_list($result_set["data"]["section_hierachy"],
127 sysadm 1.6 function (array $section, array $filter_param) : bool
128 sysadm 1.4 {
129 sysadm 1.6 return $_SESSION["BBS_priv"]->checkpriv($section["SID"], S_POST | S_MAN_S);
130 sysadm 1.4 },
131 sysadm 1.6 function (array $section, array $filter_param) : mixed
132 sysadm 1.5 {
133     return null;
134     },
135 sysadm 1.4 $db_conn);
136 sysadm 1.1
137 sysadm 1.4 if ($ret == false)
138 sysadm 1.1 {
139     $result_set["return"]["code"] = -2;
140 sysadm 1.2 $result_set["return"]["message"] = "Query section error: " . mysqli_error($db_conn);
141 sysadm 1.1
142     mysqli_close($db_conn);
143     exit(json_encode($result_set));
144     }
145    
146     mysqli_close($db_conn);
147    
148     // Output with theme view
149     $theme_view_file = get_theme_file("view/section_setting", $_SESSION["BBS_theme_name"]);
150     if ($theme_view_file == null)
151     {
152     exit(json_encode($result_set)); // Output data in Json
153     }
154     include $theme_view_file;
155     ?>

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