SourceForge logo
SourceForge logo
Menu

phpwiki-checkins

From: Joel U. <uck...@us...> - 2001年06月26日 18:01:04
Update of /cvsroot/phpwiki/phpwiki/lib
In directory usw-pr-cvs1:/tmp/cvs-serv5287
Modified Files:
	mysql.php 
Log Message:
Lots of changes here:
- Added $clobber as argument to InsertPage. If $clobber, then use 'replace '; otherwise use 'insert'i. Pages going into the current store should clobber, but pages going into the archive should not. (Assuming that an unlimited number of pages are kept. I still need to implement archive limiting...)
- Created function ReplaceCurrentPage.
- Moved link updating from InsertPage to ReplaceCurrentPage.
- Renamed SaveCopyToArchive to SavePageToArchive.
- Created function RetrievePageVersions. Returns an arary of page hashes that contains all versions of the specified page.
- Added $version as argument to RetrievePage. It needs to know which version to get. Version 0 (zero)is magic, and always refers to the current version.
- Created function GetMaxVersionNumber. This is used mostly to determine which version to get for the diffs against current pages.
- Created function IsVersionInWiki.
- Created function IsVersionInArchive.
- Created function SelectStore. Given a page name and a version, this function returns the store where that page resides.
Index: mysql.php
===================================================================
RCS file: /cvsroot/phpwiki/phpwiki/lib/mysql.php,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -r1.12 -r1.13
*** mysql.php	2001年02月12日 01:43:10	1.12
--- mysql.php	2001年06月26日 18:01:01	1.13
***************
*** 7,13 ****
 MakeDBHash($pagename, $pagehash)
 MakePageHash($dbhash)
! RetrievePage($dbi, $pagename, $pagestore)
! InsertPage($dbi, $pagename, $pagehash)
! SaveCopyToArchive($dbi, $pagename, $pagehash)
 IsWikiPage($dbi, $pagename)
 IsInArchive($dbi, $pagename)
--- 7,19 ----
 MakeDBHash($pagename, $pagehash)
 MakePageHash($dbhash)
! RetrievePage($dbi, $pagename, $pagestore, $version)
! 		RetrievePageVersions($dbi, $pagename, $curstore, $archstore)
! 		GetMaxVersionNumber($dbi, $pagename, $pagestore)
! InsertPage($dbi, $pagename, $pagehash, $clobber)
! 		ReplaceCurrentPage($pagename, $pagehash)
! SavePageToArchive($pagename, $pagehash)
! 		SelectStore($dbi, $pagename, $version, $curstore, $archstore)
! 		IsVersionInWiki($dbi, $pagename, $version)
! 		IsVersionInArchive($dbi, $pagename, $version)
 IsWikiPage($dbi, $pagename)
 IsInArchive($dbi, $pagename)
***************
*** 97,103 ****
 
 // Return hash of page + attributes or default
