--- inc/newsEdit.php 2001/08/03 09:12:42 1.1.1.1 +++ inc/newsEdit.php 2001/10/27 16:54:50 1.18 @@ -1,4 +1,5 @@ [SQL] $sql
\n"; + #echo "[SQL] $sql
\n"; } - function newsEdit($art, $trigger = "") { - global $phptmp, $picdir, $syspicdir, $section, $dbh, $tpl; - global $ed_id, $ed_cat; + function my_cmp($a, $b) { return MyCompare($a["txt"], $b["txt"]); } + function my_cmp_2($a, $b) { return MyCompare($a["ime"], $b["ime"]); } + function newsEdit($art, $trigger = "", $isVijest = false) { + global $phptmp, $picdir, $syspicdir, $aupicdir, $sysaupicdir, $dbh; + global $section, $section_menu, $section_menu2, $spec; + global $ed_id, $ed_cat, $isMed; $i = 1; global $ed_delete_main, $ed_del_main; $delete_main = $ed_delete_main; $del_main = $ed_del_main; global $ed_clear_main, $ed_clr_main; + global $ed_clear_author, $ed_clr_author; $clear_main = $ed_clear_main; $clr_main = $ed_clr_main; + $clear_author = $ed_clear_author; + $clr_author = $ed_clr_author; global $ed_titlepic_url, $ed_titlepic_url2, $ed_titlepic_name; $titlepic_url = $ed_titlepic_url; $titlepic_url2 = $ed_titlepic_url2; - $titlepic_name = $ed_titlepic_name; + $titlepic_name = urldecode($ed_titlepic_name); + # Fix for M$IE if ($titlepic_url == "none") $titlepic_url = ""; + global $ed_author_url, $ed_author_url2, $ed_author_name; + $author_url = $ed_author_url; + $author_url2 = $ed_author_url2; + $author_name = urldecode($ed_author_name); + # Fix for M$IE + if ($author_url == "none") $author_url = ""; while (true) { global ${"ed_text_id_".$i}; if (!isset(${"ed_text_id_".$i})) break; @@ -37,19 +51,87 @@ global ${"ed_clear_".$i}, ${"ed_clr_".$i}; ${"clear_".$i} = ${"ed_clear_".$i}; ${"clr_".$i} = ${"ed_clr_".$i}; - global ${"ed_textpic_url_".$i}, - ${"ed_textpic_url2_".$i}, ${"ed_textpic_name_".$i}; + global ${"ed_fclear_".$i}, ${"ed_fclr_".$i}; + ${"fclear_".$i} = ${"ed_fclear_".$i}; + ${"fclr_".$i} = ${"ed_fclr_".$i}; + global ${"ed_textpic_url_".$i}, ${"ed_textpic_url2_".$i}, ${"ed_textpic_name_".$i}; ${"textpic_url_".$i} = ${"ed_textpic_url_".$i}; ${"textpic_url2_".$i} = ${"ed_textpic_url2_".$i}; - ${"textpic_name_".$i} = ${"ed_textpic_name_".$i}; + ${"textpic_name_".$i} = urldecode(${"ed_textpic_name_".$i}); + # Fix for M$IE if (${"textpic_url_".$i} == "none") ${"textpic_url_".$i} = ""; + global ${"ed_textpic_full_".$i}, ${"ed_textpic_full2_".$i}, ${"ed_textpic_fname_".$i}; + ${"textpic_full_".$i} = ${"ed_textpic_full_".$i}; + ${"textpic_full2_".$i} = ${"ed_textpic_full2_".$i}; + ${"textpic_fname_".$i} = urldecode(${"ed_textpic_fname_".$i}); + # Fix for M$IE + if (${"textpic_full_".$i} == "none") ${"textpic_full_".$i} = ""; $i++; } + // ----- + $categories = array(); + $sql = "SELECT cat_id, text FROM news_categories ORDER BY text"; +sql($sql); + $sth = $dbh->prepare($sql); + if (!$sth) error("Cannot prepare query: \"$sql\""); + if (!$sth->execute()) error("Cannot execute query: \"$sql\""); + while ($row = $sth->fetchrow_array()) array_push($categories, + array("id" => $row[0], "txt" => $row[1])); + $sth->finish(); + usort($categories, "my_cmp"); + // ----- + $autori = array(); + $sql = "SELECT autor_id, ime FROM autori"; +sql($sql); + $sth = $dbh->prepare($sql); + if (!$sth) error("Cannot prepare query: \"$sql\""); + if (!$sth->execute()) error("Cannot execute query: \"$sql\""); + while ($row = $sth->fetchrow_array()) array_push($autori, array("id" => $row[0], "ime" => MyEscape($row[1], false))); + $sth->finish(); + usort($autori, "my_cmp_2"); + // ----- + $newsi = array(); + #$sql = "SELECT news_id, title FROM news WHERE (".($isMed?"":"NOT ")."plivamed) ORDER BY title"; + $sql = "SELECT news_id, title FROM news"; + if ($ed_id && $ed_id > 0) $sql .= " WHERE (news_id != $ed_id)"; + $sql .= " ORDER BY title"; +sql($sql); + $sth = $dbh->prepare($sql); + if (!$sth) error("Cannot prepare query: \"$sql\""); + if (!$sth->execute()) error("Cannot execute query: \"$sql\""); + while ($row = $sth->fetchrow_array()) { + $txt = $row[1]; + if (strlen($txt) > 55) $txt = substr($txt, 0, 55)."..."; + array_push($newsi, array("id" => $row[0], "txt" => $txt)); + } + $sth->finish(); + usort($newsi, "my_cmp"); + // ----- + $specs = array(); + $sql = "SELECT spec_id, opis FROM specijalizacije WHERE (spec_id != 0) AND (NOT link)"; +sql($sql); + $sth = $dbh->prepare($sql); + if (!$sth) error("Cannot prepare query: \"$sql\""); + if (!$sth->execute()) error("Cannot execute query: \"$sql\""); + while ($row = $sth->fetchrow_array()) array_push($specs, array("id" => $row[0], "txt" => $row[1])); + $sth->finish(); + usort($specs, "my_cmp"); + array_unshift($specs, array("id" => 0, "txt" => "HOME")); + // ----- + $levels = array(); + $sql = "SELECT level_id, class, name FROM par_levels ORDER BY name"; +sql($sql); + $sth = $dbh->prepare($sql); + if (!$sth) error("Cannot prepare query: \"$sql\""); + if (!$sth->execute()) error("Cannot execute query: \"$sql\""); + while ($row = $sth->fetchrow_array()) array_push($levels, array("id" => $row[0], "class" => $row[1], "name" => $row[2])); + $sth->finish(); + // ----- global $cancel, $save; if ($cancel || $save) { if ($save) { // Move temp pics & save article. - if (ereg("^$phptmp", $titlepic_url2) && $ed_id > 0) { + if (ereg("$phptmp", $titlepic_url2) && $ed_id > 0 && file_exists("$syspicdir/$titlepic_url2")) { $sql = "SELECT title_pic FROM news WHERE (news_id = $ed_id)"; sql($sql); $sth = $dbh->prepare($sql); @@ -60,23 +142,44 @@ $row = array_shift($row); if ($row) MyDelete($syspicdir."/".$row); } + if (ereg("$phptmp", $author_url2) && $ed_id > 0 && file_exists("$sysaupicdir/$author_url2")) { + $sql = "SELECT author_pic FROM news WHERE (news_id = $ed_id)"; +sql($sql); + $sth = $dbh->prepare($sql); + if (!$sth) error("Cannot prepare query: \"$sql\""); + if (!$sth->execute()) error("Cannot execute query: \"$sql\""); + $row = $sth->fetchrow_array(); + $sth->finish(); + $row = array_shift($row); + if ($row) MyDelete($sysaupicdir."/".$row); + } global $ed_title, $ed_lead, $ed_titlepic_alt, - $ed_titlepic_pos, $ed_more, $ed_cat; + $ed_titlepic_pos, $ed_more, $ed_more_title, + $ed_cat, $ed_author_alt, $ed_author_info, + $ed_author_ime, $ed_author_cv, $ed_exclusive, + $ed_prikazi; $ed_title = MyQuote($ed_title); $ed_lead = MyQuote($ed_lead); - $ed_titlepic_nm = MyQuote(basename($titlepic_name)); + $ed_author_nm = urldecode(MyQuote(basename($author_name))); + $ed_author_alt = MyQuote($ed_author_alt); + $ed_author_ime = MyQuote($ed_author_ime); + $ed_author_info = MyQuote($ed_author_info); + $ed_titlepic_nm = urldecode(MyQuote(basename($titlepic_name))); $ed_titlepic_alt = MyQuote($ed_titlepic_alt); $ed_more = MyQuote($ed_more); + $ed_more_title = MyQuote($ed_more_title); if (!$ed_titlepic_pos) $ed_titlepic_pos = 0; + if (!$ed_author_cv) $ed_author_cv = 0; + if (!isset($ed_exclusive)) $ed_exclusive = false; if ($ed_id > 0) { - $sql = "UPDATE news SET category = '$ed_cat', title = $ed_title, lead = $ed_lead, title_pic = $ed_titlepic_nm, title_alt = $ed_titlepic_alt, title_pos = $ed_titlepic_pos, url = $ed_more, date = CURRENT_TIMESTAMP WHERE (news_id = $ed_id)"; + $sql = "UPDATE news SET category = '$ed_cat', title = $ed_title, lead = $ed_lead, title_pic = $ed_titlepic_nm, title_alt = $ed_titlepic_alt, title_pos = $ed_titlepic_pos, author_pic = $ed_author_nm, author_alt = $ed_author_alt, author_info = $ed_author_info, author_name = $ed_author_ime, autor_cv = $ed_author_cv, exclusive = ".($ed_exclusive?"true":"false").", url = $ed_more, url_title = $ed_more_title, plivamed = ".($isMed?"true":"false").", prikazi = ".($ed_prikazi?"true":"false").", ord = 0, d_change = NOW() WHERE (news_id = $ed_id)"; sql($sql); $dbh->dbh_do($sql); } else { - $sql = "INSERT INTO news (category, title, lead, title_pic, title_alt, title_pos, url, date) VALUES ('$ed_cat', $ed_title, $ed_lead, $ed_titlepic_nm, $ed_titlepic_alt, $ed_titlepic_pos, $ed_more, CURRENT_TIMESTAMP)"; + $sql = "INSERT INTO news (category, title, lead, title_pic, title_alt, title_pos, author_pic, author_alt, author_info, author_name, autor_cv, exclusive, url, url_title, plivamed, prikazi, d_orig, d_change) VALUES ('$ed_cat', $ed_title, $ed_lead, $ed_titlepic_nm, $ed_titlepic_alt, $ed_titlepic_pos, $ed_author_nm, $ed_author_alt, $ed_author_info, $ed_author_ime, $ed_author_cv, ".($ed_exclusive?"true":"false").", $ed_more, $ed_more_title, ".($isMed?"true":"false").", ".($ed_prikazi?"true":"false").", NOW(), NOW())"; sql($sql); $dbh->dbh_do($sql); - $sql = "SELECT news_id FROM news WHERE (title = $ed_title)"; + $sql = "SELECT currval('news_news_id_seq')::text"; sql($sql); $sth = $dbh->prepare($sql); if (!$sth) error("Cannot prepare query: \"$sql\""); @@ -88,21 +191,40 @@ if (is_array($row)) $row = array_shift($row); if ($row) $ed_id = $row; } - if ($titlepic_url2) MyMove("$syspicdir/$titlepic_url2", "$syspicdir/$titlepic_name"); + if ($titlepic_url2) MyMove("$syspicdir/$titlepic_url2", urldecode("$syspicdir/$titlepic_name")); + if ($author_url2) MyMove("$sysaupicdir/$author_url2", urldecode("$sysaupicdir/$author_name")); $i = 1; + $parents = array(); + $last_level = 0; + $last_id = 0; while ($ed_id > 0 && isset(${"ed_text_id_".$i})) { global ${"ed_text_title_".$i}, ${"ed_text_".$i}, ${"ed_textpic_alt_".$i}, ${"ed_textpic_pos_".$i}, - ${"ed_text_level_".$i}; - list($id, $tit, $txt, $pic, $orig, $alt, $pos, $del, $lev) = array( - ${"ed_text_id_".$i}, ${"ed_text_title_".$i}, - ${"ed_text_".$i}, ${"textpic_url2_".$i}, ${"textpic_name_".$i}, - ${"ed_textpic_alt_".$i}, ${"ed_textpic_pos_".$i}, - ${"del_".$i}, ${"ed_text_level_".$i}); + ${"ed_text_level_".$i}, ${"ed_hl_".$i}, + ${"ed_textpic_exp_".$i}; + list($id, $tit, $txt, $pic, $orig,$full, $forig, $alt, $pos, $del, $lev, $hl, $exp) = array( + ${"ed_text_id_".$i}, ${"ed_text_title_".$i}, ${"ed_text_".$i}, + ${"textpic_url2_".$i}, ${"textpic_name_".$i}, ${"textpic_full2_".$i}, + ${"textpic_fname_".$i}, ${"ed_textpic_alt_".$i}, + ${"ed_textpic_pos_".$i}, ${"del_".$i}, ${"ed_text_level_".$i}, + ${"ed_hl_".$i}, ${"ed_textpic_exp_".$i}); + if ($lev != $last_level) { + if ($last_level) { + if ($last_level < $lev) array_push($parents, $id); + if ($last_level > $lev && count($parents) > 0) array_pop($parents); + } + $last_level = $lev; + $parent = $parents[0]; + if ($parent < 0) $parent = $last_id; + } $tit = MyQuote($tit); $txt = MyQuote($txt); + $exp = MyQuote($exp); + $hl = MyQuote($hl); $orig = basename($orig); $org = MyQuote($orig); + $forig = basename($forig); + $forg = MyQuote($forig); $alt = MyQuote($alt); if (!$pos) $pos = 0; if ($id && $id > 0) { @@ -113,49 +235,103 @@ if (!$sth) error("Cannot prepare query: \"$sql\""); if (!$sth->execute()) error("Cannot execute query: \"$sql\""); while ($row = $sth->fetchrow_array()) { - list($pic) = $row; - MyDelete($syspicdir."/".$pic); + list($pic2) = $row; + MyDelete($syspicdir."/".$pic2); + } + $sth->finish(); + } + if ($del || !$forig) { + $sql = "SELECT full_pic FROM paragraphs WHERE (news_id = $ed_id) AND (paragraph_id = $id)"; +sql($sql); + $sth = $dbh->prepare($sql); + if (!$sth) error("Cannot prepare query: \"$sql\""); + if (!$sth->execute()) error("Cannot execute query: \"$sql\""); + while ($row = $sth->fetchrow_array()) { + list($pic2) = $row; + MyDelete($syspicdir."/".$pic2); } $sth->finish(); } if ($del) $sql = "DELETE FROM paragraphs WHERE (news_id = $ed_id) AND (paragraph_id = $id)"; - else $sql = "UPDATE paragraphs SET title = $tit, level = $lev, text = $txt, pic = $org, alt = $alt, pos = $pos WHERE (news_id = $ed_id) AND (paragraph_id = $id)"; + else $sql = "UPDATE paragraphs SET title = $tit, level = $lev, text = $txt, hl = $hl, pic = $org, full_pic = $forg, alt = $alt, pos = $pos, pic_title = $exp WHERE (news_id = $ed_id) AND (paragraph_id = $id)"; sql($sql); $dbh->dbh_do($sql); } else if (!$del) { - $sql = "INSERT INTO paragraphs (news_id, title, level, text, pic, alt, pos) VALUES ($ed_id, $tit, $lev, $txt, $org, $alt, $pos)"; + $sql = "INSERT INTO paragraphs (news_id, title, level, text, pic, full_pic, alt, pos, hl, pic_title) VALUES ($ed_id, $tit, $lev, $txt, $org, $forg, $alt, $pos, $hl, $exp)"; sql($sql); $dbh->dbh_do($sql); - $sql = "SELECT paragraph_id FROM paragraphs WHERE (text = $txt)"; + $sql = "SELECT currval('paragraphs_paragraph_id_seq')::text"; sql($sql); $sth = $dbh->prepare($sql); if (!$sth) error("Cannot prepare query: \"$sql\""); if (!$sth->execute()) error("Cannot execute query: \"$sql\""); - $rows = array(); - while ($row = $sth->fetchrow_array()) array_push($rows, $row); + $row = $sth->fetchrow_array(); $sth->finish(); - $row = array_pop($rows); - if (is_array($row)) $row = array_shift($row); - $id = $row; + $row = array_shift($row); + $last_id = $id = $row; } if ($pic) MyMove("$syspicdir/$pic", "$syspicdir/$orig"); + if ($full) MyMove("$syspicdir/$full", "$syspicdir/$forig"); $i++; } + if ($ed_id) { + $sql = "DELETE FROM spec_news WHERE (news_id = $ed_id)"; +sql($sql); + $dbh->dbh_do($sql); + for ($k = 0; $k < count($specs); $k++) { + $var = "ed_spec_".$specs[$k]["id"]; + global $$var; + if (!$$var) continue; + $sql = "INSERT INTO spec_news (news_id, spec_id) VALUES ($ed_id, ".$specs[$k]["id"].")"; +sql($sql); + $dbh->dbh_do($sql); + } + $sql = "DELETE FROM related WHERE (news_id = $ed_id)"; +sql($sql); + $dbh->dbh_do($sql); + $x = 1; + $foo = array(); + while (true) { + $var = "ed_related_".$x; + $x++; + global $$var; + if (!isset($$var)) break; + if (!$$var) continue; + if ($foo[$$var]) continue; + $foo[$$var] = true; + $sql = "INSERT INTO related (news_id, rel_id) VALUES ($ed_id, ".$$var.")"; +sql($sql); + $dbh->dbh_do($sql); + } + $sql = "DELETE FROM cat_news WHERE (news_id = $ed_id)"; +sql($sql); + $dbh->dbh_do($sql); + for ($k = 0; $k < count($categories); $k++) { + $var = "ed_cat_".$categories[$k]["id"]; + global $$var; + if ($categories[$k]["id"] != $ed_cat && !$$var) continue; + $sql = "INSERT INTO cat_news (news_id, cat_id) VALUES ($ed_id, '".$categories[$k]["id"]."')"; +sql($sql); + $dbh->dbh_do($sql); + } + } } else { // Delete temp pics. - if (ereg("^$phptmp", $titlepic_url2)) - MyDelete($syspicdir."/".$titlepic_url2); + if (ereg("$phptmp", $titlepic_url2)) MyDelete($syspicdir."/".$titlepic_url2); + if (ereg("$phptmp", $author_url2)) MyDelete($sysaupicdir."/".$author_url2); $i = 1; while (isset(${"ed_textpic_id_".$i})) { $tmp = ${"textpic_url2_".$i}; - if (ereg("^$phptmp", $tmp)) MyDelete($syspicdir."/".$tmp); + if (ereg("$phptmp", $tmp)) MyDelete($syspicdir."/".$tmp); + $tmp = ${"textpic_full2_".$i}; + if (ereg("$phptmp", $tmp)) MyDelete($syspicdir."/".$tmp); $i++; } } - if (!$art["limit"]) $art["limit"] = 1; - if (!$art["npar"]) $art["npar"] = 1; + if (!isset($art["limit"])) $art["limit"] = 1; + if (!isset($art["npar"])) $art["npar"] = 1; return array_shift(newsLoad($ed_id, $ed_cat, - $art["limit"], $art["npar"])); + $art["limit"], $art["offset"], $art["npar"])); } // Handle temp pic upload. global $HTTP_POST_FILES; @@ -166,51 +342,53 @@ if ($size <= 0) continue; if (!$name) continue; if ($tname == "none") continue; + $name = strtr($name, "¹šðè澞©ŠÐÈÆ®Ž ", "ssdcczzSSDCCZZ_"); $nm = basename($tname); $ext = ereg_replace('^.*(\..+)$', '\1', $name); - move_uploaded_file($tname, $syspicdir."/".$nm.$ext); if ($key == "ed_titlepic_url") { + move_uploaded_file($tname, $syspicdir."/".$nm.$ext); $titlepic_url = $nm.$ext; $titlepic_name = $name; $u = $titlepic_url2; - if (ereg("^$phptmp", $u)) MyDelete($syspicdir."/".$u); + if (ereg("$phptmp", $u)) MyDelete($syspicdir."/".$u); unset($clear_main, $clr_main); + } else if ($key == "ed_author_url") { + move_uploaded_file($tname, $sysaupicdir."/".$nm.$ext); + $author_url = $nm.$ext; + $author_name = $name; + $u = $author_url2; + if (ereg("$phptmp", $u)) MyDelete($sysaupicdir."/".$u); + unset($clear_author, $clr_author); } else if (ereg("^ed_textpic_url_([1-9][0-9]*)$", $key, $regs)) { + move_uploaded_file($tname, $syspicdir."/".$nm.$ext); $n = $regs[1]; ${"textpic_url_".$n} = $nm.$ext; ${"textpic_name_".$n} = $name; $u = ${"textpic_url2_".$n}; - if (ereg("^$phptmp", $u)) MyDelete($syspicdir."/".$u2); + if (ereg("$phptmp", $u)) MyDelete($syspicdir."/".$u2); unset(${"clear_".$n}, ${"clr_".$n}); + } else if (ereg("^ed_textpic_full_([1-9][0-9]*)$", $key, $regs)) { + move_uploaded_file($tname, $syspicdir."/".$nm.$ext); + $n = $regs[1]; + ${"textpic_full_".$n} = $nm.$ext; + ${"textpic_fname_".$n} = $name; + $u = ${"textpic_full2_".$n}; + if (ereg("$phptmp", $u)) MyDelete($syspicdir."/".$u2); + unset(${"fclear_".$n}, ${"fclr_".$n}); } else { - // [?!?] + // ?!? } } // ----- $tp = new Smarty(); - // ----- - $categories = array(); - $sql = "SELECT cat_id, text FROM news_categories ORDER BY text"; -sql($sql); - $sth = $dbh->prepare($sql); - if (!$sth) error("Cannot prepare query: \"$sql\""); - if (!$sth->execute()) error("Cannot execute query: \"$sql\""); - while ($row = $sth->fetchrow_array()) array_push($categories, array("id" => $row[0], "txt" => $row[1])); - $sth->finish(); - $tp->assign("categories", $categories); - // ----- - $levels = array(); - $sql = "SELECT level_id, class, name FROM par_levels ORDER BY name"; -sql($sql); - $sth = $dbh->prepare($sql); - if (!$sth) error("Cannot prepare query: \"$sql\""); - if (!$sth->execute()) error("Cannot execute query: \"$sql\""); - while ($row = $sth->fetchrow_array()) array_push($levels, array("id" => $row[0], "class" => $row[1], "name" => $row[2])); - $sth->finish(); $tp->assign("levels", $levels); + $tp->assign("autori", $autori); + $tp->assign("newsi", $newsi); // ----- global $ed_id, $ed_title, $ed_lead, $ed_titlepic_pos, - $ed_titlepic_alt, $ed_cat, $ed_more; + $ed_titlepic_alt, $ed_cat, $ed_more, + $ed_more_title, $ed_author_url, $ed_author_alt, + $ed_author_info, $ed_author_ime, $ed_prikazi; global $ed_edit, $ed_preview, $preview, $add; if (!$ed_preview) $ed_preview = ($preview ? true : false); if ($ed_edit) $ed_preview = false; @@ -218,139 +396,285 @@ $delete = count(preg_grep('/^ed_delete_[0-9]+$/', array_keys(array_merge($HTTP_GET_VARS, $HTTP_POST_VARS)))) > 0; - $clear = (count(preg_grep('/^ed_clear_(main|[0-9]+)$/', + global $ed_clear_author; + $clear = (count(preg_grep('/^ed_clear_(main|author|[0-9]+)$/', array_keys(array_merge($HTTP_GET_VARS, $HTTP_POST_VARS)))) > 0); $ed_pgfs = array(); + $ed_warning = 0; + $nspecs = array(); + $ncats = array(); + $related = array(); + // Transfer data if ($ed_edit || $ed_preview || $add || $delete || $clear) { + for ($i = 0; $i < count($specs); $i++) { + $var = "ed_spec_".$specs[$i]["id"]; + global $$var; + $foo = isset($$var) ? $$var : ($spec && $spec == $specs[$i]["id"]); + $nspecs[$specs[$i]["id"]] = $foo ? true : false; + } + for ($i = 0; $i < count($categories); $i++) { + $var = "ed_cat_".$categories[$i]["id"]; + global $$var; + $ncats[$categories[$i]["id"]] = $$var ? true : false; + } global $ed_title, $ed_lead, $ed_titlepic_pos, - $ed_titlepic_alt, $ed_cat, $ed_more; + $ed_titlepic_alt, $ed_cat, $ed_more, $ed_more_title, + $ed_author_url, $ed_author_alt, $ed_author_info, + $ed_author_ime, $ed_author_cv, $ed_exclusive, $ed_prikazi; if (!$HTTP_POST_FILES["ed_titlepic_url"]["name"]) $titlepic_url = ""; if (!$titlepic_url) $titlepic_url = $titlepic_url2; - if (!$titlepic_url && !($clear_main || $clr_main)) - $titlepic_url = $art["pic_url"]; + if (!$titlepic_url && !($clear_main || $clr_main)) $titlepic_url = $art["pic_url"]; + if (!$author_url && !($clear_author || $clr_author)) $author_url = $art["au_pic"]; list($width, $height) = PicSize($titlepic_url); + list($width2, $height2) = PicSize($author_url, $sysaupicdir); + global $ed_title_force; + if ($titlepic_url && !$ed_titlepic_pos && !$ed_title_force) $ed_warning = 2; + $i = 1; + while (true) { + $var = "ed_related_".$i; + global $$var; + if (!isset($$var)) break; + array_push($related, $$var); + $i++; + } $i = 1; while (isset(${"ed_text_id_".$i})) { $id = ${"ed_text_id_".$i}; global ${"ed_text_".$i}, ${"ed_text_title_".$i}, ${"ed_text_level_".$i}, ${"ed_textpic_alt_".$i}, - ${"ed_textpic_pos_".$i}; + ${"ed_textpic_pos_".$i}, ${"ed_hl_".$i}, + ${"ed_textpic_exp_".$i}; $pic_url = ($HTTP_POST_FILES["ed_textpic_url_".$i]["name"]) ? ${"textpic_url_".$i} : ""; if (!$pic_url) $pic_url = ${"textpic_url2_".$i}; + $full_url = ($HTTP_POST_FILES["ed_textpic_full_".$i]["name"]) ? + ${"textpic_full_".$i} : ""; + if (!$full_url) $full_url = ${"textpic_full2_".$i}; $tmp = ""; for ($j = 0; $j < count($art["text"]); $j++) if ($art["text"][$j]["id"] == $id) $tmp = $art["text"][$j]["pic"]; if (!$pic_url && $tmp && !(${"clear_".$i} || ${"clr_".$i})) $pic_url = $tmp; + $tmp = ""; + for ($j = 0; $j < count($art["text"]); $j++) + if ($art["text"][$j]["id"] == $id) $tmp = $art["text"][$j]["full"]; + if (!$full_url && $tmp && !(${"fclear_".$i} || ${"fclr_".$i})) $full_url = $tmp; $level = ${"ed_text_level_".$i}; - $class = ""; - while (list($key, $val) = each($levels)) - if ($val["id"] == $level) $class = $val["class"]; + list($w, $h) = PicSize($pic_url); + list($w2, $h2) = PicSize($full_url); array_push($ed_pgfs, array($id, ${"ed_text_".$i}, ${"ed_text_title_".$i}, - $level, $class, $pic_url, ${"textpic_name_".$i}, + $level, $pic_url, ${"textpic_name_".$i}, + $full_url, ${"textpic_fname_".$i}, ${"ed_textpic_alt_".$i}, ${"ed_textpic_pos_".$i}, - false)); + $w, $h, $w2, $h2, ${"ed_hl_".$i}, ${"ed_textpic_exp_".$i}, false)); $i++; } } else { + if ($ed_id) { + $sql = "SELECT spec_id FROM spec_news WHERE (news_id = $ed_id)"; +sql($sql); + $sth = $dbh->prepare($sql); + if (!$sth) error("Cannot prepare query: \"$sql\""); + if (!$sth->execute()) error("Cannot execute query: \"$sql\""); + while ($row = $sth->fetchrow_array()) $nspecs[$row[0]] = true; + $sth->finish(); + $sql = "SELECT cat_id FROM cat_news WHERE (news_id = $ed_id)"; +sql($sql); + $sth = $dbh->prepare($sql); + if (!$sth) error("Cannot prepare query: \"$sql\""); + if (!$sth->execute()) error("Cannot execute query: \"$sql\""); + while ($row = $sth->fetchrow_array()) $ncats[$row[0]] = true; + $sth->finish(); + $sql = "SELECT rel_id FROM related WHERE (news_id = $ed_id)"; +sql($sql); + $sth = $dbh->prepare($sql); + if (!$sth) error("Cannot prepare query: \"$sql\""); + if (!$sth->execute()) error("Cannot execute query: \"$sql\""); + while ($row = $sth->fetchrow_array()) { + list($id) = $row; + array_push($related, $id); + } + $sth->finish(); + } else { + $art["show"] = false; + for ($j = 0; $j < count($specs); $j++) + $nspecs[$specs[$j]["id"]] = ($specs[$j]["id"] == $spec) ? true : false; + } list($ed_title, $ed_lead, $ed_titlepic_pos, $titlepic_url, $titlepic_url2, $titlepic_name, $ed_titlepic_alt, - $ed_cat, $ed_more, $width, $height) = array($art["title"], - $art["lead"], $art["pic_pos"], $art["pic_url"], - $art["pic_url"], $art["pic_url"], $art["pic_alt"], - $art["category"], $art["more"], $art["pic_w"], $art["pic_h"]); + $ed_cat, $ed_more, $ed_more_title, $width, $height, + $author_url, $author_url2, $author_name, + $ed_author_alt, $ed_author_info, $width2, $height2, + $ed_author_ime, $ed_author_cv, $ed_exclusive, $ed_prikazi) = + array($art["title"], $art["lead"], $art["pic_pos"], $art["pic_url"], + $art["pic_url"], urldecode($art["pic_url"]), $art["pic_alt"], + $art["category"], $art["more"], $art["more_title"], $art["pic_w"], + $art["pic_h"], $art["au_pic"], $art["au_pic"], urldecode($art["au_pic"]), + $art["au_alt"], $art["au_info"], $art["au_w"], $art["au_h"], + $art["au_name"], $art["au_cv"], $art["ex"], $art["show"]); + if ($art["text"]) reset($art["text"]); while ($art["text"] && list($id, $val) = each($art["text"])) { - list($id, $txt, $title, $lev, $cls, $pic, $alt, $pos, $w, $h) = array( - $val["id"], $val["text"], $val["title"], $val["level"], - $val["class"], $val["pic"], $val["alt"], $val["pos"], - $val["w"], $val["h"]); - array_push($ed_pgfs, array($id, $txt, $title, $lev, $cls, $pic, $pic, $alt, - $pos, $w, $h, false)); + array_push($ed_pgfs, array($val["id"], $val["text"], $val["title"], + $val["level"], urldecode($val["pic"]), + urldecode($val["pic"]), urldecode($val["full"]), urldecode($val["full"]), + $val["alt"], $val["pos"], $val["w"], $val["h"], $val["fw"], $val["fh"], + $val["hl"], $val["exp"], false)); } $ed_id = $art["id"]; if (!$ed_id) $ed_id = -1; } + for ($i = count($related); $i < 10; $i++) array_push($related, 0); + $tp->assign("related", $related); + $ncats[$ed_cat] = true; + for ($i = 0; $i < count($specs); $i++) $specs[$i]["check"] = $nspecs[$specs[$i]["id"]]; + for ($i = 0; $i < count($categories); $i++) $categories[$i]["check"] = $ncats[$categories[$i]["id"]]; + $tp->assign("specs", $specs); + $tp->assign("categories", $categories); + if ($ed_more && !strstr($ed_more, "://")) { + $pos = strpos($ed_more, "?"); + if ($pos === false || $pos != 0) $ed_more = "http://".$ed_more; + } if ($add) { global $add_num; for ($i = 0; $i < intval($add_num); $i++) - array_push($ed_pgfs, array(-1, "", "", -1, "", "", "", "", 0, 0, 0, true)); + array_push($ed_pgfs, array(-1, "", "", -1, "", "", "", "", "", 0, 0, 0, 0, 0, "", "", true)); } + $ed_empty = ($ed_title || $ed_lead || $ed_titlepic_pos || $ed_more) ? false : true; $ed_text = array(); - $ed_empties = false; $ed_records = array(); + $ed_warnings = ($ed_warning ? true : false); $i = 1; while (list($key, $val) = each($ed_pgfs)) { - list($id, $txt, $tit, $lev, $cls, $pic, $name, $alt, $pos, $w, $h, $new) = $val; + list($id, $txt, $tit, $lev, $pic, $name, $fpic, $fname, $alt, $pos, $w, $h, $fw, $fh, $hl, $exp, $new) = $val; $del = ((${"delete_".$i} || ${"del_".$i}) ? true : false); array_push($ed_records, array("val" => $del, "id" => $id)); if ($del) { $i++; continue; } $picurl = ${"textpic_url_".$id}; if (!$picurl) $picurl = $pic; + $fullurl = ${"textpic_full_".$id}; + if (!$fullurl) $fullurl = $fpic; $class = ""; - while (list($key, $val) = each($levels)) - if ($val["id"] == $lev) $class = $val["class"]; + reset($levels); + while (list($k, $v) = each($levels)) if ($v["id"] == $lev) $class = $v["class"]; if ((${"clear_".$i} || ${"clr_".$i}) && $ed_preview && (${"textpic_name_".$i} != ${"textpic_url2_".$i})) { $tmp = ${"textpic_url2_".$i}; - if (ereg("^$phptmp", $tmp)) MyDelete($syspicdir."/".$tmp); + if (ereg("$phptmp", $tmp)) MyDelete($syspicdir."/".$tmp); $picurl = ${"textpic_url_".$i} = ${"textpic_url2_".$i} = $name = ""; } if (!$name) $name = $picurl; - $txt = MyEscape($txt); - $txt2 = ParseNewline($txt); + if ((${"fclear_".$i} || ${"fclr_".$i}) && $ed_preview && (${"textpic_full_".$i} != ${"textpic_full2_".$i})) { + $tmp = ${"textpic_full2_".$i}; + if (ereg("$phptmp", $tmp)) MyDelete($syspicdir."/".$tmp); + $fullurl = ${"textpic_full_".$i} = ${"textpic_full2_".$i} = $fname = ""; + } + if (!$fname) $fname = $fullurl; + // ---- + $txt3 = MyEscape(convert_html($txt), true); + $txt = str_replace("&", "&", MyEscape(convert_html($txt), false)); + $txt2 = $ed_preview ? ParseNewline($txt, true) : $txt3; + // ---- + $hl3 = MyEscape(convert_html($hl), true); + $hl = str_replace("&", "&", MyEscape(convert_html($hl), false)); + $hl2 = $ed_preview ? ParseNewline($hl, true) : $hl3; + if ($hl) $hl = GetHighlight($hl); + // ---- + global ${"ed_text_force_".$i}; + $force = ${"ed_text_force_".$i}; $empty = (($ed_preview && !$txt && !$pos && !$new) ? true : false); + $warning = 0; + if ($empty && !$force) $warning = 1; + if ($picurl && !$pos && !$force) $warning = 2; $ed_empty = $ed_empty && $empty; - global ${"ed_text_force_".$i}; - $ed_empties = $ed_empties || ($empty && !${"ed_text_force_".$i}); + $ed_warnings = $ed_warnings || ($warning && !$force); array_push($ed_text, array( "id" => $id, "n" => $i, "txt" => $txt2, "txt2" => $txt, - "title" => MyEscape($tit), + "txt3" => $txt3, + "hl" => $hl2, + "hl2" => $hl, + "hl3" => $hl3, + "title" => MyEscape(convert_html($tit)), "level" => $lev, - "class" => MyEscape($class), - "url" => MyEscape($picurl), - "name" => MyEscape($name), - "alt" => MyEscape($alt), - "width" => $w, - "height" => $h, + "class" => MyEscape(convert_html($class)), + "url" => MyEscape(convert_html($picurl)), + "name" => MyEscape(convert_html($name)), + "full" => MyEscape(convert_html($fullurl)), + "fname" => MyEscape(convert_html($fname)), + "alt" => MyEscape(convert_html($alt)), + "w" => $w, + "h" => $h, + "fw" => $fw, + "fh" => $fh, "pos" => $pos, - "empty" => $empty, - "clr" => (${"clear_".$i} || ${"clr_".$i} || !$picurl) ? true : false + "exp" => MyEscape(convert_html($exp)), + "warning" => $warning, + "clr" => (${"clear_".$i} || ${"clr_".$i} || !$picurl) ? true : false, + "fclr" => (${"fclear_".$i} || ${"fclr_".$i} || !$fullurl) ? true : false )); $i++; } - if ($ed_empties) $ed_preview = false; + if ($ed_warnings) $ed_preview = false; $tp->assign("ed_id", $ed_id); $tp->assign("ed_cat", $ed_cat); $tp->assign("ed_preview", $ed_preview); $tp->assign("ed_trigger", $trigger); - $tp->assign("ed_title", MyEscape($ed_title)); - $tp->assign("ed_lead", MyEscape($ed_lead)); + $tp->assign("ed_title", MyEscape(convert_html($ed_title))); + $tp->assign("ed_lead", MyEscape(convert_html($ed_lead), true)); + $tp->assign("ed_lead2", ParseNewline(MyEscape(convert_html($ed_lead), false), false)); $tp->assign("ed_titlepic_pos", $ed_titlepic_pos); - $tp->assign("ed_titlepic_url", MyEscape($titlepic_url)); - $tp->assign("ed_titlepic_url2", MyEscape($titlepic_url2)); - $tp->assign("ed_titlepic_name", MyEscape($titlepic_name)); - $tp->assign("ed_titlepic_alt", MyEscape($ed_titlepic_alt)); + $tp->assign("ed_titlepic_url", MyEscape(convert_html($titlepic_url))); + $tp->assign("ed_titlepic_url2", MyEscape(convert_html($titlepic_url2))); + $tp->assign("ed_titlepic_name", MyEscape(convert_html($titlepic_name))); + $tp->assign("ed_titlepic_alt", MyEscape(convert_html($ed_titlepic_alt))); $tp->assign("ed_titlepic_width", $width); $tp->assign("ed_titlepic_height", $height); + $tp->assign("ed_author_url", MyEscape(convert_html($author_url))); + $tp->assign("ed_author_url2", MyEscape(convert_html($author_url2))); + $tp->assign("ed_author_name", MyEscape(convert_html($author_name))); + $tp->assign("ed_author_alt", MyEscape(convert_html($ed_author_alt))); + $tp->assign("ed_author_info", MyEscape(convert_html($ed_author_info))); + $tp->assign("ed_author_ime", MyEscape(convert_html($ed_author_ime))); + $tp->assign("ed_author_width", $width2); + $tp->assign("ed_author_height", $height2); $tp->assign("ed_more", MyEscape($ed_more)); + $tp->assign("ed_more_new", strstr($ed_more, "://") ? true : false); + $tp->assign("ed_more_title", MyEscape($ed_more_title)); + $tp->assign("ed_prikazi", $ed_prikazi); + $tp->assign("ed_author_cv", $ed_author_cv); + $tp->assign("ed_exclusive", $ed_exclusive); $tp->assign("ed_clr_main", ($clear_main || $clr_main || !$titlepic_url) ? true : false); + $tp->assign("ed_clr_author", ($clear_author || $clr_author || !$author_url) ? true : false); $tp->assign("ed_text", $ed_text); $tp->assign("ed_empty", $ed_empty); - $tp->assign("ed_empties", $ed_empties); - $tp->assign("ed_read", count($ed_text) > 1); + $tp->assign("ed_warning", $ed_warning); + $tp->assign("ed_warnings", $ed_warnings); $tp->assign("ed_records", $ed_records); $tp->assign("newspicdir", "$picdir/"); + $tp->assign("aupicdir", "$aupicdir/"); + $tp->assign("vijest", $isVijest ? true : false); + if ($ed_preview) { + $tp->assign("AUTHOR", GetAuthor(MyEscape(convert_html($author_url)), + MyEscape(convert_html($ed_author_alt)), + MyEscape(convert_html($ed_author_info)), + $width2, $height2, $ed_author_cv)); + } + $tp->assign("med", $isMed ? true : false); $params = array(); if ($section) array_push($params, "section=$section"); + if ($section_menu) array_push($params, "section_menu=$section_menu"); + if ($section_menu2) array_push($params, "section_menu2=$section_menu2"); + if ($spec) array_push($params, "spec=$spec"); if ($ed_id) array_push($params, "ed_id=$ed_id"); if ($ed_preview) array_push($params, "ed_preview=$ed_preview"); if ($trigger) array_push($params, "$trigger=1"); - global $PHP_SELF; - $tp->assign("FORM_ACTION", $PHP_SELF.HTMLSpecialChars("?".implode("&", $params))); + $tp->assign("FORM_ACTION", HTMLSpecialChars("?".implode("&", $params))); + if (!$ed_preview) { + global $onload; + $onload .= "document.forms[1].elements[0].focus();"; + } return $tp->fetch("edit.tpl"); } ?>