1 |
ravilov |
1.1 |
<?php |
2 |
ravilov |
1.4 |
function newsLoad($id, $cat, $limit = 1, $offset = 0, $npar = 1) { |
3 |
ravilov |
1.1 |
global $dbh; |
4 |
|
|
$arts = array(); |
5 |
ravilov |
1.4 |
if (!$offset) $offset = 0; |
6 |
ravilov |
1.3 |
$sql = "SELECT news_id, title, lead, title_pic, title_alt, title_pos, url, date, ord FROM news WHERE (category = '$cat')"; |
7 |
ravilov |
1.1 |
if ($id > 0) $sql .= " AND (news_id = $id)"; |
8 |
ravilov |
1.4 |
$sql .= " ORDER BY date DESC"; |
9 |
|
|
if ($limit) $sql .= " LIMIT $limit OFFSET $offset"; |
10 |
ravilov |
1.1 |
$sth = $dbh->prepare($sql); |
11 |
|
|
if (!$sth) error("Cannot prepare query: \"$sql\""); |
12 |
|
|
if (!$sth->execute()) error("Cannot execute query: \"$sql\""); |
13 |
|
|
while ($row = $sth->fetchrow_array()) { |
14 |
|
|
$art = array(); |
15 |
|
|
list($art["id"], $art["title"], $art["lead"], $art["pic_url"], |
16 |
ravilov |
1.3 |
$art["pic_alt"], $art["pic_pos"], $art["more"], |
17 |
|
|
$date, $ord) = $row; |
18 |
ravilov |
1.1 |
list($art["pic_w"], $art["pic_h"]) = PicSize($art["pic"]); |
19 |
|
|
$text = array(); |
20 |
ravilov |
1.2 |
if (isset($art["id"])) { |
21 |
ravilov |
1.1 |
$sql = "SELECT paragraph_id, text, title, level, class, pic, alt, pos FROM paragraphs, par_levels WHERE (news_id = ".$art["id"].") AND (level = level_id)"; |
22 |
|
|
$sth2 = $dbh->prepare($sql); |
23 |
|
|
if (!$sth2) error("Cannot prepare query: \"$sql\""); |
24 |
|
|
if (!$sth2->execute()) error("Cannot execute query: \"$sql\""); |
25 |
|
|
while ($row = $sth2->fetchrow_array()) { |
26 |
|
|
list($w, $h) = PicSize($row[5]); |
27 |
|
|
array_push($text, array( |
28 |
|
|
"id" => $row[0], |
29 |
|
|
"text" => $row[1], |
30 |
|
|
"title" => $row[2], |
31 |
|
|
"level" => $row[3], |
32 |
|
|
"class" => $row[4], |
33 |
|
|
"pic" => $row[5], |
34 |
|
|
"alt" => $row[6], |
35 |
|
|
"pos" => $row[7], |
36 |
|
|
"w" => $w, |
37 |
|
|
"h" => $h |
38 |
|
|
)); |
39 |
|
|
} |
40 |
|
|
$sth2->finish(); |
41 |
|
|
} |
42 |
|
|
$art["text"] = $text; |
43 |
ravilov |
1.3 |
$art["order"] = $ord; |
44 |
ravilov |
1.2 |
$art["read"] = (count($art["text"]) > $npar) ? true : false; |
45 |
ravilov |
1.1 |
$art["category"] = $cat; |
46 |
|
|
$art["limit"] = $limit; |
47 |
ravilov |
1.4 |
$art["offset"] = $offset; |
48 |
ravilov |
1.1 |
$art["npar"] = $npar; |
49 |
|
|
array_push($arts, $art); |
50 |
|
|
} |
51 |
|
|
$sth->finish(); |
52 |
ravilov |
1.3 |
$foo = true; |
53 |
|
|
while ($foo) { |
54 |
|
|
$foo = false; |
55 |
|
|
for ($i = 0; $i < count($arts); $i++) { |
56 |
|
|
if ($arts[$i]["order"] == 0) continue; |
57 |
|
|
$j = ($i + $arts[$i]["order"]); |
58 |
|
|
$j %= count($arts); |
59 |
|
|
$foo = true; |
60 |
|
|
$tmp = $arts[$j]; |
61 |
|
|
$arts[$j] = $arts[$i]; |
62 |
|
|
$arts[$i] = $tmp; |
63 |
|
|
$arts[$j]["order"] = 0; |
64 |
|
|
} |
65 |
|
|
} |
66 |
ravilov |
1.1 |
return $arts; |
67 |
|
|
} |
68 |
|
|
|
69 |
|
|
function newsShow($art) { |
70 |
|
|
global $fname, $syspicdir, $tpl; |
71 |
|
|
$fname = "show.tpl"; |
72 |
|
|
$tpl->assign("title", MyEscape($art["title"])); |
73 |
|
|
$tpl->assign("lead", MyEscape($art["lead"])); |
74 |
|
|
$tpl->assign("titlepic_url", MyEscape($art["pic_url"])); |
75 |
|
|
$tpl->assign("titlepic_alt", MyEscape($art["pic_alt"])); |
76 |
|
|
$tpl->assign("titlepic_type", $art["pic_pos"]); |
77 |
|
|
$tpl->assign("title_url", MyEscape($art["more"])); |
78 |
|
|
$tpl->assign("titlepic_width", $art["pic_w"]); |
79 |
|
|
$tpl->assign("titlepic_height", $art["pic_h"]); |
80 |
|
|
for ($i = 0; $i < count($art["text"]); $i++) |
81 |
|
|
$art["text"][$i]["text"] = ParseNewline(MyEscape($art["text"][$i]["text"])); |
82 |
|
|
$tpl->assign("text", $art["text"]); |
83 |
|
|
$tpl->assign("cat", $art["category"]); |
84 |
|
|
} |
85 |
|
|
?> |