From: Mutwin K. <mu...@us...> - 2005-02-13 21:21:57
|
Update of /cvsroot/fuwiki/fuwiki_1_0 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30058 Modified Files: functions.inc index.php index_rss.php io.mysql.inc parser.inc user.inc Log Message: up-to-date with fuckupwiki codebase Index: parser.inc =================================================================== RCS file: /cvsroot/fuwiki/fuwiki_1_0/parser.inc,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** parser.inc 15 Nov 2004 20:39:18 -0000 1.6 --- parser.inc 13 Feb 2005 21:21:48 -0000 1.7 *************** *** 102,107 **** $action = _COMMENT_DEFAULT; $timestamp = ""; $comment_num++; ! $arguments = stripslashes(stripslashes($arguments)); ! if(preg_match("/action=\"([^\"]*)\"/", $arguments, $o)) { $action = $WikiParser->parse_comment_action($o[1]); } --- 102,107 ---- $action = _COMMENT_DEFAULT; $timestamp = ""; $comment_num++; ! $arguments = stripslashes(stripslashes(stripslashes($arguments))); ! if(preg_match("/action=\"([^\"]*)\"/Us", $arguments, $o)) { $action = $WikiParser->parse_comment_action($o[1]); } *************** *** 236,244 **** } ! function parse_votes_callback($str) { global $wiki_vote; $wiki_vote = $str; ! return get_wikielement('vote'); } --- 236,247 ---- } ! function parse_votes_callback($str, $cache) { global $wiki_vote; $wiki_vote = $str; ! $str = get_wikielement('vote'); ! if($cache) ! return preg_replace("/\r/", "\n", preg_replace("/\n/", "<br />", $str, -1), -1); ! return $str; } *************** *** 327,335 **** $string = $this->extract_nowiki($string); $string = preg_replace("/</", "<", $string, -1); ! $string = preg_replace("/(?!^|\n)>/", ">", $string, -1); foreach($nowiki_cache as $key => $v) $nowiki_cache[$key] = htmlentities($v, ENT_NOQUOTES, "UTF-8"); $string = $this->pre_parse($string); ! if(!$this->show_comments || (!$html_caching && !$WikiUser->get_setting("show_comments")) || (!preg_match("/\[\/comment\]/", $string) && !preg_match("/--/", $string))) { $string = $this->parse_in_nocomments($string); } else { --- 330,338 ---- $string = $this->extract_nowiki($string); $string = preg_replace("/</", "<", $string, -1); ! $string = preg_replace("/>/", ">", $string, -1); foreach($nowiki_cache as $key => $v) $nowiki_cache[$key] = htmlentities($v, ENT_NOQUOTES, "UTF-8"); $string = $this->pre_parse($string); ! if(!$this->show_comments || (!$WikiUser->get_setting("show_comments")) || (!preg_match("/\[\/comment\]/", $string) && !preg_match("/--/", $string))) { $string = $this->parse_in_nocomments($string); } else { *************** *** 361,365 **** --- 364,370 ---- function parse_html_cache($string) { + $this->html_caching = false; $string = $this->parse_votes($string); + $string = $this->parse_divs($string); return $string; } *************** *** 373,376 **** --- 378,382 ---- function parse_private_message($string) { + $this->html_caching = false; $string = preg_replace("/\r\n/", "\n", $string, -1); $string = preg_replace("/\n\r/", "\n", $string, -1); *************** *** 416,422 **** $string = $this->parse_lists($string); $string = $this->parse_hr($string); - $string = $this->parse_showpage($string); $string = $this->parse_votes($string); $string = $this->parse_divs($string); return $string; } --- 422,428 ---- $string = $this->parse_lists($string); $string = $this->parse_hr($string); $string = $this->parse_votes($string); $string = $this->parse_divs($string); + $string = $this->parse_showpage($string); return $string; } *************** *** 569,573 **** if($this->html_caching) return $string; ! return preg_replace("/\[showvote ([0123456789]+)\]/Ue", "parse_votes_callback('\\1')", $string, -1); } --- 575,579 ---- if($this->html_caching) return $string; ! return preg_replace("/\[showvote:? ([0123456789]+)\]/Ue", "parse_votes_callback('\\1', \$this->html_caching)", $string, -1); } *************** *** 661,667 **** --- 667,688 ---- function parse_divs($string) { + global $creatinghtmlcache; + if($creatinghtmlcache == true || $this->html_caching == true) + return $string; + if(preg_match("/(<|<)style(>|>)(.*)(<|<)\/style(>|>)/Us", $string, $out)) + { + global $additional_html_header; + $additional_html_header .= "<style type=\"text/css\">".preg_replace("/(<br \/>|\r)/", "", $out[3], -1)."</style>"; + if(!$this->html_caching) + $string = preg_replace("/(<|<)style(>|>)(.*)(<|<)\/style(>|>)/s", "", $string, 1); + } $string = preg_replace("/<div style=\"(.*)\">/iUs", "<div style=\"\\1\">", $string, -1); + $string = preg_replace("/<div class=\"(.*)\">/iUs", "<div class=\"\\1\">", $string, -1); $string = preg_replace("/<\/div>/", "</div>", $string, -1); $string = preg_replace("/<div>/iUs", "<div>", $string, -1); + $string = preg_replace("/<span style=\"(.*)\">/iUs", "<span style=\"\\1\">", $string, -1); + $string = preg_replace("/<span class=\"(.*)\">/iUs", "<span class=\"\\1\">", $string, -1); + $string = preg_replace("/<\/span>/", "</span>", $string, -1); + $string = preg_replace("/<span>/iUs", "<span>", $string, -1); return $string; } Index: index.php =================================================================== RCS file: /cvsroot/fuwiki/fuwiki_1_0/index.php,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** index.php 7 Nov 2004 12:00:33 -0000 1.4 --- index.php 13 Feb 2005 21:21:48 -0000 1.5 *************** *** 73,76 **** --- 73,78 ---- if(!empty($_POST["edited"])) { + if(!empty($_POST["is_private"])) + $WikiIO->set_private(_PAGENAME); // Save uploaded file save_image(_PAGENAME, $_FILES['userfile']['name'], $_FILES['userfile']['tmp_name']); *************** *** 89,92 **** --- 91,96 ---- if(!empty($_POST["commented"])) { + if(!empty($_POST["is_private"])) + $WikiIO->set_private(_PAGENAME); $WikiStats->edit_page(true); // Save uploaded file *************** *** 101,105 **** } else ! $WikiIO->write(_PAGENAME, $WikiUser->get_name(), $temp_rev->text."\n\n". "[comment".($action != _COMMENT_DEFAULT ? " action=\"".stripslashes($action)."\"":"")." timestamp=".get_timestamp()."]\n".$comment ." ".stripslashes($_POST["signature"])."[/comment]"); } --- 105,109 ---- } else ! $WikiIO->write(_PAGENAME, $WikiUser->get_name(), $temp_rev->text."\n\n". "[comment".($action != _COMMENT_DEFAULT ? " action=\"".stripslashes($action)."\"":"")." timestamp=".get_timestamp()."]\n".$comment."\n".stripslashes($_POST["signature"])."[/comment]"); } Index: functions.inc =================================================================== RCS file: /cvsroot/fuwiki/fuwiki_1_0/functions.inc,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** functions.inc 15 Nov 2004 20:39:18 -0000 1.5 --- functions.inc 13 Feb 2005 21:21:47 -0000 1.6 *************** *** 58,64 **** function show_edit($pagename, $v="", $nosubmit=false, $text="") { ! global $WikiIO; $revision = $WikiIO->get_revision($pagename, $v); if($nosubmit == false) $out = "<form enctype=\"multipart/form-data\" id=\"edit_form\" method=\"post\" action=\"index.php?".rawurldecode(utf8_decode($pagename))."\">"; --- 58,66 ---- function show_edit($pagename, $v="", $nosubmit=false, $text="") { ! global $WikiIO, $WikiUser; $revision = $WikiIO->get_revision($pagename, $v); + if(!$WikiIO->is_readable($pagename)) + return "uh, no!"; if($nosubmit == false) $out = "<form enctype=\"multipart/form-data\" id=\"edit_form\" method=\"post\" action=\"index.php?".rawurldecode(utf8_decode($pagename))."\">"; *************** *** 76,79 **** --- 78,83 ---- $out .= "<input type=\"submit\" class=\"btn_submit\" name=\"edited\" value=\"". _EDIT_SUBMIT. "\" accesskey=\"s\">"; $out .= "<input type=\"submit\" class=\"btn_preview\" name=\"preview\" value=\"". _EDIT_SUBMIT_PREVIEW ."\" accesskey=\"f\">"; + if(!$WikiIO->page_exists($pagename) && $WikiUser->is_authorized() && $WikiUser->get_is_cool()) + $out .= "<br /><input type=\"checkbox\" name=\"is_private\" value=\"active\"> Private\n"; $out .= "</form>"; } *************** *** 193,199 **** function get_html_cache($pagename) { ! global $WikiIO, $WikiUser, $WikiParser; $res = $WikiIO->query("SELECT id,revision,name,lang FROM html_cache WHERE name='".$pagename."' AND lang='".$WikiUser->get_language()."' LIMIT 1;"); ! if(!$res || mysql_num_rows($res) < 1) update_html_cache($pagename); else { --- 197,204 ---- function get_html_cache($pagename) { ! global $WikiIO, $WikiUser, $WikiParser, $creatinghtmlcache; ! $creatinghtmlcache = false; $res = $WikiIO->query("SELECT id,revision,name,lang FROM html_cache WHERE name='".$pagename."' AND lang='".$WikiUser->get_language()."' LIMIT 1;"); ! if(!$res || mysql_num_rows($res) < 1 || $_GET["gennewcache"] == 1) update_html_cache($pagename); else { *************** *** 204,211 **** } ! $res = $WikiIO->query("SELECT id,name,text,lang FROM html_cache WHERE name='".$pagename."' AND lang='".$WikiUser->get_language()."' LIMIT 1;"); if(!$res || mysql_num_rows($res) < 1) return mysql_error(); $h = mysql_fetch_array($res); return $WikiParser->parse_html_cache($h["text"]); } --- 209,217 ---- } ! $res = $WikiIO->query("SELECT name,text,lang FROM html_cache WHERE name='".$pagename."' AND lang='".$WikiUser->get_language()."' LIMIT 1;"); if(!$res || mysql_num_rows($res) < 1) return mysql_error(); $h = mysql_fetch_array($res); + $creatinghtmlcache = false; return $WikiParser->parse_html_cache($h["text"]); } *************** *** 213,220 **** function update_html_cache($pagename) { ! global $WikiIO, $WikiParser, $WikiUser; $rev = $WikiIO->get_revision_fast($pagename); if(!$rev) return; $res = $WikiIO->query("SELECT id,name FROM html_cache WHERE name='".$pagename."' AND lang='".$WikiUser->get_language()."' LIMIT 1;"); if(!$res || mysql_num_rows($res) < 1) --- 219,227 ---- function update_html_cache($pagename) { ! global $WikiIO, $WikiParser, $WikiUser, $creatinghtmlcache; $rev = $WikiIO->get_revision_fast($pagename); if(!$rev) return; + $creatinghtmlcache = true; $res = $WikiIO->query("SELECT id,name FROM html_cache WHERE name='".$pagename."' AND lang='".$WikiUser->get_language()."' LIMIT 1;"); if(!$res || mysql_num_rows($res) < 1) *************** *** 223,227 **** $query = "UPDATE html_cache SET revision=".$rev->revision.", text='".addslashes($WikiParser->parse($rev->text, true, true))."', lang='".$WikiUser->get_language()."' WHERE id=".$a["id"]." LIMIT 1;"; } ! $WikiIO->query($query);echo mysql_error(); } --- 230,235 ---- $query = "UPDATE html_cache SET revision=".$rev->revision.", text='".addslashes($WikiParser->parse($rev->text, true, true))."', lang='".$WikiUser->get_language()."' WHERE id=".$a["id"]." LIMIT 1;"; } ! $WikiIO->query($query); echo mysql_error(); ! //$creatinghtmlcache = false; } *************** *** 474,478 **** function begin_html($nolayout=false) { ! global $WikiLayout, $WikiParser; $out = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"; --- 482,486 ---- function begin_html($nolayout=false) { ! global $WikiLayout, $WikiParser, $additional_html_header; $out = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"; *************** *** 484,487 **** --- 492,497 ---- if(!$nolayout) $out .= "<link rel=\"stylesheet\" type=\"text/css\" href=\"layout/".$WikiParser->work_html($WikiLayout->get_layout())."/".$WikiParser->work_html($WikiLayout->get_style()).".css\" />\n"; + if($additional_html_header != "") + $out .= $additional_html_header."\n"; $out .= "</head>\n"; $out .= "<body>\n"; Index: index_rss.php =================================================================== RCS file: /cvsroot/fuwiki/fuwiki_1_0/index_rss.php,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** index_rss.php 13 Oct 2004 20:28:26 -0000 1.1.1.1 --- index_rss.php 13 Feb 2005 21:21:48 -0000 1.2 *************** *** 34,38 **** require("user.inc"); ! define("_URL", "https://fuckup.homeunix.net/fuwiki/index.php"); define("_DESC", "FUCKUP-Wiki RSS-Feed"); define("_COPYR", "Copyright 2003-2004 FUCKUP-Community, all contents released under the GNU-FDL"); --- 34,38 ---- require("user.inc"); ! define("_URL", "http://fuckup.homeunix.net/index.php"); define("_DESC", "FUCKUP-Wiki RSS-Feed"); define("_COPYR", "Copyright 2003-2004 FUCKUP-Community, all contents released under the GNU-FDL"); *************** *** 59,66 **** continue; $out .= " <item>\n <title>". $ar["name"] ."</title>\n"; ! $out .= " <url>". _URL ."?". $ar["name"] ."</url>\n"; ! $out .= " <LastChanged>". timestamp_pattern($ar["date"]) ."</LastChanged>\n"; $out .= " <author>". $WikiUser->get_user_name($ar["creator_id"]) ."</author>\n"; - $out .= " <revision>". $ar["revision"] ."</revision>\n"; $out .= " </item>\n"; $x[$ar["name"]] = true; --- 59,65 ---- continue; $out .= " <item>\n <title>". $ar["name"] ."</title>\n"; ! $out .= " <link>". _URL ."?". $ar["name"] ."</link>\n"; ! $out .= " <pubDate>". timestamp_pattern($ar["date"]) ."</pubDate>\n"; $out .= " <author>". $WikiUser->get_user_name($ar["creator_id"]) ."</author>\n"; $out .= " </item>\n"; $x[$ar["name"]] = true; Index: user.inc =================================================================== RCS file: /cvsroot/fuwiki/fuwiki_1_0/user.inc,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** user.inc 13 Oct 2004 22:35:14 -0000 1.2 --- user.inc 13 Feb 2005 21:21:48 -0000 1.3 *************** *** 3,7 **** class FWikiUser { ! var $id=0, $name, $pass, $email, $authorized=false, $layout, $style, $name_err=false, $pass_err=false, $settings, $settings_loaded, $language, $signature; function FWikiUser($name="", $pass="") --- 3,7 ---- class FWikiUser { ! var $id=0, $name, $pass, $email, $authorized=false, $layout, $style, $name_err=false, $pass_err=false, $settings, $settings_loaded, $language, $signature, $is_cool=false; function FWikiUser($name="", $pass="") *************** *** 86,90 **** } } ! $this->settings_loaded = true; } --- 86,96 ---- } } ! $this->settings_loaded = true; ! $f = fopen("cool_users.txt", "r"); ! while(!feof($f)) ! if(strcmp($this->id."\n", fgets($f, 10)) == 0) { ! $this->is_cool = true; ! return; ! } } *************** *** 239,242 **** --- 245,253 ---- $ar[$key] = $entry; return $ar; + } + + function get_is_cool() + { + return $this->is_cool; } } Index: io.mysql.inc =================================================================== RCS file: /cvsroot/fuwiki/fuwiki_1_0/io.mysql.inc,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** io.mysql.inc 7 Nov 2004 12:00:33 -0000 1.3 --- io.mysql.inc 13 Feb 2005 21:21:48 -0000 1.4 *************** *** 56,60 **** { global $WikiUser; ! if($v != 0) $query = "SELECT name, date, creator_id, revision, text FROM wikis WHERE name ='".$pagename."' AND revision=". $v ." LIMIT 1;"; --- 56,62 ---- { global $WikiUser; ! ! if(!$this->is_readable($pagename)) ! return null; if($v != 0) $query = "SELECT name, date, creator_id, revision, text FROM wikis WHERE name ='".$pagename."' AND revision=". $v ." LIMIT 1;"; *************** *** 75,79 **** { global $WikiUser; ! if($v != 0) $query = "SELECT name, date, creator_id, revision, text FROM wikis WHERE name ='".$pagename."' AND revision=". $v ." ORDER BY revision DESC LIMIT 1;"; --- 77,83 ---- { global $WikiUser; ! ! if(!$this->is_readable($pagename)) ! return null; if($v != 0) $query = "SELECT name, date, creator_id, revision, text FROM wikis WHERE name ='".$pagename."' AND revision=". $v ." ORDER BY revision DESC LIMIT 1;"; *************** *** 125,129 **** function get_latest_revision_number($pagename) { ! $res = mysql_query("SELECT revision, name FROM "._CACHE_TBL." WHERE name='".addslashes(rawurldecode(utf8_decode($pagename)))."' ORDER BY revision DESC LIMIT 1", $this->link); if(mysql_error()) return 0; $row = mysql_fetch_row($res); --- 129,133 ---- function get_latest_revision_number($pagename) { ! $res = mysql_query("SELECT revision, name FROM "._CACHE_TBL." WHERE name='".encode_utf8($pagename)."' ORDER BY revision DESC LIMIT 1", $this->link); if(mysql_error()) return 0; $row = mysql_fetch_row($res); *************** *** 136,142 **** if($v != 0) ! $query = "SELECT name, date, creator_id, revision FROM wikis WHERE name ='". addslashes(rawurldecode(utf8_decode($pagename))) ."' AND revision=". $v ." ORDER BY revision DESC LIMIT 1;"; else ! $query = "SELECT name, date, creator_id, revision FROM "._CACHE_TBL." WHERE name ='".addslashes(rawurldecode(utf8_decode($pagename)))."' ORDER BY revision DESC LIMIT 1;"; $res = mysql_query($query, $this->link); --- 140,146 ---- if($v != 0) ! $query = "SELECT name, date, creator_id, revision FROM wikis WHERE name ='". encode_utf8($pagename) ."' AND revision=". $v ." ORDER BY revision DESC LIMIT 1;"; else ! $query = "SELECT name, date, creator_id, revision FROM "._CACHE_TBL." WHERE name ='".encode_utf8($pagename)."' ORDER BY revision DESC LIMIT 1;"; $res = mysql_query($query, $this->link); *************** *** 165,169 **** function page_exists($pagename) { ! $res = mysql_query("SELECT * FROM "._CACHE_TBL." WHERE name='".addslashes(rawurldecode(utf8_decode($pagename)))."' LIMIT 1;", $this->link); if(!$res) return false; --- 169,173 ---- function page_exists($pagename) { ! $res = mysql_query("SELECT * FROM "._CACHE_TBL." WHERE name='".encode_utf8($pagename)."' LIMIT 1;", $this->link); if(!$res) return false; *************** *** 176,187 **** function is_writable($pagename) { ! $res = mysql_query("SELECT * FROM restrictions WHERE name='".addslashes(rawurldecode(utf8_decode($pagename)))."' LIMIT 1;"); if(!$res || mysql_num_rows($res) == 0) return true; $a = mysql_fetch_array($res); ! if($a["priv"] == "r-") return false; return true; } } --- 180,223 ---- function is_writable($pagename) { ! $res = $this->query("SELECT * FROM restrictions WHERE name='".encode_utf8($pagename)."' LIMIT 1;"); if(!$res || mysql_num_rows($res) == 0) return true; $a = mysql_fetch_array($res); ! if($a["priv"][1] == "-") ! return false; ! return true; ! } ! ! function is_readable($pagename) ! { ! global $WikiUser; ! if($WikiUser->is_authorized() && $WikiUser->get_is_cool()) ! return true; ! $res = $this->query("SELECT * FROM restrictions WHERE name='".encode_utf8($pagename)."' LIMIT 1;"); ! if(!$res || mysql_num_rows($res) == 0) ! return true; ! $a = mysql_fetch_array($res); ! if($a["priv"][0] == "-") return false; return true; } + + function is_private($pagename) + { + $res = $this->query("SELECT * FROM restrictions WHERE name='".encode_utf8($pagename)."' LIMIT 1;"); + if(!$res || mysql_num_rows($res) == 0) + return false; + $a = mysql_fetch_array($res); + if($a["priv"][0] == "-") return true; + return false; + } + + function set_private($pagename) + { + $res = $this->query("SELECT * FROM restrictions WHERE name='".encode_utf8($pagename)."' LIMIT 1;"); + if(!$res || mysql_num_rows($res) == 0) { + $res = $this->query("INSERT restrictions(name, priv) VALUES('".encode_utf8($pagename)."', '-w');"); + } + } } |