! function RetrievePage($dbi, $pagename, $pagestore) {
 $pagename = addslashes($pagename);
! if ($res = mysql_query("select * from $pagestore where pagename='$pagename'", $dbi['dbc'])) {
 if ($dbhash = mysql_fetch_array($res)) {
 return MakePageHash($dbhash);
--- 103,112 ----
 
 // Return hash of page + attributes or default
! function RetrievePage($dbi, $pagename, $pagestore, $version) {
 $pagename = addslashes($pagename);
! 
! 		$version = $version ? " and version=$version" : '';
! 
! if ($res = mysql_query("select * from $pagestore where pagename='$pagename'$version", $dbi['dbc'])) {
 if ($dbhash = mysql_fetch_array($res)) {
 return MakePageHash($dbhash);
***************
*** 108,121 ****
 
 
! // Either insert or replace a key/value (a page)
! function InsertPage($dbi, $pagename, $pagehash)
! {
! global $WikiPageStore; // ugly hack
 
- if ($dbi['table'] == $WikiPageStore) { // HACK
- $linklist = ExtractWikiPageLinks($pagehash['content']);
- 	 SetWikiPageLinks($dbi, $pagename, $linklist);
- }
 
 $pagehash = MakeDBHash($pagename, $pagehash);
 
--- 117,148 ----
 
 
! 	// Return all versions of a page as an array of page hashes
! 	function RetrievePageVersions($dbi, $pagename, $curstore, $archstore) {
! 		$pagename = addslashes($pagename);
! 		if (($page[0] = RetrievePage($dbi, $pagename, $curstore, 0)) != -1) {
! 			if ($res = mysql_query("select * from $archstore where pagename='$pagename' order by version desc", $dbi['dbc'])) {
! 				while ($dbhash = mysql_fetch_array($res)) {
! 					array_push($page, MakePageHash($dbhash));
! 				}
! 				return $page;
! 			}
! 		}
! 		return -1;
! 	}
! 
! 
! 	// Get maximum version number of a page in pagestore
! 	function GetMaxVersionNumber($dbi, $pagename, $pagestore) {
! 		$pagename = addslashes($pagename);
! 		if ($res = mysql_query("select max(version) from $pagestore where pagename='$pagename'", $dbi['dbc'])) {
! 			return mysql_result($res, 0);
! 		}
! 		return -1;
! 	}
 
 
+ // Either insert or replace a key/value (a page)
+ function InsertPage($dbi, $pagename, $pagehash, $clobber)
+ {
 $pagehash = MakeDBHash($pagename, $pagehash);
 
***************
*** 128,132 ****
 "'$pagehash[refs]', $pagehash[version]";
 
! if (!mysql_query("replace into $dbi[table] ($COLUMNS) values ($VALUES)",
 			$dbi['dbc'])) {
 $msg = htmlspecialchars(sprintf(gettext ("Error writing page '%s'"), $pagename));
--- 155,162 ----
 "'$pagehash[refs]', $pagehash[version]";
 
! // Clobber existing page?
! $clobber = $clobber ? 'replace' : 'insert';
! 
! if (!mysql_query("$clobber into $dbi[table] ($COLUMNS) values ($VALUES)",
 			$dbi['dbc'])) {
 $msg = htmlspecialchars(sprintf(gettext ("Error writing page '%s'"), $pagename));
***************
*** 138,147 ****
 
 
! // for archiving pages to a seperate dbm
! function SaveCopyToArchive($dbi, $pagename, $pagehash) {
! global $ArchivePageStore;
! $adbi = OpenDataBase($ArchivePageStore);
! InsertPage($adbi, $pagename, $pagehash);
! }
 
 
--- 168,218 ----
 
 
! 	// Adds to or replaces a page in the current pagestore
! 	function ReplaceCurrentPage($pagename, $pagehash) {
! 		global $WikiPageStore;
! 		$dbi = OpenDataBase($WikiPageStore);
! 		$linklist = ExtractWikiPageLinks($pagehash['content']);
! 		SetWikiPageLinks($dbi, $pagename, $linklist);
! 		InsertPage($dbi, $pagename, $pagehash, true);
! 	}
! 
! 
! 	// Adds a page to the archive pagestore
! 	function SavePageToArchive($pagename, $pagehash) {
! 		global $ArchivePageStore;
! 		$dbi = OpenDataBase($ArchivePageStore);
! 		InsertPage($dbi, $pagename, $pagehash, false);
! 	}
! 
! 
! 	// Returns store where version of page resides
! 	function SelectStore($dbi, $pagename, $version, $curstore, $archstore) {
! 		if ($version) {
! 			if (IsVersionInWiki($dbi, $pagename, $version)) return $curstore;
! 			elseif (IsVersionInArchive($dbi, $pagename, $version)) return $archstore;
! 			else return -1; 
! 		}
! 		elseif (IsWikiPage($dbi, $pagename)) return $curstore;
! 		else return -1;	
! 	}
! 
! 
! 	function IsVersionInWiki($dbi, $pagename, $version) {
! $pagename = addslashes($pagename);
! if ($res = mysql_query("select count(*) from $dbi[table] where pagename='$pagename' and version='$version'", $dbi['dbc'])) {
! return mysql_result($res, 0);
! }
! 		return 0;
! 	}
! 
! 	function IsVersionInArchive($dbi, $pagename, $version) {
! 		global $ArchivePageStore;
! 
! $pagename = addslashes($pagename);
! if ($res = mysql_query("select count(*) from $ArchivePageStore where pagename='$pagename' and version='$version'", $dbi['dbc'])) {
! return mysql_result($res, 0);
! }
! return 0;
! 	}
 
 
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.
Thanks for helping keep SourceForge clean.
X





Briefly describe the problem (required):
Upload screenshot of ad (required):
Select a file, or drag & drop file here.
Screenshot instructions:

Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Ad destination/click URL:

AltStyle によって変換されたページ (->オリジナル) /