SF.net SVN: phpwiki:[10954] trunk/lib/WikiDB/backend
vargenau--- via phpwiki-checkins <[email protected]> Thu, 27 Jan 2022 15:12:17 +0000
| Newsgroups | gmane.comp.web.wiki.phpwiki.checkins |
|---|---|
| Message-ID | <[email protected]> |
Revision: 10954
http://sourceforge.net/p/phpwiki/code/10954
Author: vargenau
Date: 2022-01-27 15:12:17 +0000 (Thu, 27 Jan 2022)
Log Message:
-----------
Make renaming a page work with "file"
Modified Paths:
--------------
trunk/lib/WikiDB/backend/file.php
trunk/lib/WikiDB/backend/flatfile.php
Modified: trunk/lib/WikiDB/backend/file.php
===================================================================
--- trunk/lib/WikiDB/backend/file.php 2022-01-27 15:05:43 UTC (rev 10953)
+++ trunk/lib/WikiDB/backend/file.php 2022-01-27 15:12:17 UTC (rev 10954)
@@ -50,7 +50,6 @@
{
public $data_dir;
public $_dir_names;
-
public $_page_data; // temporarily stores the pagedata (via _loadPageData)
public $_page_version_data; // temporarily stores the versiondata (via _loadVersionData)
public $_latest_versions; // temporarily stores the latest version-numbers (for every pagename)
@@ -86,7 +85,7 @@
// *********************************************************************
// common file load / save functions:
- protected function _pagename2filename($type, $pagename, $version)
+ protected function _pagename2filename($type, $pagename, $version = 0)
{
if ($version == 0) {
return $this->_dir_names[$type] . '/' . urlencode($pagename);
@@ -418,14 +417,22 @@
function rename_page($pagename, $to)
{
$version = $this->_getLatestVersion($pagename);
- foreach ($this->_dir_names as $type => $path) {
- if (is_dir($path)) {
- $filename = $this->_pagename2filename($type, $pagename, $version);
- $new = $this->_pagename2filename($type, $to, $version);
- @rename($filename, $new);
- }
+ // rename page_data
+ $filename = $this->_pagename2filename('page_data', $pagename);
+ $new = $this->_pagename2filename('page_data', $to);
+ rename($filename, $new);
+ // rename links
+ $filename = $this->_pagename2filename('links', $pagename);
+ $new = $this->_pagename2filename('links', $to);
+ rename($filename, $new);
+ // rename ver_data
+ for ($i = 1; $i <= $version; $i++) {
+ $filename = $this->_pagename2filename('ver_data', $pagename, $i);
+ $new = $this->_pagename2filename('ver_data', $to, $i);
+ rename($filename, $new);
}
- $this->update_pagedata($pagename, array('pagename' => $to));
+ $this->_setLatestVersion($pagename, 0);
+ $this->_setLatestVersion($to, $version);
return true;
}
@@ -517,7 +524,6 @@
{
$data = $this->get_versiondata($pagename, $version, true);
if (!$data) {
- assert($data);
return;
}
foreach ($newdata as $key => $val) {
@@ -570,7 +576,7 @@
$links = $this->_loadPageLinks($key);
foreach ($links as $key2 => $val2) {
if (is_array($val2) and isset($val2['linkto']) and ($val2['linkto'] == $pagename)) {
- array_push($out, $key);
+ $out[] = $key;
}
}
}
Modified: trunk/lib/WikiDB/backend/flatfile.php
===================================================================
--- trunk/lib/WikiDB/backend/flatfile.php 2022-01-27 15:05:43 UTC (rev 10953)
+++ trunk/lib/WikiDB/backend/flatfile.php 2022-01-27 15:12:17 UTC (rev 10954)
@@ -42,7 +42,7 @@
// *********************************************************************
// common file load / save functions:
// FilenameForPage is from loadsave.php
- protected function _pagename2filename($type, $pagename, $version)
+ protected function _pagename2filename($type, $pagename, $version = 0)
{
$fpagename = FilenameForPage($pagename);
if (strstr($fpagename, "/")) {
@@ -60,7 +60,7 @@
}
}
- $filename = $this->_pagename2filename('page_data', $pagename, 0);
+ $filename = $this->_pagename2filename('page_data', $pagename);
if (!file_exists($filename)) return NULL;
if (!filesize($filename)) return array();
if ($fd = @fopen($filename, "rb")) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.