SourceForge logo
SourceForge logo
Menu

phpwiki-checkins — Automatic notification of CVS checkins on PhpWiki.

You can subscribe to this list here.

2000 Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
(43)
Nov
(73)
Dec
(10)
2001 Jan
(34)
Feb
(110)
Mar
(24)
Apr
(44)
May
(37)
Jun
(22)
Jul
(20)
Aug
(28)
Sep
(50)
Oct
(11)
Nov
(132)
Dec
(595)
2002 Jan
(1099)
Feb
(579)
Mar
(63)
Apr
May
Jun
Jul
Aug
(125)
Sep
(101)
Oct
(25)
Nov
(34)
Dec
(47)
2003 Jan
(82)
Feb
(182)
Mar
(71)
Apr
(3)
May
(1)
Jun
(3)
Jul
Aug
Sep
(14)
Oct
(6)
Nov
(124)
Dec
(68)
2004 Jan
(64)
Feb
(191)
Mar
(199)
Apr
(298)
May
(252)
Jun
(426)
Jul
(134)
Aug
(13)
Sep
(96)
Oct
(75)
Nov
(232)
Dec
(171)
2005 Jan
(205)
Feb
(165)
Mar
(8)
Apr
(74)
May
(21)
Jun
(19)
Jul
(37)
Aug
(69)
Sep
(141)
Oct
(118)
Nov
(31)
Dec
(7)
2006 Jan
(5)
Feb
(10)
Mar
(35)
Apr
(24)
May
(34)
Jun
(29)
Jul
(5)
Aug
(38)
Sep
(30)
Oct
(37)
Nov
(30)
Dec
(86)
2007 Jan
(414)
Feb
(40)
Mar
(18)
Apr
(10)
May
(66)
Jun
(60)
Jul
(105)
Aug
(55)
Sep
(64)
Oct
(7)
Nov
(11)
Dec
(5)
2008 Jan
(26)
Feb
(28)
Mar
(79)
Apr
(34)
May
(61)
Jun
(24)
Jul
(29)
Aug
(160)
Sep
(62)
Oct
(70)
Nov
(32)
Dec
(14)
2009 Jan
(140)
Feb
(135)
Mar
(153)
Apr
(53)
May
(24)
Jun
(138)
Jul
(90)
Aug
(46)
Sep
(72)
Oct
(84)
Nov
(32)
Dec
(4)
2010 Jan
(13)
Feb
(7)
Mar
(14)
Apr
(55)
May
(89)
Jun
(131)
Jul
(41)
Aug
(38)
Sep
(42)
Oct
(11)
Nov
(27)
Dec
(54)
2011 Jan
(127)
Feb
(16)
Mar
(71)
Apr
(52)
May
(32)
Jun
(31)
Jul
(4)
Aug
Sep
(45)
Oct
(26)
Nov
(36)
Dec
(10)
2012 Jan
(23)
Feb
(6)
Mar
(13)
Apr
(18)
May
(1)
Jun
(4)
Jul
(3)
Aug
(12)
Sep
(57)
Oct
(96)
Nov
(163)
Dec
(124)
2013 Jan
(11)
Feb
(17)
Mar
(7)
Apr
(48)
May
(15)
Jun
(29)
Jul
(12)
Aug
Sep
(9)
Oct
Nov
Dec
(3)
2014 Jan
(4)
Feb
(1)
Mar
(2)
Apr
(1)
May
(8)
Jun
(90)
Jul
(104)
Aug
(12)
Sep
(81)
Oct
(139)
Nov
(111)
Dec
(64)
2015 Jan
(46)
Feb
(74)
Mar
(56)
Apr
(61)
May
(3)
Jun
(7)
Jul
(11)
Aug
(5)
Sep
(15)
Oct
(1)
Nov
(1)
Dec
(15)
2016 Jan
(25)
Feb
(33)
Mar
(24)
Apr
(4)
May
(24)
Jun
(3)
Jul
(75)
Aug
Sep
(2)
Oct
(38)
Nov
(4)
Dec
(18)
2017 Jan
(8)
Feb
(1)
Mar
(1)
Apr
May
(14)
Jun
Jul
(5)
Aug
(9)
Sep
Oct
(23)
Nov
Dec
2018 Jan
Feb
Mar
Apr
May
Jun
(2)
Jul
Aug
Sep
Oct
Nov
Dec
2019 Jan
Feb
Mar
(9)
Apr
(60)
May
(1)
Jun
Jul
(13)
Aug
Sep
(11)
Oct
Nov
Dec
2020 Jan
Feb
Mar
(15)
Apr
(4)
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
(47)
2021 Jan
(24)
Feb
(33)
Mar
(1)
Apr
May
(1)
Jun
(64)
Jul
(71)
Aug
(114)
Sep
(82)
Oct
(32)
Nov
(76)
Dec
(86)
2022 Jan
(162)
Feb
(41)
Mar
(11)
Apr
(9)
May
Jun
Jul
(1)
Aug
(2)
Sep
Oct
Nov
Dec
(7)
2023 Jan
Feb
(1)
Mar
(2)
Apr
May
Jun
Jul
(25)
Aug
Sep
Oct
Nov
(7)
Dec
2024 Jan
(7)
Feb
(3)
Mar
(3)
Apr
(1)
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
2025 Jan
Feb
(90)
Mar
(19)
Apr
May
(6)
Jun
Jul
(1)
Aug
Sep
Oct
Nov
Dec

Showing results of 13438

<< < 1 .. 4 5 6 7 8 .. 538 > >> (Page 6 of 538)
From: <var...@us...> - 2024年01月24日 12:07:21
Revision: 11075
 http://sourceforge.net/p/phpwiki/code/11075
Author: vargenau
Date: 2024年01月24日 12:07:18 +0000 (2024年1月24日)
Log Message:
-----------
make function _fake_auth static (patch by Christof Meerwald)
Modified Paths:
--------------
 trunk/lib/WikiUser/HttpAuth.php
 trunk/lib/WikiUser/HttpAuthUpper.php
Modified: trunk/lib/WikiUser/HttpAuth.php
===================================================================
--- trunk/lib/WikiUser/HttpAuth.php	2024年01月24日 12:00:19 UTC (rev 11074)
+++ trunk/lib/WikiUser/HttpAuth.php	2024年01月24日 12:07:18 UTC (rev 11075)
@@ -61,7 +61,7 @@
 
 // FIXME! This doesn't work yet!
 // Allow httpauth by other method: Admin for now only
- public function _fake_auth($userid, $passwd)
+ public static function _fake_auth($userid, $passwd)
 {
 return false;
 
Modified: trunk/lib/WikiUser/HttpAuthUpper.php
===================================================================
--- trunk/lib/WikiUser/HttpAuthUpper.php	2024年01月24日 12:00:19 UTC (rev 11074)
+++ trunk/lib/WikiUser/HttpAuthUpper.php	2024年01月24日 12:07:18 UTC (rev 11075)
@@ -62,7 +62,7 @@
 
 // FIXME! This doesn't work yet!
 // Allow httpauth by other method: Admin for now only
- public function _fake_auth($userid, $passwd)
+ public static function _fake_auth($userid, $passwd)
 {
 return false;
 
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <var...@us...> - 2024年01月24日 12:00:22
Revision: 11074
 http://sourceforge.net/p/phpwiki/code/11074
Author: vargenau
Date: 2024年01月24日 12:00:19 +0000 (2024年1月24日)
Log Message:
-----------
lib/plugin/SystemInfo.php: check for "shell_exec" before using it (patch by Christof Meerwald)
Modified Paths:
--------------
 trunk/lib/plugin/SystemInfo.php
 trunk/locale/it/pgsrc/NoteDiRilascio
 trunk/pgsrc/ReleaseNotes
Modified: trunk/lib/plugin/SystemInfo.php
===================================================================
--- trunk/lib/plugin/SystemInfo.php	2024年01月17日 09:19:45 UTC (rev 11073)
+++ trunk/lib/plugin/SystemInfo.php	2024年01月24日 12:00:19 UTC (rev 11074)
@@ -403,7 +403,11 @@
 if (empty($content)) {
 $dir = defined('PHPWIKI_DIR') ? PHPWIKI_DIR : '.';
 //TODO: windows only (no cygwin)
- $appsize = `du -s $dir | cut -f1`;
+ if (function_exists('shell_exec')) {
+ $appsize = `du -s $dir | cut -f1`;
+ } else {
+ $appsize = 0;
+ }
 
 if (in_array($DBParams['dbtype'], array('SQL', 'PDO'))) {
 //TODO: where is the data is actually stored? see phpMyAdmin
@@ -417,8 +421,12 @@
 }
 // if issubdirof($dbdir, $dir) $appsize -= $pagesize;
 } else { // flatfile
- $dbdir = $DBParams['directory'];
- $pagesize = `du -s $dbdir`;
+ if (function_exists('shell_exec')) {
+ $dbdir = $DBParams['directory'];
+ $pagesize = `du -s $dbdir`;
+ } else {
+ $pagesize = 0;
+ }
 // if issubdirof($dbdir, $dir) $appsize -= $pagesize;
 }
 $content = array('appsize' => $appsize,
Modified: trunk/locale/it/pgsrc/NoteDiRilascio
===================================================================
--- trunk/locale/it/pgsrc/NoteDiRilascio	2024年01月17日 09:19:45 UTC (rev 11073)
+++ trunk/locale/it/pgsrc/NoteDiRilascio	2024年01月24日 12:00:19 UTC (rev 11074)
@@ -1,4 +1,4 @@
-Date: 2024年1月17日 10:08:28 +0000
+Date: 2024年1月24日 12:59:32 +0000
 Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=NoteDiRilascio;
@@ -11,6 +11,7 @@
 == 1.6.4 2024-XX-XX Marc-Etienne Vargenau, Christof Meerwald ==
 
 * Upgrade PEAR to relase 1.10.14, PEAR DB to release 1.12.1
+* Check for "shell_exec" before using it (Christof Meerwald)
 
 == 1.6.3 2023年11月15日 Marc-Etienne Vargenau ==
 
Modified: trunk/pgsrc/ReleaseNotes
===================================================================
--- trunk/pgsrc/ReleaseNotes	2024年01月17日 09:19:45 UTC (rev 11073)
+++ trunk/pgsrc/ReleaseNotes	2024年01月24日 12:00:19 UTC (rev 11074)
@@ -1,4 +1,4 @@
-Date: 2024年1月17日 10:08:28 +0000
+Date: 2024年1月24日 12:59:32 +0000
 Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=ReleaseNotes;
@@ -11,6 +11,7 @@
 == 1.6.4 2024-XX-XX Marc-Etienne Vargenau, Christof Meerwald ==
 
 * Upgrade PEAR to relase 1.10.14, PEAR DB to release 1.12.1
+* Check for "shell_exec" before using it (Christof Meerwald)
 
 == 1.6.3 2023年11月15日 Marc-Etienne Vargenau ==
 
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <var...@us...> - 2024年01月17日 09:19:49
Revision: 11073
 http://sourceforge.net/p/phpwiki/code/11073
Author: vargenau
Date: 2024年01月17日 09:19:45 +0000 (2024年1月17日)
Log Message:
-----------
Upgrade PEAR to relase 1.10.14, PEAR DB to release 1.12.1
Modified Paths:
--------------
 trunk/lib/pear/DB/common.php
 trunk/lib/pear/DB/dbase.php
 trunk/lib/pear/DB/fbsql.php
 trunk/lib/pear/DB/ibase.php
 trunk/lib/pear/DB/ifx.php
 trunk/lib/pear/DB/msql.php
 trunk/lib/pear/DB/mssql.php
 trunk/lib/pear/DB/mysql.php
 trunk/lib/pear/DB/mysqli.php
 trunk/lib/pear/DB/oci8.php
 trunk/lib/pear/DB/odbc.php
 trunk/lib/pear/DB/pgsql.php
 trunk/lib/pear/DB/sqlite.php
 trunk/lib/pear/DB/storage.php
 trunk/lib/pear/DB/sybase.php
 trunk/lib/pear/DB.php
 trunk/lib/pear/PEAR.php
 trunk/locale/it/pgsrc/NoteDiRilascio
 trunk/pgsrc/ReleaseNotes
Added Paths:
-----------
 trunk/lib/pear/DB/sqlite3.php
Modified: trunk/lib/pear/DB/common.php
===================================================================
--- trunk/lib/pear/DB/common.php	2024年01月12日 18:46:11 UTC (rev 11072)
+++ trunk/lib/pear/DB/common.php	2024年01月17日 09:19:45 UTC (rev 11073)
@@ -42,7 +42,7 @@
 * @author Daniel Convissor <da...@ph...>
 * @copyright 1997-2007 The PHP Group
 * @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.10.0
+ * @version Release: 1.12.1
 * @link http://pear.php.net/package/DB
 */
 class DB_common extends PEAR
@@ -315,6 +315,7 @@
 * + odbc(db2)
 * + pgsql
 * + sqlite
+ * + sqlite3
 * + sybase (must execute <kbd>set quoted_identifier on</kbd> sometime
 * prior to use)
 *
@@ -417,6 +418,10 @@
 * (<kbd>INTEGER</kbd>)
 * </li>
 * <li>
+ * <kbd>sqlite3</kbd> -> <samp>1/0</samp>
+ * (<kbd>INTEGER</kbd>)
+ * </li>
+ * <li>
 * <kbd>sybase</kbd> -> <samp>1/0</samp>
 * (<kbd>TINYINT(1)</kbd>)
 * </li>
@@ -641,6 +646,7 @@
 * + mysql
 * + mysqli
 * + sqlite
+ * + sqlite3
 *
 *
 * <samp>DB_PORTABILITY_NUMROWS</samp>
@@ -720,6 +726,7 @@
 case 'mysql':
 case 'mysqli':
 case 'sqlite':
+ case 'sqlite3':
 $this->options['portability'] =
 DB_PORTABILITY_DELETE_COUNT;
 break;
@@ -1809,6 +1816,23 @@
 }
 
 // }}}
+ // {{{ lastId()
+
+ /**
+ * Returns the row ID of the most recent INSERT into the database
+ *
+ * @param string $link_identifier DBMS link identifier
+ *
+ * @return int the row ID of the most recent INSERT into the database.
+ * If no successful INSERTs into rowid tables have ever
+ * occurred on this database connection then returns 0.
+ */
+ function lastId($link_identifier = null)
+ {
+ return $this->raiseError(DB_ERROR_NOT_CAPABLE);
+ }
+
+ // }}}
 // {{{ createSequence()
 
 /**
Modified: trunk/lib/pear/DB/dbase.php
===================================================================
--- trunk/lib/pear/DB/dbase.php	2024年01月12日 18:46:11 UTC (rev 11072)
+++ trunk/lib/pear/DB/dbase.php	2024年01月17日 09:19:45 UTC (rev 11073)
@@ -41,7 +41,7 @@
 * @author Daniel Convissor <da...@ph...>
 * @copyright 1997-2007 The PHP Group
 * @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.10.0
+ * @version Release: 1.12.1
 * @link http://pear.php.net/package/DB
 */
 class DB_dbase extends DB_common
@@ -269,7 +269,7 @@
 // }}}
 // {{{ &query()
 
- function &query($query, $params = array())
+ function &query($query = null, $params = array())
 {
 // emulate result resources
 $this->res_row[(int)$this->result] = 0;
Modified: trunk/lib/pear/DB/fbsql.php
===================================================================
--- trunk/lib/pear/DB/fbsql.php	2024年01月12日 18:46:11 UTC (rev 11072)
+++ trunk/lib/pear/DB/fbsql.php	2024年01月17日 09:19:45 UTC (rev 11073)
@@ -41,7 +41,7 @@
 * @author Daniel Convissor <da...@ph...>
 * @copyright 1997-2007 The PHP Group
 * @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.10.0
+ * @version Release: 1.12.1
 * @link http://pear.php.net/package/DB
 * @since Class functional since Release 1.7.0
 */
Modified: trunk/lib/pear/DB/ibase.php
===================================================================
--- trunk/lib/pear/DB/ibase.php	2024年01月12日 18:46:11 UTC (rev 11072)
+++ trunk/lib/pear/DB/ibase.php	2024年01月17日 09:19:45 UTC (rev 11073)
@@ -49,7 +49,7 @@
 * @author Daniel Convissor <da...@ph...>
 * @copyright 1997-2007 The PHP Group
 * @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.10.0
+ * @version Release: 1.12.1
 * @link http://pear.php.net/package/DB
 * @since Class became stable in Release 1.7.0
 */
@@ -707,9 +707,9 @@
 $repeat = 0;
 do {
 $this->pushErrorHandling(PEAR_ERROR_RETURN);
- $result = $this->query("SELECT GEN_ID(${sqn}, 1) "
+ $result = $this->query("SELECT GEN_ID({$sqn}, 1) "
 . 'FROM RDB$GENERATORS '
- . "WHERE RDB\$GENERATOR_NAME='${sqn}'");
+ . "WHERE RDB\$GENERATOR_NAME='{$sqn}'");
 $this->popErrorHandling();
 if ($ondemand && DB::isError($result)) {
 $repeat = 1;
@@ -746,7 +746,7 @@
 {
 $sqn = strtoupper($this->getSequenceName($seq_name));
 $this->pushErrorHandling(PEAR_ERROR_RETURN);
- $result = $this->query("CREATE GENERATOR ${sqn}");
+ $result = $this->query("CREATE GENERATOR {$sqn}");
 $this->popErrorHandling();
 
 return $result;
Modified: trunk/lib/pear/DB/ifx.php
===================================================================
--- trunk/lib/pear/DB/ifx.php	2024年01月12日 18:46:11 UTC (rev 11072)
+++ trunk/lib/pear/DB/ifx.php	2024年01月17日 09:19:45 UTC (rev 11073)
@@ -48,7 +48,7 @@
 * @author Daniel Convissor <da...@ph...>
 * @copyright 1997-2007 The PHP Group
 * @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.10.0
+ * @version Release: 1.12.1
 * @link http://pear.php.net/package/DB
 */
 class DB_ifx extends DB_common
Modified: trunk/lib/pear/DB/msql.php
===================================================================
--- trunk/lib/pear/DB/msql.php	2024年01月12日 18:46:11 UTC (rev 11072)
+++ trunk/lib/pear/DB/msql.php	2024年01月17日 09:19:45 UTC (rev 11073)
@@ -47,7 +47,7 @@
 * @author Daniel Convissor <da...@ph...>
 * @copyright 1997-2007 The PHP Group
 * @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.10.0
+ * @version Release: 1.12.1
 * @link http://pear.php.net/package/DB
 * @since Class not functional until Release 1.7.0
 */
@@ -443,7 +443,7 @@
 $repeat = false;
 do {
 $this->pushErrorHandling(PEAR_ERROR_RETURN);
- $result = $this->query("SELECT _seq FROM ${seqname}");
+ $result = $this->query("SELECT _seq FROM {$seqname}");
 $this->popErrorHandling();
 if ($ondemand && DB::isError($result) &&
 $result->getCode() == DB_ERROR_NOSUCHTABLE) {
@@ -490,7 +490,7 @@
 if (DB::isError($res)) {
 return $res;
 }
- $res = $this->query("CREATE SEQUENCE ON ${seqname}");
+ $res = $this->query("CREATE SEQUENCE ON {$seqname}");
 return $res;
 }
 
Modified: trunk/lib/pear/DB/mssql.php
===================================================================
--- trunk/lib/pear/DB/mssql.php	2024年01月12日 18:46:11 UTC (rev 11072)
+++ trunk/lib/pear/DB/mssql.php	2024年01月17日 09:19:45 UTC (rev 11073)
@@ -22,6 +22,7 @@
 * @license http://www.php.net/license/3_0.txt PHP License 3.0
 * @version CVS: $Id$
 * @link http://pear.php.net/package/DB
+ * @deprecated since 1.12.0
 */
 
 /**
@@ -49,8 +50,9 @@
 * @author Daniel Convissor <da...@ph...>
 * @copyright 1997-2007 The PHP Group
 * @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.10.0
+ * @version Release: 1.12.1
 * @link http://pear.php.net/package/DB
+ * @deprecated since 1.12.0
 */
 class DB_mssql extends DB_common
 {
Modified: trunk/lib/pear/DB/mysql.php
===================================================================
--- trunk/lib/pear/DB/mysql.php	2024年01月12日 18:46:11 UTC (rev 11072)
+++ trunk/lib/pear/DB/mysql.php	2024年01月17日 09:19:45 UTC (rev 11073)
@@ -22,6 +22,7 @@
 * @license http://www.php.net/license/3_0.txt PHP License 3.0
 * @version CVS: $Id$
 * @link http://pear.php.net/package/DB
+ * @deprecated since 1.12.0
 */
 
 /**
@@ -41,8 +42,9 @@
 * @author Daniel Convissor <da...@ph...>
 * @copyright 1997-2007 The PHP Group
 * @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.10.0
+ * @version Release: 1.12.1
 * @link http://pear.php.net/package/DB
+ * @deprecated since 1.12.0
 */
 class DB_mysql extends DB_common
 {
@@ -109,9 +111,12 @@
 1136 => DB_ERROR_VALUE_COUNT_ON_ROW,
 1142 => DB_ERROR_ACCESS_VIOLATION,
 1146 => DB_ERROR_NOSUCHTABLE,
+ 1205 => DB_ERROR_LOCK_TIMEOUT,
+ 1213 => DB_ERROR_DEADLOCK,
 1216 => DB_ERROR_CONSTRAINT,
 1217 => DB_ERROR_CONSTRAINT,
- 1356 => DB_ERROR_DIVZERO,
+ 1356 => DB_ERROR_INVALID_VIEW,
+ 1365 => DB_ERROR_DIVZERO,
 1451 => DB_ERROR_CONSTRAINT,
 1452 => DB_ERROR_CONSTRAINT,
 );
@@ -587,7 +592,7 @@
 do {
 $repeat = 0;
 $this->pushErrorHandling(PEAR_ERROR_RETURN);
- $result = $this->query("UPDATE ${seqname} ".
+ $result = $this->query("UPDATE {$seqname} ".
 'SET id=LAST_INSERT_ID(id+1)');
 $this->popErrorHandling();
 if ($result === DB_OK) {
@@ -599,7 +604,7 @@
 // EMPTY SEQ TABLE
 // Sequence table must be empty for some reason, so fill
 // it and return 1 and obtain a user-level lock
- $result = $this->getOne("SELECT GET_LOCK('${seqname}_lock',10)");
+ $result = $this->getOne("SELECT GET_LOCK('{$seqname}_lock',10)");
 if (DB::isError($result)) {
 return $this->raiseError($result);
 }
@@ -609,7 +614,7 @@
 }
 
 // add the default value
- $result = $this->query("REPLACE INTO ${seqname} (id) VALUES (0)");
+ $result = $this->query("REPLACE INTO {$seqname} (id) VALUES (0)");
 if (DB::isError($result)) {
 return $this->raiseError($result);
 }
@@ -616,7 +621,7 @@
 
 // Release the lock
 $result = $this->getOne('SELECT RELEASE_LOCK('
- . "'${seqname}_lock')");
+ . "'{$seqname}_lock')");
 if (DB::isError($result)) {
 return $this->raiseError($result);
 }
@@ -651,6 +656,29 @@
 }
 
 // }}}
+ // {{{ lastId()
+
+ /**
+ * Returns the row ID of the most recent INSERT into the database
+ *
+ * @param string $link_identifier mysql link identifier
+ *
+ * @return int the row ID of the most recent INSERT into the database.
+ * If no successful INSERTs into rowid tables have ever
+ * occurred on this database connection then returns 0.
+ *
+ * @see DB_common::lastID()
+ */
+ function lastId($link_identifier = null)
+ {
+ $id = mysql_insert_id($link_identifier);
+ if(empty($id) || !is_int($id)) {
+ return 0;
+ }
+ return $id;
+ }
+
+ // }}}
 // {{{ createSequence()
 
 /**
@@ -673,12 +701,12 @@
 return $res;
 }
 // insert yields value 1, nextId call will generate ID 2
- $res = $this->query("INSERT INTO ${seqname} (id) VALUES (0)");
+ $res = $this->query("INSERT INTO {$seqname} (id) VALUES (0)");
 if (DB::isError($res)) {
 return $res;
 }
 // so reset to zero
- return $this->query("UPDATE ${seqname} SET id = 0");
+ return $this->query("UPDATE {$seqname} SET id = 0");
 }
 
 // }}}
@@ -717,7 +745,7 @@
 // Obtain a user-level lock... this will release any previous
 // application locks, but unlike LOCK TABLES, it does not abort
 // the current transaction and is much less frequently used.
- $result = $this->getOne("SELECT GET_LOCK('${seqname}_lock',10)");
+ $result = $this->getOne("SELECT GET_LOCK('{$seqname}_lock',10)");
 if (DB::isError($result)) {
 return $result;
 }
@@ -727,7 +755,7 @@
 return $this->mysqlRaiseError(DB_ERROR_NOT_LOCKED);
 }
 
- $highest_id = $this->getOne("SELECT MAX(id) FROM ${seqname}");
+ $highest_id = $this->getOne("SELECT MAX(id) FROM {$seqname}");
 if (DB::isError($highest_id)) {
 return $highest_id;
 }
@@ -743,7 +771,7 @@
 // If another thread has been waiting for this lock,
 // it will go thru the above procedure, but will have no
 // real effect
- $result = $this->getOne("SELECT RELEASE_LOCK('${seqname}_lock')");
+ $result = $this->getOne("SELECT RELEASE_LOCK('{$seqname}_lock')");
 if (DB::isError($result)) {
 return $result;
 }
Modified: trunk/lib/pear/DB/mysqli.php
===================================================================
--- trunk/lib/pear/DB/mysqli.php	2024年01月12日 18:46:11 UTC (rev 11072)
+++ trunk/lib/pear/DB/mysqli.php	2024年01月17日 09:19:45 UTC (rev 11073)
@@ -43,7 +43,7 @@
 * @author Daniel Convissor <da...@ph...>
 * @copyright 1997-2007 The PHP Group
 * @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.10.0
+ * @version Release: 1.12.1
 * @link http://pear.php.net/package/DB
 * @since Class functional since Release 1.6.3
 */
@@ -112,9 +112,12 @@
 1136 => DB_ERROR_VALUE_COUNT_ON_ROW,
 1142 => DB_ERROR_ACCESS_VIOLATION,
 1146 => DB_ERROR_NOSUCHTABLE,
+ 1205 => DB_ERROR_LOCK_TIMEOUT,
+ 1213 => DB_ERROR_DEADLOCK,
 1216 => DB_ERROR_CONSTRAINT,
 1217 => DB_ERROR_CONSTRAINT,
- 1356 => DB_ERROR_DIVZERO,
+ 1356 => DB_ERROR_INVALID_VIEW,
+ 1365 => DB_ERROR_DIVZERO,
 1451 => DB_ERROR_CONSTRAINT,
 1452 => DB_ERROR_CONSTRAINT,
 );
@@ -296,7 +299,10 @@
 $ini = ini_get('track_errors');
 @ini_set('track_errors', 1);
 $php_errormsg = '';
-
+ if (version_compare(PHP_VERSION, '8.1', '>='))
+ {
+ mysqli_report(MYSQLI_REPORT_OFF);
+ }
 if (((int) $this->getOption('ssl')) === 1) {
 $init = mysqli_init();
 mysqli_ssl_set(
@@ -362,6 +368,10 @@
 {
 $ret = @mysqli_close($this->connection);
 $this->connection = null;
+ if (version_compare(PHP_VERSION, '8.1', '>='))
+ {
+ mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
+ }
 return $ret;
 }
 
@@ -681,7 +691,7 @@
 // so fill it and return 1
 // Obtain a user-level lock
 $result = $this->getOne('SELECT GET_LOCK('
- . "'${seqname}_lock', 10)");
+ . "'{$seqname}_lock', 10)");
 if (DB::isError($result)) {
 return $this->raiseError($result);
 }
@@ -698,7 +708,7 @@
 
 // Release the lock
 $result = $this->getOne('SELECT RELEASE_LOCK('
- . "'${seqname}_lock')");
+ . "'{$seqname}_lock')");
 if (DB::isError($result)) {
 return $this->raiseError($result);
 }
@@ -736,7 +746,30 @@
 return $this->raiseError($result);
 }
 
+ // }}}
+ // {{{ lastId()
+
 /**
+ * Returns the row ID of the most recent INSERT into the database
+ *
+ * @param string $link_identifier mysqli link identifier
+ *
+ * @return int the row ID of the most recent INSERT into the database.
+ * If no successful INSERTs into rowid tables have ever
+ * occurred on this database connection then returns 0.
+ *
+ * @see DB_common::lastID()
+ */
+ function lastId($link_identifier = null)
+ {
+ $id = $this->connection->insert_id();
+ if (empty($id) || !is_int($id)) {
+ return 0;
+ }
+ return $id;
+ }
+
+ /**
 * Creates a new sequence
 *
 * @param string $seq_name name of the new sequence
@@ -756,7 +789,7 @@
 return $res;
 }
 // insert yields value 1, nextId call will generate ID 2
- return $this->query("INSERT INTO ${seqname} (id) VALUES (0)");
+ return $this->query("INSERT INTO {$seqname} (id) VALUES (0)");
 }
 
 // }}}
@@ -795,7 +828,7 @@
 // Obtain a user-level lock... this will release any previous
 // application locks, but unlike LOCK TABLES, it does not abort
 // the current transaction and is much less frequently used.
- $result = $this->getOne("SELECT GET_LOCK('${seqname}_lock',10)");
+ $result = $this->getOne("SELECT GET_LOCK('{$seqname}_lock',10)");
 if (DB::isError($result)) {
 return $result;
 }
@@ -805,7 +838,7 @@
 return $this->mysqliRaiseError(DB_ERROR_NOT_LOCKED);
 }
 
- $highest_id = $this->getOne("SELECT MAX(id) FROM ${seqname}");
+ $highest_id = $this->getOne("SELECT MAX(id) FROM {$seqname}");
 if (DB::isError($highest_id)) {
 return $highest_id;
 }
@@ -822,7 +855,7 @@
 // If another thread has been waiting for this lock,
 // it will go thru the above procedure, but will have no
 // real effect
- $result = $this->getOne("SELECT RELEASE_LOCK('${seqname}_lock')");
+ $result = $this->getOne("SELECT RELEASE_LOCK('{$seqname}_lock')");
 if (DB::isError($result)) {
 return $result;
 }
Modified: trunk/lib/pear/DB/oci8.php
===================================================================
--- trunk/lib/pear/DB/oci8.php	2024年01月12日 18:46:11 UTC (rev 11072)
+++ trunk/lib/pear/DB/oci8.php	2024年01月17日 09:19:45 UTC (rev 11073)
@@ -47,7 +47,7 @@
 * @author Daniel Convissor <da...@ph...>
 * @copyright 1997-2007 The PHP Group
 * @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.10.0
+ * @version Release: 1.12.1
 * @link http://pear.php.net/package/DB
 */
 class DB_oci8 extends DB_common
@@ -249,7 +249,7 @@
 $dsn['password'],
 $db,
 $char);
- $error = OCIError();
+ $error = oci_error();
 if (!empty($error) && $error['code'] == 12541) {
 // Couldn't find TNS listener. Try direct connection.
 $this->connection = @$connect_function($dsn['username'],
@@ -270,7 +270,7 @@
 }
 
 if (!$this->connection) {
- $error = OCIError();
+ $error = oci_error();
 $error = (is_array($error)) ? $error['message'] : null;
 return $this->raiseError(DB_ERROR_CONNECT_FAILED,
 null, null, null,
@@ -289,11 +289,7 @@
 */
 function disconnect()
 {
- if (function_exists('oci_close')) {
- $ret = @oci_close($this->connection);
- } else {
- $ret = @OCILogOff($this->connection);
- }
+ $ret = @oci_close($this->connection);
 $this->connection = null;
 return $ret;
 }
@@ -320,14 +316,14 @@
 $this->last_parameters = array();
 $this->last_query = $query;
 $query = $this->modifyQuery($query);
- $result = @OCIParse($this->connection, $query);
+ $result = @oci_parse($this->connection, $query);
 if (!$result) {
 return $this->oci8RaiseError();
 }
 if ($this->autocommit) {
- $success = @OCIExecute($result,OCI_COMMIT_ON_SUCCESS);
+ $success = @oci_execute($result,OCI_COMMIT_ON_SUCCESS);
 } else {
- $success = @OCIExecute($result,OCI_DEFAULT);
+ $success = @oci_execute($result,OCI_DEFAULT);
 }
 if (!$success) {
 return $this->oci8RaiseError($result);
@@ -336,7 +332,7 @@
 if ($this->_checkManip($query)) {
 return DB_OK;
 } else {
- @ocisetprefetch($result, $this->options['result_buffering']);
+ @oci_set_prefetch($result, $this->options['result_buffering']);
 return $result;
 }
 }
@@ -387,7 +383,7 @@
 return $this->raiseError(DB_ERROR_NOT_CAPABLE);
 }
 if ($fetchmode & DB_FETCHMODE_ASSOC) {
- $moredata = @OCIFetchInto($result,$arr,OCI_ASSOC+OCI_RETURN_NULLS+OCI_RETURN_LOBS);
+ $moredata = @oci_fetch_array($result,$arr,OCI_ASSOC+OCI_RETURN_NULLS+OCI_RETURN_LOBS);
 if ($this->options['portability'] & DB_PORTABILITY_LOWERCASE &&
 $moredata)
 {
@@ -394,7 +390,7 @@
 $arr = array_change_key_case($arr, CASE_LOWER);
 }
 } else {
- $moredata = OCIFetchInto($result,$arr,OCI_RETURN_NULLS+OCI_RETURN_LOBS);
+ $moredata = oci_fetch_array($result,$arr,OCI_RETURN_NULLS+OCI_RETURN_LOBS);
 }
 if (!$moredata) {
 return null;
@@ -426,7 +422,7 @@
 */
 function freeResult($result)
 {
- return is_resource($result) ? OCIFreeStatement($result) : false;
+ return is_resource($result) ? oci_free_statement($result) : false;
 }
 
 /**
@@ -520,7 +516,7 @@
 */
 function numCols($result)
 {
- $cols = @OCINumCols($result);
+ $cols = @oci_num_fields($result);
 if (!$cols) {
 return $this->oci8RaiseError($result);
 }
@@ -592,7 +588,7 @@
 
 $this->last_query = $query;
 $newquery = $this->modifyQuery($newquery);
- if (!$stmt = @OCIParse($this->connection, $newquery)) {
+ if (!$stmt = @oci_parse($this->connection, $newquery)) {
 return $this->oci8RaiseError();
 }
 $this->prepare_types[(int)$stmt] = $types;
@@ -664,7 +660,7 @@
 $data[$key] = $this->quoteFloat($data[$key]);
 }
 }
- if (!@OCIBindByName($stmt, ':bind' . $i, $data[$key], -1)) {
+ if (!@oci_bind_by_name($stmt, ':bind' . $i, $data[$key], -1)) {
 $tmp = $this->oci8RaiseError($stmt);
 return $tmp;
 }
@@ -673,9 +669,9 @@
 $i++;
 }
 if ($this->autocommit) {
- $success = @OCIExecute($stmt, OCI_COMMIT_ON_SUCCESS);
+ $success = @oci_execute($stmt, OCI_COMMIT_ON_SUCCESS);
 } else {
- $success = @OCIExecute($stmt, OCI_DEFAULT);
+ $success = @oci_execute($stmt, OCI_DEFAULT);
 }
 if (!$success) {
 $tmp = $this->oci8RaiseError($stmt);
@@ -688,7 +684,7 @@
 $tmp = DB_OK;
 } else {
 $this->_last_query_manip = false;
- @ocisetprefetch($stmt, $this->options['result_buffering']);
+ @oci_set_prefetch($stmt, $this->options['result_buffering']);
 $tmp = new DB_result($this, $stmt);
 }
 return $tmp;
@@ -721,7 +717,7 @@
 */
 function commit()
 {
- $result = @OCICommit($this->connection);
+ $result = @oci_commit($this->connection);
 if (!$result) {
 return $this->oci8RaiseError();
 }
@@ -738,7 +734,7 @@
 */
 function rollback()
 {
- $result = @OCIRollback($this->connection);
+ $result = @oci_rollback($this->connection);
 if (!$result) {
 return $this->oci8RaiseError();
 }
@@ -760,7 +756,7 @@
 if ($this->last_stmt === false) {
 return $this->oci8RaiseError();
 }
- $result = @OCIRowCount($this->last_stmt);
+ $result = @oci_num_rows($this->last_stmt);
 if ($result === false) {
 return $this->oci8RaiseError($this->last_stmt);
 }
@@ -821,20 +817,20 @@
 } else {
 $q_fields = "SELECT * FROM ($query) WHERE NULL = NULL";
 
- if (!$result = @OCIParse($this->connection, $q_fields)) {
+ if (!$result = @oci_parse($this->connection, $q_fields)) {
 $this->last_query = $q_fields;
 return $this->oci8RaiseError();
 }
- if (!@OCIExecute($result, OCI_DEFAULT)) {
+ if (!@oci_execute($result, OCI_DEFAULT)) {
 $this->last_query = $q_fields;
 return $this->oci8RaiseError($result);
 }
 }
 
- $ncols = OCINumCols($result);
+ $ncols = oci_num_fields($result);
 $cols = array();
 for ( $i = 1; $i <= $ncols; $i++ ) {
- $cols[] = '"' . OCIColumnName($result, $i) . '"';
+ $cols[] = '"' . oci_field_name($result, $i) . '"';
 }
 $fields = implode(', ', $cols);
 // XXX Test that (tip by John Lim)
@@ -877,7 +873,7 @@
 $repeat = 0;
 do {
 $this->expectError(DB_ERROR_NOSUCHTABLE);
- $result = $this->query("SELECT ${seqname}.nextval FROM dual");
+ $result = $this->query("SELECT {$seqname}.nextval FROM dual");
 $this->popExpect();
 if ($ondemand && DB::isError($result) &&
 $result->getCode() == DB_ERROR_NOSUCHTABLE) {
@@ -950,11 +946,11 @@
 function oci8RaiseError($errno = null)
 {
 if ($errno === null) {
- $error = @OCIError($this->connection);
+ $error = @oci_error($this->connection);
 return $this->raiseError($this->errorCode($error['code']),
 null, null, null, $error['message']);
 } elseif (is_resource($errno)) {
- $error = @OCIError($errno);
+ $error = @oci_error($errno);
 return $this->raiseError($this->errorCode($error['code']),
 null, null, null, $error['message']);
 }
@@ -973,9 +969,9 @@
 function errorNative()
 {
 if (is_resource($this->last_stmt)) {
- $error = @OCIError($this->last_stmt);
+ $error = @oci_error($this->last_stmt);
 } else {
- $error = @OCIError($this->connection);
+ $error = @oci_error($this->connection);
 }
 if (is_array($error)) {
 return $error['code'];
@@ -1029,21 +1025,21 @@
 
 $this->last_query = $q_fields;
 
- if (!$stmt = @OCIParse($this->connection, $q_fields)) {
+ if (!$stmt = @oci_parse($this->connection, $q_fields)) {
 return $this->oci8RaiseError(DB_ERROR_NEED_MORE_DATA);
 }
- if (!@OCIExecute($stmt, OCI_DEFAULT)) {
+ if (!@oci_execute($stmt, OCI_DEFAULT)) {
 return $this->oci8RaiseError($stmt);
 }
 
 $i = 0;
- while (@OCIFetch($stmt)) {
+ while (@oci_fetch($stmt)) {
 $res[$i] = array(
 'table' => $case_func($result),
- 'name' => $case_func(@OCIResult($stmt, 1)),
- 'type' => @OCIResult($stmt, 2),
- 'len' => @OCIResult($stmt, 3),
- 'flags' => (@OCIResult($stmt, 4) == 'N') ? 'not_null' : '',
+ 'name' => $case_func(@oci_result($stmt, 1)),
+ 'type' => @oci_result($stmt, 2),
+ 'len' => @oci_result($stmt, 3),
+ 'flags' => (@oci_result($stmt, 4) == 'N') ? 'not_null' : '',
 );
 if ($mode & DB_TABLEINFO_ORDER) {
 $res['order'][$res[$i]['name']] = $i;
@@ -1057,7 +1053,7 @@
 if ($mode) {
 $res['num_fields'] = $i;
 }
- @OCIFreeStatement($stmt);
+ @oci_free_statement($stmt);
 
 } else {
 if (isset($result->result)) {
@@ -1071,7 +1067,7 @@
 $res = array();
 
 if ($result === $this->last_stmt) {
- $count = @OCINumCols($result);
+ $count = @oci_num_fields($result);
 if ($mode) {
 $res['num_fields'] = $count;
 }
@@ -1078,9 +1074,9 @@
 for ($i = 0; $i < $count; $i++) {
 $res[$i] = array(
 'table' => '',
- 'name' => $case_func(@OCIColumnName($result, $i+1)),
- 'type' => @OCIColumnType($result, $i+1),
- 'len' => @OCIColumnSize($result, $i+1),
+ 'name' => $case_func(@oci_field_name($result, $i+1)),
+ 'type' => @oci_field_type($result, $i+1),
+ 'len' => @oci_field_size($result, $i+1),
 'flags' => '',
 );
 if ($mode & DB_TABLEINFO_ORDER) {
Modified: trunk/lib/pear/DB/odbc.php
===================================================================
--- trunk/lib/pear/DB/odbc.php	2024年01月12日 18:46:11 UTC (rev 11072)
+++ trunk/lib/pear/DB/odbc.php	2024年01月17日 09:19:45 UTC (rev 11073)
@@ -44,7 +44,7 @@
 * @author Daniel Convissor <da...@ph...>
 * @copyright 1997-2007 The PHP Group
 * @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.10.0
+ * @version Release: 1.12.1
 * @link http://pear.php.net/package/DB
 */
 class DB_odbc extends DB_common
@@ -331,7 +331,7 @@
 return null;
 }
 if ($fetchmode !== DB_FETCHMODE_ORDERED) {
- for ($i = 0; $i < count($arr); $i++) {
+ for ($i = 0, $iMax = count($arr); $i < $iMax; $i++) {
 $colName = @odbc_field_name($result, $i+1);
 $a[$colName] = $arr[$i];
 }
@@ -502,7 +502,7 @@
 $repeat = 0;
 do {
 $this->pushErrorHandling(PEAR_ERROR_RETURN);
- $result = $this->query("update ${seqname} set id = id + 1");
+ $result = $this->query("update {$seqname} set id = id + 1");
 $this->popErrorHandling();
 if ($ondemand && DB::isError($result) &&
 $result->getCode() == DB_ERROR_NOSUCHTABLE) {
@@ -513,7 +513,7 @@
 if (DB::isError($result)) {
 return $this->raiseError($result);
 }
- $result = $this->query("insert into ${seqname} (id) values(0)");
+ $result = $this->query("insert into {$seqname} (id) values(0)");
 } else {
 $repeat = 0;
 }
@@ -523,7 +523,7 @@
 return $this->raiseError($result);
 }
 
- $result = $this->query("select id from ${seqname}");
+ $result = $this->query("select id from {$seqname}");
 if (DB::isError($result)) {
 return $result;
 }
Modified: trunk/lib/pear/DB/pgsql.php
===================================================================
--- trunk/lib/pear/DB/pgsql.php	2024年01月12日 18:46:11 UTC (rev 11072)
+++ trunk/lib/pear/DB/pgsql.php	2024年01月17日 09:19:45 UTC (rev 11073)
@@ -43,7 +43,7 @@
 * @author Daniel Convissor <da...@ph...>
 * @copyright 1997-2007 The PHP Group
 * @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.10.0
+ * @version Release: 1.12.1
 * @link http://pear.php.net/package/DB
 */
 class DB_pgsql extends DB_common
@@ -460,7 +460,7 @@
 unset($this->row[(int)$result]);
 unset($this->_num_rows[(int)$result]);
 $this->affected = 0;
- return @pg_freeresult($result);
+ return @pg_free_result($result);
 }
 return false;
 }
@@ -534,7 +534,7 @@
 */
 function numCols($result)
 {
- $cols = @pg_numfields($result);
+ $cols = @pg_num_fields($result);
 if (!$cols) {
 return $this->pgsqlRaiseError();
 }
@@ -559,7 +559,7 @@
 */
 function numRows($result)
 {
- $rows = @pg_numrows($result);
+ $rows = @pg_num_rows($result);
 if ($rows === null) {
 return $this->pgsqlRaiseError();
 }
@@ -664,7 +664,7 @@
 $repeat = false;
 do {
 $this->pushErrorHandling(PEAR_ERROR_RETURN);
- $result = $this->query("SELECT NEXTVAL('${seqname}')");
+ $result = $this->query("SELECT NEXTVAL('{$seqname}')");
 $this->popErrorHandling();
 if ($ondemand && DB::isError($result) &&
 $result->getCode() == DB_ERROR_NOSUCHTABLE) {
@@ -703,7 +703,7 @@
 function createSequence($seq_name)
 {
 $seqname = $this->getSequenceName($seq_name);
- $result = $this->query("CREATE SEQUENCE ${seqname}");
+ $result = $this->query("CREATE SEQUENCE {$seqname}");
 return $result;
 }
 
@@ -791,7 +791,7 @@
 */
 function errorNative()
 {
- return @pg_errormessage($this->connection);
+ return @pg_last_error($this->connection);
 }
 
 // }}}
@@ -916,7 +916,7 @@
 $case_func = 'strval';
 }
 
- $count = @pg_numfields($id);
+ $count = @pg_num_fields($id);
 $res = array();
 
 if ($mode) {
@@ -926,9 +926,9 @@
 for ($i = 0; $i < $count; $i++) {
 $res[$i] = array(
 'table' => $got_string ? $case_func($result) : '',
- 'name' => $case_func(@pg_fieldname($id, $i)),
- 'type' => @pg_fieldtype($id, $i),
- 'len' => @pg_fieldsize($id, $i),
+ 'name' => $case_func(@pg_field_name($id, $i)),
+ 'type' => @pg_field_type($id, $i),
+ 'len' => @pg_field_size($id, $i),
 'flags' => $got_string
 ? $this->_pgFieldFlags($id, $i, $result)
 : '',
@@ -943,7 +943,7 @@
 
 // free the result only if we were called on a table
 if ($got_string) {
- @pg_freeresult($id);
+ @pg_free_result($id);
 }
 return $res;
 }
@@ -967,7 +967,7 @@
 */
 function _pgFieldFlags($resource, $num_field, $table_name)
 {
- $field_name = @pg_fieldname($resource, $num_field);
+ $field_name = @pg_field_name($resource, $num_field);
 
 // Check if there's a schema in $table_name and update things
 // accordingly.
@@ -986,7 +986,7 @@
 AND typ.typrelid = f.attrelid
 AND f.attname = '$field_name'
 AND $tableWhere");
- if (@pg_numrows($result) > 0) {
+ if (@pg_num_rows($result) > 0) {
 $row = @pg_fetch_row($result, 0);
 $flags = ($row[0] == 't') ? 'not_null ' : '';
 
@@ -1010,7 +1010,7 @@
 AND f.attrelid = i.indrelid
 AND f.attname = '$field_name'
 AND $tableWhere");
- $count = @pg_numrows($result);
+ $count = @pg_num_rows($result);
 
 for ($i = 0; $i < $count ; $i++) {
 $row = @pg_fetch_row($result, $i);
Modified: trunk/lib/pear/DB/sqlite.php
===================================================================
--- trunk/lib/pear/DB/sqlite.php	2024年01月12日 18:46:11 UTC (rev 11072)
+++ trunk/lib/pear/DB/sqlite.php	2024年01月17日 09:19:45 UTC (rev 11073)
@@ -47,7 +47,7 @@
 * @author Daniel Convissor <da...@ph...>
 * @copyright 1997-2007 The PHP Group
 * @license http://www.php.net/license/3_0.txt PHP License 3.0 3.0
- * @version Release: 1.10.0
+ * @version Release: 1.12.1
 * @link http://pear.php.net/package/DB
 */
 class DB_sqlite extends DB_common
@@ -517,7 +517,7 @@
 if (DB::isError($result)) {
 return($result);
 }
- $query = "CREATE TRIGGER ${seqname}_cleanup AFTER INSERT ON $seqname
+ $query = "CREATE TRIGGER {$seqname}_cleanup AFTER INSERT ON $seqname
 BEGIN
 DELETE FROM $seqname WHERE id<LAST_INSERT_ROWID();
 END ";
Added: trunk/lib/pear/DB/sqlite3.php
===================================================================
--- trunk/lib/pear/DB/sqlite3.php	 (rev 0)
+++ trunk/lib/pear/DB/sqlite3.php	2024年01月17日 09:19:45 UTC (rev 11073)
@@ -0,0 +1,964 @@
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * The PEAR DB driver for PHP's sqlite3 extension
+ * for interacting with SQLite3 databases
+ *
+ * PHP version 8.0.10
+ *
+ * LICENSE: This source file is subject to version 3.0 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_0.txt. If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to li...@ph... so we can mail you a copy immediately.
+ *
+ * @category Database
+ * @package DB
+ * @author Urs Gehrig <ur...@ci...>
+ * @author Mika Tuupola <tu...@ap...>
+ * @author Daniel Convissor <da...@ph...>
+ * @author Armin Graefe <sch...@gm...>
+ * @copyright 1997-2007 The PHP Group
+ * @license http://www.php.net/license/3_0.txt PHP License 3.0 3.0
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/DB
+ */
+
+/**
+ * Obtain the DB_common class so it can be extended from
+ */
+require_once 'DB/common.php';
+
+/**
+ * The methods PEAR DB uses to interact with PHP's sqlite extension
+ * for interacting with SQLite databases
+ *
+ * These methods overload the ones declared in DB_common.
+ *
+ * NOTICE: This driver needs PHP's track_errors ini setting to be on.
+ * It is automatically turned on when connecting to the database.
+ * Make sure your scripts don't turn it off.
+ *
+ * @category Database
+ * @package DB
+ * @author Urs Gehrig <ur...@ci...>
+ * @author Mika Tuupola <tu...@ap...>
+ * @author Daniel Convissor <da...@ph...>
+ * @author Armin Graefe <sch...@gm...>
+ * @copyright 1997-2007 The PHP Group
+ * @license http://www.php.net/license/3_0.txt PHP License 3.0 3.0
+ * @version Release: 1.12.1
+ * @link http://pear.php.net/package/DB
+ */
+class DB_sqlite3 extends DB_common
+{
+ // {{{ properties
+ 
+ /**
+ * The DB driver type (mysql, oci8, odbc, etc.)
+ * @var string
+ */
+ var $phptype = 'sqlite3';
+ 
+ /**
+ * The database syntax variant to be used (db2, access, etc.), if any
+ * @var string
+ */
+ var $dbsyntax = 'sqlite';
+ 
+ /**
+ * The capabilities of this DB implementation
+ *
+ * The 'new_link' element contains the PHP version that first provided
+ * new_link support for this DBMS. Contains false if it's unsupported.
+ *
+ * Meaning of the 'limit' element:
+ * + 'emulate' = emulate with fetch row by number
+ * + 'alter' = alter the query
+ * + false = skip rows
+ *
+ * @var array
+ */
+ var $features = array(
+ 'limit' => 'alter',
+ 'new_link' => false,
+ 'numrows' => true,
+ 'pconnect' => true,
+ 'prepare' => false,
+ 'ssl' => false,
+ 'transactions' => false,
+ );
+ 
+ /**
+ * A mapping of native error codes to DB error codes
+ *
+ * {@internal Error codes according to sqlite_exec. See the online
+ * manual at http://sqlite.org/c_interface.html for info.
+ * This error handling based on sqlite_exec is not yet implemented.}}
+ *
+ * @var array
+ */
+ var $errorcode_map = array(
+ );
+ 
+ /**
+ * The raw database connection created by PHP
+ * @var resource
+ */
+ var $connection;
+ 
+ /**
+ * The DSN information for connecting to a database
+ * @var array
+ */
+ var $dsn = array();
+ 
+ 
+ /**
+ * SQLite data types
+ *
+ * @link http://www.sqlite.org/datatypes.html
+ *
+ * @var array
+ */
+ var $keywords = array (
+ 'BLOB' => '',
+ 'BOOLEAN' => '',
+ 'CHARACTER' => '',
+ 'CLOB' => '',
+ 'FLOAT' => '',
+ 'INTEGER' => '',
+ 'KEY' => '',
+ 'NATIONAL' => '',
+ 'NUMERIC' => '',
+ 'NVARCHAR' => '',
+ 'PRIMARY' => '',
+ 'TEXT' => '',
+ 'TIMESTAMP' => '',
+ 'UNIQUE' => '',
+ 'VARCHAR' => '',
+ 'VARYING' => '',
+ );
+ 
+ /**
+ * The most recent error message from $php_errormsg
+ * @var string
+ * @access private
+ */
+ var $_lasterror = '';
+ 
+ 
+ // }}}
+ // {{{ constructor
+ 
+ /**
+ * This constructor calls <kbd>parent::__construct()</kbd>
+ *
+ * @return void
+ */
+ function __construct()
+ {
+ parent::__construct();
+ }
+ 
+ // }}}
+ // {{{ connect()
+ 
+ /**
+ * Connect to the database server, log in and open the database
+ *
+ * Don't call this method directly. Use DB::connect() instead.
+ *
+ * PEAR DB's sqlite driver supports the following extra DSN options:
+ * + mode The permissions for the database file, in four digit
+ * chmod octal format (eg "0600").
+ *
+ * Example of connecting to a database in read-only mode:
+ * <code>
+ * require_once 'DB.php';
+ *
+ * $dsn = 'sqlite:///path/and/name/of/db/file?mode=0400';
+ * $options = array(
+ * 'portability' => DB_PORTABILITY_ALL,
+ * );
+ *
+ * $db = DB::connect($dsn, $options);
+ * if (PEAR::isError($db)) {
+ * die($db->getMessage());
+ * }
+ * </code>
+ *
+ * @param array $dsn the data source name
+ * @param bool $persistent should the connection be persistent?
+ *
+ * @return int DB_OK on success. A DB_Error object on failure.
+ */
+ function connect($dsn, $persistent = false)
+ {
+ $persistent = False;
+ if (!PEAR::loadExtension('sqlite3')) {
+ return $this->raiseError(DB_ERROR_EXTENSION_NOT_FOUND);
+ }
+ 
+ $this->dsn = $dsn;
+ if ($dsn['dbsyntax']) {
+ $this->dbsyntax = $dsn['dbsyntax'];
+ }
+ 
+ if (!$dsn['database']) {
+ return $this->sqliteRaiseError(DB_ERROR_ACCESS_VIOLATION);
+ }
+ 
+ if ($dsn['database'] !== ':memory:') {
+ if (!file_exists($dsn['database'])) {
+ if (!touch($dsn['database'])) {
+ return $this->sqliteRaiseError(DB_ERROR_NOT_FOUND);
+ }
+ if (!isset($dsn['mode']) ||
+ !is_numeric($dsn['mode']))
+ {
+ $mode = 0644;
+ } else {
+ $mode = octdec($dsn['mode']);
+ }
+ if (!chmod($dsn['database'], $mode)) {
+ return $this->sqliteRaiseError(DB_ERROR_NOT_FOUND);
+ }
+ if (!file_exists($dsn['database'])) {
+ return $this->sqliteRaiseError(DB_ERROR_NOT_FOUND);
+ }
+ }
+ if (!is_file($dsn['database'])) {
+ return $this->sqliteRaiseError(DB_ERROR_INVALID);
+ }
+ if (!is_readable($dsn['database'])) {
+ return $this->sqliteRaiseError(DB_ERROR_ACCESS_VIOLATION);
+ }
+ }
+ 
+ // track_errors must remain on for simpleQuery()
+ @ini_set('track_errors', 1);
+ $php_errormsg = '';
+ 
+ //var_dump($this->getOption('readable'));exit();
+ 
+ if (!$this->connection = @new SQLite3($dsn['database'])) {
+ return $this->raiseError(DB_ERROR_NODBSELECTED,
+ null, null, null,
+ $php_errormsg);
+ }
+ return DB_OK;
+ }
+ 
+ // }}}
+ // {{{ disconnect()
+ 
+ /**
+ * Disconnects from the database server
+ *
+ * @return bool TRUE on success, FALSE on failure
+ */
+ function disconnect()
+ {
+ $ret = @$this->connection->close();
+ $this->connection = null;
+ return $ret;
+ }
+ 
+ // }}}
+ // {{{ simpleQuery()
+ 
+ /**
+ * Sends a query to the database server
+ *
+ * NOTICE: This method needs PHP's track_errors ini setting to be on.
+ * It is automatically turned on when connecting to the database.
+ * Make sure your scripts don't turn it off.
+ *
+ * @param string the SQL query string
+ *
+ * @return mixed + a PHP result resrouce for successful SELECT queries
+ * + the DB_OK constant for other successful queries
+ * + a DB_Error object on failure
+ */
+ function simpleQuery($query)
+ {
+ $ismanip = $this->_checkManip($query);
+ $this->last_query = $query;
+ $query = $this->modifyQuery($query);
+ 
+ $php_errormsg = '';
+ 
+ $result = @$this->connection->query($query);
+ $this->_lasterror = $php_errormsg ? $php_errormsg : '';
+ 
+ $this->result = $result;
+ if (!$this->result) {
+ return $this->sqliteRaiseError(null);
+ }
+ 
+ // sqlite_query() seems to allways return a resource
+ // so cant use that. Using $ismanip instead
+ if (!$ismanip) {
+ $numRows = $this->numRows($result);
+ if (is_object($numRows)) {
+ // we've got PEAR_Error
+ return $numRows;
+ }
+ return $result;
+ }
+ return DB_OK;
+ }
+ 
+ // }}}
+ // {{{ nextResult()
+ 
+ /**
+ * Move the internal sqlite result pointer to the next available result
+ *
+ * @param resource $result the valid sqlite result resource
+ *
+ * @return bool true if a result is available otherwise return false
+ */
+ function nextResult($result)
+ {
+ return false;
+ }
+ 
+ // }}}
+ // {{{ fetchInto()
+ 
+ /**
+ * Places a row from the result set into the given array
+ *
+ * Formating of the array and the data therein are configurable.
+ * See DB_result::fetchInto() for more information.
+ *
+ * This method is not meant to be called directly. Use
+ * DB_result::fetchInto() instead. It can't be declared "protected"
+ * because DB_result is a separate object.
+ *
+ * @param resource $result the query result resource
+ * @param array $arr the referenced array to put the data in
+ * @param int $fetchmode how the resulting array should be indexed
+ * @param int $rownum the row number to fetch (0 = first row)
+ *
+ * @return mixed DB_OK on success, NULL when the end of a result set is
+ * reached or on failure
+ *
+ * @see DB_result::fetchInto()
+ */
+ function fetchInto($result, &$arr, $fetchmode, $rownum = null)
+ {
+ if($fetchmode & DB_FETCHMODE_ASSOC){
+ $sqlite_fetchmode = SQLITE3_ASSOC;
+ } else {
+ $sqlite_fetchmode = SQLITE3_NUM;
+ }
+ 
+ if ($rownum !== null) {
+ $rownumber = -1;
+ while($rownum_res = @$result->fetchArray($sqlite_fetchmode)){
+ $rownumber++;
+ if($rownum == $rownumber){
+ $arr = $rownum_res;
+ break;
+ }
+ }
+
+ if(!$arr){
+ return null;
+ }
+ $result->reset();
+ } else {
+ $arr = @$result->fetchArray($sqlite_fetchmode);
+ }
+ if ($fetchmode & DB_FETCHMODE_ASSOC) {
+ if ($this->options['portability'] & DB_PORTABILITY_LOWERCASE && $arr) {
+ $arr = array_change_key_case($arr, CASE_LOWER);
+ }
+ 
+ /* Remove extraneous " characters from the fields in the result.
+ * Fixes bug #11716. */
+ if (is_array($arr) && count($arr) > 0) {
+ $strippedArr = array();
+ foreach ($arr as $field => $value) {
+ $strippedArr[trim($field, '"')] = $value;
+ }
+ $arr = $strippedArr;
+ }
+ }
+ if (!$arr) {
+ return null;
+ }
+ if ($this->options['portability'] & DB_PORTABILITY_RTRIM) {
+ /*
+ * Even though this DBMS already trims output, we do this because
+ * a field might have intentional whitespace at the end that
+ * gets removed by DB_PORTABILITY_RTRIM under another driver.
+ */
+ $this->_rtrimArrayValues($arr);
+ }
+ if ($this->options['portability'] & DB_PORTABILITY_NULL_TO_EMPTY) {
+ $this->_convertNullArrayValuesToEmpty($arr);
+ }
+ return DB_OK;
+ }
+ 
+ // }}}
+ // {{{ freeResult()
+ 
+ /**
+ * Deletes the result set and frees the memory occupied by the result set
+ *
+ * This method is not meant to be called directly. Use
+ * DB_result::free() instead. It can't be declared "protected"
+ * because DB_result is a separate object.
+ *
+ * @param resource $result PHP's query result resource
+ *
+ * @return bool TRUE on success, FALSE if $result is invalid
+ *
+ * @see DB_result::free()
+ */
+ function freeResult(&$result)
+ {
+ // XXX No native free?
+ if (!is_resource($result)) {
+ return false;
+ }
+ $result = null;
+ return true;
+ }
+ 
+ // }}}
+ // {{{ numCols()
+ 
+ /**
+ * Gets the number of columns in a result set
+ *
+ * This method is not meant to be called directly. Use
+ * DB_result::numCols() instead. It can't be declared "protected"
+ * because DB_result is a separate object.
+ *
+ * @param resource $result PHP's query result resource
+ *
+ * @return int the number of columns. A DB_Error object on failure.
+ *
+ * @see DB_result::numCols()
+ */
+ function numCols($result)
+ {
+ $cols = @$result->numColumns();
+ if (!$cols) {
+ return $this->sqliteRaiseError();
+ }
+ return $cols;
+ }
+ 
+ // }}}
+ // {{{ numRows()
+ 
+ /**
+ * Gets the number of rows in a result set
+ *
+ * This method is not meant to be called directly. Use
+ * DB_result::numRows() instead. It can't be declared "protected"
+ * because DB_result is a separate object.
+ *
+ * @param resource $result PHP's query result resource
+ *
+ * @return int the number of rows. A DB_Error object on failure.
+ *
+ * @see DB_result::numRows()
+ */
+ function numRows($result)
+ {
+ $numRows = 0;
+ while($rows = @$result->fetchArray(SQLITE3_NUM)){
+ $numRows++;
+ }
+ return $numRows;
+ }
+ 
+ // }}}
+ // {{{ affected()
+ 
+ /**
+ * Determines the number of rows affected by a data maniuplation query
+ *
+ * 0 is returned for queries that don't manipulate data.
+ *
+ * @return int the number of rows. A DB_Error object on failure.
+ */
+ function affectedRows()
+ {
+ return @$this->connection->changes();
+ }
+ 
+ // }}}
+ // {{{ dropSequence()
+ 
+ /**
+ * Deletes a sequence
+ *
+ * @param string $seq_name name of the sequence to be deleted
+ *
+ * @return int DB_OK on success. A DB_Error object on failure.
+ *
+ * @see DB_common::dropSequence(), DB_common::getSequenceName(),
+ * DB_sqlite::nextID(), DB_sqlite::createSequence()
+ */
+ function dropSequence($seq_name)
+ {
+ return $this->query('DROP TABLE ' . $this->getSequenceName($seq_name));
+ }
+ 
+ /**
+ * Creates a new sequence
+ *
+ * @param string $seq_name name of the new sequence
+ *
+ * @return int DB_OK on success. A DB_Error object on failure.
+ *
+ * @see DB_common::createSequence(), DB_common::getSequenceName(),
+ * DB_sqlite::nextID(), DB_sqlite::dropSequence()
+ */
+ function createSequence($seq_name)
+ {
+ $seqname = $this->getSequenceName($seq_name);
+ $query = 'CREATE TABLE ' . $seqname .
+ ' (id INTEGER UNSIGNED PRIMARY KEY) ';
+ $result = $this->query($query);
+ if (DB::isError($result)) {
+ return($result);
+ }
+ $query = "CREATE TRIGGER {$seqname}_cleanup AFTER INSERT ON $seqname
+ BEGIN
+ DELETE FROM $seqname WHERE id<LAST_INSERT_ROWID();
+ END ";
+ $result = $this->query($query);
+ if (DB::isError($result)) {
+ return($result);
+ }
+ }
+ 
+ // }}}
+ // {{{ nextId()
+ 
+ /**
+ * Returns the next free id in a sequence
+ *
+ * @param string $seq_name name of the sequence
+ * @param boolean $ondemand when true, the seqence is automatically
+ * created if it does not exist
+ *
+ * @return int the next id number in the sequence.
+ * A DB_Error object on failure.
+ *
+ * @see DB_common::nextID(), DB_common::getSequenceName(),
+ * DB_sqlite::createSequence(), DB_sqlite::dropSequence()
+ */
+ function nextId($seq_name, $ondemand = true)
+ {
+ $seqname = $this->getSequenceName($seq_name);
+ 
+ do {
+ $repeat = 0;
+ $this->pushErrorHandling(PEAR_ERROR_RETURN);
+ $result = $this->query("INSERT INTO $seqname (id) VALUES (NULL)");
+ $this->popErrorHandling();
+ if ($result === DB_OK) {
+ $id = @$this->connection->lastInsertRowID();
+ if ($id != 0) {
+ return $id;
+ }
+ } elseif ($ondemand && DB::isError($result) &&
+ $result->getCode() == DB_ERROR_NOSUCHTABLE)
+ {
+ $result = $this->createSequence($seq_name);
+ if (DB::isError($result)) {
+ return $this->raiseError($result);
+ } else {
+ $repeat = 1;
+ }
+ }
+ } while ($repeat);
+ 
+ return $this->raiseError($result);
+ }
+
+ // }}}
+ // {{{ lastId()
+
+ /**
+ * Returns the row ID of the most recent INSERT into the database
+ *
+ * @param string $link_identifier DBMS link identifier
+ *
+ * @return int the row ID of the most recent INSERT into the database.
+ * If no successful INSERTs into rowid tables have ever
+ * occurred on this database connection,
+ * then SQLite3::lastInsertRowID() returns 0
+ *
+ * @see DB_common::lastID(), SQLite3::lastInsertRowID()
+ */
+ function lastId($link_identifier = null)
+ {
+ $id = $this->connection->lastInsertRowID();
+ if (empty($id) || !is_int($id)) {
+ return 0;
+ }
+ return $id;
+ }
+ 
+ // }}}
+ // {{{ getDbFileStats()
+ 
+ /**
+ * Get the file stats for the current database
+ *
+ * Possible arguments are dev, ino, mode, nlink, uid, gid, rdev, size,
+ * atime, mtime, ctime, blksize, blocks or a numeric key between
+ * 0 and 12.
+ *
+ * @param string $arg the array key for stats()
+ *
+ * @return mixed an array on an unspecified key, integer on a passed
+ * arg and false at a stats error
+ */
+ function getDbFileStats($arg = '')
+ {
+ $stats = stat($this->dsn['database']);
+ if ($stats == false) {
+ return false;
+ }
+ if (is_array($stats)) {
+ if (is_numeric($arg)) {
+ if (((int)$arg <= 12) & ((int)$arg >= 0)) {
+ return false;
+ }
+ return $stats[$arg ];
+ }
+ if (array_key_exists(trim($arg), $stats)) {
+ return $stats[$arg ];
+ }
+ }
+ return $stats;
+ }
+ 
+ // }}}
+ // {{{ escapeSimple()
+ 
+ /**
+ * Escapes a string according to the current DBMS's standards
+ *
+ * In SQLite, this makes things safe for inserts/updates, but may
+ * cause problems when performing text comparisons against columns
+ * containing binary data. See the
+ * {@link http://php.net/sqlite_escape_string PHP manual} for more info.
+ *
+ * @param string $str the string to be escaped
+ *
+ * @return string the escaped string
+ *
+ * @since Method available since Release 1.6.1
+ * @see DB_common::escapeSimple()
+ */
+ function escapeSimple($str)
+ {
+ return @$this->connection->escapeString($str);
+ }
+ 
+ // }}}
+ // {{{ modifyLimitQuery()
+ 
+ /**
+ * Adds LIMIT clauses to a query string according to current DBMS standards
+ *
+ * @param string $query the query to modify
+ * @param int $from the row to start to fetching (0 = the first row)
+ * @param int $count the numbers of rows to fetch
+ * @param mixed $params array, string or numeric data to be used in
+ * execution of the statement. Quantity of items
+ * passed must match quantity of placeholders in
+ * query: meaning 1 placeholder for non-array
+ * parameters or 1 placeholder per array element.
+ *
+ * @return string the query string with LIMIT clauses added
+ *
+ * @access protected
+ */
+ function modifyLimitQuery($query, $from, $count, $params = array())
+ {
+ return "$query LIMIT $count OFFSET $from";
+ }
+ 
+ // }}}
+ // {{{ modifyQuery()
+ 
+ /**
+ * Changes a query string for various DBMS specific reasons
+ *
+ * This little hack lets you know how many rows were deleted
+ * when running a "DELETE FROM table" query. Only implemented
+ * if the DB_PORTABILITY_DELETE_COUNT portability option is on.
+ *
+ * @param string $query the query string to modify
+ *
+ * @return string the modified query string
+ *
+ * @access protected
+ * @see DB_common::setOption()
+ */
+ function modifyQuery($query)
+ {
+ if ($this->options['portability'] & DB_PORTABILITY_DELETE_COUNT) {
+ if (preg_match('/^\s*DELETE\s+FROM\s+(\S+)\s*$/i', $query)) {
+ $query = preg_replace('/^\s*DELETE\s+FROM\s+(\S+)\s*$/',
+ 'DELETE FROM 1円 WHERE 1=1', $query);
+ }
+ }
+ return $query;
+ }
+ 
+ // }}}
+ // {{{ sqliteRaiseError()
+ 
+ /**
+ * Pr...
 
[truncated message content]
From: <var...@us...> - 2024年01月12日 18:46:14
Revision: 11072
 http://sourceforge.net/p/phpwiki/code/11072
Author: vargenau
Date: 2024年01月12日 18:46:11 +0000 (2024年1月12日)
Log Message:
-----------
lib/PagePerm.php patches by Christof Meerwald
Modified Paths:
--------------
 trunk/lib/PagePerm.php
Modified: trunk/lib/PagePerm.php
===================================================================
--- trunk/lib/PagePerm.php	2024年01月12日 18:43:33 UTC (rev 11071)
+++ trunk/lib/PagePerm.php	2024年01月12日 18:46:11 UTC (rev 11072)
@@ -392,7 +392,7 @@
 }
 } else {
 // set default permissions, the so called dot-file acl's
- $this->perm = $this->defaultPerms();
+ $this->perm = PagePermission::defaultPerms();
 }
 return $this;
 }
@@ -488,7 +488,7 @@
 * returns hash of default permissions.
 * check if the page '.' exists and returns this instead.
 */
- public function defaultPerms()
+ public static function defaultPerms()
 {
 //Todo: check for the existance of '.' and take this instead.
 //Todo: honor more config.ini auth settings here
@@ -566,7 +566,7 @@
 /**
 * returns list of all supported access types.
 */
- public function accessTypes()
+ public static function accessTypes()
 {
 return array_keys(PagePermission::defaultPerms());
 }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <var...@us...> - 2024年01月12日 18:43:35
Revision: 11071
 http://sourceforge.net/p/phpwiki/code/11071
Author: vargenau
Date: 2024年01月12日 18:43:33 +0000 (2024年1月12日)
Log Message:
-----------
PDO sqlite backend patches by Christof Meerwald
Modified Paths:
--------------
 trunk/lib/DbSession/PDO.php
 trunk/lib/DbSession/SQL.php
 trunk/lib/DbSession/dba.php
 trunk/lib/DbSession.php
 trunk/lib/WikiDB/backend/PDO.php
 trunk/schemas/sqlite-initialize.sql
Added Paths:
-----------
 trunk/lib/WikiDB/backend/PDO_sqlite.php
Modified: trunk/lib/DbSession/PDO.php
===================================================================
--- trunk/lib/DbSession/PDO.php	2023年11月20日 16:31:08 UTC (rev 11070)
+++ trunk/lib/DbSession/PDO.php	2024年01月12日 18:43:33 UTC (rev 11071)
@@ -32,9 +32,9 @@
 {
 public $_backend_type = "PDO";
 
- public function __construct($dbh, $table)
+ public function __construct($backend, $table)
 {
- $this->_dbh = $dbh;
+ $this->_backend = $backend;
 $this->_table = $table;
 
 session_set_save_handler(
@@ -49,11 +49,7 @@
 
 public function & _connect()
 {
- $dbh = &$this->_dbh;
- global $DBParams;
- $db = new WikiDB_backend_PDO($DBParams);
- $this->_dbh =& $db->_dbh;
- $this->_backend =& $db;
+ $dbh = &$this->_backend->_dbh;
 return $dbh;
 }
 
@@ -70,9 +66,6 @@
 
 public function _disconnect()
 {
- if (0 and $this->_dbh) {
- unset($this->_dbh);
- }
 }
 
 /**
@@ -118,6 +111,9 @@
 $sth->bindParam(1, $id, PDO::PARAM_STR, 32);
 if ($sth->execute()) {
 $res = $sth->fetchColumn();
+ if (empty($res)) {
+ $res = '';
+ }
 } else {
 $res = '';
 }
@@ -165,10 +161,19 @@
 $remote_addr = $request->get('REMOTE_ADDR');
 
 $this->_backend->beginTransaction();
- $delete = $dbh->prepare("DELETE FROM $table WHERE sess_id=?");
- $delete->bindParam(1, $id, PDO::PARAM_STR, 32);
- $delete->execute();
- $sth = $dbh->prepare("INSERT INTO $table"
+ $backend_type = $this->_backend->backendType();
+ if (substr($backend_type, 0, 5) == 'mysql' or
+ $backend_type == 'sqlite') {
+ // mysql/sqlite can do it as a single replace command
+ $insert = "REPLACE INTO";
+ } else {
+ // otherwise need to do it as a delete/insert
+ $delete = $dbh->prepare("DELETE FROM $table WHERE sess_id=?");
+ $delete->bindParam(1, $id, PDO::PARAM_STR, 32);
+ $delete->execute();
+ $insert = "INSERT INTO";
+ }
+ $sth = $dbh->prepare("$insert $table"
 . " (sess_id, sess_data, sess_date, sess_ip)"
 . " VALUES (?, ?, ?, ?)");
 $sth->bindParam(1, $id, PDO::PARAM_STR, 32);
@@ -239,7 +244,7 @@
 if (preg_match('|^[a-zA-Z0-9/+=]+$|', $data)) {
 $data = base64_decode($data);
 }
- if ($date < 908437560 or $date > 1588437560) {
+ if ($date < 908437560) {
 $date = 0;
 }
 // session_data contains the <variable name> + "|" + <packed string>
Modified: trunk/lib/DbSession/SQL.php
===================================================================
--- trunk/lib/DbSession/SQL.php	2023年11月20日 16:31:08 UTC (rev 11070)
+++ trunk/lib/DbSession/SQL.php	2024年01月12日 18:43:33 UTC (rev 11071)
@@ -36,9 +36,9 @@
 {
 public $_backend_type = "SQL";
 
- public function __construct($dbh, $table)
+ public function __construct($backend, $table)
 {
- $this->_dbh = $dbh;
+ $this->_dbh = $backend->_dbh;
 $this->_table = $table;
 
 session_set_save_handler(
@@ -248,7 +248,7 @@
 if (preg_match('|^[a-zA-Z0-9/+=]+$|', $data)) {
 $data = base64_decode($data);
 }
- if ($date < 908437560 or $date > 1588437560) {
+ if ($date < 908437560) {
 $date = 0;
 }
 // session_data contains the <variable name> + "|" + <packed string>
Modified: trunk/lib/DbSession/dba.php
===================================================================
--- trunk/lib/DbSession/dba.php	2023年11月20日 16:31:08 UTC (rev 11070)
+++ trunk/lib/DbSession/dba.php	2024年01月12日 18:43:33 UTC (rev 11071)
@@ -37,9 +37,9 @@
 {
 public $_backend_type = "dba";
 
- public function __construct($dbh, $table)
+ public function __construct($backend, $table)
 {
- $this->_dbh = $dbh;
+ $this->_dbh = $backend->_dbh;
 session_set_save_handler(
 array(&$this, 'open'),
 array(&$this, 'close'),
@@ -221,7 +221,7 @@
 }
 // session_data contains the <variable name> + "|" + <packed string>
 // we need just the wiki_user object (might be array as well)
- if ($date < 908437560 or $date > 1588437560) {
+ if ($date < 908437560) {
 $date = 0;
 }
 $user = strstr($packed, "wiki_user|");
Modified: trunk/lib/DbSession.php
===================================================================
--- trunk/lib/DbSession.php	2023年11月20日 16:31:08 UTC (rev 11070)
+++ trunk/lib/DbSession.php	2024年01月12日 18:43:33 UTC (rev 11071)
@@ -52,8 +52,7 @@
 
 $class = "DbSession_" . $db_type;
 if (class_exists($class)) {
- // dba has no ->_dbh, so this is used for the session link
- $this->_backend = new $class($dbh->_backend->_dbh, $table);
+ $this->_backend = new $class($dbh->_backend, $table);
 return;
 }
 }
Modified: trunk/lib/WikiDB/backend/PDO.php
===================================================================
--- trunk/lib/WikiDB/backend/PDO.php	2023年11月20日 16:31:08 UTC (rev 11070)
+++ trunk/lib/WikiDB/backend/PDO.php	2024年01月12日 18:43:33 UTC (rev 11071)
@@ -82,16 +82,11 @@
 }
 } else {
 list($driver, $dsn) = explode(":", $dbparams['dsn'], 2);
- foreach (explode(";", trim($dsn)) as $pair) {
- if ($pair) {
- list($option, $value) = explode("=", $pair, 2);
- $this->_parsedDSN[$option] = $value;
- }
- }
- $this->_dbh->database = isset($this->_parsedDSN['database'])
- ? $this->_parsedDSN['database']
- : $this->_parsedDSN['dbname'];
+ $this->_parsedDSN = array();
 }
+ if (empty($this->_parsedDSN['username'])) {
+ $this->_parsedDSN['username'] = '';
+ }
 if (empty($this->_parsedDSN['password'])) {
 $this->_parsedDSN['password'] = '';
 }
@@ -129,7 +124,7 @@
 $this->_hasTransactions = true;
 try {
 $this->_dbh->beginTransaction();
- $this->commit();
+ $this->_dbh->commit();
 } catch (PDOException $e) {
 $this->_hasTransactions = false;
 }
@@ -404,7 +399,8 @@
 }
 if (empty($id)) {
 //mysql, mysqli or mysqlt
- if (substr($dbh->databaseType, 0, 5) == 'mysql') {
+ if (substr($dbh->databaseType, 0, 5) == 'mysql' or
+ $dbh->databaseType == 'sqlite') {
 // have auto-incrementing, atomic version
 $sth = $dbh->prepare("INSERT INTO $page_tbl"
 . " (id,pagename)"
@@ -576,7 +572,8 @@
 $id = $this->_get_pageid($pagename, true);
 $backend_type = $this->backendType();
 // optimize: mysql can do this with one REPLACE INTO.
- if (substr($backend_type, 0, 5) == 'mysql') {
+ if (substr($backend_type, 0, 5) == 'mysql' or
+ $backend_type == 'sqlite') {
 $sth = $dbh->prepare("REPLACE INTO $version_tbl"
 . " (id,version,mtime,minor_edit,content,versiondata)"
 . " VALUES(?,?,?,?,?,?)");
@@ -715,7 +712,7 @@
 if ($sth->fetchColumn()) {
 // We're still in the link table (dangling link) so we can't delete this
 // altogether.
- $dbh->query("UPDATE $page_tbl SET hits=0, pagedata='' WHERE id=$id");
+ $dbh->query("UPDATE $page_tbl SET hits=0, pagedata='', cached_html=NULL WHERE id=$id");
 $result = 0;
 } else {
 $dbh->query("DELETE FROM $page_tbl WHERE id=$id");
@@ -1186,7 +1183,8 @@
 
 // optimize: mysql can do this with one REPLACE INTO.
 $backend_type = $this->backendType();
- if (substr($backend_type, 0, 5) == 'mysql') {
+ if (substr($backend_type, 0, 5) == 'mysql' or
+ $backend_type == 'sqlite') {
 $sth = $dbh->prepare("REPLACE INTO $recent_tbl"
 . " (id, latestversion, latestmajor, latestminor)"
 . " SELECT id, $maxversion, $maxmajor, $maxminor"
Added: trunk/lib/WikiDB/backend/PDO_sqlite.php
===================================================================
--- trunk/lib/WikiDB/backend/PDO_sqlite.php	 (rev 0)
+++ trunk/lib/WikiDB/backend/PDO_sqlite.php	2024年01月12日 18:43:33 UTC (rev 11071)
@@ -0,0 +1,60 @@
+<?php
+/**
+ * Copyright © 2023 $ThePhpWikiProgrammingTeam
+ *
+ * This file is part of PhpWiki.
+ *
+ * PhpWiki is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * PhpWiki is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with PhpWiki; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ *
+ */
+
+/**
+ * @author: Christof Meerwald
+ */
+require_once 'lib/WikiDB/backend/PDO.php';
+
+class WikiDB_backend_PDO_sqlite extends WikiDB_backend_PDO
+{
+ public function __construct($dbparams)
+ {
+ parent::__construct($dbparams);
+ }
+
+ public function backendType()
+ {
+ return 'sqlite';
+ }
+
+ /*
+ * offset specific syntax within sqlite
+ * convert from,count to SQL "LIMIT $count OFFSET $from"
+ */
+ public function _limit_sql($limit = false)
+ {
+ if ($limit) {
+ list($from, $count) = $this->limit($limit);
+ if ($from) {
+ $limit = " LIMIT $count OFFSET $from";
+ } else {
+ $limit = " LIMIT $count";
+ }
+ } else {
+ $limit = '';
+ }
+ return $limit;
+ }
+}
Modified: trunk/schemas/sqlite-initialize.sql
===================================================================
--- trunk/schemas/sqlite-initialize.sql	2023年11月20日 16:31:08 UTC (rev 11070)
+++ trunk/schemas/sqlite-initialize.sql	2024年01月12日 18:43:33 UTC (rev 11071)
@@ -34,7 +34,8 @@
 
 CREATE TABLE link (
 	linkfrom INTEGER NOT NULL,
-	linkto INTEGER NOT NULL
+	linkto INTEGER NOT NULL,
+	relation INTEGER
 );
 CREATE INDEX linkfrom_index ON link (linkfrom);
 CREATE INDEX linkto_index ON link (linkto);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 11070
 http://sourceforge.net/p/phpwiki/code/11070
Author: vargenau
Date: 2023年11月20日 16:31:08 +0000 (2023年11月20日)
Log Message:
-----------
pgsrc/Help%2FPagePermissions: remove link to PageList
Modified Paths:
--------------
 trunk/pgsrc/Help%2FPagePermissions
Modified: trunk/pgsrc/Help%2FPagePermissions
===================================================================
--- trunk/pgsrc/Help%2FPagePermissions	2023年11月15日 18:11:51 UTC (rev 11069)
+++ trunk/pgsrc/Help%2FPagePermissions	2023年11月20日 16:31:08 UTC (rev 11070)
@@ -89,7 +89,7 @@
 
 We currently support the following permissions which can be stored in every page, for every group.
 
-|= list | List this page and all subpages (for PageList)
+|= list | List this page and all subpages (for ~PageList)
 |= view | View this page and all subpages
 |= edit | Edit this page and all subpages
 |= create | Create a new (sub)page
@@ -104,7 +104,7 @@
 
 Those perms are mapped to those actions. [[Help:ActionPage|Action Pages]] (plugins) check their access restrictions by themselves.
 
-|= list | //none, 'list' is checked for every pagename listed in PageList, to prevent from being listed in AllPages.//
+|= list | //none, 'list' is checked for every pagename listed in ~PageList, to prevent from being listed in AllPages.//
 |= view | browse, viewsource, diff, select, xmlrpc, search, pdf
 |= dump | zip, ziphtml, dumpserial, dumphtml
 |= edit | revert, edit
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <var...@us...> - 2023年11月15日 18:11:52
Revision: 11069
 http://sourceforge.net/p/phpwiki/code/11069
Author: vargenau
Date: 2023年11月15日 18:11:51 +0000 (2023年11月15日)
Log Message:
-----------
Create branch release-1.6.3
Added Paths:
-----------
 branches/release-1.6.3/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <var...@us...> - 2023年11月15日 18:11:22
Revision: 11068
 http://sourceforge.net/p/phpwiki/code/11068
Author: vargenau
Date: 2023年11月15日 18:11:20 +0000 (2023年11月15日)
Log Message:
-----------
Create tag release-1.6.3
Added Paths:
-----------
 tags/release-1.6.3/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <var...@us...> - 2023年11月15日 17:56:47
Revision: 11067
 http://sourceforge.net/p/phpwiki/code/11067
Author: vargenau
Date: 2023年11月15日 17:56:44 +0000 (2023年11月15日)
Log Message:
-----------
PhpWiki 1.6.3
Modified Paths:
--------------
 trunk/pgsrc/PhpWikiManual
Modified: trunk/pgsrc/PhpWikiManual
===================================================================
--- trunk/pgsrc/PhpWikiManual	2023年11月15日 17:54:32 UTC (rev 11066)
+++ trunk/pgsrc/PhpWikiManual	2023年11月15日 17:56:44 UTC (rev 11067)
@@ -1,4 +1,4 @@
-Date: 2022年12月16日 15:26:20 +0000
+Date: 2023年11月15日 18:56:21 +0000
 Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=PhpWikiManual;
@@ -6,7 +6,7 @@
 charset=UTF-8
 Content-Transfer-Encoding: binary
 
-This is the user manual for ~PhpWiki 1.6.2.
+This is the user manual for ~PhpWiki 1.6.3.
 
 <<IncludePage page="Help/PhpWiki">>
 <<IncludePage page="Help/WikiWikiWeb">>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <var...@us...> - 2023年11月15日 17:54:47
Revision: 11066
 http://sourceforge.net/p/phpwiki/code/11066
Author: vargenau
Date: 2023年11月15日 17:54:32 +0000 (2023年11月15日)
Log Message:
-----------
PhpWiki 1.6.3
Modified Paths:
--------------
 trunk/INSTALL
 trunk/Makefile
 trunk/lib/prepend.php
 trunk/locale/de/pgsrc/%C3%84hnlicheSeiten
 trunk/locale/de/pgsrc/AlleBenutzer
 trunk/locale/de/pgsrc/AlleSeiten
 trunk/locale/de/pgsrc/AlleSeitenEditiertVonMir
 trunk/locale/de/pgsrc/AlleSeitenErzeugtVonMir
 trunk/locale/de/pgsrc/AlleSeitenImBesitzVonMir
 trunk/locale/de/pgsrc/BackLinks
 trunk/locale/de/pgsrc/BenutzerEinstellungen
 trunk/locale/de/pgsrc/DebugAuthInfo
 trunk/locale/de/pgsrc/DebugBackendInfo
 trunk/locale/de/pgsrc/DebugGruppenInfo
 trunk/locale/de/pgsrc/EditiereText
 trunk/locale/de/pgsrc/Einstellungen
 trunk/locale/de/pgsrc/FuzzySuche
 trunk/locale/de/pgsrc/G%C3%A4steBuch
 trunk/locale/de/pgsrc/GaesteBuch
 trunk/locale/de/pgsrc/Geringf%C3%BCgige%C3%84nderungen
 trunk/locale/de/pgsrc/GleicheSeiten
 trunk/locale/de/pgsrc/Hilfe
 trunk/locale/de/pgsrc/Hilfe%2FAktionsSeite
 trunk/locale/de/pgsrc/Hilfe%2FAutorenProtokollPlugin
 trunk/locale/de/pgsrc/Hilfe%2FBackLinksPlugin
 trunk/locale/de/pgsrc/Hilfe%2FGraphVizPlugin
 trunk/locale/de/pgsrc/Hilfe%2FGuterStil
 trunk/locale/de/pgsrc/Hilfe%2FHalloWeltPlugin
 trunk/locale/de/pgsrc/Hilfe%2FHochLadenPlugin
 trunk/locale/de/pgsrc/Hilfe%2FInhaltsVerzeichnisPlugin
 trunk/locale/de/pgsrc/Hilfe%2FModerierteSeitePlugin
 trunk/locale/de/pgsrc/Hilfe%2FNeueSeitePlugin
 trunk/locale/de/pgsrc/Hilfe%2FNeuerKommentarPlugin
 trunk/locale/de/pgsrc/Hilfe%2FPhotoAlbumPlugin
 trunk/locale/de/pgsrc/Hilfe%2FPhpWiki
 trunk/locale/de/pgsrc/Hilfe%2FSeitenErzeugen
 trunk/locale/de/pgsrc/Hilfe%2FSteve%20Wainstead
 trunk/locale/de/pgsrc/Hilfe%2FTextBearbeiten
 trunk/locale/de/pgsrc/Hilfe%2FTextFormatierungsRegeln
 trunk/locale/de/pgsrc/Hilfe%2FVorlagePlugin
 trunk/locale/de/pgsrc/Hilfe%2FWabiSabi
 trunk/locale/de/pgsrc/Hilfe%2FWieManWikiBenutzt
 trunk/locale/de/pgsrc/Hilfe%2FWikiTechnik
 trunk/locale/de/pgsrc/Hilfe%2FWikiWikiWeb
 trunk/locale/de/pgsrc/Hilfe%2FZufallsSeitePlugin
 trunk/locale/de/pgsrc/HochLaden
 trunk/locale/de/pgsrc/HomePage
 trunk/locale/de/pgsrc/InterWikiListe
 trunk/locale/de/pgsrc/KategorieAktionSeite
 trunk/locale/de/pgsrc/KategorieKategorie
 trunk/locale/de/pgsrc/KategorieWikiPlugin
 trunk/locale/de/pgsrc/LeereSeiten
 trunk/locale/de/pgsrc/LinkSuche
 trunk/locale/de/pgsrc/ListeRelationen
 trunk/locale/de/pgsrc/MeistBesucht
 trunk/locale/de/pgsrc/ModerierteSeite
 trunk/locale/de/pgsrc/NeueSeite
 trunk/locale/de/pgsrc/Neueste%C3%84nderungen
 trunk/locale/de/pgsrc/NeuesteSeiten
 trunk/locale/de/pgsrc/PasswortZur%C3%BCcksetzen
 trunk/locale/de/pgsrc/PhpWikiDokumentation
 trunk/locale/de/pgsrc/PhpWikiSystemverwalten
 trunk/locale/de/pgsrc/PhpWikiSystemverwalten%2FAclL%C3%B6schen
 trunk/locale/de/pgsrc/PhpWikiSystemverwalten%2FAclSetzen
 trunk/locale/de/pgsrc/PhpWikiSystemverwalten%2FAclSetzenEinfach
 trunk/locale/de/pgsrc/PhpWikiSystemverwalten%2FChown
 trunk/locale/de/pgsrc/PhpWikiSystemverwalten%2FEntfernen
 trunk/locale/de/pgsrc/PhpWikiSystemverwalten%2FL%C3%B6schen
 trunk/locale/de/pgsrc/PhpWikiSystemverwalten%2FSuchenErsetzen
 trunk/locale/de/pgsrc/PhpWikiSystemverwalten%2FUmbenennen
 trunk/locale/de/pgsrc/PhpWikiUmfrage
 trunk/locale/de/pgsrc/SandKasten
 trunk/locale/de/pgsrc/SandKiste
 trunk/locale/de/pgsrc/SeiteBeobarten
 trunk/locale/de/pgsrc/SeiteFinden
 trunk/locale/de/pgsrc/SeiteSpeichern
 trunk/locale/de/pgsrc/SeitenInfo
 trunk/locale/de/pgsrc/SeitenProtokoll
 trunk/locale/de/pgsrc/SemantischeRelationen
 trunk/locale/de/pgsrc/SemantischeSuche
 trunk/locale/de/pgsrc/StartSeite
 trunk/locale/de/pgsrc/StartSeiteAlias
 trunk/locale/de/pgsrc/TitelSuche
 trunk/locale/de/pgsrc/Verlinkte%C3%84nderungen
 trunk/locale/de/pgsrc/VerwaisteSeiten
 trunk/locale/de/pgsrc/VolltextSuche
 trunk/locale/de/pgsrc/Vorlage%2FBeispiel
 trunk/locale/de/pgsrc/WerIstOnline
 trunk/locale/de/pgsrc/WikiAdminAuswahl
 trunk/locale/de/pgsrc/WunschZettelSeiten
 trunk/locale/de/pgsrc/ZufallsSeite
 trunk/locale/es/pgsrc/Ayuda
 trunk/locale/es/pgsrc/Ayuda%2FAgregarPaginas
 trunk/locale/es/pgsrc/Ayuda%2FBuenEstilo
 trunk/locale/es/pgsrc/Ayuda%2FComoUsarWiki
 trunk/locale/es/pgsrc/Ayuda%2FEditarElTexto
 trunk/locale/es/pgsrc/Ayuda%2FKBrown
 trunk/locale/es/pgsrc/Ayuda%2FMasAcercadeLaMecanica
 trunk/locale/es/pgsrc/Ayuda%2FPhpWiki
 trunk/locale/es/pgsrc/Ayuda%2FReglasDeFormatoDeTexto
 trunk/locale/es/pgsrc/Ayuda%2FSteve%20Wainstead
 trunk/locale/es/pgsrc/Ayuda%2FWabiSabi
 trunk/locale/es/pgsrc/Ayuda%2FWikiWikiWeb
 trunk/locale/es/pgsrc/BuscarP%C3%A1gina
 trunk/locale/es/pgsrc/CajaDeArena
 trunk/locale/es/pgsrc/CambiosRecientes
 trunk/locale/es/pgsrc/HomePage
 trunk/locale/es/pgsrc/MasPopulares
 trunk/locale/es/pgsrc/NotasDeLiberacion
 trunk/locale/es/pgsrc/P%C3%A1ginaPrincipal
 trunk/locale/es/pgsrc/TodasLasPaginas
 trunk/locale/es/pgsrc/VisitantesRecientes
 trunk/locale/fr/pgsrc/%C3%89diterLesM%C3%A9taDonn%C3%A9es
 trunk/locale/fr/pgsrc/%C3%89ditionsR%C3%A9centes
 trunk/locale/fr/pgsrc/AdministrationDePhpWiki
 trunk/locale/fr/pgsrc/AdministrationDePhpWiki%2FChown
 trunk/locale/fr/pgsrc/AdministrationDePhpWiki%2FD%C3%A9finirAcl
 trunk/locale/fr/pgsrc/AdministrationDePhpWiki%2FD%C3%A9finirAclSimple
 trunk/locale/fr/pgsrc/AdministrationDePhpWiki%2FPurger
 trunk/locale/fr/pgsrc/AdministrationDePhpWiki%2FRechercherRemplacer
 trunk/locale/fr/pgsrc/AdministrationDePhpWiki%2FRenommer
 trunk/locale/fr/pgsrc/AdministrationDePhpWiki%2FSupprimer
 trunk/locale/fr/pgsrc/AdministrationDePhpWiki%2FSupprimerAcl
 trunk/locale/fr/pgsrc/Aide
 trunk/locale/fr/pgsrc/Aide%2F%C3%89diterLeContenu
 trunk/locale/fr/pgsrc/Aide%2FAjouterDesPages
 trunk/locale/fr/pgsrc/Aide%2FCommentUtiliserUnWiki
 trunk/locale/fr/pgsrc/Aide%2FD%C3%A9tailsTechniques
 trunk/locale/fr/pgsrc/Aide%2FGreffon%C3%89diterLesM%C3%A9taDonn%C3%A9es
 trunk/locale/fr/pgsrc/Aide%2FGreffonAjouterDesCommentaires
 trunk/locale/fr/pgsrc/Aide%2FGreffonAlbumPhotos
 trunk/locale/fr/pgsrc/Aide%2FGreffonBeauTableau
 trunk/locale/fr/pgsrc/Aide%2FGreffonBonjourLeMonde
 trunk/locale/fr/pgsrc/Aide%2FGreffonCalendrier
 trunk/locale/fr/pgsrc/Aide%2FGreffonColorationPhp
 trunk/locale/fr/pgsrc/Aide%2FGreffonCommenter
 trunk/locale/fr/pgsrc/Aide%2FGreffonCr%C3%A9erUnePage
 trunk/locale/fr/pgsrc/Aide%2FGreffonCr%C3%A9erUneTdm
 trunk/locale/fr/pgsrc/Aide%2FGreffonD%C3%A9plierLesSousPages
 trunk/locale/fr/pgsrc/Aide%2FGreffonHistoriqueAuteur
 trunk/locale/fr/pgsrc/Aide%2FGreffonHtmlPur
 trunk/locale/fr/pgsrc/Aide%2FGreffonInclureUnePage
 trunk/locale/fr/pgsrc/Aide%2FGreffonInfosSyst%C3%A8me
 trunk/locale/fr/pgsrc/Aide%2FGreffonIns%C3%A9rer
 trunk/locale/fr/pgsrc/Aide%2FGreffonListeDePages
 trunk/locale/fr/pgsrc/Aide%2FGreffonListeDesSousPages
 trunk/locale/fr/pgsrc/Aide%2FGreffonListeDuCalendrier
 trunk/locale/fr/pgsrc/Aide%2FGreffonPageAl%C3%A9atoire
 trunk/locale/fr/pgsrc/Aide%2FGreffonPagesFloues
 trunk/locale/fr/pgsrc/Aide%2FGreffonRechercheExterne
 trunk/locale/fr/pgsrc/Aide%2FGreffonRedirection
 trunk/locale/fr/pgsrc/Aide%2FGreffonRessourcesRss
 trunk/locale/fr/pgsrc/Aide%2FGreffonTableauAncienStyle
 trunk/locale/fr/pgsrc/Aide%2FGreffonTeX2png
 trunk/locale/fr/pgsrc/Aide%2FGreffonTestDeCache
 trunk/locale/fr/pgsrc/Aide%2FGreffonWiki
 trunk/locale/fr/pgsrc/Aide%2FGreffonWikiBlog
 trunk/locale/fr/pgsrc/Aide%2FIc%C3%B4nesDeLien
 trunk/locale/fr/pgsrc/Aide%2FInterWiki
 trunk/locale/fr/pgsrc/Aide%2FLienGoogle
 trunk/locale/fr/pgsrc/Aide%2FListeDePages
 trunk/locale/fr/pgsrc/Aide%2FPhpWiki
 trunk/locale/fr/pgsrc/Aide%2FR%C3%A8glesDeFormatageDesTextes
 trunk/locale/fr/pgsrc/Aide%2FSteve%20Wainstead
 trunk/locale/fr/pgsrc/Aide%2FStyleCorrect
 trunk/locale/fr/pgsrc/Aide%2FURLMagiquesPhpWiki
 trunk/locale/fr/pgsrc/Aide%2FWabiSabi
 trunk/locale/fr/pgsrc/Aide%2FWikiWikiWeb
 trunk/locale/fr/pgsrc/Aide%2FWikisUtilisantPhpWiki
 trunk/locale/fr/pgsrc/AliasAccueil
 trunk/locale/fr/pgsrc/Bac%C3%80Sable
 trunk/locale/fr/pgsrc/CarteInterWiki
 trunk/locale/fr/pgsrc/Cat%C3%A9gorieCat%C3%A9gorie
 trunk/locale/fr/pgsrc/Cat%C3%A9gorieGreffonWiki
 trunk/locale/fr/pgsrc/Cat%C3%A9gorieGroupes
 trunk/locale/fr/pgsrc/Cat%C3%A9goriePageDAction
 trunk/locale/fr/pgsrc/Cat%C3%A9goriePagesAccueil
 trunk/locale/fr/pgsrc/ChangementsLi%C3%A9s
 trunk/locale/fr/pgsrc/ChercherUnePage
 trunk/locale/fr/pgsrc/ClassezLa
 trunk/locale/fr/pgsrc/CommentairesR%C3%A9cents
 trunk/locale/fr/pgsrc/Cr%C3%A9erUnePage
 trunk/locale/fr/pgsrc/D%C3%A9bogageDePhpWiki
 trunk/locale/fr/pgsrc/D%C3%A9poserUnFichier
 trunk/locale/fr/pgsrc/Derni%C3%A8resModifs
 trunk/locale/fr/pgsrc/Derni%C3%A8resModifsCompl%C3%A8tes
 trunk/locale/fr/pgsrc/DocumentationDePhpWiki
 trunk/locale/fr/pgsrc/GestionnaireDesGreffons
 trunk/locale/fr/pgsrc/HistoriqueDeLaPage
 trunk/locale/fr/pgsrc/HomePage
 trunk/locale/fr/pgsrc/InfosAuthentification
 trunk/locale/fr/pgsrc/InfosDeD%C3%A9bogage
 trunk/locale/fr/pgsrc/InfosSurLaPage
 trunk/locale/fr/pgsrc/LesPlusVisit%C3%A9es
 trunk/locale/fr/pgsrc/ManuelPhpWiki
 trunk/locale/fr/pgsrc/ModifsR%C3%A9centesPhpWiki
 trunk/locale/fr/pgsrc/NotesDeVersion
 trunk/locale/fr/pgsrc/PageAccueil
 trunk/locale/fr/pgsrc/PageAl%C3%A9atoire
 trunk/locale/fr/pgsrc/PagesFloues
 trunk/locale/fr/pgsrc/PagesOrphelines
 trunk/locale/fr/pgsrc/PagesRecherch%C3%A9es
 trunk/locale/fr/pgsrc/PagesSemblables
 trunk/locale/fr/pgsrc/PierrickMeignen
 trunk/locale/fr/pgsrc/Pr%C3%A9f%C3%A9rencesUtilisateur
 trunk/locale/fr/pgsrc/QuiEstEnLigne
 trunk/locale/fr/pgsrc/R%C3%A9cup%C3%A9rationDeLaPage
 trunk/locale/fr/pgsrc/R%C3%A9troLiens
 trunk/locale/fr/pgsrc/RechercheEnTexteInt%C3%A9gral
 trunk/locale/fr/pgsrc/RechercheInterWiki
 trunk/locale/fr/pgsrc/RechercheParTitre
 trunk/locale/fr/pgsrc/SommaireDuProjet
 trunk/locale/fr/pgsrc/SondagePhpWiki
 trunk/locale/fr/pgsrc/Suivre
 trunk/locale/fr/pgsrc/TousLesUtilisateurs
 trunk/locale/fr/pgsrc/ToutesLesPages
 trunk/locale/fr/pgsrc/TraduireUnTexte
 trunk/locale/fr/pgsrc/VersionsR%C3%A9centes
 trunk/locale/fr/pgsrc/VisiteursR%C3%A9cents
 trunk/locale/it/pgsrc/Aiuto
 trunk/locale/it/pgsrc/Aiuto%2FAggiungerePagine
 trunk/locale/it/pgsrc/Aiuto%2FBuonStile
 trunk/locale/it/pgsrc/Aiuto%2FComeUsareWiki
 trunk/locale/it/pgsrc/Aiuto%2FMagicPhpWikiURLs
 trunk/locale/it/pgsrc/Aiuto%2FModificaIlTesto
 trunk/locale/it/pgsrc/Aiuto%2FPhpWiki
 trunk/locale/it/pgsrc/Aiuto%2FRegoleFormattazioneTesto
 trunk/locale/it/pgsrc/Aiuto%2FSteve%20Wainstead
 trunk/locale/it/pgsrc/Aiuto%2FVarieSulFunzionamento
 trunk/locale/it/pgsrc/Aiuto%2FWabiSabi
 trunk/locale/it/pgsrc/Aiuto%2FWikiWikiWeb
 trunk/locale/it/pgsrc/AmministrazioneDiPhpWiki
 trunk/locale/it/pgsrc/AmministrazioneDiPhpWiki%2FRimuovi
 trunk/locale/it/pgsrc/CambiamentiRecenti
 trunk/locale/it/pgsrc/FuzzyPages
 trunk/locale/it/pgsrc/HomePage
 trunk/locale/it/pgsrc/NoteDiRilascio
 trunk/locale/it/pgsrc/PaginaPrincipale
 trunk/locale/it/pgsrc/Pi%C3%B9Popolari
 trunk/locale/it/pgsrc/RicercaDelTesto
 trunk/locale/it/pgsrc/RicercaPerTitolo
 trunk/locale/it/pgsrc/ScatolaDiSabbia
 trunk/locale/it/pgsrc/TrovaPagina
 trunk/locale/it/pgsrc/TutteLePagine
 trunk/locale/it/pgsrc/VisitatoriRecenti
 trunk/locale/ja/pgsrc/%E3%83%9A%E3%83%BC%E3%82%B8%E6%A4%9C%E7%B4%A2
 trunk/locale/ja/pgsrc/%E3%83%9B%E3%83%BC%E3%83%A0%E3%83%9A%E3%83%BC%E3%82%B8
 trunk/locale/ja/pgsrc/HomePage
 trunk/locale/nl/pgsrc/Help
 trunk/locale/nl/pgsrc/Help%2FGebruikersVoorkeuren
 trunk/locale/nl/pgsrc/Help%2FGoedeStijl
 trunk/locale/nl/pgsrc/Help%2FHoeWikiTeGebruiken
 trunk/locale/nl/pgsrc/Help%2FJanNieuwenhuizen
 trunk/locale/nl/pgsrc/Help%2FMeerOverTechnieken
 trunk/locale/nl/pgsrc/Help%2FPaginasToevoegen
 trunk/locale/nl/pgsrc/Help%2FPhpWiki
 trunk/locale/nl/pgsrc/Help%2FTekstFormatteringsRegels
 trunk/locale/nl/pgsrc/Help%2FToverPhpWikiURLs
 trunk/locale/nl/pgsrc/Help%2FVeranderTekst
 trunk/locale/nl/pgsrc/Help%2FWabiSabi
 trunk/locale/nl/pgsrc/Help%2FWikiWikiWeb
 trunk/locale/nl/pgsrc/HomePage
 trunk/locale/nl/pgsrc/MeestBezocht
 trunk/locale/nl/pgsrc/PhpWikiBeheer
 trunk/locale/nl/pgsrc/PhpWikiBeheer%2FVerwijder
 trunk/locale/nl/pgsrc/PhpWikiBeheer%2FZoekVervangt
 trunk/locale/nl/pgsrc/PhpWikiDocumentatie
 trunk/locale/nl/pgsrc/RecenteBezoekers
 trunk/locale/nl/pgsrc/RecenteVeranderingen
 trunk/locale/nl/pgsrc/ThuisPagina
 trunk/locale/nl/pgsrc/UitgaveNoten
 trunk/locale/nl/pgsrc/ZandBak
 trunk/locale/nl/pgsrc/ZoekPagina
 trunk/locale/po/de.po
 trunk/locale/po/es.po
 trunk/locale/po/fr.po
 trunk/locale/po/it.po
 trunk/locale/po/ja.po
 trunk/locale/po/nl.po
 trunk/locale/po/sv.po
 trunk/locale/po/zh.po
 trunk/locale/sv/pgsrc/Framsida
 trunk/locale/sv/pgsrc/G%C3%A4stboken
 trunk/locale/sv/pgsrc/Hj%C3%A4lp
 trunk/locale/sv/pgsrc/Hj%C3%A4lp%2FHurManAnv%C3%A4nderWiki
 trunk/locale/sv/pgsrc/Hj%C3%A4lp%2FL%C3%A4ggaTillSidor
 trunk/locale/sv/pgsrc/Hj%C3%A4lp%2FMerOmMekanismerna
 trunk/locale/sv/pgsrc/Hj%C3%A4lp%2FPhpWiki
 trunk/locale/sv/pgsrc/Hj%C3%A4lp%2FRedigeraText
 trunk/locale/sv/pgsrc/Hj%C3%A4lp%2FSteve%20Wainstead
 trunk/locale/sv/pgsrc/Hj%C3%A4lp%2FTextformateringsregler
 trunk/locale/sv/pgsrc/Hj%C3%A4lp%2FWikiWikiWeb
 trunk/locale/sv/pgsrc/HomePage
 trunk/locale/sv/pgsrc/MestPopul%C3%A4r
 trunk/locale/sv/pgsrc/PhpWikiAdministration
 trunk/locale/sv/pgsrc/S%C3%B6kEfterSida
 trunk/locale/sv/pgsrc/Sandl%C3%A5dan
 trunk/locale/sv/pgsrc/Senaste%C3%84ndringar
 trunk/locale/zh/pgsrc/%E9%A6%96%E9%A0%81
 trunk/locale/zh/pgsrc/AllPages
 trunk/locale/zh/pgsrc/AllUsers
 trunk/locale/zh/pgsrc/BackLinks
 trunk/locale/zh/pgsrc/DebugBackendInfo
 trunk/locale/zh/pgsrc/FindPage
 trunk/locale/zh/pgsrc/FullRecentChanges
 trunk/locale/zh/pgsrc/FullTextSearch
 trunk/locale/zh/pgsrc/FuzzyPages
 trunk/locale/zh/pgsrc/Help
 trunk/locale/zh/pgsrc/Help%2FAddingPages
 trunk/locale/zh/pgsrc/Help%2FBackLinksPlugin
 trunk/locale/zh/pgsrc/Help%2FCalendarPlugin
 trunk/locale/zh/pgsrc/Help%2FCommentPlugin
 trunk/locale/zh/pgsrc/Help%2FEditText
 trunk/locale/zh/pgsrc/Help%2FExternalSearchPlugin
 trunk/locale/zh/pgsrc/Help%2FHelloWorldPlugin
 trunk/locale/zh/pgsrc/Help%2FHowToUseWiki
 trunk/locale/zh/pgsrc/Help%2FInterWiki
 trunk/locale/zh/pgsrc/Help%2FLinkIcons
 trunk/locale/zh/pgsrc/Help%2FMagicPhpWikiURLs
 trunk/locale/zh/pgsrc/Help%2FMoreAboutMechanics
 trunk/locale/zh/pgsrc/Help%2FOldStyleTablePlugin
 trunk/locale/zh/pgsrc/Help%2FPhotoAlbumPlugin
 trunk/locale/zh/pgsrc/Help%2FPhpHighlightPlugin
 trunk/locale/zh/pgsrc/Help%2FPhpWiki
 trunk/locale/zh/pgsrc/Help%2FRandomPagePlugin
 trunk/locale/zh/pgsrc/Help%2FRedirectToPlugin
 trunk/locale/zh/pgsrc/Help%2FSystemInfoPlugin
 trunk/locale/zh/pgsrc/Help%2FTranscludePlugin
 trunk/locale/zh/pgsrc/Help%2FWikiPlugin
 trunk/locale/zh/pgsrc/Help%2FWikiWikiWeb
 trunk/locale/zh/pgsrc/HomePage
 trunk/locale/zh/pgsrc/HomePageAlias
 trunk/locale/zh/pgsrc/InterWikiMap
 trunk/locale/zh/pgsrc/InterWikiSearch
 trunk/locale/zh/pgsrc/LikePages
 trunk/locale/zh/pgsrc/OrphanedPages
 trunk/locale/zh/pgsrc/PageDump
 trunk/locale/zh/pgsrc/PhpWikiAdministration
 trunk/locale/zh/pgsrc/PhpWikiDebug
 trunk/locale/zh/pgsrc/RandomPage
 trunk/locale/zh/pgsrc/RecentChanges
 trunk/locale/zh/pgsrc/RecentEdits
 trunk/locale/zh/pgsrc/RecentVisitors
 trunk/locale/zh/pgsrc/SandBox
 trunk/locale/zh/pgsrc/TitleSearch
 trunk/locale/zh/pgsrc/UpLoad
 trunk/locale/zh/pgsrc/UserPreferences
 trunk/locale/zh/pgsrc/WantedPages
 trunk/pgsrc/AllPages
 trunk/pgsrc/AllPagesByAcl
 trunk/pgsrc/AllPagesCreatedByMe
 trunk/pgsrc/AllPagesLastEditedByMe
 trunk/pgsrc/AllPagesOwnedByMe
 trunk/pgsrc/AllUserPages
 trunk/pgsrc/AllUsers
 trunk/pgsrc/AppendText
 trunk/pgsrc/AuthorHistory
 trunk/pgsrc/BackLinks
 trunk/pgsrc/BlogArchives
 trunk/pgsrc/BlogJournal
 trunk/pgsrc/CategoryActionPage
 trunk/pgsrc/CategoryCategory
 trunk/pgsrc/CategoryGroup
 trunk/pgsrc/CategoryHomePages
 trunk/pgsrc/CategoryWikiPlugin
 trunk/pgsrc/Copyrights
 trunk/pgsrc/CreatePage
 trunk/pgsrc/DebugAuthInfo
 trunk/pgsrc/DebugBackendInfo
 trunk/pgsrc/DebugGroupInfo
 trunk/pgsrc/EditMetaData
 trunk/pgsrc/FindPage
 trunk/pgsrc/FullRecentChanges
 trunk/pgsrc/FullTextSearch
 trunk/pgsrc/FuzzyPages
 trunk/pgsrc/GeneralDisclaimer
 trunk/pgsrc/Help
 trunk/pgsrc/Help%2FActionPage
 trunk/pgsrc/Help%2FAddCommentPlugin
 trunk/pgsrc/Help%2FAddingPages
 trunk/pgsrc/Help%2FAdvice%20for%20Mediawiki%20users
 trunk/pgsrc/Help%2FAllPagesPlugin
 trunk/pgsrc/Help%2FAllUsersPlugin
 trunk/pgsrc/Help%2FAnalyseAccessLogSqlPlugin
 trunk/pgsrc/Help%2FAppendTextPlugin
 trunk/pgsrc/Help%2FAsciiMathPlugin
 trunk/pgsrc/Help%2FAsciiSVGPlugin
 trunk/pgsrc/Help%2FAtomFeedPlugin
 trunk/pgsrc/Help%2FAuthorHistoryPlugin
 trunk/pgsrc/Help%2FBackLinksPlugin
 trunk/pgsrc/Help%2FBlogArchivesPlugin
 trunk/pgsrc/Help%2FBlogJournalPlugin
 trunk/pgsrc/Help%2FBoxRightPlugin
 trunk/pgsrc/Help%2FCacheTestPlugin
 trunk/pgsrc/Help%2FCalendarListPlugin
 trunk/pgsrc/Help%2FCalendarPlugin
 trunk/pgsrc/Help%2FCategories
 trunk/pgsrc/Help%2FChartPlugin
 trunk/pgsrc/Help%2FCommentPlugin
 trunk/pgsrc/Help%2FCreateBibPlugin
 trunk/pgsrc/Help%2FCreatePagePlugin
 trunk/pgsrc/Help%2FCreateTocPlugin
 trunk/pgsrc/Help%2FCurrentTimePlugin
 trunk/pgsrc/Help%2FDeadEndPagesPlugin
 trunk/pgsrc/Help%2FDebugAuthInfoPlugin
 trunk/pgsrc/Help%2FDebugBackendInfoPlugin
 trunk/pgsrc/Help%2FDebugGroupInfoPlugin
 trunk/pgsrc/Help%2FDebugRetransformPlugin
 trunk/pgsrc/Help%2FDiffPlugin
 trunk/pgsrc/Help%2FDynamicIncludePagePlugin
 trunk/pgsrc/Help%2FEditMetaDataPlugin
 trunk/pgsrc/Help%2FEditText
 trunk/pgsrc/Help%2FExternalSearchPlugin
 trunk/pgsrc/Help%2FFacebookLikePlugin
 trunk/pgsrc/Help%2FFileInfoPlugin
 trunk/pgsrc/Help%2FFoafViewerPlugin
 trunk/pgsrc/Help%2FFullTextSearchPlugin
 trunk/pgsrc/Help%2FFuzzyPagesPlugin
 trunk/pgsrc/Help%2FGoToPlugin
 trunk/pgsrc/Help%2FGoodStyle
 trunk/pgsrc/Help%2FGoogleLink
 trunk/pgsrc/Help%2FGoogleMapsPlugin
 trunk/pgsrc/Help%2FGooglePluginPlugin
 trunk/pgsrc/Help%2FGraphVizPlugin
 trunk/pgsrc/Help%2FHelloWorldPlugin
 trunk/pgsrc/Help%2FHowToUseWiki
 trunk/pgsrc/Help%2FHtmlConverterPlugin
 trunk/pgsrc/Help%2FImages
 trunk/pgsrc/Help%2FIncludePagePlugin
 trunk/pgsrc/Help%2FIncludePagesPlugin
 trunk/pgsrc/Help%2FIncludeSiteMapPlugin
 trunk/pgsrc/Help%2FIncludeTreePlugin
 trunk/pgsrc/Help%2FInterWiki
 trunk/pgsrc/Help%2FInterWikiSearchPlugin
 trunk/pgsrc/Help%2FJabberPresencePlugin
 trunk/pgsrc/Help%2FJeff%20Dairiki
 trunk/pgsrc/Help%2FLdapSearchPlugin
 trunk/pgsrc/Help%2FLikePagesPlugin
 trunk/pgsrc/Help%2FLinkDatabasePlugin
 trunk/pgsrc/Help%2FLinkIcons
 trunk/pgsrc/Help%2FLinkSearchPlugin
 trunk/pgsrc/Help%2FListPagesPlugin
 trunk/pgsrc/Help%2FListRelationsPlugin
 trunk/pgsrc/Help%2FListSubpagesPlugin
 trunk/pgsrc/Help%2FMagicPhpWikiURLs
 trunk/pgsrc/Help%2FMediawikiTablePlugin
 trunk/pgsrc/Help%2FModeratedPagePlugin
 trunk/pgsrc/Help%2FMoreAboutMechanics
 trunk/pgsrc/Help%2FMostPopularPlugin
 trunk/pgsrc/Help%2FNewPagesPerUserPlugin
 trunk/pgsrc/Help%2FNoCachePlugin
 trunk/pgsrc/Help%2FOldStyleTablePlugin
 trunk/pgsrc/Help%2FOrphanedPagesPlugin
 trunk/pgsrc/Help%2FPageDumpPlugin
 trunk/pgsrc/Help%2FPageGroupPlugin
 trunk/pgsrc/Help%2FPageHistoryPlugin
 trunk/pgsrc/Help%2FPageInfoPlugin
 trunk/pgsrc/Help%2FPageList
 trunk/pgsrc/Help%2FPagePermissions
 trunk/pgsrc/Help%2FPageTrailPlugin
 trunk/pgsrc/Help%2FPasswordResetPlugin
 trunk/pgsrc/Help%2FPhotoAlbumPlugin
 trunk/pgsrc/Help%2FPhpHighlightPlugin
 trunk/pgsrc/Help%2FPhpWiki
 trunk/pgsrc/Help%2FPloticusPlugin
 trunk/pgsrc/Help%2FPluginManagerPlugin
 trunk/pgsrc/Help%2FPopUpPlugin
 trunk/pgsrc/Help%2FPopularNearbyPlugin
 trunk/pgsrc/Help%2FPopularTagsPlugin
 trunk/pgsrc/Help%2FPredefinedIcons
 trunk/pgsrc/Help%2FPreferenceAppPlugin
 trunk/pgsrc/Help%2FPrevNextPlugin
 trunk/pgsrc/Help%2FProcessingPlugin
 trunk/pgsrc/Help%2FRandomPagePlugin
 trunk/pgsrc/Help%2FRateItPlugin
 trunk/pgsrc/Help%2FRawHtmlPlugin
 trunk/pgsrc/Help%2FRecentChangesPlugin
 trunk/pgsrc/Help%2FRecentCommentsPlugin
 trunk/pgsrc/Help%2FRecentEditsPlugin
 trunk/pgsrc/Help%2FRecentReferrersPlugin
 trunk/pgsrc/Help%2FRedirectToPlugin
 trunk/pgsrc/Help%2FReini%20Urban
 trunk/pgsrc/Help%2FRelatedChangesPlugin
 trunk/pgsrc/Help%2FRichTablePlugin
 trunk/pgsrc/Help%2FRssFeedPlugin
 trunk/pgsrc/Help%2FSearchHighlightPlugin
 trunk/pgsrc/Help%2FSemanticRelations
 trunk/pgsrc/Help%2FSemanticRelationsPlugin
 trunk/pgsrc/Help%2FSemanticSearchAdvancedPlugin
 trunk/pgsrc/Help%2FSemanticSearchPlugin
 trunk/pgsrc/Help%2FSiteMapPlugin
 trunk/pgsrc/Help%2FSpellCheckPlugin
 trunk/pgsrc/Help%2FSpreadsheet
 trunk/pgsrc/Help%2FSqlResultPlugin
 trunk/pgsrc/Help%2FSteve%20Wainstead
 trunk/pgsrc/Help%2FSyncWikiPlugin
 trunk/pgsrc/Help%2FSyntaxHighlighterPlugin
 trunk/pgsrc/Help%2FSystemInfoPlugin
 trunk/pgsrc/Help%2FTeX2pngPlugin
 trunk/pgsrc/Help%2FTemplatePlugin
 trunk/pgsrc/Help%2FTexToPngPlugin
 trunk/pgsrc/Help%2FTextFormattingRules
 trunk/pgsrc/Help%2FTitleSearchPlugin
 trunk/pgsrc/Help%2FTranscludePlugin
 trunk/pgsrc/Help%2FTranslateTextPlugin
 trunk/pgsrc/Help%2FUnfoldSubpagesPlugin
 trunk/pgsrc/Help%2FUpLoadPlugin
 trunk/pgsrc/Help%2FUriResolverPlugin
 trunk/pgsrc/Help%2FUserPreferencesPlugin
 trunk/pgsrc/Help%2FUserRatingsPlugin
 trunk/pgsrc/Help%2FVideoPlugin
 trunk/pgsrc/Help%2FVisualWikiPlugin
 trunk/pgsrc/Help%2FWabiSabi
 trunk/pgsrc/Help%2FWantedPagesPlugin
 trunk/pgsrc/Help%2FWatchPagePlugin
 trunk/pgsrc/Help%2FWhoIsOnlinePlugin
 trunk/pgsrc/Help%2FWikiAdminChownPlugin
 trunk/pgsrc/Help%2FWikiAdminDeleteAclPlugin
 trunk/pgsrc/Help%2FWikiAdminPurgePlugin
 trunk/pgsrc/Help%2FWikiAdminRemovePlugin
 trunk/pgsrc/Help%2FWikiAdminRenamePlugin
 trunk/pgsrc/Help%2FWikiAdminSearchReplacePlugin
 trunk/pgsrc/Help%2FWikiAdminSelectPlugin
 trunk/pgsrc/Help%2FWikiAdminSetAclPlugin
 trunk/pgsrc/Help%2FWikiAdminSetAclSimplePlugin
 trunk/pgsrc/Help%2FWikiAdminSetExternalPlugin
 trunk/pgsrc/Help%2FWikiAdminUtilsPlugin
 trunk/pgsrc/Help%2FWikiBlogPlugin
 trunk/pgsrc/Help%2FWikiFormPlugin
 trunk/pgsrc/Help%2FWikiFormRichPlugin
 trunk/pgsrc/Help%2FWikiForumPlugin
 trunk/pgsrc/Help%2FWikiPlugin
 trunk/pgsrc/Help%2FWikiPollPlugin
 trunk/pgsrc/Help%2FWikiTranslationPlugin
 trunk/pgsrc/Help%2FWikiWikiWeb
 trunk/pgsrc/Help%2FWikicreole
 trunk/pgsrc/Help%2FWikicreoleTablePlugin
 trunk/pgsrc/Help%2FWikisUsingPhpWiki
 trunk/pgsrc/Help%2FYouTubePlugin
 trunk/pgsrc/Help%2Ftext2pngPlugin
 trunk/pgsrc/HomePage
 trunk/pgsrc/HomePageAlias
 trunk/pgsrc/InterWikiMap
 trunk/pgsrc/InterWikiSearch
 trunk/pgsrc/LdapSearch
 trunk/pgsrc/LeastPopular
 trunk/pgsrc/LikePages
 trunk/pgsrc/LinkDatabase
 trunk/pgsrc/LinkSearch
 trunk/pgsrc/ListRelations
 trunk/pgsrc/LockedPages
 trunk/pgsrc/ModeratedPage
 trunk/pgsrc/MostPopular
 trunk/pgsrc/MyRatings
 trunk/pgsrc/MyRecentChanges
 trunk/pgsrc/MyRecentEdits
 trunk/pgsrc/NewPagesPerUser
 trunk/pgsrc/OrphanedPages
 trunk/pgsrc/PageDump
 trunk/pgsrc/PageHistory
 trunk/pgsrc/PageInfo
 trunk/pgsrc/PasswordReset
 trunk/pgsrc/PhpWikiAdministration
 trunk/pgsrc/PhpWikiAdministration%2FChown
 trunk/pgsrc/PhpWikiAdministration%2FDeleteAcl
 trunk/pgsrc/PhpWikiAdministration%2FPurge
 trunk/pgsrc/PhpWikiAdministration%2FRemove
 trunk/pgsrc/PhpWikiAdministration%2FRename
 trunk/pgsrc/PhpWikiAdministration%2FSearchReplace
 trunk/pgsrc/PhpWikiAdministration%2FSetAcl
 trunk/pgsrc/PhpWikiAdministration%2FSetAclSimple
 trunk/pgsrc/PhpWikiDebug
 trunk/pgsrc/PhpWikiDocumentation
 trunk/pgsrc/PhpWikiManual
 trunk/pgsrc/PhpWikiPoll
 trunk/pgsrc/PhpWikiRecentChanges
 trunk/pgsrc/PluginManager
 trunk/pgsrc/ProjectSummary
 trunk/pgsrc/RandomPage
 trunk/pgsrc/RateIt
 trunk/pgsrc/RecentChanges
 trunk/pgsrc/RecentChangesMyPages
 trunk/pgsrc/RecentComments
 trunk/pgsrc/RecentEdits
 trunk/pgsrc/RecentNewPages
 trunk/pgsrc/RecentReleases
 trunk/pgsrc/RecentVisitors
 trunk/pgsrc/RelatedChanges
 trunk/pgsrc/ReleaseNotes
 trunk/pgsrc/San%20Diego
 trunk/pgsrc/SandBox
 trunk/pgsrc/SearchHighlight
 trunk/pgsrc/SemanticRelations
 trunk/pgsrc/SemanticSearch
 trunk/pgsrc/SetGlobalAccessRights
 trunk/pgsrc/SetGlobalAccessRightsSimple
 trunk/pgsrc/SpecialPages
 trunk/pgsrc/SpellCheck
 trunk/pgsrc/SystemInfo
 trunk/pgsrc/Template%2FAttribute
 trunk/pgsrc/Template%2FCategory
 trunk/pgsrc/Template%2FExample
 trunk/pgsrc/Template%2FLinkto
 trunk/pgsrc/Template%2FNewPlugin
 trunk/pgsrc/Template%2FRelation
 trunk/pgsrc/Template%2FTalk
 trunk/pgsrc/Template%2FUserPage
 trunk/pgsrc/The%20PhpWiki%20programming%20team
 trunk/pgsrc/TitleSearch
 trunk/pgsrc/TranslateText
 trunk/pgsrc/UpLoad
 trunk/pgsrc/UriResolver
 trunk/pgsrc/UserContribs
 trunk/pgsrc/UserPreferences
 trunk/pgsrc/UserRatings
 trunk/pgsrc/WantedPages
 trunk/pgsrc/WatchPage
 trunk/pgsrc/WhoIsOnline
 trunk/pgsrc/WikiAdminSelect
 trunk/pgsrc/WikiBlog
 trunk/pgsrc/area
 trunk/pgsrc/is_a
 trunk/pgsrc/located_in
 trunk/pgsrc/population
 trunk/themes/blog/pgsrc/About
 trunk/themes/blog/pgsrc/Blog
 trunk/themes/blog/pgsrc/CategoryHowTo
 trunk/themes/blog/pgsrc/HomePage
 trunk/themes/blog/pgsrc/HowTo
 trunk/themes/blog/pgsrc/PhotoAlbum
 trunk/themes/fusionforge/pgsrc/CategoryWiki%20templates
 trunk/themes/fusionforge/pgsrc/CategoryWiki%20user
 trunk/themes/fusionforge/pgsrc/ExternalPages
 trunk/themes/fusionforge/pgsrc/FindPage
 trunk/themes/fusionforge/pgsrc/FullTextSearch
 trunk/themes/fusionforge/pgsrc/HomePage
 trunk/themes/fusionforge/pgsrc/PhpWikiAdministration
 trunk/themes/fusionforge/pgsrc/PhpWikiAdministration%2FSetAclSimple
 trunk/themes/fusionforge/pgsrc/PhpWikiAdministration%2FSetExternal
 trunk/themes/fusionforge/pgsrc/SetGlobalAccessRightsSimple
 trunk/themes/fusionforge/pgsrc/SpecialPages
 trunk/themes/fusionforge/pgsrc/TextFormattingRules
 trunk/themes/fusionforge/pgsrc/TitleSearch
 trunk/themes/fusionforge/pgsrc/UpLoad
 trunk/themes/fusionforge/pgsrc/colorbox
 trunk/themes/fusionforge/pgsrc/titlebar
 trunk/themes/wikilens/pgsrc/LeftbarContent
Modified: trunk/INSTALL
===================================================================
--- trunk/INSTALL	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/INSTALL	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,7 +1,7 @@
 REQUIREMENTS
 
-PhpWiki 1.6.2 requires a web server with at least PHP version 5.3.3.
-PhpWiki 1.6.2 should work for all PHP releases from 5.3.3 to 8.2.x.
+PhpWiki 1.6.3 requires a web server with at least PHP version 5.3.3.
+PhpWiki 1.6.3 should work for all PHP releases from 5.3.3 to 8.2.x.
 
 Visit <http://www.php.net> and <http://php.net/downloads.php>
 for downloads and information.
@@ -113,7 +113,7 @@
 
 Unzip this file into the directory where you want it to live. That's it.
 
-bash$ unzip phpwiki-1.6.2.zip
+bash$ unzip phpwiki-1.6.3.zip
 
 In the config subdirectory copy 'config-dist.ini' to 'config.ini' and
 edit the settings in 'config.ini' to your liking.
Modified: trunk/Makefile
===================================================================
--- trunk/Makefile	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/Makefile	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,4 +1,4 @@
-VERSION=1.6.2
+VERSION=1.6.3
 RPMBUILD=rpmbuild
 
 clean:
Modified: trunk/lib/prepend.php
===================================================================
--- trunk/lib/prepend.php	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/lib/prepend.php	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -29,7 +29,7 @@
 * Things which must be done and defined before anything else.
 */
 
-define('PHPWIKI_VERSION', '1.6.2');
+define('PHPWIKI_VERSION', '1.6.3');
 
 // A new php-5.1.x feature: Turn off php-5.1.x auto_globals_jit = On, or use this mess below.
 if (empty($GLOBALS['HTTP_SERVER_VARS'])) {
Modified: trunk/locale/de/pgsrc/%C3%84hnlicheSeiten
===================================================================
--- trunk/locale/de/pgsrc/%C3%84hnlicheSeiten	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/%C3%84hnlicheSeiten	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=%C3%84hnlicheSeiten;
 flags=PAGE_LOCKED;
Modified: trunk/locale/de/pgsrc/AlleBenutzer
===================================================================
--- trunk/locale/de/pgsrc/AlleBenutzer	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/AlleBenutzer	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=AlleBenutzer;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/AlleSeiten
===================================================================
--- trunk/locale/de/pgsrc/AlleSeiten	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/AlleSeiten	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=AlleSeiten;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/AlleSeitenEditiertVonMir
===================================================================
--- trunk/locale/de/pgsrc/AlleSeitenEditiertVonMir	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/AlleSeitenEditiertVonMir	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=AlleSeitenEditiertVonMir;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/AlleSeitenErzeugtVonMir
===================================================================
--- trunk/locale/de/pgsrc/AlleSeitenErzeugtVonMir	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/AlleSeitenErzeugtVonMir	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=AlleSeitenErzeugtVonMir;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/AlleSeitenImBesitzVonMir
===================================================================
--- trunk/locale/de/pgsrc/AlleSeitenImBesitzVonMir	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/AlleSeitenImBesitzVonMir	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=AlleSeitenImBesitzVonMir;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/BackLinks
===================================================================
--- trunk/locale/de/pgsrc/BackLinks	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/BackLinks	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=BackLinks;
 flags=PAGE_LOCKED;
Modified: trunk/locale/de/pgsrc/BenutzerEinstellungen
===================================================================
--- trunk/locale/de/pgsrc/BenutzerEinstellungen	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/BenutzerEinstellungen	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=BenutzerEinstellungen;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/DebugAuthInfo
===================================================================
--- trunk/locale/de/pgsrc/DebugAuthInfo	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/DebugAuthInfo	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=DebugAuthInfo;
 flags=PAGE_LOCKED;
Modified: trunk/locale/de/pgsrc/DebugBackendInfo
===================================================================
--- trunk/locale/de/pgsrc/DebugBackendInfo	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/DebugBackendInfo	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=DebugBackendInfo;
 flags=PAGE_LOCKED;
Modified: trunk/locale/de/pgsrc/DebugGruppenInfo
===================================================================
--- trunk/locale/de/pgsrc/DebugGruppenInfo	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/DebugGruppenInfo	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=DebugGruppenInfo;
 flags=PAGE_LOCKED;
Modified: trunk/locale/de/pgsrc/EditiereText
===================================================================
--- trunk/locale/de/pgsrc/EditiereText	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/EditiereText	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=EditiereText;
 flags="";
Modified: trunk/locale/de/pgsrc/Einstellungen
===================================================================
--- trunk/locale/de/pgsrc/Einstellungen	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Einstellungen	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Einstellungen;
 flags=PAGE_LOCKED;
Modified: trunk/locale/de/pgsrc/FuzzySuche
===================================================================
--- trunk/locale/de/pgsrc/FuzzySuche	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/FuzzySuche	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=FuzzySuche;
 flags=PAGE_LOCKED;
Modified: trunk/locale/de/pgsrc/G%C3%A4steBuch
===================================================================
--- trunk/locale/de/pgsrc/G%C3%A4steBuch	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/G%C3%A4steBuch	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=G%C3%A4steBuch;
 flags="";
Modified: trunk/locale/de/pgsrc/GaesteBuch
===================================================================
--- trunk/locale/de/pgsrc/GaesteBuch	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/GaesteBuch	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=GaesteBuch;
 flags=PAGE_LOCKED;
Modified: trunk/locale/de/pgsrc/Geringf%C3%BCgige%C3%84nderungen
===================================================================
--- trunk/locale/de/pgsrc/Geringf%C3%BCgige%C3%84nderungen	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Geringf%C3%BCgige%C3%84nderungen	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Geringf%C3%BCgige%C3%84nderungen;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/GleicheSeiten
===================================================================
--- trunk/locale/de/pgsrc/GleicheSeiten	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/GleicheSeiten	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=GleicheSeiten;
 flags=PAGE_LOCKED;
Modified: trunk/locale/de/pgsrc/Hilfe
===================================================================
--- trunk/locale/de/pgsrc/Hilfe	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/Hilfe%2FAktionsSeite
===================================================================
--- trunk/locale/de/pgsrc/Hilfe%2FAktionsSeite	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe%2FAktionsSeite	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe%2FAktionsSeite;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/Hilfe%2FAutorenProtokollPlugin
===================================================================
--- trunk/locale/de/pgsrc/Hilfe%2FAutorenProtokollPlugin	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe%2FAutorenProtokollPlugin	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe%2FAutorenProtokollPlugin;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/Hilfe%2FBackLinksPlugin
===================================================================
--- trunk/locale/de/pgsrc/Hilfe%2FBackLinksPlugin	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe%2FBackLinksPlugin	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe%2FBackLinksPlugin;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/Hilfe%2FGraphVizPlugin
===================================================================
--- trunk/locale/de/pgsrc/Hilfe%2FGraphVizPlugin	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe%2FGraphVizPlugin	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe%2FGraphVizPlugin;
 flags=PAGE_LOCKED;
Modified: trunk/locale/de/pgsrc/Hilfe%2FGuterStil
===================================================================
--- trunk/locale/de/pgsrc/Hilfe%2FGuterStil	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe%2FGuterStil	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe%2FGuterStil;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/Hilfe%2FHalloWeltPlugin
===================================================================
--- trunk/locale/de/pgsrc/Hilfe%2FHalloWeltPlugin	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe%2FHalloWeltPlugin	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe%2FHalloWeltPlugin;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/Hilfe%2FHochLadenPlugin
===================================================================
--- trunk/locale/de/pgsrc/Hilfe%2FHochLadenPlugin	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe%2FHochLadenPlugin	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe%2FHochLadenPlugin;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/Hilfe%2FInhaltsVerzeichnisPlugin
===================================================================
--- trunk/locale/de/pgsrc/Hilfe%2FInhaltsVerzeichnisPlugin	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe%2FInhaltsVerzeichnisPlugin	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe%2FInhaltsVerzeichnisPlugin;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/Hilfe%2FModerierteSeitePlugin
===================================================================
--- trunk/locale/de/pgsrc/Hilfe%2FModerierteSeitePlugin	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe%2FModerierteSeitePlugin	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe%2FModerierteSeitePlugin;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/Hilfe%2FNeueSeitePlugin
===================================================================
--- trunk/locale/de/pgsrc/Hilfe%2FNeueSeitePlugin	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe%2FNeueSeitePlugin	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe%2FNeueSeitePlugin;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/Hilfe%2FNeuerKommentarPlugin
===================================================================
--- trunk/locale/de/pgsrc/Hilfe%2FNeuerKommentarPlugin	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe%2FNeuerKommentarPlugin	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe%2FNeuerKommentarPlugin;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/Hilfe%2FPhotoAlbumPlugin
===================================================================
--- trunk/locale/de/pgsrc/Hilfe%2FPhotoAlbumPlugin	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe%2FPhotoAlbumPlugin	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe%2FPhotoAlbumPlugin;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/Hilfe%2FPhpWiki
===================================================================
--- trunk/locale/de/pgsrc/Hilfe%2FPhpWiki	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe%2FPhpWiki	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe%2FPhpWiki;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/Hilfe%2FSeitenErzeugen
===================================================================
--- trunk/locale/de/pgsrc/Hilfe%2FSeitenErzeugen	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe%2FSeitenErzeugen	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe%2FSeitenErzeugen;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/Hilfe%2FSteve%20Wainstead
===================================================================
--- trunk/locale/de/pgsrc/Hilfe%2FSteve%20Wainstead	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe%2FSteve%20Wainstead	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe%2FSteve%20Wainstead;
 flags="";
Modified: trunk/locale/de/pgsrc/Hilfe%2FTextBearbeiten
===================================================================
--- trunk/locale/de/pgsrc/Hilfe%2FTextBearbeiten	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe%2FTextBearbeiten	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe%2FTextBearbeiten;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/Hilfe%2FTextFormatierungsRegeln
===================================================================
--- trunk/locale/de/pgsrc/Hilfe%2FTextFormatierungsRegeln	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe%2FTextFormatierungsRegeln	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe%2FTextFormatierungsRegeln;
 flags=PAGE_LOCKED;
Modified: trunk/locale/de/pgsrc/Hilfe%2FVorlagePlugin
===================================================================
--- trunk/locale/de/pgsrc/Hilfe%2FVorlagePlugin	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe%2FVorlagePlugin	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe%2FVorlagePlugin;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/Hilfe%2FWabiSabi
===================================================================
--- trunk/locale/de/pgsrc/Hilfe%2FWabiSabi	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe%2FWabiSabi	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe%2FWabiSabi;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/Hilfe%2FWieManWikiBenutzt
===================================================================
--- trunk/locale/de/pgsrc/Hilfe%2FWieManWikiBenutzt	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe%2FWieManWikiBenutzt	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe%2FWieManWikiBenutzt;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/Hilfe%2FWikiTechnik
===================================================================
--- trunk/locale/de/pgsrc/Hilfe%2FWikiTechnik	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe%2FWikiTechnik	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe%2FWikiTechnik;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/Hilfe%2FWikiWikiWeb
===================================================================
--- trunk/locale/de/pgsrc/Hilfe%2FWikiWikiWeb	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe%2FWikiWikiWeb	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe%2FWikiWikiWeb;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/Hilfe%2FZufallsSeitePlugin
===================================================================
--- trunk/locale/de/pgsrc/Hilfe%2FZufallsSeitePlugin	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Hilfe%2FZufallsSeitePlugin	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Hilfe%2FZufallsSeitePlugin;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/HochLaden
===================================================================
--- trunk/locale/de/pgsrc/HochLaden	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/HochLaden	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=HochLaden;
 flags=EXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/HomePage
===================================================================
--- trunk/locale/de/pgsrc/HomePage	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/HomePage	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=HomePage;
 flags="";
Modified: trunk/locale/de/pgsrc/InterWikiListe
===================================================================
--- trunk/locale/de/pgsrc/InterWikiListe	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/InterWikiListe	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=InterWikiListe;
 pagetype=interwikimap;
Modified: trunk/locale/de/pgsrc/KategorieAktionSeite
===================================================================
--- trunk/locale/de/pgsrc/KategorieAktionSeite	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/KategorieAktionSeite	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=KategorieAktionSeite;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/KategorieKategorie
===================================================================
--- trunk/locale/de/pgsrc/KategorieKategorie	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/KategorieKategorie	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=KategorieKategorie;
 flags=EXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/KategorieWikiPlugin
===================================================================
--- trunk/locale/de/pgsrc/KategorieWikiPlugin	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/KategorieWikiPlugin	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=KategorieWikiPlugin;
 flags=PAGE_LOCKED;
Modified: trunk/locale/de/pgsrc/LeereSeiten
===================================================================
--- trunk/locale/de/pgsrc/LeereSeiten	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/LeereSeiten	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=LeereSeiten;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/LinkSuche
===================================================================
--- trunk/locale/de/pgsrc/LinkSuche	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/LinkSuche	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=LinkSuche;
 flags=PAGE_LOCKED;
Modified: trunk/locale/de/pgsrc/ListeRelationen
===================================================================
--- trunk/locale/de/pgsrc/ListeRelationen	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/ListeRelationen	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=ListeRelationen;
 flags=PAGE_LOCKED;
Modified: trunk/locale/de/pgsrc/MeistBesucht
===================================================================
--- trunk/locale/de/pgsrc/MeistBesucht	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/MeistBesucht	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=MeistBesucht;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/ModerierteSeite
===================================================================
--- trunk/locale/de/pgsrc/ModerierteSeite	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/ModerierteSeite	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=ModerierteSeite;
 flags=PAGE_LOCKED;
Modified: trunk/locale/de/pgsrc/NeueSeite
===================================================================
--- trunk/locale/de/pgsrc/NeueSeite	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/NeueSeite	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=NeueSeite;
 flags=PAGE_LOCKED;
Modified: trunk/locale/de/pgsrc/Neueste%C3%84nderungen
===================================================================
--- trunk/locale/de/pgsrc/Neueste%C3%84nderungen	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/Neueste%C3%84nderungen	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=Neueste%C3%84nderungen;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/NeuesteSeiten
===================================================================
--- trunk/locale/de/pgsrc/NeuesteSeiten	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/NeuesteSeiten	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=NeuesteSeiten;
 flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/PasswortZur%C3%BCcksetzen
===================================================================
--- trunk/locale/de/pgsrc/PasswortZur%C3%BCcksetzen	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/PasswortZur%C3%BCcksetzen	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=PasswortZur%C3%BCcksetzen;
 flags=PAGE_LOCKED;
Modified: trunk/locale/de/pgsrc/PhpWikiDokumentation
===================================================================
--- trunk/locale/de/pgsrc/PhpWikiDokumentation	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/PhpWikiDokumentation	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=PhpWikiDokumentation;
 flags=EXTERNAL_PAGE;
Modified: trunk/locale/de/pgsrc/PhpWikiSystemverwalten
===================================================================
--- trunk/locale/de/pgsrc/PhpWikiSystemverwalten	2023年11月15日 17:43:47 UTC (rev 11065)
+++ trunk/locale/de/pgsrc/PhpWikiSystemverwalten	2023年11月15日 17:54:32 UTC (rev 11066)
@@ -1,5 +1,5 @@
 Date: 2022年12月16日 15:26:16 +0000
-Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
+Mime-Version: 1.0 (Produced by PhpWiki 1.6.3)
 Content-Type: application/x-phpwiki;
 pagename=PhpWikiSyste...
 
[truncated message content]
From: <var...@us...> - 2023年11月15日 17:43:48
Revision: 11065
 http://sourceforge.net/p/phpwiki/code/11065
Author: vargenau
Date: 2023年11月15日 17:43:47 +0000 (2023年11月15日)
Log Message:
-----------
Fix bug in ExternalReferrer with PHP 8.2
Modified Paths:
--------------
 trunk/lib/ExternalReferrer.php
 trunk/locale/it/pgsrc/NoteDiRilascio
 trunk/pgsrc/ReleaseNotes
Modified: trunk/lib/ExternalReferrer.php
===================================================================
--- trunk/lib/ExternalReferrer.php	2023年11月15日 17:09:13 UTC (rev 11064)
+++ trunk/lib/ExternalReferrer.php	2023年11月15日 17:43:47 UTC (rev 11065)
@@ -127,6 +127,8 @@
 $url = @parse_url(strtolower($url));
 if (!empty($url["query"])) {
 $url = $url["query"];
+ } else {
+ return false;
 }
 if ($query1 and @stristr($url, $query1)) {
 $query = @explode($query1, $url);
Modified: trunk/locale/it/pgsrc/NoteDiRilascio
===================================================================
--- trunk/locale/it/pgsrc/NoteDiRilascio	2023年11月15日 17:09:13 UTC (rev 11064)
+++ trunk/locale/it/pgsrc/NoteDiRilascio	2023年11月15日 17:43:47 UTC (rev 11065)
@@ -1,4 +1,4 @@
-Date: 2023年7月13日 11:46:15 +0000
+Date: 2023年11月15日 18:39:36 +0000
 Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
 Content-Type: application/x-phpwiki;
 pagename=NoteDiRilascio;
@@ -8,11 +8,18 @@
 
 <<CreateToc with_toclink||=1 headers||=1,2,3 width=300px position=right>>
 
+== 1.6.3 2023年11月15日 Marc-Etienne Vargenau ==
+
+This is a bug-fix release.
+
+It fixes a bug in ~ExternalReferrer with PHP 8.2.
+Reported by Thom Jeera.
+
 == 1.6.2 2023年07月13日 Marc-Etienne Vargenau ==
 
 PhpWiki 1.6.2 is the last release compatible with PHP 5.
 It should work for all PHP releases from 5.3.3 to 8.2.x.
-Next release will require at least PHP 7.4.
+PhpWiki 1.7.0 will require at least PHP 7.4.
 
 === Fixes ===
 * Make renaming of pages work for DATABASE_TYPE = PDO and file.
Modified: trunk/pgsrc/ReleaseNotes
===================================================================
--- trunk/pgsrc/ReleaseNotes	2023年11月15日 17:09:13 UTC (rev 11064)
+++ trunk/pgsrc/ReleaseNotes	2023年11月15日 17:43:47 UTC (rev 11065)
@@ -1,4 +1,4 @@
-Date: 2023年7月13日 11:46:15 +0000
+Date: 2023年11月15日 18:39:36 +0000
 Mime-Version: 1.0 (Produced by PhpWiki 1.6.2)
 Content-Type: application/x-phpwiki;
 pagename=ReleaseNotes;
@@ -8,11 +8,18 @@
 
 <<CreateToc with_toclink||=1 headers||=1,2,3 width=300px position=right>>
 
+== 1.6.3 2023年11月15日 Marc-Etienne Vargenau ==
+
+This is a bug-fix release.
+
+It fixes a bug in ~ExternalReferrer with PHP 8.2.
+Reported by Thom Jeera.
+
 == 1.6.2 2023年07月13日 Marc-Etienne Vargenau ==
 
 PhpWiki 1.6.2 is the last release compatible with PHP 5.
 It should work for all PHP releases from 5.3.3 to 8.2.x.
-Next release will require at least PHP 7.4.
+PhpWiki 1.7.0 will require at least PHP 7.4.
 
 === Fixes ===
 * Make renaming of pages work for DATABASE_TYPE = PDO and file.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <var...@us...> - 2023年11月15日 17:09:20
Revision: 11064
 http://sourceforge.net/p/phpwiki/code/11064
Author: vargenau
Date: 2023年11月15日 17:09:13 +0000 (2023年11月15日)
Log Message:
-----------
Revert to PhpWiki 1.6.2
Modified Paths:
--------------
 trunk/INSTALL
 trunk/Makefile
 trunk/index.php
 trunk/lib/BlockParser.php
 trunk/lib/DbSession/PDO.php
 trunk/lib/DbSession/SQL.php
 trunk/lib/DbSession/dba.php
 trunk/lib/PageList.php
 trunk/lib/Template.php
 trunk/lib/WikiDB/PDO.php
 trunk/lib/WikiDB/SQL.php
 trunk/lib/WikiDB/backend/PDO.php
 trunk/lib/WikiDB/backend/PDO_mysql.php
 trunk/lib/WikiDB/backend/PDO_oci8.php
 trunk/lib/WikiDB/backend/PDO_pgsql.php
 trunk/lib/WikiDB/backend/PearDB.php
 trunk/lib/WikiDB/backend/PearDB_ffpgsql.php
 trunk/lib/WikiDB/backend/PearDB_mysqli.php
 trunk/lib/WikiDB/backend/PearDB_oci8.php
 trunk/lib/WikiDB/backend/PearDB_pgsql.php
 trunk/lib/WikiDB/backend/dba.php
 trunk/lib/WikiDB/backend/dbaBase.php
 trunk/lib/WikiDB/backend/dumb/AllRevisionsIter.php
 trunk/lib/WikiDB/backend/dumb/LinkSearchIter.php
 trunk/lib/WikiDB/backend/dumb/MostPopularIter.php
 trunk/lib/WikiDB/backend/file.php
 trunk/lib/WikiDB/backend/flatfile.php
 trunk/lib/WikiDB/backend.php
 trunk/lib/WikiUser/BogoLogin.php
 trunk/lib/WikiUser/Db.php
 trunk/lib/WikiUser/Facebook.php
 trunk/lib/WikiUser/File.php
 trunk/lib/WikiUser/FusionForge.php
 trunk/lib/WikiUser/HttpAuth.php
 trunk/lib/WikiUser/HttpAuthUpper.php
 trunk/lib/WikiUser/IMAP.php
 trunk/lib/WikiUser/LDAP.php
 trunk/lib/WikiUser/LdapUpper.php
 trunk/lib/WikiUser/OpenID.php
 trunk/lib/WikiUser/POP3.php
 trunk/lib/WikiUser/PdoDb.php
 trunk/lib/WikiUser/PearDb.php
 trunk/lib/WikiUser/PersonalPage.php
 trunk/lib/WikiUser/Session.php
 trunk/lib/WysiwygEdit/Wikiwyg.php
 trunk/lib/XMLRPC/utils.php
 trunk/lib/XMLRPC/xmlrpc.inc
 trunk/lib/XMLRPC/xmlrpc_emu.inc
 trunk/lib/XMLRPC/xmlrpcs.inc
 trunk/lib/XMLRPC/xmlrpcs_emu.inc
 trunk/lib/editpage.php
 trunk/lib/main.php
 trunk/lib/plugin/AddComment.php
 trunk/lib/plugin/AllPages.php
 trunk/lib/plugin/AllUsers.php
 trunk/lib/plugin/AnalyseAccessLogSql.php
 trunk/lib/plugin/AppendText.php
 trunk/lib/plugin/AsciiMath.php
 trunk/lib/plugin/AsciiSVG.php
 trunk/lib/plugin/AtomFeed.php
 trunk/lib/plugin/AuthorHistory.php
 trunk/lib/plugin/BackLinks.php
 trunk/lib/plugin/BlogArchives.php
 trunk/lib/plugin/BlogJournal.php
 trunk/lib/plugin/BoxRight.php
 trunk/lib/plugin/CacheTest.php
 trunk/lib/plugin/Calendar.php
 trunk/lib/plugin/CalendarList.php
 trunk/lib/plugin/Chart.php
 trunk/lib/plugin/Comment.php
 trunk/lib/plugin/CreateBib.php
 trunk/lib/plugin/CreatePage.php
 trunk/lib/plugin/CreateToc.php
 trunk/lib/plugin/CurrentTime.php
 trunk/lib/plugin/DebugAuthInfo.php
 trunk/lib/plugin/DebugBackendInfo.php
 trunk/lib/plugin/DebugGroupInfo.php
 trunk/lib/plugin/DebugRetransform.php
 trunk/lib/plugin/Diff.php
 trunk/lib/plugin/DynamicIncludePage.php
 trunk/lib/plugin/EditMetaData.php
 trunk/lib/plugin/ExternalSearch.php
 trunk/lib/plugin/FacebookLike.php
 trunk/lib/plugin/FileInfo.php
 trunk/lib/plugin/FoafViewer.php
 trunk/lib/plugin/FullTextSearch.php
 trunk/lib/plugin/FuzzyPages.php
 trunk/lib/plugin/GoTo.php
 trunk/lib/plugin/GoogleMaps.php
 trunk/lib/plugin/GooglePlugin.php
 trunk/lib/plugin/GraphViz.php
 trunk/lib/plugin/HelloWorld.php
 trunk/lib/plugin/HtmlConverter.php
 trunk/lib/plugin/IncludePage.php
 trunk/lib/plugin/IncludePages.php
 trunk/lib/plugin/IncludeSiteMap.php
 trunk/lib/plugin/IncludeTree.php
 trunk/lib/plugin/InterWikiSearch.php
 trunk/lib/plugin/JabberPresence.php
 trunk/lib/plugin/LdapSearch.php
 trunk/lib/plugin/LikePages.php
 trunk/lib/plugin/LinkDatabase.php
 trunk/lib/plugin/LinkSearch.php
 trunk/lib/plugin/ListPages.php
 trunk/lib/plugin/ListRelations.php
 trunk/lib/plugin/ListSubpages.php
 trunk/lib/plugin/MediawikiTable.php
 trunk/lib/plugin/ModeratedPage.php
 trunk/lib/plugin/MostPopular.php
 trunk/lib/plugin/NewPagesPerUser.php
 trunk/lib/plugin/NoCache.php
 trunk/lib/plugin/OldStyleTable.php
 trunk/lib/plugin/OrphanedPages.php
 trunk/lib/plugin/PageDump.php
 trunk/lib/plugin/PageGroup.php
 trunk/lib/plugin/PageHistory.php
 trunk/lib/plugin/PageInfo.php
 trunk/lib/plugin/PageTrail.php
 trunk/lib/plugin/PasswordReset.php
 trunk/lib/plugin/PhotoAlbum.php
 trunk/lib/plugin/PhpHighlight.php
 trunk/lib/plugin/Ploticus.php
 trunk/lib/plugin/PluginManager.php
 trunk/lib/plugin/PopUp.php
 trunk/lib/plugin/PopularNearby.php
 trunk/lib/plugin/PopularTags.php
 trunk/lib/plugin/PreferenceApp.php
 trunk/lib/plugin/PrevNext.php
 trunk/lib/plugin/Processing.php
 trunk/lib/plugin/RandomPage.php
 trunk/lib/plugin/RateIt.php
 trunk/lib/plugin/RawHtml.php
 trunk/lib/plugin/RecentChanges.php
 trunk/lib/plugin/RecentComments.php
 trunk/lib/plugin/RecentEdits.php
 trunk/lib/plugin/RecentReferrers.php
 trunk/lib/plugin/RedirectTo.php
 trunk/lib/plugin/RelatedChanges.php
 trunk/lib/plugin/RichTable.php
 trunk/lib/plugin/RssFeed.php
 trunk/lib/plugin/SearchHighlight.php
 trunk/lib/plugin/SemanticRelations.php
 trunk/lib/plugin/SemanticSearch.php
 trunk/lib/plugin/SemanticSearchAdvanced.php
 trunk/lib/plugin/SiteMap.php
 trunk/lib/plugin/SpellCheck.php
 trunk/lib/plugin/SqlResult.php
 trunk/lib/plugin/SyncWiki.php
 trunk/lib/plugin/SyntaxHighlighter.php
 trunk/lib/plugin/SystemInfo.php
 trunk/lib/plugin/TeX2png.php
 trunk/lib/plugin/Template.php
 trunk/lib/plugin/TexToPng.php
 trunk/lib/plugin/TitleSearch.php
 trunk/lib/plugin/Transclude.php
 trunk/lib/plugin/TranslateText.php
 trunk/lib/plugin/UnfoldSubpages.php
 trunk/lib/plugin/UpLoad.php
 trunk/lib/plugin/UriResolver.php
 trunk/lib/plugin/UserPreferences.php
 trunk/lib/plugin/UserRatings.php
 trunk/lib/plugin/Video.php
 trunk/lib/plugin/WantedPages.php
 trunk/lib/plugin/WatchPage.php
 trunk/lib/plugin/WhoIsOnline.php
 trunk/lib/plugin/WikiAdminChown.php
 trunk/lib/plugin/WikiAdminDeleteAcl.php
 trunk/lib/plugin/WikiAdminPurge.php
 trunk/lib/plugin/WikiAdminRemove.php
 trunk/lib/plugin/WikiAdminRename.php
 trunk/lib/plugin/WikiAdminSearchReplace.php
 trunk/lib/plugin/WikiAdminSelect.php
 trunk/lib/plugin/WikiAdminSetAcl.php
 trunk/lib/plugin/WikiAdminSetAclSimple.php
 trunk/lib/plugin/WikiAdminSetExternal.php
 trunk/lib/plugin/WikiAdminUtils.php
 trunk/lib/plugin/WikiBlog.php
 trunk/lib/plugin/WikiForm.php
 trunk/lib/plugin/WikiFormRich.php
 trunk/lib/plugin/WikiForum.php
 trunk/lib/plugin/WikiPoll.php
 trunk/lib/plugin/WikiTranslation.php
 trunk/lib/plugin/WikicreoleTable.php
 trunk/lib/plugin/YouTube.php
 trunk/lib/plugin/text2png.php
 trunk/lib/prepend.php
 trunk/lib/stdlib.php
 trunk/lib/wikilens/Buddy.php
 trunk/lib/wikilens/CustomPrefs.php
 trunk/lib/wikilens/PageListColumns.php
 trunk/lib/wikilens/RatingsDb.php
 trunk/lib/wikilens/RatingsUser.php
 trunk/lib/wikilens/Utils.php
 trunk/locale/Makefile
 trunk/locale/de/pgsrc/%C3%84hnlicheSeiten
 trunk/locale/de/pgsrc/AlleBenutzer
 trunk/locale/de/pgsrc/AlleSeiten
 trunk/locale/de/pgsrc/AlleSeitenEditiertVonMir
 trunk/locale/de/pgsrc/AlleSeitenErzeugtVonMir
 trunk/locale/de/pgsrc/AlleSeitenImBesitzVonMir
 trunk/locale/de/pgsrc/BackLinks
 trunk/locale/de/pgsrc/BenutzerEinstellungen
 trunk/locale/de/pgsrc/DebugAuthInfo
 trunk/locale/de/pgsrc/DebugBackendInfo
 trunk/locale/de/pgsrc/DebugGruppenInfo
 trunk/locale/de/pgsrc/EditiereText
 trunk/locale/de/pgsrc/Einstellungen
 trunk/locale/de/pgsrc/FuzzySuche
 trunk/locale/de/pgsrc/G%C3%A4steBuch
 trunk/locale/de/pgsrc/GaesteBuch
 trunk/locale/de/pgsrc/Geringf%C3%BCgige%C3%84nderungen
 trunk/locale/de/pgsrc/GleicheSeiten
 trunk/locale/de/pgsrc/Hilfe
 trunk/locale/de/pgsrc/Hilfe%2FAktionsSeite
 trunk/locale/de/pgsrc/Hilfe%2FAutorenProtokollPlugin
 trunk/locale/de/pgsrc/Hilfe%2FBackLinksPlugin
 trunk/locale/de/pgsrc/Hilfe%2FGraphVizPlugin
 trunk/locale/de/pgsrc/Hilfe%2FGuterStil
 trunk/locale/de/pgsrc/Hilfe%2FHalloWeltPlugin
 trunk/locale/de/pgsrc/Hilfe%2FHochLadenPlugin
 trunk/locale/de/pgsrc/Hilfe%2FInhaltsVerzeichnisPlugin
 trunk/locale/de/pgsrc/Hilfe%2FModerierteSeitePlugin
 trunk/locale/de/pgsrc/Hilfe%2FNeueSeitePlugin
 trunk/locale/de/pgsrc/Hilfe%2FNeuerKommentarPlugin
 trunk/locale/de/pgsrc/Hilfe%2FPhotoAlbumPlugin
 trunk/locale/de/pgsrc/Hilfe%2FPhpWiki
 trunk/locale/de/pgsrc/Hilfe%2FSeitenErzeugen
 trunk/locale/de/pgsrc/Hilfe%2FSteve%20Wainstead
 trunk/locale/de/pgsrc/Hilfe%2FTextBearbeiten
 trunk/locale/de/pgsrc/Hilfe%2FTextFormatierungsRegeln
 trunk/locale/de/pgsrc/Hilfe%2FVorlagePlugin
 trunk/locale/de/pgsrc/Hilfe%2FWabiSabi
 trunk/locale/de/pgsrc/Hilfe%2FWieManWikiBenutzt
 trunk/locale/de/pgsrc/Hilfe%2FWikiTechnik
 trunk/locale/de/pgsrc/Hilfe%2FWikiWikiWeb
 trunk/locale/de/pgsrc/Hilfe%2FZufallsSeitePlugin
 trunk/locale/de/pgsrc/HochLaden
 trunk/locale/de/pgsrc/HomePage
 trunk/locale/de/pgsrc/InterWikiListe
 trunk/locale/de/pgsrc/KategorieAktionSeite
 trunk/locale/de/pgsrc/KategorieKategorie
 trunk/locale/de/pgsrc/KategorieWikiPlugin
 trunk/locale/de/pgsrc/LeereSeiten
 trunk/locale/de/pgsrc/LinkSuche
 trunk/locale/de/pgsrc/ListeRelationen
 trunk/locale/de/pgsrc/MeistBesucht
 trunk/locale/de/pgsrc/ModerierteSeite
 trunk/locale/de/pgsrc/NeueSeite
 trunk/locale/de/pgsrc/Neueste%C3%84nderungen
 trunk/locale/de/pgsrc/NeuesteSeiten
 trunk/locale/de/pgsrc/PasswortZur%C3%BCcksetzen
 trunk/locale/de/pgsrc/PhpWikiDokumentation
 trunk/locale/de/pgsrc/PhpWikiSystemverwalten
 trunk/locale/de/pgsrc/PhpWikiSystemverwalten%2FAclL%C3%B6schen
 trunk/locale/de/pgsrc/PhpWikiSystemverwalten%2FAclSetzen
 trunk/locale/de/pgsrc/PhpWikiSystemverwalten%2FAclSetzenEinfach
 trunk/locale/de/pgsrc/PhpWikiSystemverwalten%2FChown
 trunk/locale/de/pgsrc/PhpWikiSystemverwalten%2FEntfernen
 trunk/locale/de/pgsrc/PhpWikiSystemverwalten%2FL%C3%B6schen
 trunk/locale/de/pgsrc/PhpWikiSystemverwalten%2FSuchenErsetzen
 trunk/locale/de/pgsrc/PhpWikiSystemverwalten%2FUmbenennen
 trunk/locale/de/pgsrc/PhpWikiUmfrage
 trunk/locale/de/pgsrc/SandKasten
 trunk/locale/de/pgsrc/SandKiste
 trunk/locale/de/pgsrc/SeiteBeobarten
 trunk/locale/de/pgsrc/SeiteFinden
 trunk/locale/de/pgsrc/SeiteSpeichern
 trunk/locale/de/pgsrc/SeitenInfo
 trunk/locale/de/pgsrc/SeitenProtokoll
 trunk/locale/de/pgsrc/SemantischeRelationen
 trunk/locale/de/pgsrc/SemantischeSuche
 trunk/locale/de/pgsrc/StartSeite
 trunk/locale/de/pgsrc/StartSeiteAlias
 trunk/locale/de/pgsrc/TitelSuche
 trunk/locale/de/pgsrc/Verlinkte%C3%84nderungen
 trunk/locale/de/pgsrc/VerwaisteSeiten
 trunk/locale/de/pgsrc/VolltextSuche
 trunk/locale/de/pgsrc/Vorlage%2FBeispiel
 trunk/locale/de/pgsrc/WerIstOnline
 trunk/locale/de/pgsrc/WikiAdminAuswahl
 trunk/locale/de/pgsrc/WunschZettelSeiten
 trunk/locale/de/pgsrc/ZufallsSeite
 trunk/locale/es/pgsrc/Ayuda
 trunk/locale/es/pgsrc/Ayuda%2FAgregarPaginas
 trunk/locale/es/pgsrc/Ayuda%2FBuenEstilo
 trunk/locale/es/pgsrc/Ayuda%2FComoUsarWiki
 trunk/locale/es/pgsrc/Ayuda%2FEditarElTexto
 trunk/locale/es/pgsrc/Ayuda%2FKBrown
 trunk/locale/es/pgsrc/Ayuda%2FMasAcercadeLaMecanica
 trunk/locale/es/pgsrc/Ayuda%2FPhpWiki
 trunk/locale/es/pgsrc/Ayuda%2FReglasDeFormatoDeTexto
 trunk/locale/es/pgsrc/Ayuda%2FSteve%20Wainstead
 trunk/locale/es/pgsrc/Ayuda%2FWabiSabi
 trunk/locale/es/pgsrc/Ayuda%2FWikiWikiWeb
 trunk/locale/es/pgsrc/BuscarP%C3%A1gina
 trunk/locale/es/pgsrc/CajaDeArena
 trunk/locale/es/pgsrc/CambiosRecientes
 trunk/locale/es/pgsrc/HomePage
 trunk/locale/es/pgsrc/MasPopulares
 trunk/locale/es/pgsrc/NotasDeLiberacion
 trunk/locale/es/pgsrc/P%C3%A1ginaPrincipal
 trunk/locale/es/pgsrc/TodasLasPaginas
 trunk/locale/es/pgsrc/VisitantesRecientes
 trunk/locale/fr/pgsrc/%C3%89diterLesM%C3%A9taDonn%C3%A9es
 trunk/locale/fr/pgsrc/%C3%89ditionsR%C3%A9centes
 trunk/locale/fr/pgsrc/AdministrationDePhpWiki
 trunk/locale/fr/pgsrc/AdministrationDePhpWiki%2FChown
 trunk/locale/fr/pgsrc/AdministrationDePhpWiki%2FD%C3%A9finirAcl
 trunk/locale/fr/pgsrc/AdministrationDePhpWiki%2FD%C3%A9finirAclSimple
 trunk/locale/fr/pgsrc/AdministrationDePhpWiki%2FPurger
 trunk/locale/fr/pgsrc/AdministrationDePhpWiki%2FRechercherRemplacer
 trunk/locale/fr/pgsrc/AdministrationDePhpWiki%2FRenommer
 trunk/locale/fr/pgsrc/AdministrationDePhpWiki%2FSupprimer
 trunk/locale/fr/pgsrc/AdministrationDePhpWiki%2FSupprimerAcl
 trunk/locale/fr/pgsrc/Aide
 trunk/locale/fr/pgsrc/Aide%2F%C3%89diterLeContenu
 trunk/locale/fr/pgsrc/Aide%2FAjouterDesPages
 trunk/locale/fr/pgsrc/Aide%2FCommentUtiliserUnWiki
 trunk/locale/fr/pgsrc/Aide%2FD%C3%A9tailsTechniques
 trunk/locale/fr/pgsrc/Aide%2FGreffon%C3%89diterLesM%C3%A9taDonn%C3%A9es
 trunk/locale/fr/pgsrc/Aide%2FGreffonAjouterDesCommentaires
 trunk/locale/fr/pgsrc/Aide%2FGreffonAlbumPhotos
 trunk/locale/fr/pgsrc/Aide%2FGreffonBeauTableau
 trunk/locale/fr/pgsrc/Aide%2FGreffonBonjourLeMonde
 trunk/locale/fr/pgsrc/Aide%2FGreffonCalendrier
 trunk/locale/fr/pgsrc/Aide%2FGreffonColorationPhp
 trunk/locale/fr/pgsrc/Aide%2FGreffonCommenter
 trunk/locale/fr/pgsrc/Aide%2FGreffonCr%C3%A9erUnePage
 trunk/locale/fr/pgsrc/Aide%2FGreffonCr%C3%A9erUneTdm
 trunk/locale/fr/pgsrc/Aide%2FGreffonD%C3%A9plierLesSousPages
 trunk/locale/fr/pgsrc/Aide%2FGreffonHistoriqueAuteur
 trunk/locale/fr/pgsrc/Aide%2FGreffonHtmlPur
 trunk/locale/fr/pgsrc/Aide%2FGreffonInclureUnePage
 trunk/locale/fr/pgsrc/Aide%2FGreffonInfosSyst%C3%A8me
 trunk/locale/fr/pgsrc/Aide%2FGreffonIns%C3%A9rer
 trunk/locale/fr/pgsrc/Aide%2FGreffonListeDePages
 trunk/locale/fr/pgsrc/Aide%2FGreffonListeDesSousPages
 trunk/locale/fr/pgsrc/Aide%2FGreffonListeDuCalendrier
 trunk/locale/fr/pgsrc/Aide%2FGreffonPageAl%C3%A9atoire
 trunk/locale/fr/pgsrc/Aide%2FGreffonPagesFloues
 trunk/locale/fr/pgsrc/Aide%2FGreffonRechercheExterne
 trunk/locale/fr/pgsrc/Aide%2FGreffonRedirection
 trunk/locale/fr/pgsrc/Aide%2FGreffonRessourcesRss
 trunk/locale/fr/pgsrc/Aide%2FGreffonTableauAncienStyle
 trunk/locale/fr/pgsrc/Aide%2FGreffonTeX2png
 trunk/locale/fr/pgsrc/Aide%2FGreffonTestDeCache
 trunk/locale/fr/pgsrc/Aide%2FGreffonWiki
 trunk/locale/fr/pgsrc/Aide%2FGreffonWikiBlog
 trunk/locale/fr/pgsrc/Aide%2FIc%C3%B4nesDeLien
 trunk/locale/fr/pgsrc/Aide%2FInterWiki
 trunk/locale/fr/pgsrc/Aide%2FLienGoogle
 trunk/locale/fr/pgsrc/Aide%2FListeDePages
 trunk/locale/fr/pgsrc/Aide%2FPhpWiki
 trunk/locale/fr/pgsrc/Aide%2FR%C3%A8glesDeFormatageDesTextes
 trunk/locale/fr/pgsrc/Aide%2FSteve%20Wainstead
 trunk/locale/fr/pgsrc/Aide%2FStyleCorrect
 trunk/locale/fr/pgsrc/Aide%2FURLMagiquesPhpWiki
 trunk/locale/fr/pgsrc/Aide%2FWabiSabi
 trunk/locale/fr/pgsrc/Aide%2FWikiWikiWeb
 trunk/locale/fr/pgsrc/Aide%2FWikisUtilisantPhpWiki
 trunk/locale/fr/pgsrc/AliasAccueil
 trunk/locale/fr/pgsrc/Bac%C3%80Sable
 trunk/locale/fr/pgsrc/CarteInterWiki
 trunk/locale/fr/pgsrc/Cat%C3%A9gorieCat%C3%A9gorie
 trunk/locale/fr/pgsrc/Cat%C3%A9gorieGreffonWiki
 trunk/locale/fr/pgsrc/Cat%C3%A9gorieGroupes
 trunk/locale/fr/pgsrc/Cat%C3%A9goriePageDAction
 trunk/locale/fr/pgsrc/Cat%C3%A9goriePagesAccueil
 trunk/locale/fr/pgsrc/ChangementsLi%C3%A9s
 trunk/locale/fr/pgsrc/ChercherUnePage
 trunk/locale/fr/pgsrc/ClassezLa
 trunk/locale/fr/pgsrc/CommentairesR%C3%A9cents
 trunk/locale/fr/pgsrc/Cr%C3%A9erUnePage
 trunk/locale/fr/pgsrc/D%C3%A9bogageDePhpWiki
 trunk/locale/fr/pgsrc/D%C3%A9poserUnFichier
 trunk/locale/fr/pgsrc/Derni%C3%A8resModifs
 trunk/locale/fr/pgsrc/Derni%C3%A8resModifsCompl%C3%A8tes
 trunk/locale/fr/pgsrc/DocumentationDePhpWiki
 trunk/locale/fr/pgsrc/GestionnaireDesGreffons
 trunk/locale/fr/pgsrc/HistoriqueDeLaPage
 trunk/locale/fr/pgsrc/HomePage
 trunk/locale/fr/pgsrc/InfosAuthentification
 trunk/locale/fr/pgsrc/InfosDeD%C3%A9bogage
 trunk/locale/fr/pgsrc/InfosSurLaPage
 trunk/locale/fr/pgsrc/LesPlusVisit%C3%A9es
 trunk/locale/fr/pgsrc/ManuelPhpWiki
 trunk/locale/fr/pgsrc/ModifsR%C3%A9centesPhpWiki
 trunk/locale/fr/pgsrc/NotesDeVersion
 trunk/locale/fr/pgsrc/PageAccueil
 trunk/locale/fr/pgsrc/PageAl%C3%A9atoire
 trunk/locale/fr/pgsrc/PagesFloues
 trunk/locale/fr/pgsrc/PagesOrphelines
 trunk/locale/fr/pgsrc/PagesRecherch%C3%A9es
 trunk/locale/fr/pgsrc/PagesSemblables
 trunk/locale/fr/pgsrc/PierrickMeignen
 trunk/locale/fr/pgsrc/Pr%C3%A9f%C3%A9rencesUtilisateur
 trunk/locale/fr/pgsrc/QuiEstEnLigne
 trunk/locale/fr/pgsrc/R%C3%A9cup%C3%A9rationDeLaPage
 trunk/locale/fr/pgsrc/R%C3%A9troLiens
 trunk/locale/fr/pgsrc/RechercheEnTexteInt%C3%A9gral
 trunk/locale/fr/pgsrc/RechercheInterWiki
 trunk/locale/fr/pgsrc/RechercheParTitre
 trunk/locale/fr/pgsrc/SommaireDuProjet
 trunk/locale/fr/pgsrc/SondagePhpWiki
 trunk/locale/fr/pgsrc/Suivre
 trunk/locale/fr/pgsrc/TousLesUtilisateurs
 trunk/locale/fr/pgsrc/ToutesLesPages
 trunk/locale/fr/pgsrc/TraduireUnTexte
 trunk/locale/fr/pgsrc/VersionsR%C3%A9centes
 trunk/locale/fr/pgsrc/VisiteursR%C3%A9cents
 trunk/locale/it/pgsrc/Aiuto
 trunk/locale/it/pgsrc/Aiuto%2FAggiungerePagine
 trunk/locale/it/pgsrc/Aiuto%2FBuonStile
 trunk/locale/it/pgsrc/Aiuto%2FComeUsareWiki
 trunk/locale/it/pgsrc/Aiuto%2FMagicPhpWikiURLs
 trunk/locale/it/pgsrc/Aiuto%2FModificaIlTesto
 trunk/locale/it/pgsrc/Aiuto%2FPhpWiki
 trunk/locale/it/pgsrc/Aiuto%2FRegoleFormattazioneTesto
 trunk/locale/it/pgsrc/Aiuto%2FSteve%20Wainstead
 trunk/locale/it/pgsrc/Aiuto%2FVarieSulFunzionamento
 trunk/locale/it/pgsrc/Aiuto%2FWabiSabi
 trunk/locale/it/pgsrc/Aiuto%2FWikiWikiWeb
 trunk/locale/it/pgsrc/AmministrazioneDiPhpWiki
 trunk/locale/it/pgsrc/AmministrazioneDiPhpWiki%2FRimuovi
 trunk/locale/it/pgsrc/CambiamentiRecenti
 trunk/locale/it/pgsrc/FuzzyPages
 trunk/locale/it/pgsrc/HomePage
 trunk/locale/it/pgsrc/NoteDiRilascio
 trunk/locale/it/pgsrc/PaginaPrincipale
 trunk/locale/it/pgsrc/Pi%C3%B9Popolari
 trunk/locale/it/pgsrc/RicercaDelTesto
 trunk/locale/it/pgsrc/RicercaPerTitolo
 trunk/locale/it/pgsrc/ScatolaDiSabbia
 trunk/locale/it/pgsrc/TrovaPagina
 trunk/locale/it/pgsrc/TutteLePagine
 trunk/locale/it/pgsrc/VisitatoriRecenti
 trunk/locale/ja/pgsrc/%E3%83%9A%E3%83%BC%E3%82%B8%E6%A4%9C%E7%B4%A2
 trunk/locale/ja/pgsrc/%E3%83%9B%E3%83%BC%E3%83%A0%E3%83%9A%E3%83%BC%E3%82%B8
 trunk/locale/ja/pgsrc/HomePage
 trunk/locale/nl/pgsrc/Help
 trunk/locale/nl/pgsrc/Help%2FGebruikersVoorkeuren
 trunk/locale/nl/pgsrc/Help%2FGoedeStijl
 trunk/locale/nl/pgsrc/Help%2FHoeWikiTeGebruiken
 trunk/locale/nl/pgsrc/Help%2FJanNieuwenhuizen
 trunk/locale/nl/pgsrc/Help%2FMeerOverTechnieken
 trunk/locale/nl/pgsrc/Help%2FPaginasToevoegen
 trunk/locale/nl/pgsrc/Help%2FPhpWiki
 trunk/locale/nl/pgsrc/Help%2FTekstFormatteringsRegels
 trunk/locale/nl/pgsrc/Help%2FToverPhpWikiURLs
 trunk/locale/nl/pgsrc/Help%2FVeranderTekst
 trunk/locale/nl/pgsrc/Help%2FWabiSabi
 trunk/locale/nl/pgsrc/Help%2FWikiWikiWeb
 trunk/locale/nl/pgsrc/HomePage
 trunk/locale/nl/pgsrc/MeestBezocht
 trunk/locale/nl/pgsrc/PhpWikiBeheer
 trunk/locale/nl/pgsrc/PhpWikiBeheer%2FVerwijder
 trunk/locale/nl/pgsrc/PhpWikiBeheer%2FZoekVervangt
 trunk/locale/nl/pgsrc/PhpWikiDocumentatie
 trunk/locale/nl/pgsrc/RecenteBezoekers
 trunk/locale/nl/pgsrc/RecenteVeranderingen
 trunk/locale/nl/pgsrc/ThuisPagina
 trunk/locale/nl/pgsrc/UitgaveNoten
 trunk/locale/nl/pgsrc/ZandBak
 trunk/locale/nl/pgsrc/ZoekPagina
 trunk/locale/po/de.po
 trunk/locale/po/es.po
 trunk/locale/po/fr.po
 trunk/locale/po/it.po
 trunk/locale/po/ja.po
 trunk/locale/po/nl.po
 trunk/locale/po/sv.po
 trunk/locale/po/zh.po
 trunk/locale/sv/pgsrc/Framsida
 trunk/locale/sv/pgsrc/G%C3%A4stboken
 trunk/locale/sv/pgsrc/Hj%C3%A4lp
 trunk/locale/sv/pgsrc/Hj%C3%A4lp%2FHurManAnv%C3%A4nderWiki
 trunk/locale/sv/pgsrc/Hj%C3%A4lp%2FL%C3%A4ggaTillSidor
 trunk/locale/sv/pgsrc/Hj%C3%A4lp%2FMerOmMekanismerna
 trunk/locale/sv/pgsrc/Hj%C3%A4lp%2FPhpWiki
 trunk/locale/sv/pgsrc/Hj%C3%A4lp%2FRedigeraText
 trunk/locale/sv/pgsrc/Hj%C3%A4lp%2FSteve%20Wainstead
 trunk/locale/sv/pgsrc/Hj%C3%A4lp%2FTextformateringsregler
 trunk/locale/sv/pgsrc/Hj%C3%A4lp%2FWikiWikiWeb
 trunk/locale/sv/pgsrc/HomePage
 trunk/locale/sv/pgsrc/MestPopul%C3%A4r
 trunk/locale/sv/pgsrc/PhpWikiAdministration
 trunk/locale/sv/pgsrc/S%C3%B6kEfterSida
 trunk/locale/sv/pgsrc/Sandl%C3%A5dan
 trunk/locale/sv/pgsrc/Senaste%C3%84ndringar
 trunk/locale/zh/pgsrc/%E9%A6%96%E9%A0%81
 trunk/locale/zh/pgsrc/AllPages
 trunk/locale/zh/pgsrc/AllUsers
 trunk/locale/zh/pgsrc/BackLinks
 trunk/locale/zh/pgsrc/DebugBackendInfo
 trunk/locale/zh/pgsrc/FindPage
 trunk/locale/zh/pgsrc/FullRecentChanges
 trunk/locale/zh/pgsrc/FullTextSearch
 trunk/locale/zh/pgsrc/FuzzyPages
 trunk/locale/zh/pgsrc/Help
 trunk/locale/zh/pgsrc/Help%2FAddingPages
 trunk/locale/zh/pgsrc/Help%2FBackLinksPlugin
 trunk/locale/zh/pgsrc/Help%2FCalendarPlugin
 trunk/locale/zh/pgsrc/Help%2FCommentPlugin
 trunk/locale/zh/pgsrc/Help%2FEditText
 trunk/locale/zh/pgsrc/Help%2FExternalSearchPlugin
 trunk/locale/zh/pgsrc/Help%2FHelloWorldPlugin
 trunk/locale/zh/pgsrc/Help%2FHowToUseWiki
 trunk/locale/zh/pgsrc/Help%2FInterWiki
 trunk/locale/zh/pgsrc/Help%2FLinkIcons
 trunk/locale/zh/pgsrc/Help%2FMagicPhpWikiURLs
 trunk/locale/zh/pgsrc/Help%2FMoreAboutMechanics
 trunk/locale/zh/pgsrc/Help%2FOldStyleTablePlugin
 trunk/locale/zh/pgsrc/Help%2FPhotoAlbumPlugin
 trunk/locale/zh/pgsrc/Help%2FPhpHighlightPlugin
 trunk/locale/zh/pgsrc/Help%2FPhpWiki
 trunk/locale/zh/pgsrc/Help%2FRandomPagePlugin
 trunk/locale/zh/pgsrc/Help%2FRedirectToPlugin
 trunk/locale/zh/pgsrc/Help%2FSystemInfoPlugin
 trunk/locale/zh/pgsrc/Help%2FTranscludePlugin
 trunk/locale/zh/pgsrc/Help%2FWikiPlugin
 trunk/locale/zh/pgsrc/Help%2FWikiWikiWeb
 trunk/locale/zh/pgsrc/HomePage
 trunk/locale/zh/pgsrc/HomePageAlias
 trunk/locale/zh/pgsrc/InterWikiMap
 trunk/locale/zh/pgsrc/InterWikiSearch
 trunk/locale/zh/pgsrc/LikePages
 trunk/locale/zh/pgsrc/OrphanedPages
 trunk/locale/zh/pgsrc/PageDump
 trunk/locale/zh/pgsrc/PhpWikiAdministration
 trunk/locale/zh/pgsrc/PhpWikiDebug
 trunk/locale/zh/pgsrc/RandomPage
 trunk/locale/zh/pgsrc/RecentChanges
 trunk/locale/zh/pgsrc/RecentEdits
 trunk/locale/zh/pgsrc/RecentVisitors
 trunk/locale/zh/pgsrc/SandBox
 trunk/locale/zh/pgsrc/TitleSearch
 trunk/locale/zh/pgsrc/UpLoad
 trunk/locale/zh/pgsrc/UserPreferences
 trunk/locale/zh/pgsrc/WantedPages
 trunk/pgsrc/AllPages
 trunk/pgsrc/AllPagesByAcl
 trunk/pgsrc/AllPagesCreatedByMe
 trunk/pgsrc/AllPagesLastEditedByMe
 trunk/pgsrc/AllPagesOwnedByMe
 trunk/pgsrc/AllUserPages
 trunk/pgsrc/AllUsers
 trunk/pgsrc/AppendText
 trunk/pgsrc/AuthorHistory
 trunk/pgsrc/BackLinks
 trunk/pgsrc/BlogArchives
 trunk/pgsrc/BlogJournal
 trunk/pgsrc/CategoryActionPage
 trunk/pgsrc/CategoryCategory
 trunk/pgsrc/CategoryGroup
 trunk/pgsrc/CategoryHomePages
 trunk/pgsrc/CategoryWikiPlugin
 trunk/pgsrc/Copyrights
 trunk/pgsrc/CreatePage
 trunk/pgsrc/DebugAuthInfo
 trunk/pgsrc/DebugBackendInfo
 trunk/pgsrc/DebugGroupInfo
 trunk/pgsrc/EditMetaData
 trunk/pgsrc/FindPage
 trunk/pgsrc/FullRecentChanges
 trunk/pgsrc/FullTextSearch
 trunk/pgsrc/FuzzyPages
 trunk/pgsrc/GeneralDisclaimer
 trunk/pgsrc/Help
 trunk/pgsrc/Help%2FActionPage
 trunk/pgsrc/Help%2FAddCommentPlugin
 trunk/pgsrc/Help%2FAddingPages
 trunk/pgsrc/Help%2FAdvice%20for%20Mediawiki%20users
 trunk/pgsrc/Help%2FAllPagesPlugin
 trunk/pgsrc/Help%2FAllUsersPlugin
 trunk/pgsrc/Help%2FAnalyseAccessLogSqlPlugin
 trunk/pgsrc/Help%2FAppendTextPlugin
 trunk/pgsrc/Help%2FAsciiMathPlugin
 trunk/pgsrc/Help%2FAsciiSVGPlugin
 trunk/pgsrc/Help%2FAtomFeedPlugin
 trunk/pgsrc/Help%2FAuthorHistoryPlugin
 trunk/pgsrc/Help%2FBackLinksPlugin
 trunk/pgsrc/Help%2FBlogArchivesPlugin
 trunk/pgsrc/Help%2FBlogJournalPlugin
 trunk/pgsrc/Help%2FBoxRightPlugin
 trunk/pgsrc/Help%2FCacheTestPlugin
 trunk/pgsrc/Help%2FCalendarListPlugin
 trunk/pgsrc/Help%2FCalendarPlugin
 trunk/pgsrc/Help%2FCategories
 trunk/pgsrc/Help%2FChartPlugin
 trunk/pgsrc/Help%2FCommentPlugin
 trunk/pgsrc/Help%2FCreateBibPlugin
 trunk/pgsrc/Help%2FCreatePagePlugin
 trunk/pgsrc/Help%2FCreateTocPlugin
 trunk/pgsrc/Help%2FCurrentTimePlugin
 trunk/pgsrc/Help%2FDeadEndPagesPlugin
 trunk/pgsrc/Help%2FDebugAuthInfoPlugin
 trunk/pgsrc/Help%2FDebugBackendInfoPlugin
 trunk/pgsrc/Help%2FDebugGroupInfoPlugin
 trunk/pgsrc/Help%2FDebugRetransformPlugin
 trunk/pgsrc/Help%2FDiffPlugin
 trunk/pgsrc/Help%2FDynamicIncludePagePlugin
 trunk/pgsrc/Help%2FEditMetaDataPlugin
 trunk/pgsrc/Help%2FEditText
 trunk/pgsrc/Help%2FExternalSearchPlugin
 trunk/pgsrc/Help%2FFacebookLikePlugin
 trunk/pgsrc/Help%2FFileInfoPlugin
 trunk/pgsrc/Help%2FFoafViewerPlugin
 trunk/pgsrc/Help%2FFullTextSearchPlugin
 trunk/pgsrc/Help%2FFuzzyPagesPlugin
 trunk/pgsrc/Help%2FGoToPlugin
 trunk/pgsrc/Help%2FGoodStyle
 trunk/pgsrc/Help%2FGoogleLink
 trunk/pgsrc/Help%2FGoogleMapsPlugin
 trunk/pgsrc/Help%2FGooglePluginPlugin
 trunk/pgsrc/Help%2FGraphVizPlugin
 trunk/pgsrc/Help%2FHelloWorldPlugin
 trunk/pgsrc/Help%2FHowToUseWiki
 trunk/pgsrc/Help%2FHtmlConverterPlugin
 trunk/pgsrc/Help%2FImages
 trunk/pgsrc/Help%2FIncludePagePlugin
 trunk/pgsrc/Help%2FIncludePagesPlugin
 trunk/pgsrc/Help%2FIncludeSiteMapPlugin
 trunk/pgsrc/Help%2FIncludeTreePlugin
 trunk/pgsrc/Help%2FInterWiki
 trunk/pgsrc/Help%2FInterWikiSearchPlugin
 trunk/pgsrc/Help%2FJabberPresencePlugin
 trunk/pgsrc/Help%2FJeff%20Dairiki
 trunk/pgsrc/Help%2FLdapSearchPlugin
 trunk/pgsrc/Help%2FLikePagesPlugin
 trunk/pgsrc/Help%2FLinkDatabasePlugin
 trunk/pgsrc/Help%2FLinkIcons
 trunk/pgsrc/Help%2FLinkSearchPlugin
 trunk/pgsrc/Help%2FListPagesPlugin
 trunk/pgsrc/Help%2FListRelationsPlugin
 trunk/pgsrc/Help%2FListSubpagesPlugin
 trunk/pgsrc/Help%2FMagicPhpWikiURLs
 trunk/pgsrc/Help%2FMediawikiTablePlugin
 trunk/pgsrc/Help%2FModeratedPagePlugin
 trunk/pgsrc/Help%2FMoreAboutMechanics
 trunk/pgsrc/Help%2FMostPopularPlugin
 trunk/pgsrc/Help%2FNewPagesPerUserPlugin
 trunk/pgsrc/Help%2FNoCachePlugin
 trunk/pgsrc/Help%2FOldStyleTablePlugin
 trunk/pgsrc/Help%2FOrphanedPagesPlugin
 trunk/pgsrc/Help%2FPageDumpPlugin
 trunk/pgsrc/Help%2FPageGroupPlugin
 trunk/pgsrc/Help%2FPageHistoryPlugin
 trunk/pgsrc/Help%2FPageInfoPlugin
 trunk/pgsrc/Help%2FPageList
 trunk/pgsrc/Help%2FPagePermissions
 trunk/pgsrc/Help%2FPageTrailPlugin
 trunk/pgsrc/Help%2FPasswordResetPlugin
 trunk/pgsrc/Help%2FPhotoAlbumPlugin
 trunk/pgsrc/Help%2FPhpHighlightPlugin
 trunk/pgsrc/Help%2FPhpWiki
 trunk/pgsrc/Help%2FPloticusPlugin
 trunk/pgsrc/Help%2FPluginManagerPlugin
 trunk/pgsrc/Help%2FPopUpPlugin
 trunk/pgsrc/Help%2FPopularNearbyPlugin
 trunk/pgsrc/Help%2FPopularTagsPlugin
 trunk/pgsrc/Help%2FPredefinedIcons
 trunk/pgsrc/Help%2FPreferenceAppPlugin
 trunk/pgsrc/Help%2FPrevNextPlugin
 trunk/pgsrc/Help%2FProcessingPlugin
 trunk/pgsrc/Help%2FRandomPagePlugin
 trunk/pgsrc/Help%2FRateItPlugin
 trunk/pgsrc/Help%2FRawHtmlPlugin
 trunk/pgsrc/Help%2FRecentChangesPlugin
 trunk/pgsrc/Help%2FRecentCommentsPlugin
 trunk/pgsrc/Help%2FRecentEditsPlugin
 trunk/pgsrc/Help%2FRecentReferrersPlugin
 trunk/pgsrc/Help%2FRedirectToPlugin
 trunk/pgsrc/Help%2FReini%20Urban
 trunk/pgsrc/Help%2FRelatedChangesPlugin
 trunk/pgsrc/Help%2FRichTablePlugin
 trunk/pgsrc/Help%2FRssFeedPlugin
 trunk/pgsrc/Help%2FSearchHighlightPlugin
 trunk/pgsrc/Help%2FSemanticRelations
 trunk/pgsrc/Help%2FSemanticRelationsPlugin
 trunk/pgsrc/Help%2FSemanticSearchAdvancedPlugin
 trunk/pgsrc/Help%2FSemanticSearchPlugin
 trunk/pgsrc/Help%2FSiteMapPlugin
 trunk/pgsrc/Help%2FSpellCheckPlugin
 trunk/pgsrc/Help%2FSpreadsheet
 trunk/pgsrc/Help%2FSqlResultPlugin
 trunk/pgsrc/Help%2FSteve%20Wainstead
 trunk/pgsrc/Help%2FSyncWikiPlugin
 trunk/pgsrc/Help%2FSyntaxHighlighterPlugin
 trunk/pgsrc/Help%2FSystemInfoPlugin
 trunk/pgsrc/Help%2FTeX2pngPlugin
 trunk/pgsrc/Help%2FTemplatePlugin
 trunk/pgsrc/Help%2FTexToPngPlugin
 trunk/pgsrc/Help%2FTextFormattingRules
 trunk/pgsrc/Help%2FTitleSearchPlugin
 trunk/pgsrc/Help%2FTranscludePlugin
 trunk/pgsrc/Help%2FTranslateTextPlugin
 trunk/pgsrc/Help%2FUnfoldSubpagesPlugin
 trunk/pgsrc/Help%2FUpLoadPlugin
 trunk/pgsrc/Help%2FUriResolverPlugin
 trunk/pgsrc/Help%2FUserPreferencesPlugin
 trunk/pgsrc/Help%2FUserRatingsPlugin
 trunk/pgsrc/Help%2FVideoPlugin
 trunk/pgsrc/Help%2FVisualWikiPlugin
 trunk/pgsrc/Help%2FWabiSabi
 trunk/pgsrc/Help%2FWantedPagesPlugin
 trunk/pgsrc/Help%2FWatchPagePlugin
 trunk/pgsrc/Help%2FWhoIsOnlinePlugin
 trunk/pgsrc/Help%2FWikiAdminChownPlugin
 trunk/pgsrc/Help%2FWikiAdminDeleteAclPlugin
 trunk/pgsrc/Help%2FWikiAdminPurgePlugin
 trunk/pgsrc/Help%2FWikiAdminRemovePlugin
 trunk/pgsrc/Help%2FWikiAdminRenamePlugin
 trunk/pgsrc/Help%2FWikiAdminSearchReplacePlugin
 trunk/pgsrc/Help%2FWikiAdminSelectPlugin
 trunk/pgsrc/Help%2FWikiAdminSetAclPlugin
 trunk/pgsrc/Help%2FWikiAdminSetAclSimplePlugin
 trunk/pgsrc/Help%2FWikiAdminSetExternalPlugin
 trunk/pgsrc/Help%2FWikiAdminUtilsPlugin
 trunk/pgsrc/Help%2FWikiBlogPlugin
 trunk/pgsrc/Help%2FWikiFormPlugin
 trunk/pgsrc/Help%2FWikiFormRichPlugin
 trunk/pgsrc/Help%2FWikiForumPlugin
 trunk/pgsrc/Help%2FWikiPlugin
 trunk/pgsrc/Help%2FWikiPollPlugin
 trunk/pgsrc/Help%2FWikiTranslationPlugin
 trunk/pgsrc/Help%2FWikiWikiWeb
 trunk/pgsrc/Help%2FWikicreole
 trunk/pgsrc/Help%2FWikicreoleTablePlugin
 trunk/pgsrc/Help%2FWikisUsingPhpWiki
 trunk/pgsrc/Help%2FYouTubePlugin
 trunk/pgsrc/Help%2Ftext2pngPlugin
 trunk/pgsrc/HomePage
 trunk/pgsrc/HomePageAlias
 trunk/pgsrc/InterWikiMap
 trunk/pgsrc/InterWikiSearch
 trunk/pgsrc/LdapSearch
 trunk/pgsrc/LeastPopular
 trunk/pgsrc/LikePages
 trunk/pgsrc/LinkDatabase
 trunk/pgsrc/LinkSearch
 trunk/pgsrc/ListRelations
 trunk/pgsrc/LockedPages
 trunk/pgsrc/ModeratedPage
 trunk/pgsrc/MostPopular
 trunk/pgsrc/MyRatings
 trunk/pgsrc/MyRecentChanges
 trunk/pgsrc/MyRecentEdits
 trunk/pgsrc/NewPagesPerUser
 trunk/pgsrc/OrphanedPages
 trunk/pgsrc/PageDump
 trunk/pgsrc/PageHistory
 trunk/pgsrc/PageInfo
 trunk/pgsrc/PasswordReset
 trunk/pgsrc/PhpWikiAdministration
 trunk/pgsrc/PhpWikiAdministration%2FChown
 trunk/pgsrc/PhpWikiAdministration%2FDeleteAcl
 trunk/pgsrc/PhpWikiAdministration%2FPurge
 trunk/pgsrc/PhpWikiAdministration%2FRemove
 trunk/pgsrc/PhpWikiAdministration%2FRename
 trunk/pgsrc/PhpWikiAdministration%2FSearchReplace
 trunk/pgsrc/PhpWikiAdministration%2FSetAcl
 trunk/pgsrc/PhpWikiAdministration%2FSetAclSimple
 trunk/pgsrc/PhpWikiDebug
 trunk/pgsrc/PhpWikiDocumentation
 trunk/pgsrc/PhpWikiManual
 trunk/pgsrc/PhpWikiPoll
 trunk/pgsrc/PhpWikiRecentChanges
 trunk/pgsrc/PluginManager
 trunk/pgsrc/ProjectSummary
 trunk/pgsrc/RandomPage
 trunk/pgsrc/RateIt
 trunk/pgsrc/RecentChanges
 trunk/pgsrc/RecentChangesMyPages
 trunk/pgsrc/RecentComments
 trunk/pgsrc/RecentEdits
 trunk/pgsrc/RecentNewPages
 trunk/pgsrc/RecentReleases
 trunk/pgsrc/RecentVisitors
 trunk/pgsrc/RelatedChanges
 trunk/pgsrc/ReleaseNotes
 trunk/pgsrc/San%20Diego
 trunk/pgsrc/SandBox
 trunk/pgsrc/SearchHighlight
 trunk/pgsrc/SemanticRelations
 trunk/pgsrc/SemanticSearch
 trunk/pgsrc/SetGlobalAccessRights
 trunk/pgsrc/SetGlobalAccessRightsSimple
 trunk/pgsrc/SpecialPages
 trunk/pgsrc/SpellCheck
 trunk/pgsrc/SystemInfo
 trunk/pgsrc/Template%2FAttribute
 trunk/pgsrc/Template%2FCategory
 trunk/pgsrc/Template%2FExample
 trunk/pgsrc/Template%2FLinkto
 trunk/pgsrc/Template%2FNewPlugin
 trunk/pgsrc/Template%2FRelation
 trunk/pgsrc/Template%2FTalk
 trunk/pgsrc/Template%2FUserPage
 trunk/pgsrc/The%20PhpWiki%20programming%20team
 trunk/pgsrc/TitleSearch
 trunk/pgsrc/TranslateText
 trunk/pgsrc/UpLoad
 trunk/pgsrc/UriResolver
 trunk/pgsrc/UserContribs
 trunk/pgsrc/UserPreferences
 trunk/pgsrc/UserRatings
 trunk/pgsrc/WantedPages
 trunk/pgsrc/WatchPage
 trunk/pgsrc/WhoIsOnline
 trunk/pgsrc/WikiAdminSelect
 trunk/pgsrc/WikiBlog
 trunk/pgsrc/area
 trunk/pgsrc/is_a
 trunk/pgsrc/located_in
 trunk/pgsrc/population
 trunk/themes/Hawaiian/themeinfo.php
 trunk/themes/Sidebar/themeinfo.php
 trunk/themes/blog/jscalendar/calendar.php
 trunk/themes/blog/pgsrc/About
 trunk/themes/blog/pgsrc/Blog
 trunk/themes/blog/pgsrc/CategoryHowTo
 trunk/themes/blog/pgsrc/HomePage
 trunk/themes/blog/pgsrc/HowTo
 trunk/themes/blog/pgsrc/PhotoAlbum
 trunk/themes/blog/themeinfo.php
 trunk/themes/fusionforge/pgsrc/CategoryWiki%20templates
 trunk/themes/fusionforge/pgsrc/CategoryWiki%20user
 trunk/themes/fusionforge/pgsrc/ExternalPages
 trunk/themes/fusionforge/pgsrc/FindPage
 trunk/themes/fusionforge/pgsrc/FullTextSearch
 trunk/themes/fusionforge/pgsrc/HomePage
 trunk/themes/fusionforge/pgsrc/PhpWikiAdministration
 trunk/themes/fusionforge/pgsrc/PhpWikiAdministration%2FSetAclSimple
 trunk/themes/fusionforge/pgsrc/PhpWikiAdministration%2FSetExternal
 trunk/themes/fusionforge/pgsrc/SetGlobalAccessRightsSimple
 trunk/themes/fusionforge/pgsrc/SpecialPages
 trunk/themes/fusionforge/pgsrc/TextFormattingRules
 trunk/themes/fusionforge/pgsrc/TitleSearch
 trunk/themes/fusionforge/pgsrc/UpLoad
 trunk/themes/fusionforge/pgsrc/colorbox
 trunk/themes/fusionforge/pgsrc/titlebar
 trunk/themes/wikilens/pgsrc/LeftbarContent
Added Paths:
-----------
 trunk/lib/pear/DB/mssql.php
 trunk/lib/pear/DB/mysql.php
 trunk/lib/pear/DB/sybase.php
Modified: trunk/INSTALL
===================================================================
--- trunk/INSTALL	2023年07月18日 14:37:58 UTC (rev 11063)
+++ trunk/INSTALL	2023年11月15日 17:09:13 UTC (rev 11064)
@@ -1,7 +1,7 @@
 REQUIREMENTS
 
-PhpWiki 1.7.0 requires a web server with at least PHP version 7.4.0.
-PhpWiki 1.7.0 should work for all PHP releases from 7.4.0 to 8.2.x.
+PhpWiki 1.6.2 requires a web server with at least PHP version 5.3.3.
+PhpWiki 1.6.2 should work for all PHP releases from 5.3.3 to 8.2.x.
 
 Visit <http://www.php.net> and <http://php.net/downloads.php>
 for downloads and information.
@@ -113,7 +113,7 @@
 
 Unzip this file into the directory where you want it to live. That's it.
 
-bash$ unzip phpwiki-1.7.0.zip
+bash$ unzip phpwiki-1.6.2.zip
 
 In the config subdirectory copy 'config-dist.ini' to 'config.ini' and
 edit the settings in 'config.ini' to your liking.
Modified: trunk/Makefile
===================================================================
--- trunk/Makefile	2023年07月18日 14:37:58 UTC (rev 11063)
+++ trunk/Makefile	2023年11月15日 17:09:13 UTC (rev 11064)
@@ -1,4 +1,4 @@
-VERSION=1.7.0
+VERSION=1.6.2
 RPMBUILD=rpmbuild
 
 clean:
Modified: trunk/index.php
===================================================================
--- trunk/index.php	2023年07月18日 14:37:58 UTC (rev 11063)
+++ trunk/index.php	2023年11月15日 17:09:13 UTC (rev 11064)
@@ -35,8 +35,8 @@
 require_once(dirname(__FILE__) . '/lib/IniConfig.php');
 IniConfig(dirname(__FILE__) . "/config/config.ini");
 
-if (version_compare(PHP_VERSION, '7.4.0', '<')) {
- exit(_("Your PHP version is too old. You must have at least PHP 7.4.0."));
+if (version_compare(PHP_VERSION, '5.3.3', '<')) {
+ exit(_("Your PHP version is too old. You must have at least PHP 5.3.3."));
 }
 
 ////////////////////////////////////////////////////////////////
Modified: trunk/lib/BlockParser.php
===================================================================
--- trunk/lib/BlockParser.php	2023年07月18日 14:37:58 UTC (rev 11063)
+++ trunk/lib/BlockParser.php	2023年11月15日 17:09:13 UTC (rev 11064)
@@ -83,7 +83,7 @@
 * "(...)". (Anonymous groups, like "(?:...)", as well as
 * look-ahead and look-behind assertions are fine.)
 */
- public function __construct(array $regexps)
+ public function __construct($regexps)
 {
 $this->_regexps = $regexps;
 $this->_re = "/((" . join(")|(", $regexps) . "))/Ax";
@@ -130,7 +130,7 @@
 *
 * @return AnchoredRegexpSet_match|bool An AnchoredRegexpSet_match object, or false if no match.
 */
- public function nextMatch(string $text, $prevMatch)
+ public function nextMatch($text, $prevMatch)
 {
 // Try to find match at same position.
 $regexps = array_slice($this->_regexps, $prevMatch->regexp_ind + 1);
@@ -175,7 +175,7 @@
 $this->_atSpace = false;
 }
 
- public function skipSpace(): bool
+ public function skipSpace()
 {
 $nlines = count($this->_lines);
 while (1) {
@@ -215,7 +215,7 @@
 $this->_pos++;
 }
 
- public function getPos(): array
+ public function getPos()
 {
 return array($this->_pos, $this->_atSpace);
 }
@@ -225,12 +225,12 @@
 list($this->_pos, $this->_atSpace) = $pos;
 }
 
- public function getPrefix(): string
+ public function getPrefix()
 {
 return '';
 }
 
- public function getDepth(): int
+ public function getDepth()
 {
 return 0;
 }
@@ -265,7 +265,7 @@
 * @param string $prefix_re
 * @param string $initial_prefix
 */
- public function __construct(&$input, string $prefix_re, string $initial_prefix = '')
+ public function __construct(&$input, $prefix_re, $initial_prefix = '')
 {
 $this->_input = &$input;
 $this->_prefix_pat = "/$prefix_re|\\s*\$/Ax";
@@ -285,7 +285,7 @@
 }
 }
 
- public function skipSpace(): bool
+ public function skipSpace()
 {
 // In contrast to the case for top-level blocks,
 // for sub-blocks, there never appears to be any trailing space.
@@ -330,7 +330,7 @@
 $this->nextLine();
 }
 
- public function getPos(): array
+ public function getPos()
 {
 return array($this->_line, $this->_atSpace, $this->_input->getPos());
 }
@@ -342,7 +342,7 @@
 $this->_input->setPos($pos[2]);
 }
 
- public function getPrefix(): string
+ public function getPrefix()
 {
 assert($this->_line !== false);
 $line = $this->_input->currentLine();
@@ -350,7 +350,7 @@
 return substr($line, 0, strlen($line) - strlen($this->_line));
 }
 
- public function getDepth(): int
+ public function getDepth()
 {
 return $this->_input->getDepth() + 1;
 }
@@ -511,7 +511,7 @@
 *
 * We go to this trouble so that "tight" lists look somewhat reasonable
 * in older (non-CSS) browsers. (If you don't do this, then, without
- * CSS, you only get "loose" lists).
+ * CSS, you only get "loose" lists.
 */
 class TightSubBlock extends SubBlock
 {
@@ -563,7 +563,7 @@
 public $_re = '\ +(?=\S)';
 protected $_element;
 
- public function _match(&$input, $m): bool
+ public function _match(&$input, $m)
 {
 $this->_depth = strlen($m->match);
 $indent = sprintf("\\ {%d}", $this->_depth);
@@ -602,7 +602,7 @@
 public $_content = array();
 public $_tag; //'ol' or 'ul'
 
- public function _match(&$input, $m): bool
+ public function _match(&$input, $m)
 {
 // A list as the first content in a list is not allowed.
 // E.g.:
@@ -659,7 +659,7 @@
 $this->_re = '\ {0,4}\S.*(?<!' . ESCAPE_CHAR . '):\s*$';
 }
 
- public function _match(&$input, $m): bool
+ public function _match(&$input, $m)
 {
 if (!($p = $this->_do_match($input, $m))) {
 return false;
@@ -807,7 +807,7 @@
 return $ncols;
 }
 
- private function IsASubtable($item): bool
+ private function IsASubtable($item)
 {
 return is_a($item, 'HtmlElement')
 && $item->getTag() == 'table'
@@ -825,7 +825,7 @@
 return $this->_ncols;
 }
 
- public function nrows(): int
+ public function nrows()
 {
 return $this->_nrows;
 }
@@ -879,7 +879,7 @@
 $this->_re = '\ {0,4} (?:\S.*)? (?<!' . ESCAPE_CHAR . ') \| \s* $';
 }
 
- public function _match(&$input, $m): bool
+ public function _match(&$input, $m)
 {
 if (!($p = $this->_do_match($input, $m))) {
 return false;
@@ -920,7 +920,7 @@
 | ; .*? :
 ) .*? (?=\S)';
 
- public function _match(&$input, $m): bool
+ public function _match(&$input, $m)
 {
 // FIXME:
 if (!preg_match('/[*#;]*$/A', $input->getPrefix())) {
@@ -975,7 +975,7 @@
 {
 public $_re = '<(?:pre|verbatim|nowiki|noinclude|includeonly)>';
 
- public function _match(&$input, $m): bool
+ public function _match(&$input, $m)
 {
 $endtag = '</' . substr($m->match, 1);
 $text = array();
@@ -1021,7 +1021,7 @@
 {
 public $_re = '<<<';
 
- public function _match(&$input, $m): bool
+ public function _match(&$input, $m)
 {
 $endtag = '>>>';
 $text = array();
@@ -1048,7 +1048,7 @@
 {
 public $_re = '{{{';
 
- public function _match(&$input, $m): bool
+ public function _match(&$input, $m)
 {
 $endtag = '}}}';
 $text = array();
@@ -1082,7 +1082,7 @@
 *
 * should all work.
 */
- public function _match(&$input, $m): bool
+ public function _match(&$input, $m)
 {
 $pos = $input->getPos();
 $pi = $m->match . $m->postmatch;
@@ -1105,7 +1105,7 @@
 // public $_re = '<<(?!\S)';
 public $_re = '<<';
 
- public function _match(&$input, $m): bool
+ public function _match(&$input, $m)
 {
 $pos = $input->getPos();
 $pi = $m->postmatch;
@@ -1133,7 +1133,7 @@
 {
 public $_re = '\s*\|';
 
- public function _match(&$input, $m): bool
+ public function _match(&$input, $m)
 {
 $pos = $input->getPos();
 $pi = "|" . $m->postmatch;
@@ -1174,7 +1174,7 @@
 {
 public $_re = '{\|';
 
- public function _match(&$input, $m): bool
+ public function _match(&$input, $m)
 {
 $pos = $input->getPos();
 $pi = $m->postmatch;
@@ -1209,7 +1209,7 @@
 {
 public $_re = '{{';
 
- public function _match(&$input, $m): bool
+ public function _match(&$input, $m)
 {
 // If we find "}}", this is an inline template.
 if (strpos($m->postmatch, "}}") !== false) {
@@ -1294,7 +1294,7 @@
 public $_attr = array('class' => 'mail-style-quote');
 public $_re = '>\ ?';
 
- public function _match(&$input, $m): bool
+ public function _match(&$input, $m)
 {
 //$indent = str_replace(' ', '\\ ', $m->match) . '|>$';
 $indent = $this->_re;
@@ -1308,7 +1308,7 @@
 public $_attr = array('style' => 'margin-left:2em');
 public $_re = ':\ ?';
 
- public function _match(&$input, $m): bool
+ public function _match(&$input, $m)
 {
 $indent = $this->_re;
 $this->_element = new SubBlock(
@@ -1326,7 +1326,7 @@
 {
 public $_re = '-{4,}\s*$';
 
- public function _match(&$input, $m): bool
+ public function _match(&$input, $m)
 {
 $input->advance();
 $this->_element = new Block_HtmlElement('hr');
@@ -1338,7 +1338,7 @@
 {
 public $_re = '!{1,3}';
 
- public function _match(&$input, $m): bool
+ public function _match(&$input, $m)
 {
 $tag = "h" . (5 - strlen($m->match));
 $text = TransformInline(trim($m->postmatch));
@@ -1354,7 +1354,7 @@
 {
 public $_re = '={2,6}';
 
- public function _match(&$input, $m): bool
+ public function _match(&$input, $m)
 {
 $tag = "h" . strlen($m->match);
 // Remove spaces
@@ -1378,7 +1378,7 @@
 private $_tight_bot;
 private $_tight_top;
 
- public function _match(&$input, $m): bool
+ public function _match(&$input, $m)
 {
 $this->_text = $m->match;
 $input->advance();
@@ -1415,7 +1415,7 @@
 {
 public $_re = '<(?im)(?: div|span)(?:[^>]*)?>';
 
- public function _match(&$input, $m): bool
+ public function _match(&$input, $m)
 {
 if (substr($m->match, 1, 4) == 'span') {
 $tag = 'span';
Modified: trunk/lib/DbSession/PDO.php
===================================================================
--- trunk/lib/DbSession/PDO.php	2023年07月18日 14:37:58 UTC (rev 11063)
+++ trunk/lib/DbSession/PDO.php	2023年11月15日 17:09:13 UTC (rev 11064)
@@ -30,7 +30,7 @@
 
 class DbSession_PDO extends DbSession
 {
- public string $_backend_type = "PDO";
+ public $_backend_type = "PDO";
 
 public function __construct($dbh, $table)
 {
@@ -84,7 +84,7 @@
 * @return boolean true just a variable to notify PHP that everything
 * is good.
 */
- public function open(string $save_path, string $session_name): bool
+ public function open($save_path, $session_name)
 {
 //$this->log("_open($save_path, $session_name)");
 return true;
@@ -98,7 +98,7 @@
 * @return boolean true just a variable to notify PHP that everything
 * is good.
 */
- public function close(): bool
+ public function close()
 {
 //$this->log("_close()");
 return true;
@@ -110,7 +110,7 @@
 * @param string $id an id of current session
 * @return string
 */
- public function read(string $id): string
+ public function read($id)
 {
 $dbh = $this->_connect();
 $table = $this->_table;
@@ -148,7 +148,7 @@
 * @return boolean true if data saved successfully and false
 * otherwise.
 */
- public function write(string $id, string $sess_data): bool
+ public function write($id, $sess_data)
 {
 /**
 * @var WikiRequest $request
@@ -192,7 +192,7 @@
 * @param string $id
 * @return boolean true
 */
- public function destroy(string $id): bool
+ public function destroy($id)
 {
 $table = $this->_table;
 $dbh = $this->_connect();
@@ -209,7 +209,7 @@
 * @param int $maxlifetime session's time to live.
 * @return boolean true
 */
- public function gc(int $maxlifetime): bool
+ public function gc($maxlifetime)
 {
 $table = $this->_table;
 $threshold = time() - $maxlifetime;
@@ -223,7 +223,7 @@
 
 // WhoIsOnline support
 // TODO: ip-accesstime dynamic blocking API
- public function currentSessions(): array
+ public function currentSessions()
 {
 $sessions = array();
 $table = $this->_table;
Modified: trunk/lib/DbSession/SQL.php
===================================================================
--- trunk/lib/DbSession/SQL.php	2023年07月18日 14:37:58 UTC (rev 11063)
+++ trunk/lib/DbSession/SQL.php	2023年11月15日 17:09:13 UTC (rev 11064)
@@ -34,7 +34,7 @@
 
 class DbSession_SQL extends DbSession
 {
- public string $_backend_type = "SQL";
+ public $_backend_type = "SQL";
 
 public function __construct($dbh, $table)
 {
@@ -91,7 +91,7 @@
 * @return boolean true just a variable to notify PHP that everything
 * is good.
 */
- public function open(string $save_path, string $session_name): bool
+ public function open($save_path, $session_name)
 {
 //$this->log("_open($save_path, $session_name)");
 return true;
@@ -105,7 +105,7 @@
 * @return boolean true just a variable to notify PHP that everything
 * is good.
 */
- public function close(): bool
+ public function close()
 {
 //$this->log("_close()");
 return true;
@@ -117,7 +117,7 @@
 * @param string $id an id of current session
 * @return string
 */
- public function read(string $id): string
+ public function read($id)
 {
 //$this->log("_read($id)");
 $dbh = $this->_connect();
@@ -159,7 +159,7 @@
 * @return boolean true if data saved successfully and false
 * otherwise.
 */
- public function write(string $id, string $sess_data): bool
+ public function write($id, $sess_data)
 {
 /**
 * @var WikiRequest $request
@@ -200,7 +200,7 @@
 * @param string $id
 * @return boolean true
 */
- public function destroy(string $id): bool
+ public function destroy($id)
 {
 $dbh = $this->_connect();
 $table = $this->_table;
@@ -218,7 +218,7 @@
 * @param int $maxlifetime session's time to live.
 * @return boolean true
 */
- public function gc(int $maxlifetime): bool
+ public function gc($maxlifetime)
 {
 $dbh = $this->_connect();
 $table = $this->_table;
@@ -232,7 +232,7 @@
 
 // WhoIsOnline support
 // TODO: ip-accesstime dynamic blocking API
- public function currentSessions(): array
+ public function currentSessions()
 {
 $sessions = array();
 $dbh = $this->_connect();
Modified: trunk/lib/DbSession/dba.php
===================================================================
--- trunk/lib/DbSession/dba.php	2023年07月18日 14:37:58 UTC (rev 11063)
+++ trunk/lib/DbSession/dba.php	2023年11月15日 17:09:13 UTC (rev 11064)
@@ -26,7 +26,7 @@
 * session:
 * Index: session_id
 * Values: date : IP : data
- * Already open sessions, e.g. interim xmlrpc requests
+ * Already open sessions, e.g. interim xmlrpc requests are
 * are treated specially. see write().
 * To avoid deadlocks in the session.db3 access,
 * the db is opened and closed for each access.
@@ -35,7 +35,7 @@
 
 class DbSession_dba extends DbSession
 {
- public string $_backend_type = "dba";
+ public $_backend_type = "dba";
 
 public function __construct($dbh, $table)
 {
@@ -55,7 +55,7 @@
 return $string;
 }
 
- public function query($sql): bool
+ public function query($sql)
 {
 return false;
 }
@@ -94,7 +94,7 @@
 * @return boolean true just a variable to notify PHP that everything
 * is good.
 */
- public function open(string $save_path, string $session_name): bool
+ public function open($save_path, $session_name)
 {
 $dbh = $this->_connect();
 $dbh->open();
@@ -109,7 +109,7 @@
 * @return boolean true just a variable to notify PHP that everything
 * is good.
 */
- public function close(): bool
+ public function close()
 {
 $this->_disconnect();
 return true;
@@ -121,7 +121,7 @@
 * @param string $id an id of current session
 * @return string
 */
- public function read(string $id): string
+ public function read($id)
 {
 $dbh = $this->_connect();
 $result = $dbh->get($id);
@@ -153,7 +153,7 @@
 * @return boolean true if data saved successfully and false
 * otherwise.
 */
- public function write(string $id, string $sess_data): bool
+ public function write($id, $sess_data)
 {
 /**
 * @var WikiRequest $request
@@ -176,7 +176,7 @@
 return true;
 }
 
- public function destroy($id): bool
+ public function destroy($id)
 {
 $dbh = $this->_connect();
 $dbh->delete($id);
@@ -190,7 +190,7 @@
 * @param int $maxlifetime session's time to live.
 * @return boolean true
 */
- public function gc(int $maxlifetime): bool
+ public function gc($maxlifetime)
 {
 $dbh = $this->_connect();
 $threshold = time() - $maxlifetime;
@@ -209,7 +209,7 @@
 
 // WhoIsOnline support
 // TODO: ip-accesstime dynamic blocking API
- public function currentSessions(): array
+ public function currentSessions()
 {
 $sessions = array();
 $dbh = $this->_connect();
Modified: trunk/lib/PageList.php
===================================================================
--- trunk/lib/PageList.php	2023年07月18日 14:37:58 UTC (rev 11063)
+++ trunk/lib/PageList.php	2023年11月15日 17:09:13 UTC (rev 11064)
@@ -54,7 +54,7 @@
 */
 class _PageList_Column_base
 {
- public array $_tdattr = array();
+ public $_tdattr = array();
 public $_field;
 
 public function __construct($default_heading, $align = false)
@@ -172,7 +172,7 @@
 *
 * @return int -1 if $a < $b, 1 if $a > $b, 0 otherwise.
 */
- public function _compare($colvala, $colvalb): int
+ public function _compare($colvala, $colvalb)
 {
 if (is_string($colvala)) {
 return strcmp($colvala, $colvalb);
@@ -289,7 +289,7 @@
 ? 0 : strlen($revision_handle->_data['%content']);
 }
 
- public function _getSize($revision_handle): FormattedText
+ public function _getSize($revision_handle)
 {
 $bytes = @strlen($revision_handle->_data['%content']);
 return ByteFormatter($bytes);
@@ -615,7 +615,7 @@
 /**
 * Compare two pagenames for sorting. See _PageList_Column::_compare.
 **/
- public function _compare($colvala, $colvalb): int
+ public function _compare($colvala, $colvalb)
 {
 return strcmp($colvala, $colvalb);
 }
@@ -658,19 +658,19 @@
 
 class PageList
 {
- public int $_group_rows = 3;
- public array $_columns = array();
- private array $_columnsMap = array(); // Maps column name to column number.
+ public $_group_rows = 3;
+ public $_columns = array();
+ private $_columnsMap = array(); // Maps column name to column number.
 private $_excluded_pages = array();
- public array $_pages = array();
- public string $_caption = "";
- public array $_types = array();
+ public $_pages = array();
+ public $_caption = "";
+ public $_types = array();
 public $_options = array();
- public array $_selected = array();
- public array $_sortby = array();
- public int $_maxlen = 0;
- private string $_messageIfEmpty = '';
- public array $_columns_seen = array();
+ public $_selected = array();
+ public $_sortby = array();
+ public $_maxlen = 0;
+ private $_messageIfEmpty = '';
+ public $_columns_seen = array();
 private $_stack;
 
 public function __construct($columns = array(), $exclude = array(), $options = array())
@@ -802,7 +802,7 @@
 // 1: info, 2: exclude, 3: hash of options
 // Here we declare which options are supported, so that
 // the calling plugin may simply merge this with its own default arguments
- public static function supportedArgs(): array
+ public static function supportedArgs()
 {
 // Todo: add all supported Columns, like locked, minor, ...
 return array( // Currently supported options:
@@ -855,7 +855,7 @@
 );
 }
 
- private function pagingArgs(): array
+ private function pagingArgs()
 {
 return array('sortby', 'limit', 'paging', 'count', 'dosort');
 }
@@ -876,7 +876,7 @@
 $this->_caption = HTML($this->_caption, " ", $caption);
 }
 
- private function getCaption(): string
+ private function getCaption()
 {
 // put the total into the caption if needed
 if (is_string($this->_caption) && strstr($this->_caption, '%d')) {
@@ -885,13 +885,13 @@
 return $this->_caption;
 }
 
- public function getTotal(): int
+ public function getTotal()
 {
 return !empty($this->_options['count'])
 ? (int)$this->_options['count'] : count($this->_pages);
 }
 
- public function isEmpty(): bool
+ public function isEmpty()
 {
 return empty($this->_pages);
 }
@@ -911,7 +911,7 @@
 }
 }
 
- public function pageNames(): array
+ public function pageNames()
 {
 $pages = array();
 $limit = @$this->_options['limit'];
@@ -1212,7 +1212,7 @@
 $sortby = '',
 $limit = '',
 $exclude = ''
- ): array
+ )
 {
 /**
 * @var WikiRequest $request
@@ -1253,7 +1253,7 @@
 $sortby = '',
 $limit = '',
 $exclude = ''
- ): array
+ )
 {
 /**
 * @var WikiRequest $request
@@ -1293,7 +1293,7 @@
 $sortby = '',
 $limit = '',
 $exclude = ''
- ): array
+ )
 {
 /**
 * @var WikiRequest $request
@@ -1332,7 +1332,7 @@
 $sortby = '',
 $limit = '',
 $exclude = ''
- ): array
+ )
 {
 /**
 * @var WikiRequest $request
@@ -1371,7 +1371,7 @@
 $sortby = '',
 $limit = '',
 $exclude = ''
- ): array
+ )
 {
 /**
 * @var WikiRequest $request
@@ -1510,7 +1510,7 @@
 * @param string $column column name
 * @return bool true if column is added, false otherwise
 */
- public function _addColumn(string $column): bool
+ public function _addColumn($column)
 {
 global $request;
 
@@ -1642,7 +1642,7 @@
 }
 }
 
- public function limit($limit): array
+ public function limit($limit)
 {
 if (is_array($limit)) {
 list($from, $count) = $limit;
Modified: trunk/lib/Template.php
===================================================================
--- trunk/lib/Template.php	2023年07月18日 14:37:58 UTC (rev 11063)
+++ trunk/lib/Template.php	2023年11月15日 17:09:13 UTC (rev 11064)
@@ -37,7 +37,7 @@
 * @param WikiRequest $request
 * @param array $args
 */
- public function __construct(string $name, &$request, $args = array())
+ public function __construct($name, &$request, $args = array())
 {
 global $WikiTheme;
 
@@ -138,7 +138,7 @@
 * @param string $varname Name of token to substitute for.
 * @param string $value Replacement HTML text.
 */
- public function replace(string $varname, string $value)
+ public function replace($varname, $value)
 {
 $this->_locals[$varname] = $value;
 }
@@ -235,13 +235,13 @@
 * new Template(...)
 * </pre>
 */
-function Template($name, $args = array()): Template
+function Template($name, $args = array())
 {
 global $request;
 return new Template($name, $request, $args);
 }
 
-function alreadyTemplateProcessed($name): bool
+function alreadyTemplateProcessed($name)
 {
 global $request;
 return !empty($request->_TemplatesProcessed[$name]) ? true : false;
@@ -256,7 +256,7 @@
 * @param object|bool $page_revision A WikiDB_PageRevision object or false
 * @param array $args hash Extract args for top-level template
 */
-function GeneratePage($content, string $title, $page_revision = false, array $args = array())
+function GeneratePage($content, $title, $page_revision = false, $args = array())
 {
 global $request;
 
Modified: trunk/lib/WikiDB/PDO.php
===================================================================
--- trunk/lib/WikiDB/PDO.php	2023年07月18日 14:37:58 UTC (rev 11063)
+++ trunk/lib/WikiDB/PDO.php	2023年11月15日 17:09:13 UTC (rev 11064)
@@ -101,7 +101,7 @@
 return str_replace("'", "\'", $in);
 }
 
- public function isOpen(): bool
+ public function isOpen()
 {
 /**
 * @var WikiRequest $request
Modified: trunk/lib/WikiDB/SQL.php
===================================================================
--- trunk/lib/WikiDB/SQL.php	2023年07月18日 14:37:58 UTC (rev 11063)
+++ trunk/lib/WikiDB/SQL.php	2023年11月15日 17:09:13 UTC (rev 11064)
@@ -54,7 +54,7 @@
 parent::__construct($backend, $dbparams);
 }
 
- public static function view_dsn($dsn = false): string
+ public static function view_dsn($dsn = false)
 {
 if (!$dsn) {
 $dsninfo = DB::parseDSN($GLOBALS['DBParams']['dsn']);
@@ -97,7 +97,7 @@
 return $this->_backend->_dbh->escapeSimple($s);
 }
 ...
 
[truncated message content]
From: <var...@us...> - 2023年07月18日 14:38:01
Revision: 11063
 http://sourceforge.net/p/phpwiki/code/11063
Author: vargenau
Date: 2023年07月18日 14:37:58 +0000 (2023年7月18日)
Log Message:
-----------
PHP7: less strict typing
Modified Paths:
--------------
 trunk/lib/PageList.php
 trunk/lib/Template.php
 trunk/lib/editpage.php
Modified: trunk/lib/PageList.php
===================================================================
--- trunk/lib/PageList.php	2023年07月18日 14:36:37 UTC (rev 11062)
+++ trunk/lib/PageList.php	2023年07月18日 14:37:58 UTC (rev 11063)
@@ -85,7 +85,7 @@
 }
 
 // old-style heading
- public function heading(): HTML
+ public function heading()
 {
 global $request;
 // allow sorting?
@@ -110,7 +110,7 @@
 
 // new grid-style sortable heading
 // TODO: via activeui.js ? (fast dhtml sorting)
- public function button_heading($pagelist, $colNum): HTML
+ public function button_heading($pagelist, $colNum)
 {
 global $WikiTheme, $request;
 // allow sorting?
@@ -209,7 +209,7 @@
 * @param WikiDB_PageRevision $revision_handle
 * @return mixed
 */
- public function _getValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
+ public function _getValue($page_handle, $revision_handle)
 {
 if ($this->_need_rev) {
 if (!$revision_handle) {
@@ -227,7 +227,7 @@
 * @param WikiDB_PageRevision $revision_handle
 * @return int|string
 */
- public function _getSortableValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
+ public function _getSortableValue($page_handle, $revision_handle)
 {
 $val = $this->_getValue($page_handle, $revision_handle);
 if ($this->_field == 'hits') {
@@ -256,7 +256,7 @@
 
 class _PageList_Column_size extends _PageList_Column
 {
- public function format($pagelist, $page_handle, $revision_handle): HTML
+ public function format($pagelist, $page_handle, $revision_handle)
 {
 return HTML::td(
 $this->_tdattr,
@@ -264,7 +264,7 @@
 );
 }
 
- public function _getValuePageList($pagelist, $page_handle, $revision_handle): FormattedText
+ public function _getValuePageList($pagelist, $page_handle, $revision_handle)
 {
 if (!$revision_handle or (!$revision_handle->_data['%content']
 or $revision_handle->_data['%content'] === true)
@@ -280,7 +280,7 @@
 return $size;
 }
 
- public function _getSortableValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
+ public function _getSortableValue($page_handle, $revision_handle)
 {
 if (!$revision_handle) {
 $revision_handle = $page_handle->getCurrentRevision();
@@ -305,7 +305,7 @@
 $this->_textIfFalse = new RawXml('&#8212;'); //mdash
 }
 
- public function _getValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
+ public function _getValue($page_handle, $revision_handle)
 {
 //FIXME: check if $this is available in the parent (->need_rev)
 $val = parent::_getValue($page_handle, $revision_handle);
@@ -327,7 +327,7 @@
 parent::__construct($field, $heading, 'center');
 }
 
- public function _getValuePageList($pagelist, $page_handle, $revision_handle): HTML
+ public function _getValuePageList($pagelist, $page_handle, $revision_handle)
 {
 $pagename = $page_handle->getName();
 $selected = !empty($pagelist->_selected[$pagename]);
@@ -346,7 +346,7 @@
 }
 }
 
- public function format($pagelist, $page_handle, $revision_handle): HTML
+ public function format($pagelist, $page_handle, $revision_handle)
 {
 return HTML::td(
 $this->_tdattr,
@@ -355,7 +355,7 @@
 }
 
 // don't sort this javascript button
- public function button_heading($pagelist, $colNum): HTML
+ public function button_heading($pagelist, $colNum)
 {
 $s = HTML($this->_heading);
 return HTML::th(array('class' => 'gridbutton'), $s);
@@ -371,13 +371,13 @@
 $this->WikiTheme = &$WikiTheme;
 }
 
- public function _getValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
+ public function _getValue($page_handle, $revision_handle)
 {
 $time = parent::_getValue($page_handle, $revision_handle);
 return $this->WikiTheme->formatDateTime($time);
 }
 
- public function _getSortableValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
+ public function _getSortableValue($page_handle, $revision_handle)
 {
 return parent::_getValue($page_handle, $revision_handle);
 }
@@ -385,7 +385,7 @@
 
 class _PageList_Column_version extends _PageList_Column
 {
- public function _getValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
+ public function _getValue($page_handle, $revision_handle)
 {
 if (!$revision_handle) {
 $revision_handle = $page_handle->getCurrentRevision();
@@ -425,7 +425,7 @@
 }
 }
 
- public function _getValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
+ public function _getValue($page_handle, $revision_handle)
 {
 if (!$revision_handle or (!$revision_handle->_data['%content']
 or $revision_handle->_data['%content'] === true)
@@ -510,7 +510,7 @@
 );
 }
 
- public function _getSortableValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
+ public function _getSortableValue($page_handle, $revision_handle)
 {
 if (is_object($page_handle) and !empty($page_handle->score)) {
 return $page_handle->score;
@@ -535,7 +535,7 @@
 $this->dbi =& $request->getDbh();
 }
 
- public function _getValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
+ public function _getValue($page_handle, $revision_handle)
 {
 $author = parent::_getValue($page_handle, $revision_handle);
 if ($this->dbi->isWikiPage($author)) {
@@ -545,7 +545,7 @@
 }
 }
 
- public function _getSortableValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
+ public function _getSortableValue($page_handle, $revision_handle)
 {
 return parent::_getValue($page_handle, $revision_handle);
 }
@@ -553,7 +553,7 @@
 
 class _PageList_Column_owner extends _PageList_Column_author
 {
- public function _getValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
+ public function _getValue($page_handle, $revision_handle)
 {
 $author = $page_handle->getOwner();
 if ($this->dbi->isWikiPage($author)) {
@@ -563,7 +563,7 @@
 }
 }
 
- public function _getSortableValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
+ public function _getSortableValue($page_handle, $revision_handle)
 {
 return parent::_getValue($page_handle, $revision_handle);
 }
@@ -571,7 +571,7 @@
 
 class _PageList_Column_creator extends _PageList_Column_author
 {
- public function _getValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
+ public function _getValue($page_handle, $revision_handle)
 {
 $author = $page_handle->getCreator();
 if ($this->dbi->isWikiPage($author)) {
@@ -581,7 +581,7 @@
 }
 }
 
- public function _getSortableValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
+ public function _getSortableValue($page_handle, $revision_handle)
 {
 return parent::_getValue($page_handle, $revision_handle);
 }
@@ -598,7 +598,7 @@
 $this->dbi = &$request->getDbh();
 }
 
- public function _getValue($page_handle, $revision_handle): XmlContent
+ public function _getValue($page_handle, $revision_handle)
 {
 if ($this->dbi->isWikiPage($page_handle->getName())) {
 return WikiLink($page_handle);
@@ -623,7 +623,7 @@
 
 class _PageList_Column_perm extends _PageList_Column
 {
- public function _getValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
+ public function _getValue($page_handle, $revision_handle)
 {
 $perm_array = pagePermissions($page_handle->_pagename);
 return pagePermissionsSimpleFormat(
@@ -636,7 +636,7 @@
 
 class _PageList_Column_acl extends _PageList_Column
 {
- public function _getValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
+ public function _getValue($page_handle, $revision_handle)
 {
 $perm_tree = pagePermissions($page_handle->_pagename);
 
@@ -1738,7 +1738,7 @@
 }
 
 // make a table given the caption
- public function _generateTable($caption = ''): HTML
+ public function _generateTable($caption = '')
 {
 if (count($this->_sortby) > 0) {
 $this->sortPages();
@@ -2010,7 +2010,7 @@
 // comma=1
 // Condense list without a href links: "Page1, Page2, ..."
 // FIXME: only unique list entries, esp. with nopage
- private function generateCommaListAsString(): XmlContent
+ private function generateCommaListAsString()
 {
 if (defined($this->_options['commasep'])) {
 $separator = $this->_options['commasep'];
@@ -2031,7 +2031,7 @@
 // Future: 1 = reserved for plain string (see above)
 // 2 and more => HTML link specialization?
 // FIXME: only unique list entries, esp. with nopage
- private function generateCommaList(): XmlContent
+ private function generateCommaList()
 {
 if (defined($this->_options['commasep'])) {
 $separator = HTML::raw($this->_options['commasep']);
@@ -2049,7 +2049,7 @@
 return $html;
 }
 
- public function _emptyList($caption): XmlContent
+ public function _emptyList($caption)
 {
 $html = HTML();
 if ($caption) {
Modified: trunk/lib/Template.php
===================================================================
--- trunk/lib/Template.php	2023年07月18日 14:36:37 UTC (rev 11062)
+++ trunk/lib/Template.php	2023年07月18日 14:37:58 UTC (rev 11063)
@@ -37,7 +37,7 @@
 * @param WikiRequest $request
 * @param array $args
 */
- public function __construct(string $name, &$request, array $args = array())
+ public function __construct(string $name, &$request, $args = array())
 {
 global $WikiTheme;
 
Modified: trunk/lib/editpage.php
===================================================================
--- trunk/lib/editpage.php	2023年07月18日 14:36:37 UTC (rev 11062)
+++ trunk/lib/editpage.php	2023年07月18日 14:37:58 UTC (rev 11063)
@@ -57,7 +57,7 @@
 /**
 * @param WikiRequest $request
 */
- public function __construct(WikiRequest &$request)
+ public function __construct(&$request)
 {
 $this->request = &$request;
 
@@ -123,7 +123,7 @@
 }
 }
 
- public function editPage(): ?bool
+ public function editPage()
 {
 $saveFailed = false;
 $tokens = &$this->tokens;
@@ -540,7 +540,7 @@
 
 /** Header of the Anti Spam message
 */
- private function getSpamMessage(): XmlContent
+ private function getSpamMessage()
 {
 return
 HTML(
@@ -554,7 +554,7 @@
 );
 }
 
- protected function getPreview(): TransformedText
+ protected function getPreview()
 {
 require_once 'lib/PageType.php';
 $this->_content = $this->getContent();
@@ -561,7 +561,7 @@
 return new TransformedText($this->page, $this->_content, $this->meta);
 }
 
- protected function getConvertedPreview(): TransformedText
+ protected function getConvertedPreview()
 {
 require_once 'lib/PageType.php';
 $this->_content = $this->getContent();
@@ -568,7 +568,7 @@
 return new TransformedText($this->page, $this->_content, $this->meta);
 }
 
- private function getDiff(): XmlContent
+ private function getDiff()
 {
 require_once 'lib/diff.php';
 $html = HTML();
@@ -611,7 +611,7 @@
 }
 }
 
- protected function getLockedMessage(): XmlContent
+ protected function getLockedMessage()
 {
 return
 HTML(
@@ -627,7 +627,7 @@
 return $this->page->get('moderation');
 }
 
- private function getModeratedMessage(): XmlContent
+ private function getModeratedMessage()
 {
 return
 HTML(
@@ -640,7 +640,7 @@
 );
 }
 
- protected function getConflictMessage($unresolved = false): XmlContent
+ protected function getConflictMessage($unresolved = false)
 {
 /*
 xgettext only knows about c/c++ line-continuation strings
@@ -1255,7 +1255,7 @@
 
 class LoadFileConflictPageEditor extends PageEditor
 {
- public function editPage($saveFailed = true): ?bool
+ public function editPage($saveFailed = true)
 {
 $tokens = &$this->tokens;
 
@@ -1371,7 +1371,7 @@
 return true;
 }
 
- protected function getConflictMessage($unresolved = false): XmlContent
+ protected function getConflictMessage($unresolved = false)
 {
 return HTML(HTML::p(
 fmt(
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <var...@us...> - 2023年07月18日 14:36:38
Revision: 11062
 http://sourceforge.net/p/phpwiki/code/11062
Author: vargenau
Date: 2023年07月18日 14:36:37 +0000 (2023年7月18日)
Log Message:
-----------
function get_all_pages exclude argument is not always a string, might be an array
Modified Paths:
--------------
 trunk/lib/WikiDB/backend.php
Modified: trunk/lib/WikiDB/backend.php
===================================================================
--- trunk/lib/WikiDB/backend.php	2023年07月18日 14:34:38 UTC (rev 11061)
+++ trunk/lib/WikiDB/backend.php	2023年07月18日 14:36:37 UTC (rev 11062)
@@ -314,7 +314,7 @@
 bool $include_empty = false,
 string $sortby = '',
 string $limit = '',
- string $exclude = ''
+ $exclude = ''
 );
 
 /**
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <var...@us...> - 2023年07月18日 14:34:41
Revision: 11061
 http://sourceforge.net/p/phpwiki/code/11061
Author: vargenau
Date: 2023年07月18日 14:34:38 +0000 (2023年7月18日)
Log Message:
-----------
function get_all_pages exclude argument is not always a string, might be an array
Modified Paths:
--------------
 trunk/lib/WikiDB/backend/PDO.php
 trunk/lib/WikiDB/backend/PearDB.php
 trunk/lib/WikiDB/backend/PearDB_ffpgsql.php
 trunk/lib/WikiDB/backend/dbaBase.php
 trunk/lib/WikiDB/backend/file.php
Modified: trunk/lib/WikiDB/backend/PDO.php
===================================================================
--- trunk/lib/WikiDB/backend/PDO.php	2023年07月18日 14:15:47 UTC (rev 11060)
+++ trunk/lib/WikiDB/backend/PDO.php	2023年07月18日 14:34:38 UTC (rev 11061)
@@ -875,7 +875,7 @@
 bool $include_empty = false,
 string $sortby = '',
 string $limit = '',
- string $exclude = ''
+ $exclude = ''
 )
 {
 $dbh = &$this->_dbh;
Modified: trunk/lib/WikiDB/backend/PearDB.php
===================================================================
--- trunk/lib/WikiDB/backend/PearDB.php	2023年07月18日 14:15:47 UTC (rev 11060)
+++ trunk/lib/WikiDB/backend/PearDB.php	2023年07月18日 14:34:38 UTC (rev 11061)
@@ -178,7 +178,7 @@
 ),
 DB_FETCHMODE_ASSOC
 );
- return $result ? $this->_extract_page_data($result) : false;
+ return $result ? $this->_extract_page_data($result) : array();
 }
 
 public function _extract_page_data($data): array
@@ -336,7 +336,7 @@
 . " AND pagename='%s'"
 . " AND version < %d"
 . " ORDER BY version DESC",
- /* Non portable and useless anyway with getOne
+ /* Non-portable and useless anyway with getOne
 . " LIMIT 1",
 */
 $dbh->escapeSimple($pagename),
@@ -596,7 +596,7 @@
 bool $include_empty = false,
 string $sortby = '',
 string $limit = '',
- string $exclude = '',
+ $exclude = '',
 bool $want_relations = false
 )
 {
@@ -669,7 +669,7 @@
 bool $include_empty = false,
 string $sortby = '',
 string $limit = '',
- string $exclude = ''
+ $exclude = ''
 )
 {
 $dbh = &$this->_dbh;
@@ -1002,7 +1002,7 @@
 * the link database.
 *
 * @param string $pagename Page name.
- * i.e save_page('') and DELETE nonempty id
+ * i.e. save_page('') and DELETE nonempty id
 * Can be undone and is seen in RecentChanges.
 */
 
@@ -1108,7 +1108,7 @@
 *
 * @see _lock_database
 */
- public function unlock(array $tables = array(), bool $force = false)
+ public function unlock($tables = array(), bool $force = false)
 {
 if ($this->_lock_count == 0) {
 return;
Modified: trunk/lib/WikiDB/backend/PearDB_ffpgsql.php
===================================================================
--- trunk/lib/WikiDB/backend/PearDB_ffpgsql.php	2023年07月18日 14:15:47 UTC (rev 11060)
+++ trunk/lib/WikiDB/backend/PearDB_ffpgsql.php	2023年07月18日 14:34:38 UTC (rev 11061)
@@ -396,7 +396,7 @@
 bool $include_empty = false,
 string $sortby = '',
 string $limit = '',
- string $exclude = ''
+ $exclude = ''
 )
 {
 $dbh = &$this->_dbh;
Modified: trunk/lib/WikiDB/backend/dbaBase.php
===================================================================
--- trunk/lib/WikiDB/backend/dbaBase.php	2023年07月18日 14:15:47 UTC (rev 11060)
+++ trunk/lib/WikiDB/backend/dbaBase.php	2023年07月18日 14:34:38 UTC (rev 11061)
@@ -422,7 +422,11 @@
 return $count;
 }
 
- public function get_all_pages(bool $include_empty = false, string $sortby = '', string $limit = '', string $exclude = '')
+ public function get_all_pages(
+ bool $include_empty = false,
+ string $sortby = '',
+ string $limit = '',
+ $exclude = '')
 {
 $pagedb = &$this->_pagedb;
 $pages = array();
Modified: trunk/lib/WikiDB/backend/file.php
===================================================================
--- trunk/lib/WikiDB/backend/file.php	2023年07月18日 14:15:47 UTC (rev 11060)
+++ trunk/lib/WikiDB/backend/file.php	2023年07月18日 14:34:38 UTC (rev 11061)
@@ -648,7 +648,7 @@
 bool $include_empty = false,
 string $sortby = '',
 string $limit = '',
- string $exclude = ''
+ $exclude = ''
 )
 {
 require_once 'lib/PageList.php';
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <var...@us...> - 2023年07月18日 14:15:49
Revision: 11060
 http://sourceforge.net/p/phpwiki/code/11060
Author: vargenau
Date: 2023年07月18日 14:15:47 +0000 (2023年7月18日)
Log Message:
-----------
lib/plugin/PhotoAlbum.php: force int return type for function newSize
Modified Paths:
--------------
 trunk/lib/plugin/PhotoAlbum.php
Modified: trunk/lib/plugin/PhotoAlbum.php
===================================================================
--- trunk/lib/plugin/PhotoAlbum.php	2023年07月18日 13:56:14 UTC (rev 11059)
+++ trunk/lib/plugin/PhotoAlbum.php	2023年07月18日 14:15:47 UTC (rev 11060)
@@ -520,17 +520,17 @@
 * Calculate the new size in pixels when the original size
 * with a value is given.
 *
- * @param integer $oldSize Absolute no. of pixels
+ * @param integer $oldSize Absolute no. of pixels
 * @param mixed $value Either absolute no. or HTML percentage e.g. '50%'
- * @return integer New size in pixels
+ * @return int New size in pixels
 */
 private function newSize(int $oldSize, $value): int
 {
 if (trim(substr($value, strlen($value) - 1)) != "%") {
- return $value;
+ return intval($value);
 }
 $value = str_replace("%", "", $value);
- return round(($oldSize * $value) / 100);
+ return (int)round(($oldSize * $value) / 100);
 }
 
 /**
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 11059
 http://sourceforge.net/p/phpwiki/code/11059
Author: vargenau
Date: 2023年07月18日 13:56:14 +0000 (2023年7月18日)
Log Message:
-----------
lib/plugin/WikicreoleTable.php: compute_table_cell returns straing, not int
Modified Paths:
--------------
 trunk/lib/plugin/WikicreoleTable.php
Modified: trunk/lib/plugin/WikicreoleTable.php
===================================================================
--- trunk/lib/plugin/WikicreoleTable.php	2023年07月18日 10:28:12 UTC (rev 11058)
+++ trunk/lib/plugin/WikicreoleTable.php	2023年07月18日 13:56:14 UTC (rev 11059)
@@ -191,9 +191,9 @@
 * @param int $j: second index of cell to compute
 * @param int $imax: first table dimension
 * @param int $jmax: second table dimension
- * @return int
+ * @return string
 */
- private function compute_table_cell(array $table, int $i, int $j, int $imax, int $jmax): int
+ private function compute_table_cell(array $table, int $i, int $j, int $imax, int $jmax): string
 {
 
 // What is implemented:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <var...@us...> - 2023年07月18日 10:28:14
Revision: 11058
 http://sourceforge.net/p/phpwiki/code/11058
Author: vargenau
Date: 2023年07月18日 10:28:12 +0000 (2023年7月18日)
Log Message:
-----------
mysql, mssql and sybase functions removed in PHP 7
Modified Paths:
--------------
 trunk/locale/Makefile
Removed Paths:
-------------
 trunk/lib/pear/DB/mssql.php
 trunk/lib/pear/DB/mysql.php
 trunk/lib/pear/DB/sybase.php
Deleted: trunk/lib/pear/DB/mssql.php
===================================================================
--- trunk/lib/pear/DB/mssql.php	2023年07月14日 11:54:56 UTC (rev 11057)
+++ trunk/lib/pear/DB/mssql.php	2023年07月18日 10:28:12 UTC (rev 11058)
@@ -1,984 +0,0 @@
-<?php
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * The PEAR DB driver for PHP's mssql extension
- * for interacting with Microsoft SQL Server databases
- *
- * PHP version 5
- *
- * LICENSE: This source file is subject to version 3.0 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_0.txt. If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to li...@ph... so we can mail you a copy immediately.
- *
- * @category Database
- * @package DB
- * @author Sterling Hughes <ste...@ph...>
- * @author Daniel Convissor <da...@ph...>
- * @copyright 1997-2007 The PHP Group
- * @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id$
- * @link http://pear.php.net/package/DB
- */
-
-/**
- * Obtain the DB_common class so it can be extended from
- */
-require_once 'lib/pear/DB/common.php';
-
-/**
- * The methods PEAR DB uses to interact with PHP's mssql extension
- * for interacting with Microsoft SQL Server databases
- *
- * These methods overload the ones declared in DB_common.
- *
- * DB's mssql driver is only for Microsfoft SQL Server databases.
- *
- * If you're connecting to a Sybase database, you MUST specify "sybase"
- * as the "phptype" in the DSN.
- *
- * This class only works correctly if you have compiled PHP using
- * --with-mssql=[dir_to_FreeTDS].
- *
- * @category Database
- * @package DB
- * @author Sterling Hughes <ste...@ph...>
- * @author Daniel Convissor <da...@ph...>
- * @copyright 1997-2007 The PHP Group
- * @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.10.0
- * @link http://pear.php.net/package/DB
- */
-class DB_mssql extends DB_common
-{
- // {{{ properties
-
- /**
- * The DB driver type (mysql, oci8, odbc, etc.)
- * @var string
- */
- var $phptype = 'mssql';
-
- /**
- * The database syntax variant to be used (db2, access, etc.), if any
- * @var string
- */
- var $dbsyntax = 'mssql';
-
- /**
- * The capabilities of this DB implementation
- *
- * The 'new_link' element contains the PHP version that first provided
- * new_link support for this DBMS. Contains false if it's unsupported.
- *
- * Meaning of the 'limit' element:
- * + 'emulate' = emulate with fetch row by number
- * + 'alter' = alter the query
- * + false = skip rows
- *
- * @var array
- */
- var $features = array(
- 'limit' => 'emulate',
- 'new_link' => false,
- 'numrows' => true,
- 'pconnect' => true,
- 'prepare' => false,
- 'ssl' => false,
- 'transactions' => true,
- );
-
- /**
- * A mapping of native error codes to DB error codes
- * @var array
- */
- // XXX Add here error codes ie: 'S100E' => DB_ERROR_SYNTAX
- var $errorcode_map = array(
- 102 => DB_ERROR_SYNTAX,
- 110 => DB_ERROR_VALUE_COUNT_ON_ROW,
- 155 => DB_ERROR_NOSUCHFIELD,
- 156 => DB_ERROR_SYNTAX,
- 170 => DB_ERROR_SYNTAX,
- 207 => DB_ERROR_NOSUCHFIELD,
- 208 => DB_ERROR_NOSUCHTABLE,
- 245 => DB_ERROR_INVALID_NUMBER,
- 319 => DB_ERROR_SYNTAX,
- 321 => DB_ERROR_NOSUCHFIELD,
- 325 => DB_ERROR_SYNTAX,
- 336 => DB_ERROR_SYNTAX,
- 515 => DB_ERROR_CONSTRAINT_NOT_NULL,
- 547 => DB_ERROR_CONSTRAINT,
- 1018 => DB_ERROR_SYNTAX,
- 1035 => DB_ERROR_SYNTAX,
- 1913 => DB_ERROR_ALREADY_EXISTS,
- 2209 => DB_ERROR_SYNTAX,
- 2223 => DB_ERROR_SYNTAX,
- 2248 => DB_ERROR_SYNTAX,
- 2256 => DB_ERROR_SYNTAX,
- 2257 => DB_ERROR_SYNTAX,
- 2627 => DB_ERROR_CONSTRAINT,
- 2714 => DB_ERROR_ALREADY_EXISTS,
- 3607 => DB_ERROR_DIVZERO,
- 3701 => DB_ERROR_NOSUCHTABLE,
- 7630 => DB_ERROR_SYNTAX,
- 8134 => DB_ERROR_DIVZERO,
- 9303 => DB_ERROR_SYNTAX,
- 9317 => DB_ERROR_SYNTAX,
- 9318 => DB_ERROR_SYNTAX,
- 9331 => DB_ERROR_SYNTAX,
- 9332 => DB_ERROR_SYNTAX,
- 15253 => DB_ERROR_SYNTAX,
- );
-
- /**
- * The raw database connection created by PHP
- * @var resource
- */
- var $connection;
-
- /**
- * The DSN information for connecting to a database
- * @var array
- */
- var $dsn = array();
-
-
- /**
- * Should data manipulation queries be committed automatically?
- * @var bool
- * @access private
- */
- var $autocommit = true;
-
- /**
- * The quantity of transactions begun
- *
- * {@internal While this is private, it can't actually be designated
- * private in PHP 5 because it is directly accessed in the test suite.}}
- *
- * @var integer
- * @access private
- */
- var $transaction_opcount = 0;
-
- /**
- * The database specified in the DSN
- *
- * It's a fix to allow calls to different databases in the same script.
- *
- * @var string
- * @access private
- */
- var $_db = null;
-
-
- // }}}
- // {{{ constructor
-
- /**
- * This constructor calls <kbd>parent::__construct()</kbd>
- *
- * @return void
- */
- function __construct()
- {
- parent::__construct();
- }
-
- // }}}
- // {{{ connect()
-
- /**
- * Connect to the database server, log in and open the database
- *
- * Don't call this method directly. Use DB::connect() instead.
- *
- * @param array $dsn the data source name
- * @param bool $persistent should the connection be persistent?
- *
- * @return int DB_OK on success. A DB_Error object on failure.
- */
- function connect($dsn, $persistent = false)
- {
- if (!PEAR::loadExtension('mssql') && !PEAR::loadExtension('sybase')
- && !PEAR::loadExtension('sybase_ct'))
- {
- return $this->raiseError(DB_ERROR_EXTENSION_NOT_FOUND);
- }
-
- $this->dsn = $dsn;
- if ($dsn['dbsyntax']) {
- $this->dbsyntax = $dsn['dbsyntax'];
- }
-
- $params = array(
- $dsn['hostspec'] ? $dsn['hostspec'] : 'localhost',
- $dsn['username'] ? $dsn['username'] : null,
- $dsn['password'] ? $dsn['password'] : null,
- );
- if ($dsn['port']) {
- $params[0] .= ((substr(PHP_OS, 0, 3) == 'WIN') ? ',' : ':')
- . $dsn['port'];
- }
-
- $connect_function = $persistent ? 'mssql_pconnect' : 'mssql_connect';
-
- $this->connection = @call_user_func_array($connect_function, $params);
-
- if (!$this->connection) {
- return $this->raiseError(DB_ERROR_CONNECT_FAILED,
- null, null, null,
- @mssql_get_last_message());
- }
- if ($dsn['database']) {
- if (!@mssql_select_db($dsn['database'], $this->connection)) {
- return $this->raiseError(DB_ERROR_NODBSELECTED,
- null, null, null,
- @mssql_get_last_message());
- }
- $this->_db = $dsn['database'];
- }
- return DB_OK;
- }
-
- // }}}
- // {{{ disconnect()
-
- /**
- * Disconnects from the database server
- *
- * @return bool TRUE on success, FALSE on failure
- */
- function disconnect()
- {
- $ret = @mssql_close($this->connection);
- $this->connection = null;
- return $ret;
- }
-
- // }}}
- // {{{ simpleQuery()
-
- /**
- * Sends a query to the database server
- *
- * @param string the SQL query string
- *
- * @return mixed + a PHP result resrouce for successful SELECT queries
- * + the DB_OK constant for other successful queries
- * + a DB_Error object on failure
- */
- function simpleQuery($query)
- {
- $ismanip = $this->_checkManip($query);
- $this->last_query = $query;
- if (!@mssql_select_db($this->_db, $this->connection)) {
- return $this->mssqlRaiseError(DB_ERROR_NODBSELECTED);
- }
- $query = $this->modifyQuery($query);
- if (!$this->autocommit && $ismanip) {
- if ($this->transaction_opcount == 0) {
- $result = @mssql_query('BEGIN TRAN', $this->connection);
- if (!$result) {
- return $this->mssqlRaiseError();
- }
- }
- $this->transaction_opcount++;
- }
- $result = @mssql_query($query, $this->connection);
- if (!$result) {
- return $this->mssqlRaiseError();
- }
- // Determine which queries that should return data, and which
- // should return an error code only.
- return $ismanip ? DB_OK : $result;
- }
-
- // }}}
- // {{{ nextResult()
-
- /**
- * Move the internal mssql result pointer to the next available result
- *
- * @param a valid fbsql result resource
- *
- * @access public
- *
- * @return true if a result is available otherwise return false
- */
- function nextResult($result)
- {
- return @mssql_next_result($result);
- }
-
- // }}}
- // {{{ fetchInto()
-
- /**
- * Places a row from the result set into the given array
- *
- * Formating of the array and the data therein are configurable.
- * See DB_result::fetchInto() for more information.
- *
- * This method is not meant to be called directly. Use
- * DB_result::fetchInto() instead. It can't be declared "protected"
- * because DB_result is a separate object.
- *
- * @param resource $result the query result resource
- * @param array $arr the referenced array to put the data in
- * @param int $fetchmode how the resulting array should be indexed
- * @param int $rownum the row number to fetch (0 = first row)
- *
- * @return mixed DB_OK on success, NULL when the end of a result set is
- * reached or on failure
- *
- * @see DB_result::fetchInto()
- */
- function fetchInto($result, &$arr, $fetchmode, $rownum = null)
- {
- if ($rownum !== null) {
- if (!@mssql_data_seek($result, $rownum)) {
- return null;
- }
- }
- if ($fetchmode & DB_FETCHMODE_ASSOC) {
- $arr = @mssql_fetch_assoc($result);
- if ($this->options['portability'] & DB_PORTABILITY_LOWERCASE && $arr) {
- $arr = array_change_key_case($arr, CASE_LOWER);
- }
- } else {
- $arr = @mssql_fetch_row($result);
- }
- if (!$arr) {
- return null;
- }
- if ($this->options['portability'] & DB_PORTABILITY_RTRIM) {
- $this->_rtrimArrayValues($arr);
- }
- if ($this->options['portability'] & DB_PORTABILITY_NULL_TO_EMPTY) {
- $this->_convertNullArrayValuesToEmpty($arr);
- }
- return DB_OK;
- }
-
- // }}}
- // {{{ freeResult()
-
- /**
- * Deletes the result set and frees the memory occupied by the result set
- *
- * This method is not meant to be called directly. Use
- * DB_result::free() instead. It can't be declared "protected"
- * because DB_result is a separate object.
- *
- * @param resource $result PHP's query result resource
- *
- * @return bool TRUE on success, FALSE if $result is invalid
- *
- * @see DB_result::free()
- */
- function freeResult($result)
- {
- return is_resource($result) ? mssql_free_result($result) : false;
- }
-
- // }}}
- // {{{ numCols()
-
- /**
- * Gets the number of columns in a result set
- *
- * This method is not meant to be called directly. Use
- * DB_result::numCols() instead. It can't be declared "protected"
- * because DB_result is a separate object.
- *
- * @param resource $result PHP's query result resource
- *
- * @return int the number of columns. A DB_Error object on failure.
- *
- * @see DB_result::numCols()
- */
- function numCols($result)
- {
- $cols = @mssql_num_fields($result);
- if (!$cols) {
- return $this->mssqlRaiseError();
- }
- return $cols;
- }
-
- // }}}
- // {{{ numRows()
-
- /**
- * Gets the number of rows in a result set
- *
- * This method is not meant to be called directly. Use
- * DB_result::numRows() instead. It can't be declared "protected"
- * because DB_result is a separate object.
- *
- * @param resource $result PHP's query result resource
- *
- * @return int the number of rows. A DB_Error object on failure.
- *
- * @see DB_result::numRows()
- */
- function numRows($result)
- {
- $rows = @mssql_num_rows($result);
- if ($rows === false) {
- return $this->mssqlRaiseError();
- }
- return $rows;
- }
-
- // }}}
- // {{{ autoCommit()
-
- /**
- * Enables or disables automatic commits
- *
- * @param bool $onoff true turns it on, false turns it off
- *
- * @return int DB_OK on success. A DB_Error object if the driver
- * doesn't support auto-committing transactions.
- */
- function autoCommit($onoff = false)
- {
- // XXX if $this->transaction_opcount > 0, we should probably
- // issue a warning here.
- $this->autocommit = $onoff ? true : false;
- return DB_OK;
- }
-
- // }}}
- // {{{ commit()
-
- /**
- * Commits the current transaction
- *
- * @return int DB_OK on success. A DB_Error object on failure.
- */
- function commit()
- {
- if ($this->transaction_opcount > 0) {
- if (!@mssql_select_db($this->_db, $this->connection)) {
- return $this->mssqlRaiseError(DB_ERROR_NODBSELECTED);
- }
- $result = @mssql_query('COMMIT TRAN', $this->connection);
- $this->transaction_opcount = 0;
- if (!$result) {
- return $this->mssqlRaiseError();
- }
- }
- return DB_OK;
- }
-
- // }}}
- // {{{ rollback()
-
- /**
- * Reverts the current transaction
- *
- * @return int DB_OK on success. A DB_Error object on failure.
- */
- function rollback()
- {
- if ($this->transaction_opcount > 0) {
- if (!@mssql_select_db($this->_db, $this->connection)) {
- return $this->mssqlRaiseError(DB_ERROR_NODBSELECTED);
- }
- $result = @mssql_query('ROLLBACK TRAN', $this->connection);
- $this->transaction_opcount = 0;
- if (!$result) {
- return $this->mssqlRaiseError();
- }
- }
- return DB_OK;
- }
-
- // }}}
- // {{{ affectedRows()
-
- /**
- * Determines the number of rows affected by a data maniuplation query
- *
- * 0 is returned for queries that don't manipulate data.
- *
- * @return int the number of rows. A DB_Error object on failure.
- */
- function affectedRows()
- {
- if ($this->_last_query_manip) {
- $res = @mssql_query('select @@rowcount', $this->connection);
- if (!$res) {
- return $this->mssqlRaiseError();
- }
- $ar = @mssql_fetch_row($res);
- if (!$ar) {
- $result = 0;
- } else {
- @mssql_free_result($res);
- $result = $ar[0];
- }
- } else {
- $result = 0;
- }
- return $result;
- }
-
- // }}}
- // {{{ nextId()
-
- /**
- * Returns the next free id in a sequence
- *
- * @param string $seq_name name of the sequence
- * @param boolean $ondemand when true, the seqence is automatically
- * created if it does not exist
- *
- * @return int the next id number in the sequence.
- * A DB_Error object on failure.
- *
- * @see DB_common::nextID(), DB_common::getSequenceName(),
- * DB_mssql::createSequence(), DB_mssql::dropSequence()
- */
- function nextId($seq_name, $ondemand = true)
- {
- $seqname = $this->getSequenceName($seq_name);
- if (!@mssql_select_db($this->_db, $this->connection)) {
- return $this->mssqlRaiseError(DB_ERROR_NODBSELECTED);
- }
- $repeat = 0;
- do {
- $this->pushErrorHandling(PEAR_ERROR_RETURN);
- $result = $this->query("INSERT INTO $seqname (vapor) VALUES (0)");
- $this->popErrorHandling();
- if ($ondemand && DB::isError($result) &&
- ($result->getCode() == DB_ERROR || $result->getCode() == DB_ERROR_NOSUCHTABLE))
- {
- $repeat = 1;
- $result = $this->createSequence($seq_name);
- if (DB::isError($result)) {
- return $this->raiseError($result);
- }
- } elseif (!DB::isError($result)) {
- $result = $this->query("SELECT IDENT_CURRENT('$seqname')");
- if (DB::isError($result)) {
- /* Fallback code for MS SQL Server 7.0, which doesn't have
- * IDENT_CURRENT. This is *not* safe for concurrent
- * requests, and really, if you're using it, you're in a
- * world of hurt. Nevertheless, it's here to ensure BC. See
- * bug #181 for the gory details.*/
- $result = $this->query("SELECT @@IDENTITY FROM $seqname");
- }
- $repeat = 0;
- } else {
- $repeat = false;
- }
- } while ($repeat);
- if (DB::isError($result)) {
- return $this->raiseError($result);
- }
- $result = $result->fetchRow(DB_FETCHMODE_ORDERED);
- return $result[0];
- }
-
- /**
- * Creates a new sequence
- *
- * @param string $seq_name name of the new sequence
- *
- * @return int DB_OK on success. A DB_Error object on failure.
- *
- * @see DB_common::createSequence(), DB_common::getSequenceName(),
- * DB_mssql::nextID(), DB_mssql::dropSequence()
- */
- function createSequence($seq_name)
- {
- return $this->query('CREATE TABLE '
- . $this->getSequenceName($seq_name)
- . ' ([id] [int] IDENTITY (1, 1) NOT NULL,'
- . ' [vapor] [int] NULL)');
- }
-
- // }}}
- // {{{ dropSequence()
-
- /**
- * Deletes a sequence
- *
- * @param string $seq_name name of the sequence to be deleted
- *
- * @return int DB_OK on success. A DB_Error object on failure.
- *
- * @see DB_common::dropSequence(), DB_common::getSequenceName(),
- * DB_mssql::nextID(), DB_mssql::createSequence()
- */
- function dropSequence($seq_name)
- {
- return $this->query('DROP TABLE ' . $this->getSequenceName($seq_name));
- }
-
- // }}}
- // {{{ escapeSimple()
-
- /**
- * Escapes a string in a manner suitable for SQL Server.
- *
- * @param string $str the string to be escaped
- * @return string the escaped string
- *
- * @see DB_common::quoteSmart()
- * @since Method available since Release 1.6.0
- */
- function escapeSimple($str)
- {
- return str_replace(
- array("'", "\\\r\n", "\\\n"),
- array("''", "\\\\\r\n\r\n", "\\\\\n\n"),
- $str
- );
- }
-
- // }}}
- // {{{ quoteIdentifier()
-
- /**
- * Quotes a string so it can be safely used as a table or column name
- *
- * @param string $str identifier name to be quoted
- *
- * @return string quoted identifier string
- *
- * @see DB_common::quoteIdentifier()
- * @since Method available since Release 1.6.0
- */
- function quoteIdentifier($str)
- {
- return '[' . str_replace(']', ']]', $str) . ']';
- }
-
- // }}}
- // {{{ mssqlRaiseError()
-
- /**
- * Produces a DB_Error object regarding the current problem
- *
- * @param int $errno if the error is being manually raised pass a
- * DB_ERROR* constant here. If this isn't passed
- * the error information gathered from the DBMS.
- *
- * @return object the DB_Error object
- *
- * @see DB_common::raiseError(),
- * DB_mssql::errorNative(), DB_mssql::errorCode()
- */
- function mssqlRaiseError($code = null)
- {
- $message = @mssql_get_last_message();
- if (!$code) {
- $code = $this->errorNative();
- }
- return $this->raiseError($this->errorCode($code, $message),
- null, null, null, "$code - $message");
- }
-
- // }}}
- // {{{ errorNative()
-
- /**
- * Gets the DBMS' native error code produced by the last query
- *
- * @return int the DBMS' error code
- */
- function errorNative()
- {
- $res = @mssql_query('select @@ERROR as ErrorCode', $this->connection);
- if (!$res) {
- return DB_ERROR;
- }
- $row = @mssql_fetch_row($res);
- return $row[0];
- }
-
- // }}}
- // {{{ errorCode()
-
- /**
- * Determines PEAR::DB error code from mssql's native codes.
- *
- * If <var>$nativecode</var> isn't known yet, it will be looked up.
- *
- * @param mixed $nativecode mssql error code, if known
- * @return integer an error number from a DB error constant
- * @see errorNative()
- */
- function errorCode($nativecode = null, $msg = '')
- {
- if (!$nativecode) {
- $nativecode = $this->errorNative();
- }
- if (isset($this->errorcode_map[$nativecode])) {
- if ($nativecode == 3701
- && preg_match('/Cannot drop the index/i', $msg))
- {
- return DB_ERROR_NOT_FOUND;
- }
- return $this->errorcode_map[$nativecode];
- } else {
- return DB_ERROR;
- }
- }
-
- // }}}
- // {{{ tableInfo()
-
- /**
- * Returns information about a table or a result set
- *
- * NOTE: only supports 'table' and 'flags' if <var>$result</var>
- * is a table name.
- *
- * @param object|string $result DB_result object from a query or a
- * string containing the name of a table.
- * While this also accepts a query result
- * resource identifier, this behavior is
- * deprecated.
- * @param int $mode a valid tableInfo mode
- *
- * @return array an associative array with the information requested.
- * A DB_Error object on failure.
- *
- * @see DB_common::tableInfo()
- */
- function tableInfo($result, $mode = null)
- {
- if (is_string($result)) {
- /*
- * Probably received a table name.
- * Create a result resource identifier.
- */
- if (!@mssql_select_db($this->_db, $this->connection)) {
- return $this->mssqlRaiseError(DB_ERROR_NODBSELECTED);
- }
- $id = @mssql_query("SELECT * FROM $result WHERE 1=0",
- $this->connection);
- $got_string = true;
- } elseif (isset($result->result)) {
- /*
- * Probably received a result object.
- * Extract the result resource identifier.
- */
- $id = $result->result;
- $got_string = false;
- } else {
- /*
- * Probably received a result resource identifier.
- * Copy it.
- * Deprecated. Here for compatibility only.
- */
- $id = $result;
- $got_string = false;
- }
-
- if (!is_resource($id)) {
- return $this->mssqlRaiseError(DB_ERROR_NEED_MORE_DATA);
- }
-
- if ($this->options['portability'] & DB_PORTABILITY_LOWERCASE) {
- $case_func = 'strtolower';
- } else {
- $case_func = 'strval';
- }
-
- $count = @mssql_num_fields($id);
- $res = array();
-
- if ($mode) {
- $res['num_fields'] = $count;
- }
-
- for ($i = 0; $i < $count; $i++) {
- if ($got_string) {
- $flags = $this->_mssql_field_flags($result,
- @mssql_field_name($id, $i));
- if (DB::isError($flags)) {
- return $flags;
- }
- } else {
- $flags = '';
- }
-
- $res[$i] = array(
- 'table' => $got_string ? $case_func($result) : '',
- 'name' => $case_func(@mssql_field_name($id, $i)),
- 'type' => @mssql_field_type($id, $i),
- 'len' => @mssql_field_length($id, $i),
- 'flags' => $flags,
- );
- if ($mode & DB_TABLEINFO_ORDER) {
- $res['order'][$res[$i]['name']] = $i;
- }
- if ($mode & DB_TABLEINFO_ORDERTABLE) {
- $res['ordertable'][$res[$i]['table']][$res[$i]['name']] = $i;
- }
- }
-
- // free the result only if we were called on a table
- if ($got_string) {
- @mssql_free_result($id);
- }
- return $res;
- }
-
- // }}}
- // {{{ _mssql_field_flags()
-
- /**
- * Get a column's flags
- *
- * Supports "not_null", "primary_key",
- * "auto_increment" (mssql identity), "timestamp" (mssql timestamp),
- * "unique_key" (mssql unique index, unique check or primary_key) and
- * "multiple_key" (multikey index)
- *
- * mssql timestamp is NOT similar to the mysql timestamp so this is maybe
- * not useful at all - is the behaviour of mysql_field_flags that primary
- * keys are alway unique? is the interpretation of multiple_key correct?
- *
- * @param string $table the table name
- * @param string $column the field name
- *
- * @return string the flags
- *
- * @access private
- * @author Joern Barthel <j_b...@we...>
- */
- function _mssql_field_flags($table, $column)
- {
- static $tableName = null;
- static $flags = array();
-
- if ($table != $tableName) {
-
- $flags = array();
- $tableName = $table;
-
- // get unique and primary keys
- $res = $this->getAll("EXEC SP_HELPINDEX $table", DB_FETCHMODE_ASSOC);
- if (DB::isError($res)) {
- return $res;
- }
-
- foreach ($res as $val) {
- $keys = explode(', ', $val['index_keys']);
-
- if (sizeof($keys) > 1) {
- foreach ($keys as $key) {
- $this->_add_flag($flags[$key], 'multiple_key');
- }
- }
-
- if (strpos($val['index_description'], 'primary key')) {
- foreach ($keys as $key) {
- $this->_add_flag($flags[$key], 'primary_key');
- }
- } elseif (strpos($val['index_description'], 'unique')) {
- foreach ($keys as $key) {
- $this->_add_flag($flags[$key], 'unique_key');
- }
- }
- }
-
- // get auto_increment, not_null and timestamp
- $res = $this->getAll("EXEC SP_COLUMNS $table", DB_FETCHMODE_ASSOC);
- if (DB::isError($res)) {
- return $res;
- }
-
- foreach ($res as $val) {
- $val = array_change_key_case($val, CASE_LOWER);
- if ($val['nullable'] == '0') {
- $this->_add_flag($flags[$val['column_name']], 'not_null');
- }
- if (strpos($val['type_name'], 'identity')) {
- $this->_add_flag($flags[$val['column_name']], 'auto_increment');
- }
- if (strpos($val['type_name'], 'timestamp')) {
- $this->_add_flag($flags[$val['column_name']], 'timestamp');
- }
- }
- }
-
- if (array_key_exists($column, $flags)) {
- return(implode(' ', $flags[$column]));
- }
- return '';
- }
-
- // }}}
- // {{{ _add_flag()
-
- /**
- * Adds a string to the flags array if the flag is not yet in there
- * - if there is no flag present the array is created
- *
- * @param array &$array the reference to the flag-array
- * @param string $value the flag value
- *
- * @return void
- *
- * @access private
- * @author Joern Barthel <j_b...@we...>
- */
- function _add_flag(&$array, $value)
- {
- if (!is_array($array)) {
- $array = array($value);
- } elseif (!in_array($value, $array)) {
- array_push($array, $value);
- }
- }
-
- // }}}
- // {{{ getSpecialQuery()
-
- /**
- * Obtains the query string needed for listing a given type of objects
- *
- * @param string $type the kind of objects you want to retrieve
- *
- * @return string the SQL query string or null if the driver doesn't
- * support the object type requested
- *
- * @access protected
- * @see DB_common::getListOf()
- */
- function getSpecialQuery($type)
- {
- switch ($type) {
- case 'tables':
- return "SELECT name FROM sysobjects WHERE type = 'U'"
- . ' ORDER BY name';
- case 'views':
- return "SELECT name FROM sysobjects WHERE type = 'V'";
- default:
- return null;
- }
- }
-
- // }}}
-}
-
-/*
- * Local variables:
- * tab-width: 4
- * c-basic-offset: 4
- * End:
- */
-
-?>
Deleted: trunk/lib/pear/DB/mysql.php
===================================================================
--- trunk/lib/pear/DB/mysql.php	2023年07月14日 11:54:56 UTC (rev 11057)
+++ trunk/lib/pear/DB/mysql.php	2023年07月18日 10:28:12 UTC (rev 11058)
@@ -1,1034 +0,0 @@
-<?php
-
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * The PEAR DB driver for PHP's mysql extension
- * for interacting with MySQL databases
- *
- * PHP version 5
- *
- * LICENSE: This source file is subject to version 3.0 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_0.txt. If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to li...@ph... so we can mail you a copy immediately.
- *
- * @category Database
- * @package DB
- * @author Stig Bakken <ss...@ph...>
- * @author Daniel Convissor <da...@ph...>
- * @copyright 1997-2007 The PHP Group
- * @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id$
- * @link http://pear.php.net/package/DB
- */
-
-/**
- * Obtain the DB_common class so it can be extended from
- */
-require_once 'lib/pear/DB/common.php';
-
-/**
- * The methods PEAR DB uses to interact with PHP's mysql extension
- * for interacting with MySQL databases
- *
- * These methods overload the ones declared in DB_common.
- *
- * @category Database
- * @package DB
- * @author Stig Bakken <ss...@ph...>
- * @author Daniel Convissor <da...@ph...>
- * @copyright 1997-2007 The PHP Group
- * @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.10.0
- * @link http://pear.php.net/package/DB
- */
-class DB_mysql extends DB_common
-{
- // {{{ properties
-
- /**
- * The DB driver type (mysql, oci8, odbc, etc.)
- * @var string
- */
- var $phptype = 'mysql';
-
- /**
- * The database syntax variant to be used (db2, access, etc.), if any
- * @var string
- */
- var $dbsyntax = 'mysql';
-
- /**
- * The capabilities of this DB implementation
- *
- * The 'new_link' element contains the PHP version that first provided
- * new_link support for this DBMS. Contains false if it's unsupported.
- *
- * Meaning of the 'limit' element:
- * + 'emulate' = emulate with fetch row by number
- * + 'alter' = alter the query
- * + false = skip rows
- *
- * @var array
- */
- var $features = array(
- 'limit' => 'alter',
- 'new_link' => '4.2.0',
- 'numrows' => true,
- 'pconnect' => true,
- 'prepare' => false,
- 'ssl' => false,
- 'transactions' => true,
- );
-
- /**
- * A mapping of native error codes to DB error codes
- * @var array
- */
- var $errorcode_map = array(
- 1004 => DB_ERROR_CANNOT_CREATE,
- 1005 => DB_ERROR_CANNOT_CREATE,
- 1006 => DB_ERROR_CANNOT_CREATE,
- 1007 => DB_ERROR_ALREADY_EXISTS,
- 1008 => DB_ERROR_CANNOT_DROP,
- 1022 => DB_ERROR_ALREADY_EXISTS,
- 1044 => DB_ERROR_ACCESS_VIOLATION,
- 1046 => DB_ERROR_NODBSELECTED,
- 1048 => DB_ERROR_CONSTRAINT,
- 1049 => DB_ERROR_NOSUCHDB,
- 1050 => DB_ERROR_ALREADY_EXISTS,
- 1051 => DB_ERROR_NOSUCHTABLE,
- 1054 => DB_ERROR_NOSUCHFIELD,
- 1061 => DB_ERROR_ALREADY_EXISTS,
- 1062 => DB_ERROR_ALREADY_EXISTS,
- 1064 => DB_ERROR_SYNTAX,
- 1091 => DB_ERROR_NOT_FOUND,
- 1100 => DB_ERROR_NOT_LOCKED,
- 1136 => DB_ERROR_VALUE_COUNT_ON_ROW,
- 1142 => DB_ERROR_ACCESS_VIOLATION,
- 1146 => DB_ERROR_NOSUCHTABLE,
- 1216 => DB_ERROR_CONSTRAINT,
- 1217 => DB_ERROR_CONSTRAINT,
- 1356 => DB_ERROR_DIVZERO,
- 1451 => DB_ERROR_CONSTRAINT,
- 1452 => DB_ERROR_CONSTRAINT,
- );
-
- /**
- * The raw database connection created by PHP
- * @var resource
- */
- var $connection;
-
- /**
- * The DSN information for connecting to a database
- * @var array
- */
- var $dsn = array();
-
-
- /**
- * Should data manipulation queries be committed automatically?
- * @var bool
- * @access private
- */
- var $autocommit = true;
-
- /**
- * The quantity of transactions begun
- *
- * {@internal While this is private, it can't actually be designated
- * private in PHP 5 because it is directly accessed in the test suite.}}
- *
- * @var integer
- * @access private
- */
- var $transaction_opcount = 0;
-
- /**
- * The database specified in the DSN
- *
- * It's a fix to allow calls to different databases in the same script.
- *
- * @var string
- * @access private
- */
- var $_db = '';
-
-
- // }}}
- // {{{ constructor
-
- /**
- * This constructor calls <kbd>parent::__construct()</kbd>
- *
- * @return void
- */
- function __construct()
- {
- parent::__construct();
- }
-
- // }}}
- // {{{ connect()
-
- /**
- * Connect to the database server, log in and open the database
- *
- * Don't call this method directly. Use DB::connect() instead.
- *
- * PEAR DB's mysql driver supports the following extra DSN options:
- * + new_link If set to true, causes subsequent calls to connect()
- * to return a new connection link instead of the
- * existing one. WARNING: this is not portable to
- * other DBMS's. Available since PEAR DB 1.7.0.
- * + client_flags Any combination of MYSQL_CLIENT_* constants.
- * Only used if PHP is at version 4.3.0 or greater.
- * Available since PEAR DB 1.7.0.
- *
- * @param array $dsn the data source name
- * @param bool $persistent should the connection be persistent?
- *
- * @return int DB_OK on success. A DB_Error object on failure.
- */
- function connect($dsn, $persistent = false)
- {
- if (!PEAR::loadExtension('mysql')) {
- return $this->raiseError(DB_ERROR_EXTENSION_NOT_FOUND);
- }
-
- $this->dsn = $dsn;
- if ($dsn['dbsyntax']) {
- $this->dbsyntax = $dsn['dbsyntax'];
- }
-
- $params = array();
- if ($dsn['protocol'] && $dsn['protocol'] == 'unix') {
- $params[0] = ':' . $dsn['socket'];
- } else {
- $params[0] = $dsn['hostspec'] ? $dsn['hostspec']
- : 'localhost';
- if ($dsn['port']) {
- $params[0] .= ':' . $dsn['port'];
- }
- }
- $params[] = $dsn['username'] ? $dsn['username'] : null;
- $params[] = $dsn['password'] ? $dsn['password'] : null;
-
- if (!$persistent) {
- if (isset($dsn['new_link'])
- && ($dsn['new_link'] == 'true' || $dsn['new_link'] === true))
- {
- $params[] = true;
- } else {
- $params[] = false;
- }
- }
- if (version_compare(phpversion(), '4.3.0', '>=')) {
- $params[] = isset($dsn['client_flags'])
- ? $dsn['client_flags'] : null;
- }
-
- $connect_function = $persistent ? 'mysql_pconnect' : 'mysql_connect';
-
- $ini = ini_get('track_errors');
- $php_errormsg = '';
- if ($ini) {
- $this->connection = @call_user_func_array($connect_function,
- $params);
- } else {
- @ini_set('track_errors', 1);
- $this->connection = @call_user_func_array($connect_function,
- $params);
- @ini_set('track_errors', $ini);
- }
-
- if (!$this->connection) {
- if (($err = @mysql_error()) != '') {
- return $this->raiseError(DB_ERROR_CONNECT_FAILED,
- null, null, null, 
- $err);
- } else {
- return $this->raiseError(DB_ERROR_CONNECT_FAILED,
- null, null, null,
- $php_errormsg);
- }
- }
-
- if ($dsn['database']) {
- if (!@mysql_select_db($dsn['database'], $this->connection)) {
- return $this->mysqlRaiseError();
- }
- $this->_db = $dsn['database'];
- }
-
- return DB_OK;
- }
-
- // }}}
- // {{{ disconnect()
-
- /**
- * Disconnects from the database server
- *
- * @return bool TRUE on success, FALSE on failure
- */
- function disconnect()
- {
- $ret = @mysql_close($this->connection);
- $this->connection = null;
- return $ret;
- }
-
- // }}}
- // {{{ simpleQuery()
-
- /**
- * Sends a query to the database server
- *
- * Generally uses mysql_query(). If you want to use
- * mysql_unbuffered_query() set the "result_buffering" option to 0 using
- * setOptions(). This option was added in Release 1.7.0.
- *
- * @param string the SQL query string
- *
- * @return mixed + a PHP result resrouce for successful SELECT queries
- * + the DB_OK constant for other successful queries
- * + a DB_Error object on failure
- */
- function simpleQuery($query)
- {
- $ismanip = $this->_checkManip($query);
- $this->last_query = $query;
- $query = $this->modifyQuery($query);
- if ($this->_db) {
- if (!@mysql_select_db($this->_db, $this->connection)) {
- return $this->mysqlRaiseError(DB_ERROR_NODBSELECTED);
- }
- }
- if (!$this->autocommit && $ismanip) {
- if ($this->transaction_opcount == 0) {
- $result = @mysql_query('SET AUTOCOMMIT=0', $this->connection);
- $result = @mysql_query('BEGIN', $this->connection);
- if (!$result) {
- return $this->mysqlRaiseError();
- }
- }
- $this->transaction_opcount++;
- }
- if (!$this->options['result_buffering']) {
- $result = @mysql_unbuffered_query($query, $this->connection);
- } else {
- $result = @mysql_query($query, $this->connection);
- }
- if (!$result) {
- return $this->mysqlRaiseError();
- }
- if (is_resource($result)) {
- return $result;
- }
- return DB_OK;
- }
-
- // }}}
- // {{{ nextResult()
-
- /**
- * Move the internal mysql result pointer to the next available result
- *
- * This method has not been implemented yet.
- *
- * @param a valid sql result resource
- *
- * @return false
- */
- function nextResult($result)
- {
- return false;
- }
-
- // }}}
- // {{{ fetchInto()
-
- /**
- * Places a row from the result set into the given array
- *
- * Formating of the array and the data therein are configurable.
- * See DB_result::fetchInto() for more information.
- *
- * This method is not meant to be called directly. Use
- * DB_result::fetchInto() instead. It can't be declared "protected"
- * because DB_result is a separate object.
- *
- * @param resource $result the query result resource
- * @param array $arr the referenced array to put the data in
- * @param int $fetchmode how the resulting array should be indexed
- * @param int $rownum the row number to fetch (0 = first row)
- *
- * @return mixed DB_OK on success, NULL when the end of a result set is
- * reached or on failure
- *
- * @see DB_result::fetchInto()
- */
- function fetchInto($result, &$arr, $fetchmode, $rownum = null)
- {
- if ($rownum !== null) {
- if (!@mysql_data_seek($result, $rownum)) {
- return null;
- }
- }
- if ($fetchmode & DB_FETCHMODE_ASSOC) {
- $arr = @mysql_fetch_array($result, MYSQL_ASSOC);
- if ($this->options['portability'] & DB_PORTABILITY_LOWERCASE && $arr) {
- $arr = array_change_key_case($arr, CASE_LOWER);
- }
- } else {
- $arr = @mysql_fetch_row($result);
- }
- if (!$arr) {
- return null;
- }
- if ($this->options['portability'] & DB_PORTABILITY_RTRIM) {
- /*
- * Even though this DBMS already trims output, we do this because
- * a field might have intentional whitespace at the end that
- * gets removed by DB_PORTABILITY_RTRIM under another driver.
- */
- $this->_rtrimArrayValues($arr);
- }
- if ($this->options['portability'] & DB_PORTABILITY_NULL_TO_EMPTY) {
- $this->_convertNullArrayValuesToEmpty($arr);
- }
- return DB_OK;
- }
-
- // }}}
- // {{{ freeResult()
-
- /**
- * Deletes the result set and frees the memory occupied by the result set
- *
- * This method is not meant to be called directly. Use
- * DB_result::free() instead. It can't be declared "protected"
- * because DB_result is a separate object.
- *
- * @param resource $result PHP's query result resource
- *
- * @return bool TRUE on success, FALSE if $result is invalid
- *
- * @see DB_result::free()
- */
- function freeResult($result)
- {
- return is_resource($result) ? mysql_free_result($result) : false;
- }
-
- // }}}
- // {{{ numCols()
-
- /**
- * Gets the number of columns in a result set
- *
- * This method is not meant to be called directly. Use
- * DB_result::numCols() instead. It can't be declared "protected"
- * because DB_result is a separate object.
- *
- * @param resource $result PHP's query result resource
- *
- * @return int the number of columns. A DB_Error object on failure.
- *
- * @see DB_result::numCols()
- */
- function numCols($result)
- {
- $cols = @mysql_num_fields($result);
- if (!$cols) {
- return $this->mysqlRaiseError();
- }
- return $cols;
- }
-
- // }}}
- // {{{ numRows()
-
- /**
- * Gets the number of rows in a result set
- *
- * This method is not meant to be called directly. Use
- * DB_result::numRows() instead. It can't be declared "protected"
- * because DB_result is a separate object.
- *
- * @param resource $result PHP's query result resource
- *
- * @return int the number of rows. A DB_Error object on failure.
- *
- * @see DB_result::numRows()
- */
- function numRows($result)
- {
- $rows = @mysql_num_rows($result);
- if ($rows === null) {
- return $this->mysqlRaiseError();
- }
- return $rows;
- }
-
- // }}}
- // {{{ autoCommit()
-
- /**
- * Enables or disables automatic commits
- *
- * @param bool $onoff true turns it on, false turns it off
- *
- * @return int DB_OK on success. A DB_Error object if the driver
- * doesn't support auto-committing transactions.
- */
- function autoCommit($onoff = false)
- {
- // XXX if $this->transaction_opcount > 0, we should probably
- // issue a warning here.
- $this->autocommit = $onoff ? true : false;
- return DB_OK;
- }
-
- // }}}
- // {{{ commit()
-
- /**
- * Commits the current transaction
- *
- * @return int DB_OK on success. A DB_Error object on failure.
- */
- function commit()
- {
- if ($this->transaction_opcount > 0) {
- if ($this->_db) {
- if (!@mysql_select_db($this->_db, $this->connection)) {
- return $this->mysqlRaiseError(DB_ERROR_NODBSELECTED);
- }
- }
- $result = @mysql_query('COMMIT', $this->connection);
- $result = @mysql_query('SET AUTOCOMMIT=1', $this->connection);
- $this->transaction_opcount = 0;
- if (!$result) {
- return $this->mysqlRaiseError();
- }
- }
- return DB_OK;
- }
-
- // }}}
- // {{{ rollback()
-
- /**
- * Reverts the current transaction
- *
- * @return int DB_OK on success. A DB_Error object on failure.
- */
- function rollback()
- {
- if ($this->transaction_opcount > 0) {
- if ($this->_db) {
- if (!@mysql_select_db($this->_db, $this->connection)) {
- return $this->mysqlRaiseError(DB_ERROR_NODBSELECTED);
- }
- }
- $result = @mysql_query('ROLLBACK', $this->connection);
- $result = @mysql_query('SET AUTOCOMMIT=1', $this->connection);
- $this->transaction_opcount = 0;
- if (!$result) {
- return $this->mysqlRaiseError();
- }
- }
- return DB_OK;
- }
-
- // }}}
- // {{{ affectedRows()
-
- /**
- * Determines the number of rows affected by a data maniuplation query
- *
- * 0 is returned for queries that don't manipulate data.
- *
- * @return int the number of rows. A DB_Error object on failure.
- */
- function affectedRows()
- {
- if ($this->_last_query_manip) {
- return @mysql_affected_rows($this->connection);
- } else {
- return 0;
- }
- }
-
- // }}}
- // {{{ nextId()
-
- /**
- * Returns the next free id in a sequence
- *
- * @param string $seq_name name of the sequence
- * @param boolean $ondemand when true, the seqence is automatically
- * created if it does not exist
- *
- * @return int the next id number in the sequence.
- * A DB_Error object on failure.
- *
- * @see DB_common::nextID(), DB_common::getSequenceName(),
- * DB_mysql::createSequence(), DB_mysql::dropSequence()
- */
- function nextId($seq_name, $ondemand = true)
- {
- $seqname = $this->getSequenceName($seq_name);
- do {
- $repeat = 0;
- $this->pushErrorHandling(PEAR_ERROR_RETURN);
- $result = $this->query("UPDATE ${seqname} ".
- 'SET id=LAST_INSERT_ID(id+1)');
- $this->popErrorHandling();
- if ($result === DB_OK) {
- // COMMON CASE
- $id = @mysql_insert_id($this->connection);
- if ($id != 0) {
- return $id;
- }
- // EMPTY SEQ TABLE
- // Sequence table must be empty for some reason, so fill
- // it and return 1 and obtain a user-level lock
- $result = $this->getOne("SELECT GET_LOCK('${seqname}_lock',10)");
- if (DB::isError($result)) {
- return $this->raiseError($result);
- }
- if ($result == 0) {
- // Failed to get the lock
- return $this->mysqlRaiseError(DB_ERROR_NOT_LOCKED);
- }
-
- // add the default value
- $result = $this->query("REPLACE INTO ${seqname} (id) VALUES (0)");
- if (DB::isError($result)) {
- return $this->raiseError($result);
- }
-
- // Release the lock
- $result = $this->getOne('SELECT RELEASE_LOCK('
- . "'${seqname}_lock')");
- if (DB::isError($result)) {
- return $this->raiseError($result);
- }
- // We know what the result will be, so no need to try again
- return 1;
-
- } elseif ($ondemand && DB::isError($result) &&
- $result->getCode() == DB_ERROR_NOSUCHTABLE)
- {
- // ONDEMAND TABLE CREATION
- $result = $this->createSequence($seq_name);
- if (DB::isError($result)) {
- return $this->raiseError($result);
- } else {
- $repeat = 1;
- }
-
- } elseif (DB::isError($result) &&
- $result->getCode() == DB_ERROR_ALREADY_EXISTS)
- {
- // BACKWARDS COMPAT
- // see _BCsequence() comment
- $result = $this->_BCsequence($seqname);
- if (DB::isError($result)) {
- return $this->raiseError($result);
- }
- $repeat = 1;
- }
- } while ($repeat);
-
- return $this->raiseError($result);
- }
-
- // }}}
- // {{{ createSequence()
-
- /**
- * Creates a new sequence
- *
- * @param string $seq_name name of the new sequence
- *
- * @return int DB_OK on success. A DB_Error object on failure.
- *
- * @see DB_common::createSequence(), DB_common::getSequenceName(),
- * DB_mysql::nextID(), DB_mysql::dropSequence()
- */
- function createSequence($seq_name)
- {
- $seqname = $this->getSequenceName($seq_name);
- $res = $this->query('CREATE TABLE ' . $seqname
- . ' (id INTEGER UNSIGNED AUTO_INCREMENT NOT NULL,'
- . ' PRIMARY KEY(id))');
- if (DB::isError($res)) {
- return $res;
- }
- // insert yields value 1, nextId call will generate ID 2
- $res = $this->query("INSERT INTO ${seqname} (id) VALUES (0)");
- if (DB::isError($res)) {
- return $res;
- }
- // so reset to zero
- return $this->query("UPDATE ${seqname} SET id = 0");
- }
-
- // }}}
- // {{{ dropSequence()
-
- /**
- * Deletes a sequence
- *
- * @param string $seq_name name of the sequence to be deleted
- *
- * @return int DB_OK on success. A DB_Error object on failure.
- *
- * @see DB_common::dropSequence(), DB_common::getSequenceName(),
- * DB_mysql::nextID(), DB_mysql::createSequence()
- */
- function dropSequence($seq_name)
- {
- return $this->query('DROP TABLE ' . $this->getSequenceName($seq_name));
- }
-
- // }}}
- // {{{ _BCsequence()
-
- /**
- * Backwards compatibility with old sequence emulation implementation
- * (clean up the dupes)
- *
- * @param string $seqname the sequence name to clean up
- *
- * @return bool true on success. A DB_Error object on failure.
- *
- * @access private
- */
- function _BCsequence($seqname)
- {
- // Obtain a user-level lock... this will release any previous
- // application locks, but unlike LOCK TABLES, it does not abort
- // the current transaction and is much less frequently used.
- $result = $this->getOne("SELECT GET_LOCK('${seqname}_lock',10)");
- if (DB::isError($result)) {
- return $result;
- }
- if ($result == 0) {
- // Failed to get the lock, can't do the conversion, bail
- // with a DB_ERROR_NOT_LOCKED error
- return $this->mysqlRaiseError(DB_ERROR_NOT_LOCKED);
- }
-
- $highest_id = $this->getOne("SELECT MAX(id) FROM ${seqname}");
- if (DB::isError($highest_id)) {
- return $highest_id;
- }
- // This should kill all rows except the highest
- // We should probably do something if $highest_id isn't
- // numeric, but I'm at a loss as how to handle that...
- $result = $this->query('DELETE FROM ' . $seqname
- . " WHERE id <> $highest_id");
- if (DB::isError($result)) {
- return $result;
- }
-
- // If another thread has been waiting for this lock,
- // it will go thru the above procedure, but will have no
- // real effect
- $result = $this->getOne("SELECT RELEASE_LOCK('${seqname}_lock')");
- if (DB::isError($result)) {
- return $result;
- }
- return true;
- }
-
- // }}}
- // {{{ quoteIdentifier()
-
- /**
- * Quotes a string so it can be safely used as a table or column name
- * (WARNING: using names that require this is a REALLY BAD IDEA)
- *
- * WARNING: Older versions of MySQL can't handle the backtick
- * character (<kbd>`</kbd>) in table or column names.
- *
- * @param string $str identifier name to be quoted
- *
- * @return string quoted identifier string
- *
- * @see DB_common::quoteIdentifier()
- * @since Method available since Release 1.6.0
- */
- function quoteIdentifier($str)
- {
- return '`' . str_replace('`', '``', $str) . '`';
- }
-
- // }}}
- // {{{ escapeSimple()
-
- /**
- * Escapes a string according to the current DBMS's standards
- *
- * @param string $str the string to be escaped
- *
- * @return string the escaped string
- *
- * @see DB_common::quoteSmart()
- * @since Method available since Release 1.6.0
- */
- function escapeSimple($str)
- {
- if (function_exists('mysql_real_escape_string')) {
- return @mysql_real_escape_string($str, $this->connection);
- } else {
- return @mysql_escape_string($str);
- }
- }
-
- // }}}
- // {{{ modifyQuery()
-
- /**
- * Changes a query string for various DBMS specific reasons
- *
- * This little hack lets you know how many rows were deleted
- * when running a "DELETE FROM table" query. Only implemented
- * if the DB_PORTABILITY_DELETE_COUNT portability option is on.
- *
- * @param string $query the query string to modify
- *
- * @return string the modified query string
- *
- * @access protected
- * @see DB_common::setOption()
- */
- function modifyQuery($query)
- {
- if ($this->options['portability'] & DB_PORTABILITY_DELETE_COUNT) {
- // "DELETE FROM table" gives 0 affected rows in MySQL.
- // This little hack lets you know how many rows were deleted.
- if (preg_match('/^\s*DELETE\s+FROM\s+(\S+)\s*$/i', $query)) {
- $query = preg_replace('/^\s*DELETE\s+FROM\s+(\S+)\s*$/',
- 'DELETE FROM 1円 WHERE 1=1', $query);
- }
- }
- return $query;
- }
-
- // }}}
- // {{{ modifyLimitQuery()
-
- /**
- * Adds LIMIT clauses to a query string according to current DBMS standards
- *
- * @param string $query the query to modify
- * @param int $from the row to start to fetching (0 = the first row)
- * @param int $count the numbers of rows to fetch
- * @param mixed $params array, string or numeric data to be used in
- * execution of the statement. Quantity of items
- * passed must match quantity of placeholders in
- * query: meaning 1 placeholder for non-array
- * parameters or 1 placeholder per array element.
- *
- * @return string the query string with LIMIT clauses added
- *
- * @access protected
- */
- function modifyLimitQuery($query, $from, $count, $params = array())
- {
- if (DB::isManip($query) || $this->_next_query_manip) {
- return $query . " LIMIT $count";
- } else {
- return $query . " LIMIT $from, $count";
- }
- }
-
- // }}}
- // {{{ mysqlRaiseError()
-
- /**
- * Produces a DB_Error object regarding the current problem
- *
- * @param int $errno if the error is being manually raised pass a
- * DB_ERROR* constant here. If this isn't passed
- * the error information gathered from the DBMS.
- *
- * @return object the DB_Error object
- *
- * @see DB_common::raiseError(),
- * DB_mysql::errorNative(), DB_common::errorCode()
- */
- function mysqlRaiseError($errno = null)
- {
- if ($errno === null) {
- if ($this->options['portability'] & DB_PORTABILITY_ERRORS) {
- $this->errorcode_map[1022] = DB_ERROR_CONSTRAINT;
- $this->errorcode_map[1048] = DB_ERROR_CONSTRAINT_NOT_NULL;
- $this->errorcode_map[1062] = DB_ERROR_CONSTRAINT;
- } else {
- // Doing this in case mode changes during runtime.
- $this->errorcode_map[1022] = DB_ERROR_ALREADY_EXISTS;
- $this->errorcode_map[1048] = DB_ERROR_CONSTRAINT;
- $this->errorcode_map[1062] = DB_ERROR_ALREADY_EXISTS;
- }
- $errno = $this->err...
 
[truncated message content]
From: <var...@us...> - 2023年07月14日 11:54:57
Revision: 11057
 http://sourceforge.net/p/phpwiki/code/11057
Author: vargenau
Date: 2023年07月14日 11:54:56 +0000 (2023年7月14日)
Log Message:
-----------
lib: PHP 7: add types for function arguments and return
Modified Paths:
--------------
 trunk/lib/Template.php
 trunk/lib/stdlib.php
Modified: trunk/lib/Template.php
===================================================================
--- trunk/lib/Template.php	2023年07月14日 11:37:03 UTC (rev 11056)
+++ trunk/lib/Template.php	2023年07月14日 11:54:56 UTC (rev 11057)
@@ -37,7 +37,7 @@
 * @param WikiRequest $request
 * @param array $args
 */
- public function __construct(string $name, WikiRequest &$request, array $args = array())
+ public function __construct(string $name, &$request, array $args = array())
 {
 global $WikiTheme;
 
Modified: trunk/lib/stdlib.php
===================================================================
--- trunk/lib/stdlib.php	2023年07月14日 11:37:03 UTC (rev 11056)
+++ trunk/lib/stdlib.php	2023年07月14日 11:54:56 UTC (rev 11057)
@@ -308,7 +308,7 @@
 * @param string $text The text.
 * @return XmlContent.
 */
-function PossiblyGlueIconToText(string $proto_or_url, string $text): XmlContent
+function PossiblyGlueIconToText(string $proto_or_url, string $text)
 {
 global $request, $WikiTheme;
 if ($request->getPref('noLinkIcons')) {
@@ -402,7 +402,7 @@
 * @param string $linktext Text to be displayed as link.
 * @return HtmlElement HtmlElement object that contains data to construct an html link.
 */
-function LinkURL(string $url, string $linktext = ''): HtmlElement
+function LinkURL(string $url, string $linktext = '')
 {
 // FIXME: Is this needed (or sufficient?)
 if (!IsSafeURL($url)) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <var...@us...> - 2023年07月14日 11:37:06
Revision: 11056
 http://sourceforge.net/p/phpwiki/code/11056
Author: vargenau
Date: 2023年07月14日 11:37:03 +0000 (2023年7月14日)
Log Message:
-----------
lib/BlockParser.php: PHP 7: add types for function arguments and return
Modified Paths:
--------------
 trunk/lib/BlockParser.php
 trunk/lib/PageList.php
 trunk/lib/Template.php
 trunk/lib/WysiwygEdit/Wikiwyg.php
 trunk/lib/editpage.php
 trunk/lib/stdlib.php
Modified: trunk/lib/BlockParser.php
===================================================================
--- trunk/lib/BlockParser.php	2023年07月14日 11:23:14 UTC (rev 11055)
+++ trunk/lib/BlockParser.php	2023年07月14日 11:37:03 UTC (rev 11056)
@@ -83,7 +83,7 @@
 * "(...)". (Anonymous groups, like "(?:...)", as well as
 * look-ahead and look-behind assertions are fine.)
 */
- public function __construct($regexps)
+ public function __construct(array $regexps)
 {
 $this->_regexps = $regexps;
 $this->_re = "/((" . join(")|(", $regexps) . "))/Ax";
@@ -130,7 +130,7 @@
 *
 * @return AnchoredRegexpSet_match|bool An AnchoredRegexpSet_match object, or false if no match.
 */
- public function nextMatch($text, $prevMatch)
+ public function nextMatch(string $text, $prevMatch)
 {
 // Try to find match at same position.
 $regexps = array_slice($this->_regexps, $prevMatch->regexp_ind + 1);
@@ -175,7 +175,7 @@
 $this->_atSpace = false;
 }
 
- public function skipSpace()
+ public function skipSpace(): bool
 {
 $nlines = count($this->_lines);
 while (1) {
@@ -215,7 +215,7 @@
 $this->_pos++;
 }
 
- public function getPos()
+ public function getPos(): array
 {
 return array($this->_pos, $this->_atSpace);
 }
@@ -225,12 +225,12 @@
 list($this->_pos, $this->_atSpace) = $pos;
 }
 
- public function getPrefix()
+ public function getPrefix(): string
 {
 return '';
 }
 
- public function getDepth()
+ public function getDepth(): int
 {
 return 0;
 }
@@ -265,7 +265,7 @@
 * @param string $prefix_re
 * @param string $initial_prefix
 */
- public function __construct(&$input, $prefix_re, $initial_prefix = '')
+ public function __construct(&$input, string $prefix_re, string $initial_prefix = '')
 {
 $this->_input = &$input;
 $this->_prefix_pat = "/$prefix_re|\\s*\$/Ax";
@@ -285,7 +285,7 @@
 }
 }
 
- public function skipSpace()
+ public function skipSpace(): bool
 {
 // In contrast to the case for top-level blocks,
 // for sub-blocks, there never appears to be any trailing space.
@@ -330,7 +330,7 @@
 $this->nextLine();
 }
 
- public function getPos()
+ public function getPos(): array
 {
 return array($this->_line, $this->_atSpace, $this->_input->getPos());
 }
@@ -342,7 +342,7 @@
 $this->_input->setPos($pos[2]);
 }
 
- public function getPrefix()
+ public function getPrefix(): string
 {
 assert($this->_line !== false);
 $line = $this->_input->currentLine();
@@ -350,7 +350,7 @@
 return substr($line, 0, strlen($line) - strlen($this->_line));
 }
 
- public function getDepth()
+ public function getDepth(): int
 {
 return $this->_input->getDepth() + 1;
 }
@@ -511,7 +511,7 @@
 *
 * We go to this trouble so that "tight" lists look somewhat reasonable
 * in older (non-CSS) browsers. (If you don't do this, then, without
- * CSS, you only get "loose" lists.
+ * CSS, you only get "loose" lists).
 */
 class TightSubBlock extends SubBlock
 {
@@ -563,7 +563,7 @@
 public $_re = '\ +(?=\S)';
 protected $_element;
 
- public function _match(&$input, $m)
+ public function _match(&$input, $m): bool
 {
 $this->_depth = strlen($m->match);
 $indent = sprintf("\\ {%d}", $this->_depth);
@@ -602,7 +602,7 @@
 public $_content = array();
 public $_tag; //'ol' or 'ul'
 
- public function _match(&$input, $m)
+ public function _match(&$input, $m): bool
 {
 // A list as the first content in a list is not allowed.
 // E.g.:
@@ -659,7 +659,7 @@
 $this->_re = '\ {0,4}\S.*(?<!' . ESCAPE_CHAR . '):\s*$';
 }
 
- public function _match(&$input, $m)
+ public function _match(&$input, $m): bool
 {
 if (!($p = $this->_do_match($input, $m))) {
 return false;
@@ -807,7 +807,7 @@
 return $ncols;
 }
 
- private function IsASubtable($item)
+ private function IsASubtable($item): bool
 {
 return is_a($item, 'HtmlElement')
 && $item->getTag() == 'table'
@@ -825,7 +825,7 @@
 return $this->_ncols;
 }
 
- public function nrows()
+ public function nrows(): int
 {
 return $this->_nrows;
 }
@@ -879,7 +879,7 @@
 $this->_re = '\ {0,4} (?:\S.*)? (?<!' . ESCAPE_CHAR . ') \| \s* $';
 }
 
- public function _match(&$input, $m)
+ public function _match(&$input, $m): bool
 {
 if (!($p = $this->_do_match($input, $m))) {
 return false;
@@ -920,7 +920,7 @@
 | ; .*? :
 ) .*? (?=\S)';
 
- public function _match(&$input, $m)
+ public function _match(&$input, $m): bool
 {
 // FIXME:
 if (!preg_match('/[*#;]*$/A', $input->getPrefix())) {
@@ -975,7 +975,7 @@
 {
 public $_re = '<(?:pre|verbatim|nowiki|noinclude|includeonly)>';
 
- public function _match(&$input, $m)
+ public function _match(&$input, $m): bool
 {
 $endtag = '</' . substr($m->match, 1);
 $text = array();
@@ -1021,7 +1021,7 @@
 {
 public $_re = '<<<';
 
- public function _match(&$input, $m)
+ public function _match(&$input, $m): bool
 {
 $endtag = '>>>';
 $text = array();
@@ -1048,7 +1048,7 @@
 {
 public $_re = '{{{';
 
- public function _match(&$input, $m)
+ public function _match(&$input, $m): bool
 {
 $endtag = '}}}';
 $text = array();
@@ -1082,7 +1082,7 @@
 *
 * should all work.
 */
- public function _match(&$input, $m)
+ public function _match(&$input, $m): bool
 {
 $pos = $input->getPos();
 $pi = $m->match . $m->postmatch;
@@ -1105,7 +1105,7 @@
 // public $_re = '<<(?!\S)';
 public $_re = '<<';
 
- public function _match(&$input, $m)
+ public function _match(&$input, $m): bool
 {
 $pos = $input->getPos();
 $pi = $m->postmatch;
@@ -1133,7 +1133,7 @@
 {
 public $_re = '\s*\|';
 
- public function _match(&$input, $m)
+ public function _match(&$input, $m): bool
 {
 $pos = $input->getPos();
 $pi = "|" . $m->postmatch;
@@ -1174,7 +1174,7 @@
 {
 public $_re = '{\|';
 
- public function _match(&$input, $m)
+ public function _match(&$input, $m): bool
 {
 $pos = $input->getPos();
 $pi = $m->postmatch;
@@ -1209,7 +1209,7 @@
 {
 public $_re = '{{';
 
- public function _match(&$input, $m)
+ public function _match(&$input, $m): bool
 {
 // If we find "}}", this is an inline template.
 if (strpos($m->postmatch, "}}") !== false) {
@@ -1294,7 +1294,7 @@
 public $_attr = array('class' => 'mail-style-quote');
 public $_re = '>\ ?';
 
- public function _match(&$input, $m)
+ public function _match(&$input, $m): bool
 {
 //$indent = str_replace(' ', '\\ ', $m->match) . '|>$';
 $indent = $this->_re;
@@ -1308,7 +1308,7 @@
 public $_attr = array('style' => 'margin-left:2em');
 public $_re = ':\ ?';
 
- public function _match(&$input, $m)
+ public function _match(&$input, $m): bool
 {
 $indent = $this->_re;
 $this->_element = new SubBlock(
@@ -1326,7 +1326,7 @@
 {
 public $_re = '-{4,}\s*$';
 
- public function _match(&$input, $m)
+ public function _match(&$input, $m): bool
 {
 $input->advance();
 $this->_element = new Block_HtmlElement('hr');
@@ -1338,7 +1338,7 @@
 {
 public $_re = '!{1,3}';
 
- public function _match(&$input, $m)
+ public function _match(&$input, $m): bool
 {
 $tag = "h" . (5 - strlen($m->match));
 $text = TransformInline(trim($m->postmatch));
@@ -1354,7 +1354,7 @@
 {
 public $_re = '={2,6}';
 
- public function _match(&$input, $m)
+ public function _match(&$input, $m): bool
 {
 $tag = "h" . strlen($m->match);
 // Remove spaces
@@ -1378,7 +1378,7 @@
 private $_tight_bot;
 private $_tight_top;
 
- public function _match(&$input, $m)
+ public function _match(&$input, $m): bool
 {
 $this->_text = $m->match;
 $input->advance();
@@ -1415,7 +1415,7 @@
 {
 public $_re = '<(?im)(?: div|span)(?:[^>]*)?>';
 
- public function _match(&$input, $m)
+ public function _match(&$input, $m): bool
 {
 if (substr($m->match, 1, 4) == 'span') {
 $tag = 'span';
Modified: trunk/lib/PageList.php
===================================================================
--- trunk/lib/PageList.php	2023年07月14日 11:23:14 UTC (rev 11055)
+++ trunk/lib/PageList.php	2023年07月14日 11:37:03 UTC (rev 11056)
@@ -54,7 +54,7 @@
 */
 class _PageList_Column_base
 {
- public $_tdattr = array();
+ public array $_tdattr = array();
 public $_field;
 
 public function __construct($default_heading, $align = false)
@@ -85,7 +85,7 @@
 }
 
 // old-style heading
- public function heading()
+ public function heading(): HTML
 {
 global $request;
 // allow sorting?
@@ -110,7 +110,7 @@
 
 // new grid-style sortable heading
 // TODO: via activeui.js ? (fast dhtml sorting)
- public function button_heading($pagelist, $colNum)
+ public function button_heading($pagelist, $colNum): HTML
 {
 global $WikiTheme, $request;
 // allow sorting?
@@ -172,7 +172,7 @@
 *
 * @return int -1 if $a < $b, 1 if $a > $b, 0 otherwise.
 */
- public function _compare($colvala, $colvalb)
+ public function _compare($colvala, $colvalb): int
 {
 if (is_string($colvala)) {
 return strcmp($colvala, $colvalb);
@@ -209,7 +209,7 @@
 * @param WikiDB_PageRevision $revision_handle
 * @return mixed
 */
- public function _getValue($page_handle, $revision_handle)
+ public function _getValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
 {
 if ($this->_need_rev) {
 if (!$revision_handle) {
@@ -227,7 +227,7 @@
 * @param WikiDB_PageRevision $revision_handle
 * @return int|string
 */
- public function _getSortableValue($page_handle, $revision_handle)
+ public function _getSortableValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
 {
 $val = $this->_getValue($page_handle, $revision_handle);
 if ($this->_field == 'hits') {
@@ -256,7 +256,7 @@
 
 class _PageList_Column_size extends _PageList_Column
 {
- public function format($pagelist, $page_handle, $revision_handle)
+ public function format($pagelist, $page_handle, $revision_handle): HTML
 {
 return HTML::td(
 $this->_tdattr,
@@ -264,7 +264,7 @@
 );
 }
 
- public function _getValuePageList($pagelist, $page_handle, $revision_handle)
+ public function _getValuePageList($pagelist, $page_handle, $revision_handle): FormattedText
 {
 if (!$revision_handle or (!$revision_handle->_data['%content']
 or $revision_handle->_data['%content'] === true)
@@ -280,7 +280,7 @@
 return $size;
 }
 
- public function _getSortableValue($page_handle, $revision_handle)
+ public function _getSortableValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
 {
 if (!$revision_handle) {
 $revision_handle = $page_handle->getCurrentRevision();
@@ -289,7 +289,7 @@
 ? 0 : strlen($revision_handle->_data['%content']);
 }
 
- public function _getSize($revision_handle)
+ public function _getSize($revision_handle): FormattedText
 {
 $bytes = @strlen($revision_handle->_data['%content']);
 return ByteFormatter($bytes);
@@ -305,7 +305,7 @@
 $this->_textIfFalse = new RawXml('&#8212;'); //mdash
 }
 
- public function _getValue($page_handle, $revision_handle)
+ public function _getValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
 {
 //FIXME: check if $this is available in the parent (->need_rev)
 $val = parent::_getValue($page_handle, $revision_handle);
@@ -327,7 +327,7 @@
 parent::__construct($field, $heading, 'center');
 }
 
- public function _getValuePageList($pagelist, $page_handle, $revision_handle)
+ public function _getValuePageList($pagelist, $page_handle, $revision_handle): HTML
 {
 $pagename = $page_handle->getName();
 $selected = !empty($pagelist->_selected[$pagename]);
@@ -346,7 +346,7 @@
 }
 }
 
- public function format($pagelist, $page_handle, $revision_handle)
+ public function format($pagelist, $page_handle, $revision_handle): HTML
 {
 return HTML::td(
 $this->_tdattr,
@@ -355,7 +355,7 @@
 }
 
 // don't sort this javascript button
- public function button_heading($pagelist, $colNum)
+ public function button_heading($pagelist, $colNum): HTML
 {
 $s = HTML($this->_heading);
 return HTML::th(array('class' => 'gridbutton'), $s);
@@ -371,13 +371,13 @@
 $this->WikiTheme = &$WikiTheme;
 }
 
- public function _getValue($page_handle, $revision_handle)
+ public function _getValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
 {
 $time = parent::_getValue($page_handle, $revision_handle);
 return $this->WikiTheme->formatDateTime($time);
 }
 
- public function _getSortableValue($page_handle, $revision_handle)
+ public function _getSortableValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
 {
 return parent::_getValue($page_handle, $revision_handle);
 }
@@ -385,7 +385,7 @@
 
 class _PageList_Column_version extends _PageList_Column
 {
- public function _getValue($page_handle, $revision_handle)
+ public function _getValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
 {
 if (!$revision_handle) {
 $revision_handle = $page_handle->getCurrentRevision();
@@ -425,7 +425,7 @@
 }
 }
 
- public function _getValue($page_handle, $revision_handle)
+ public function _getValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
 {
 if (!$revision_handle or (!$revision_handle->_data['%content']
 or $revision_handle->_data['%content'] === true)
@@ -510,7 +510,7 @@
 );
 }
 
- public function _getSortableValue($page_handle, $revision_handle)
+ public function _getSortableValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
 {
 if (is_object($page_handle) and !empty($page_handle->score)) {
 return $page_handle->score;
@@ -535,7 +535,7 @@
 $this->dbi =& $request->getDbh();
 }
 
- public function _getValue($page_handle, $revision_handle)
+ public function _getValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
 {
 $author = parent::_getValue($page_handle, $revision_handle);
 if ($this->dbi->isWikiPage($author)) {
@@ -545,7 +545,7 @@
 }
 }
 
- public function _getSortableValue($page_handle, $revision_handle)
+ public function _getSortableValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
 {
 return parent::_getValue($page_handle, $revision_handle);
 }
@@ -553,7 +553,7 @@
 
 class _PageList_Column_owner extends _PageList_Column_author
 {
- public function _getValue($page_handle, $revision_handle)
+ public function _getValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
 {
 $author = $page_handle->getOwner();
 if ($this->dbi->isWikiPage($author)) {
@@ -563,7 +563,7 @@
 }
 }
 
- public function _getSortableValue($page_handle, $revision_handle)
+ public function _getSortableValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
 {
 return parent::_getValue($page_handle, $revision_handle);
 }
@@ -571,7 +571,7 @@
 
 class _PageList_Column_creator extends _PageList_Column_author
 {
- public function _getValue($page_handle, $revision_handle)
+ public function _getValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
 {
 $author = $page_handle->getCreator();
 if ($this->dbi->isWikiPage($author)) {
@@ -581,7 +581,7 @@
 }
 }
 
- public function _getSortableValue($page_handle, $revision_handle)
+ public function _getSortableValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
 {
 return parent::_getValue($page_handle, $revision_handle);
 }
@@ -598,7 +598,7 @@
 $this->dbi = &$request->getDbh();
 }
 
- public function _getValue($page_handle, $revision_handle)
+ public function _getValue($page_handle, $revision_handle): XmlContent
 {
 if ($this->dbi->isWikiPage($page_handle->getName())) {
 return WikiLink($page_handle);
@@ -615,7 +615,7 @@
 /**
 * Compare two pagenames for sorting. See _PageList_Column::_compare.
 **/
- public function _compare($colvala, $colvalb)
+ public function _compare($colvala, $colvalb): int
 {
 return strcmp($colvala, $colvalb);
 }
@@ -623,7 +623,7 @@
 
 class _PageList_Column_perm extends _PageList_Column
 {
- public function _getValue($page_handle, $revision_handle)
+ public function _getValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
 {
 $perm_array = pagePermissions($page_handle->_pagename);
 return pagePermissionsSimpleFormat(
@@ -636,7 +636,7 @@
 
 class _PageList_Column_acl extends _PageList_Column
 {
- public function _getValue($page_handle, $revision_handle)
+ public function _getValue(WikiDB_Page $page_handle, WikiDB_PageRevision $revision_handle)
 {
 $perm_tree = pagePermissions($page_handle->_pagename);
 
@@ -658,19 +658,19 @@
 
 class PageList
 {
- public $_group_rows = 3;
- public $_columns = array();
- private $_columnsMap = array(); // Maps column name to column number.
+ public int $_group_rows = 3;
+ public array $_columns = array();
+ private array $_columnsMap = array(); // Maps column name to column number.
 private $_excluded_pages = array();
- public $_pages = array();
- public $_caption = "";
- public $_types = array();
+ public array $_pages = array();
+ public string $_caption = "";
+ public array $_types = array();
 public $_options = array();
- public $_selected = array();
- public $_sortby = array();
- public $_maxlen = 0;
- private $_messageIfEmpty = '';
- public $_columns_seen = array();
+ public array $_selected = array();
+ public array $_sortby = array();
+ public int $_maxlen = 0;
+ private string $_messageIfEmpty = '';
+ public array $_columns_seen = array();
 private $_stack;
 
 public function __construct($columns = array(), $exclude = array(), $options = array())
@@ -802,7 +802,7 @@
 // 1: info, 2: exclude, 3: hash of options
 // Here we declare which options are supported, so that
 // the calling plugin may simply merge this with its own default arguments
- public static function supportedArgs()
+ public static function supportedArgs(): array
 {
 // Todo: add all supported Columns, like locked, minor, ...
 return array( // Currently supported options:
@@ -855,7 +855,7 @@
 );
 }
 
- private function pagingArgs()
+ private function pagingArgs(): array
 {
 return array('sortby', 'limit', 'paging', 'count', 'dosort');
 }
@@ -876,7 +876,7 @@
 $this->_caption = HTML($this->_caption, " ", $caption);
 }
 
- private function getCaption()
+ private function getCaption(): string
 {
 // put the total into the caption if needed
 if (is_string($this->_caption) && strstr($this->_caption, '%d')) {
@@ -885,13 +885,13 @@
 return $this->_caption;
 }
 
- public function getTotal()
+ public function getTotal(): int
 {
 return !empty($this->_options['count'])
 ? (int)$this->_options['count'] : count($this->_pages);
 }
 
- public function isEmpty()
+ public function isEmpty(): bool
 {
 return empty($this->_pages);
 }
@@ -911,7 +911,7 @@
 }
 }
 
- public function pageNames()
+ public function pageNames(): array
 {
 $pages = array();
 $limit = @$this->_options['limit'];
@@ -1212,7 +1212,7 @@
 $sortby = '',
 $limit = '',
 $exclude = ''
- )
+ ): array
 {
 /**
 * @var WikiRequest $request
@@ -1253,7 +1253,7 @@
 $sortby = '',
 $limit = '',
 $exclude = ''
- )
+ ): array
 {
 /**
 * @var WikiRequest $request
@@ -1293,7 +1293,7 @@
 $sortby = '',
 $limit = '',
 $exclude = ''
- )
+ ): array
 {
 /**
 * @var WikiRequest $request
@@ -1332,7 +1332,7 @@
 $sortby = '',
 $limit = '',
 $exclude = ''
- )
+ ): array
 {
 /**
 * @var WikiRequest $request
@@ -1371,7 +1371,7 @@
 $sortby = '',
 $limit = '',
 $exclude = ''
- )
+ ): array
 {
 /**
 * @var WikiRequest $request
@@ -1510,7 +1510,7 @@
 * @param string $column column name
 * @return bool true if column is added, false otherwise
 */
- public function _addColumn($column)
+ public function _addColumn(string $column): bool
 {
 global $request;
 
@@ -1642,7 +1642,7 @@
 }
 }
 
- public function limit($limit)
+ public function limit($limit): array
 {
 if (is_array($limit)) {
 list($from, $count) = $limit;
@@ -1738,7 +1738,7 @@
 }
 
 // make a table given the caption
- public function _generateTable($caption = '')
+ public function _generateTable($caption = ''): HTML
 {
 if (count($this->_sortby) > 0) {
 $this->sortPages();
@@ -2010,7 +2010,7 @@
 // comma=1
 // Condense list without a href links: "Page1, Page2, ..."
 // FIXME: only unique list entries, esp. with nopage
- private function generateCommaListAsString()
+ private function generateCommaListAsString(): XmlContent
 {
 if (defined($this->_options['commasep'])) {
 $separator = $this->_options['commasep'];
@@ -2031,7 +2031,7 @@
 // Future: 1 = reserved for plain string (see above)
 // 2 and more => HTML link specialization?
 // FIXME: only unique list entries, esp. with nopage
- private function generateCommaList()
+ private function generateCommaList(): XmlContent
 {
 if (defined($this->_options['commasep'])) {
 $separator = HTML::raw($this->_options['commasep']);
@@ -2049,7 +2049,7 @@
 return $html;
 }
 
- public function _emptyList($caption)
+ public function _emptyList($caption): XmlContent
 {
 $html = HTML();
 if ($caption) {
Modified: trunk/lib/Template.php
===================================================================
--- trunk/lib/Template.php	2023年07月14日 11:23:14 UTC (rev 11055)
+++ trunk/lib/Template.php	2023年07月14日 11:37:03 UTC (rev 11056)
@@ -37,7 +37,7 @@
 * @param WikiRequest $request
 * @param array $args
 */
- public function __construct($name, &$request, $args = array())
+ public function __construct(string $name, WikiRequest &$request, array $args = array())
 {
 global $WikiTheme;
 
@@ -138,7 +138,7 @@
 * @param string $varname Name of token to substitute for.
 * @param string $value Replacement HTML text.
 */
- public function replace($varname, $value)
+ public function replace(string $varname, string $value)
 {
 $this->_locals[$varname] = $value;
 }
@@ -235,13 +235,13 @@
 * new Template(...)
 * </pre>
 */
-function Template($name, $args = array())
+function Template($name, $args = array()): Template
 {
 global $request;
 return new Template($name, $request, $args);
 }
 
-function alreadyTemplateProcessed($name)
+function alreadyTemplateProcessed($name): bool
 {
 global $request;
 return !empty($request->_TemplatesProcessed[$name]) ? true : false;
@@ -256,7 +256,7 @@
 * @param object|bool $page_revision A WikiDB_PageRevision object or false
 * @param array $args hash Extract args for top-level template
 */
-function GeneratePage($content, $title, $page_revision = false, $args = array())
+function GeneratePage($content, string $title, $page_revision = false, array $args = array())
 {
 global $request;
 
Modified: trunk/lib/WysiwygEdit/Wikiwyg.php
===================================================================
--- trunk/lib/WysiwygEdit/Wikiwyg.php	2023年07月14日 11:23:14 UTC (rev 11055)
+++ trunk/lib/WysiwygEdit/Wikiwyg.php	2023年07月14日 11:37:03 UTC (rev 11056)
@@ -157,7 +157,7 @@
 * @param string $text
 * @return string
 */
- public function ConvertBefore($text)
+ public function ConvertBefore($text): string
 {
 return $text;
 }
@@ -169,7 +169,7 @@
 * @param string $text
 * @return string
 */
- public function ConvertAfter($text)
+ public function ConvertAfter($text): string
 {
 return TransformInline($text);
 }
@@ -321,7 +321,7 @@
 // This is called to replace the RichTable plugin by an html table
 // $matched contains html <p> tags so
 // they are deleted before the conversion.
-function replace_rich_table($matched)
+function replace_rich_table($matched): string
 {
 /**
 * @var WikiRequest $request
Modified: trunk/lib/editpage.php
===================================================================
--- trunk/lib/editpage.php	2023年07月14日 11:23:14 UTC (rev 11055)
+++ trunk/lib/editpage.php	2023年07月14日 11:37:03 UTC (rev 11056)
@@ -57,7 +57,7 @@
 /**
 * @param WikiRequest $request
 */
- public function __construct(&$request)
+ public function __construct(WikiRequest &$request)
 {
 $this->request = &$request;
 
@@ -123,7 +123,7 @@
 }
 }
 
- public function editPage()
+ public function editPage(): ?bool
 {
 $saveFailed = false;
 $tokens = &$this->tokens;
@@ -240,7 +240,7 @@
 return $this->output('editpage', _("Edit: %s"));
 }
 
- public function output($template, $title_fs)
+ public function output($template, $title_fs): bool
 {
 global $WikiTheme;
 $selected = &$this->selected;
@@ -279,7 +279,7 @@
 return $this->output('viewsource', _("View Source: %s"));
 }
 
- private function updateLock()
+ private function updateLock(): bool
 {
 $changed = false;
 if (!ENABLE_PAGE_PUBLIC && !ENABLE_EXTERNAL_PAGES) {
@@ -322,7 +322,7 @@
 return $changed; // lock changed.
 }
 
- public function savePage()
+ public function savePage(): bool
 {
 $request = &$this->request;
 
@@ -418,17 +418,17 @@
 return $this->current->getVersion() != $this->_currentVersion;
 }
 
- protected function canEdit()
+ protected function canEdit(): bool
 {
 return !$this->page->get('locked') || $this->user->isAdmin();
 }
 
- protected function isInitialEdit()
+ protected function isInitialEdit(): bool
 {
 return $this->_initialEdit;
 }
 
- private function isUnchanged()
+ private function isUnchanged(): bool
 {
 $current = &$this->current;
 return $this->_content == $current->getPackedContent();
@@ -444,7 +444,7 @@
 * ENABLE_SPAMASSASSIN: content patterns by babycart (only php >= 4.3 for now)
 * ENABLE_SPAMBLOCKLIST: content domain blacklist
 */
- private function isSpam()
+ private function isSpam(): bool
 {
 $current = &$this->current;
 $request = &$this->request;
@@ -533,7 +533,7 @@
 
 /** Number of external links in the wikitext
 */
- private function numLinks(&$text)
+ private function numLinks(&$text): int
 {
 return substr_count($text, "http://") + substr_count($text, "https://");
 }
@@ -540,7 +540,7 @@
 
 /** Header of the Anti Spam message
 */
- private function getSpamMessage()
+ private function getSpamMessage(): XmlContent
 {
 return
 HTML(
@@ -554,7 +554,7 @@
 );
 }
 
- protected function getPreview()
+ protected function getPreview(): TransformedText
 {
 require_once 'lib/PageType.php';
 $this->_content = $this->getContent();
@@ -561,7 +561,7 @@
 return new TransformedText($this->page, $this->_content, $this->meta);
 }
 
- protected function getConvertedPreview()
+ protected function getConvertedPreview(): TransformedText
 {
 require_once 'lib/PageType.php';
 $this->_content = $this->getContent();
@@ -568,7 +568,7 @@
 return new TransformedText($this->page, $this->_content, $this->meta);
 }
 
- private function getDiff()
+ private function getDiff(): XmlContent
 {
 require_once 'lib/diff.php';
 $html = HTML();
@@ -611,7 +611,7 @@
 }
 }
 
- protected function getLockedMessage()
+ protected function getLockedMessage(): XmlContent
 {
 return
 HTML(
@@ -627,7 +627,7 @@
 return $this->page->get('moderation');
 }
 
- private function getModeratedMessage()
+ private function getModeratedMessage(): XmlContent
 {
 return
 HTML(
@@ -640,7 +640,7 @@
 );
 }
 
- protected function getConflictMessage($unresolved = false)
+ protected function getConflictMessage($unresolved = false): XmlContent
 {
 /*
 xgettext only knows about c/c++ line-continuation strings
@@ -1156,7 +1156,7 @@
 $this->request->redirect(WikiURL($this->page, array(), 'absolute_url'));
 }
 
- private function _restoreState()
+ private function _restoreState(): bool
 {
 $request = &$this->request;
 
@@ -1255,7 +1255,7 @@
 
 class LoadFileConflictPageEditor extends PageEditor
 {
- public function editPage($saveFailed = true)
+ public function editPage($saveFailed = true): ?bool
 {
 $tokens = &$this->tokens;
 
@@ -1342,7 +1342,7 @@
 return $this->output('editpage', _("Merge and Edit: %s"));
 }
 
- public function output($template, $title_fs)
+ public function output($template, $title_fs): bool
 {
 $selected = &$this->selected;
 $current = &$this->current;
@@ -1371,7 +1371,7 @@
 return true;
 }
 
- protected function getConflictMessage($unresolved = false)
+ protected function getConflictMessage($unresolved = false): XmlContent
 {
 return HTML(HTML::p(
 fmt(
Modified: trunk/lib/stdlib.php
===================================================================
--- trunk/lib/stdlib.php	2023年07月14日 11:23:14 UTC (rev 11055)
+++ trunk/lib/stdlib.php	2023年07月14日 11:37:03 UTC (rev 11056)
@@ -125,7 +125,7 @@
 * @param string $str
 * @return string
 */
-function MangleXmlIdentifier($str)
+function MangleXmlIdentifier(string $str): string
 {
 if (!$str) {
 return 'empty.';
@@ -145,7 +145,7 @@
 * configuration file.
 * @return string The name of the WIKI_ID cookie to use for this wiki.
 */
-function getCookieName()
+function getCookieName(): string
 {
 return preg_replace("/[^\d\w]/", "_", WIKI_NAME) . "_WIKI_ID";
 }
@@ -244,7 +244,7 @@
 * @param string $url
 * @return string Absolute URL
 */
-function AbsoluteURL($url)
+function AbsoluteURL(string $url): string
 {
 if (preg_match('/^https?:/', $url)) {
 return $url;
@@ -308,7 +308,7 @@
 * @param string $text The text.
 * @return XmlContent.
 */
-function PossiblyGlueIconToText($proto_or_url, $text)
+function PossiblyGlueIconToText(string $proto_or_url, string $text): XmlContent
 {
 global $request, $WikiTheme;
 if ($request->getPref('noLinkIcons')) {
@@ -379,7 +379,7 @@
 * @param bool $http_only if true, accept only http and https URLs
 * @return bool true if safe, false else.
 */
-function IsSafeURL($url, $http_only = false)
+function IsSafeURL(string $url, bool $http_only = false): bool
 {
 if (preg_match('/([<>"])|(%3C)|(%3E)|(%22)/', $url)) {
 return false;
@@ -402,7 +402,7 @@
 * @param string $linktext Text to be displayed as link.
 * @return HtmlElement HtmlElement object that contains data to construct an html link.
 */
-function LinkURL($url, $linktext = '')
+function LinkURL(string $url, string $linktext = ''): HtmlElement
 {
 // FIXME: Is this needed (or sufficient?)
 if (!IsSafeURL($url)) {
@@ -430,7 +430,7 @@
 *
 * Handle embeddable objects, like svg, class, vrml, svgz, pdf, avi, wmv especially.
 */
-function LinkImage($url, $alt = "")
+function LinkImage(string $url, string $alt = "")
 {
 $force_img = "png|jpg|gif|jpeg|bmp|pl|cgi";
 // Disallow tags in img src urls. Typical CSS attacks.
@@ -766,7 +766,7 @@
 
 // end class definition
 
-function SplitQueryArgs($query_args = '')
+function SplitQueryArgs(string $query_args = ''): array
 {
 // FIXME: use the arg-separator which might not be &
 $split_args = explode('&', $query_args);
@@ -779,7 +779,7 @@
 return $args;
 }
 
-function LinkPhpwikiURL($url, $text = '', $basepage = false)
+function LinkPhpwikiURL(string $url, string $text = '', bool $basepage = false)
 {
 /**
 * @var WikiRequest $request
@@ -949,7 +949,7 @@
 return substr($name, 0, -strlen($tail));
 }
 
- public function isValid($strict = false)
+ public function isValid(bool $strict = false)
 {
 if ($strict) {
 return !isset($this->_errors);
@@ -1064,7 +1064,7 @@
 * @param int $tab_width
 * @return string
 */
-function expand_tabs($str, $tab_width = 8)
+function expand_tabs(string $str, int $tab_width = 8)
 {
 $split = explode("\t", $str);
 $tail = array_pop($split);
@@ -1088,7 +1088,7 @@
 *
 * @return string The split name.
 */
-function SplitPagename($page)
+function SplitPagename(string $page): string
 {
 if (preg_match("/\s/", $page)) {
 return $page;
@@ -1184,7 +1184,7 @@
 * @param int $time Unix timestamp (defaults to current time).
 * @return string Formatted date & time.
 */
-function ncsa_time($time = 0)
+function ncsa_time(int $time = 0)
 {
 if (!$time) {
 $time = time();
@@ -1199,7 +1199,7 @@
 * @param bool $no_colon Don't put colon between hours and minutes.
 * @return string Offset as a string in the format +HH:MM.
 */
-function TimezoneOffset($time = 0, $no_colon = false)
+function TimezoneOffset(int $time = 0, bool $no_colon = false)
 {
 if ($time == 0) {
 $time = time();
@@ -1229,7 +1229,7 @@
 * @param int $time Time. Default: now.
 * @return string Date and time in ISO-8601 format.
 */
-function Iso8601DateTime($time = 0)
+function Iso8601DateTime(int $time = 0): string
 {
 if ($time == 0) {
 $time = time();
@@ -1246,7 +1246,7 @@
 * @param int $time Time. Default: now.
 * @return string Date and time in RFC-2822 format.
 */
-function Rfc2822DateTime($time = 0)
+function Rfc2822DateTime(int $time = 0): string
 {
 if ($time == 0) {
 $time = time();
@@ -1260,7 +1260,7 @@
 * @param int $time Time. Default: now.
 * @return string Date and time in RFC-1123 format.
 */
-function Rfc1123DateTime($time = 0)
+function Rfc1123DateTime(int $time = 0): string
 {
 if ($time == 0) {
 $time = time();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <var...@us...> - 2023年07月14日 11:23:16
Revision: 11055
 http://sourceforge.net/p/phpwiki/code/11055
Author: vargenau
Date: 2023年07月14日 11:23:14 +0000 (2023年7月14日)
Log Message:
-----------
lib/DbSession: PHP 7: add types for function arguments and return
Modified Paths:
--------------
 trunk/lib/DbSession/PDO.php
 trunk/lib/DbSession/SQL.php
 trunk/lib/DbSession/dba.php
Modified: trunk/lib/DbSession/PDO.php
===================================================================
--- trunk/lib/DbSession/PDO.php	2023年07月14日 11:16:48 UTC (rev 11054)
+++ trunk/lib/DbSession/PDO.php	2023年07月14日 11:23:14 UTC (rev 11055)
@@ -30,7 +30,7 @@
 
 class DbSession_PDO extends DbSession
 {
- public $_backend_type = "PDO";
+ public string $_backend_type = "PDO";
 
 public function __construct($dbh, $table)
 {
@@ -84,7 +84,7 @@
 * @return boolean true just a variable to notify PHP that everything
 * is good.
 */
- public function open($save_path, $session_name)
+ public function open(string $save_path, string $session_name): bool
 {
 //$this->log("_open($save_path, $session_name)");
 return true;
@@ -98,7 +98,7 @@
 * @return boolean true just a variable to notify PHP that everything
 * is good.
 */
- public function close()
+ public function close(): bool
 {
 //$this->log("_close()");
 return true;
@@ -110,7 +110,7 @@
 * @param string $id an id of current session
 * @return string
 */
- public function read($id)
+ public function read(string $id): string
 {
 $dbh = $this->_connect();
 $table = $this->_table;
@@ -148,7 +148,7 @@
 * @return boolean true if data saved successfully and false
 * otherwise.
 */
- public function write($id, $sess_data)
+ public function write(string $id, string $sess_data): bool
 {
 /**
 * @var WikiRequest $request
@@ -192,7 +192,7 @@
 * @param string $id
 * @return boolean true
 */
- public function destroy($id)
+ public function destroy(string $id): bool
 {
 $table = $this->_table;
 $dbh = $this->_connect();
@@ -209,7 +209,7 @@
 * @param int $maxlifetime session's time to live.
 * @return boolean true
 */
- public function gc($maxlifetime)
+ public function gc(int $maxlifetime): bool
 {
 $table = $this->_table;
 $threshold = time() - $maxlifetime;
@@ -223,7 +223,7 @@
 
 // WhoIsOnline support
 // TODO: ip-accesstime dynamic blocking API
- public function currentSessions()
+ public function currentSessions(): array
 {
 $sessions = array();
 $table = $this->_table;
Modified: trunk/lib/DbSession/SQL.php
===================================================================
--- trunk/lib/DbSession/SQL.php	2023年07月14日 11:16:48 UTC (rev 11054)
+++ trunk/lib/DbSession/SQL.php	2023年07月14日 11:23:14 UTC (rev 11055)
@@ -34,7 +34,7 @@
 
 class DbSession_SQL extends DbSession
 {
- public $_backend_type = "SQL";
+ public string $_backend_type = "SQL";
 
 public function __construct($dbh, $table)
 {
@@ -91,7 +91,7 @@
 * @return boolean true just a variable to notify PHP that everything
 * is good.
 */
- public function open($save_path, $session_name)
+ public function open(string $save_path, string $session_name): bool
 {
 //$this->log("_open($save_path, $session_name)");
 return true;
@@ -105,7 +105,7 @@
 * @return boolean true just a variable to notify PHP that everything
 * is good.
 */
- public function close()
+ public function close(): bool
 {
 //$this->log("_close()");
 return true;
@@ -117,7 +117,7 @@
 * @param string $id an id of current session
 * @return string
 */
- public function read($id)
+ public function read(string $id): string
 {
 //$this->log("_read($id)");
 $dbh = $this->_connect();
@@ -159,7 +159,7 @@
 * @return boolean true if data saved successfully and false
 * otherwise.
 */
- public function write($id, $sess_data)
+ public function write(string $id, string $sess_data): bool
 {
 /**
 * @var WikiRequest $request
@@ -200,7 +200,7 @@
 * @param string $id
 * @return boolean true
 */
- public function destroy($id)
+ public function destroy(string $id): bool
 {
 $dbh = $this->_connect();
 $table = $this->_table;
@@ -218,7 +218,7 @@
 * @param int $maxlifetime session's time to live.
 * @return boolean true
 */
- public function gc($maxlifetime)
+ public function gc(int $maxlifetime): bool
 {
 $dbh = $this->_connect();
 $table = $this->_table;
@@ -232,7 +232,7 @@
 
 // WhoIsOnline support
 // TODO: ip-accesstime dynamic blocking API
- public function currentSessions()
+ public function currentSessions(): array
 {
 $sessions = array();
 $dbh = $this->_connect();
Modified: trunk/lib/DbSession/dba.php
===================================================================
--- trunk/lib/DbSession/dba.php	2023年07月14日 11:16:48 UTC (rev 11054)
+++ trunk/lib/DbSession/dba.php	2023年07月14日 11:23:14 UTC (rev 11055)
@@ -26,7 +26,7 @@
 * session:
 * Index: session_id
 * Values: date : IP : data
- * Already open sessions, e.g. interim xmlrpc requests are
+ * Already open sessions, e.g. interim xmlrpc requests
 * are treated specially. see write().
 * To avoid deadlocks in the session.db3 access,
 * the db is opened and closed for each access.
@@ -35,7 +35,7 @@
 
 class DbSession_dba extends DbSession
 {
- public $_backend_type = "dba";
+ public string $_backend_type = "dba";
 
 public function __construct($dbh, $table)
 {
@@ -55,7 +55,7 @@
 return $string;
 }
 
- public function query($sql)
+ public function query($sql): bool
 {
 return false;
 }
@@ -94,7 +94,7 @@
 * @return boolean true just a variable to notify PHP that everything
 * is good.
 */
- public function open($save_path, $session_name)
+ public function open(string $save_path, string $session_name): bool
 {
 $dbh = $this->_connect();
 $dbh->open();
@@ -109,7 +109,7 @@
 * @return boolean true just a variable to notify PHP that everything
 * is good.
 */
- public function close()
+ public function close(): bool
 {
 $this->_disconnect();
 return true;
@@ -121,7 +121,7 @@
 * @param string $id an id of current session
 * @return string
 */
- public function read($id)
+ public function read(string $id): string
 {
 $dbh = $this->_connect();
 $result = $dbh->get($id);
@@ -153,7 +153,7 @@
 * @return boolean true if data saved successfully and false
 * otherwise.
 */
- public function write($id, $sess_data)
+ public function write(string $id, string $sess_data): bool
 {
 /**
 * @var WikiRequest $request
@@ -176,7 +176,7 @@
 return true;
 }
 
- public function destroy($id)
+ public function destroy($id): bool
 {
 $dbh = $this->_connect();
 $dbh->delete($id);
@@ -190,7 +190,7 @@
 * @param int $maxlifetime session's time to live.
 * @return boolean true
 */
- public function gc($maxlifetime)
+ public function gc(int $maxlifetime): bool
 {
 $dbh = $this->_connect();
 $threshold = time() - $maxlifetime;
@@ -209,7 +209,7 @@
 
 // WhoIsOnline support
 // TODO: ip-accesstime dynamic blocking API
- public function currentSessions()
+ public function currentSessions(): array
 {
 $sessions = array();
 $dbh = $this->_connect();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <var...@us...> - 2023年07月14日 11:16:50
Revision: 11054
 http://sourceforge.net/p/phpwiki/code/11054
Author: vargenau
Date: 2023年07月14日 11:16:48 +0000 (2023年7月14日)
Log Message:
-----------
lib/XMLRPC: PHP 7: add types for function arguments and return
Modified Paths:
--------------
 trunk/lib/XMLRPC/utils.php
 trunk/lib/XMLRPC/xmlrpc.inc
 trunk/lib/XMLRPC/xmlrpc_emu.inc
 trunk/lib/XMLRPC/xmlrpcs.inc
 trunk/lib/XMLRPC/xmlrpcs_emu.inc
Modified: trunk/lib/XMLRPC/utils.php
===================================================================
--- trunk/lib/XMLRPC/utils.php	2023年07月14日 11:09:38 UTC (rev 11053)
+++ trunk/lib/XMLRPC/utils.php	2023年07月14日 11:16:48 UTC (rev 11054)
@@ -42,7 +42,7 @@
 // a function to ensure the xmlrpc extension is loaded.
 // xmlrpc_epi_dir = directory where libxmlrpc.so.0 is located
 // xmlrpc_php_dir = directory where xmlrpc-epi-php.so is located
-function xu_load_extension($xmlrpc_php_dir = "")
+function xu_load_extension($xmlrpc_php_dir = ""): bool
 {
 $bSuccess = extension_loaded('xmlrpc');
 if (!$bSuccess) {
@@ -60,7 +60,7 @@
 
 /* generic function to call an http server with post method */
 function xu_query_http_post($request, $host, $uri, $port, $debug,
- $timeout, $user, $pass, $secure = false)
+ $timeout, $user, $pass, $secure = false): string
 {
 $response_buf = "";
 if ($host && $uri && $port) {
@@ -124,7 +124,7 @@
 return $response_buf;
 }
 
-function xu_fault_code($code, $string)
+function xu_fault_code($code, $string): array
 {
 return array('faultCode' => $code,
 'faultString' => $string);
@@ -189,7 +189,7 @@
 *
 * $output_options = array('output_type' => 'php');
 */
-function xu_rpc_http_concise($params)
+function xu_rpc_http_concise($params): string
 {
 $host = $uri = $port = $method = $args = $debug = null;
 $timeout = $user = $pass = $secure = $cookies = null;
@@ -219,7 +219,7 @@
 
 /* call an xmlrpc method on a remote http server. legacy support. */
 function xu_rpc_http($method, $args, $host, $uri = "/", $port = 80, $debug = false,
- $timeout = 0, $user = false, $pass = false, $secure = false)
+ $timeout = 0, $user = false, $pass = false, $secure = false): string
 {
 return xu_rpc_http_concise(
 array(
@@ -236,7 +236,7 @@
 ));
 }
 
-function xu_is_fault($arg)
+function xu_is_fault($arg): bool
 {
 // xmlrpc extension finally supports this.
 return is_array($arg) ? xmlrpc_is_fault($arg) : false;
Modified: trunk/lib/XMLRPC/xmlrpc.inc
===================================================================
--- trunk/lib/XMLRPC/xmlrpc.inc	2023年07月14日 11:09:38 UTC (rev 11053)
+++ trunk/lib/XMLRPC/xmlrpc.inc	2023年07月14日 11:16:48 UTC (rev 11054)
@@ -233,7 +233,7 @@
 * Until php provides functionality to translate these entities in its
 * core library, use this function.
 */
-function xmlrpc_html_entity_xlate($data = '')
+function xmlrpc_html_entity_xlate($data = ''): string
 {
 $entities = array(
 "&nbsp;" => "&#160;",
@@ -486,7 +486,7 @@
 return strtr($data, $entities);
 }
 
-function xmlrpc_encode_entitites($data)
+function xmlrpc_encode_entitites($data): string
 {
 $length = strlen($data);
 $escapeddata = "";
@@ -1077,7 +1077,7 @@
 return $resp;
 }
 
- function multicall($msgs, $timeout = 0, $method = 'http')
+ function multicall($msgs, $timeout = 0, $method = 'http'): array
 {
 $results = false;
 
@@ -1217,7 +1217,7 @@
 return $this->val;
 }
 
- function serialize()
+ function serialize(): string
 {
 $result = "<methodResponse>\n";
 if ($this->errno) {
@@ -1263,12 +1263,12 @@
 }
 }
 
- function xml_header()
+ function xml_header(): string
 {
 return "<?xml version=\"1.0\"?" . ">\n<methodCall>\n";
 }
 
- function xml_footer()
+ function xml_footer(): string
 {
 return "</methodCall>\n";
 }
@@ -1314,7 +1314,7 @@
 return $this->params[$i];
 }
 
- function getNumParams()
+ function getNumParams(): int
 {
 return sizeof($this->params);
 }
@@ -1551,7 +1551,7 @@
 }
 }
 
- function addScalar($val, $type = 'string')
+ function addScalar($val, $type = 'string'): int
 {
 global $xmlrpcTypes, $xmlrpcBoolean;
 
@@ -1586,7 +1586,7 @@
 return 1;
 }
 
- function addArray($vals)
+ function addArray($vals): int
 {
 global $xmlrpcTypes;
 if ($this->mytype != 0) {
@@ -1599,7 +1599,7 @@
 return 1;
 }
 
- function addStruct($vals)
+ function addStruct($vals): int
 {
 global $xmlrpcTypes;
 if ($this->mytype != 0) {
@@ -1624,7 +1624,7 @@
 }
 }
 
- function kindOf()
+ function kindOf(): string
 {
 switch ($this->mytype) {
 case 3:
@@ -1641,7 +1641,7 @@
 }
 }
 
- function serializedata($typ, $val)
+ function serializedata($typ, $val): string
 {
 $rs = '';
 global $xmlrpcTypes, $xmlrpcBase64, $xmlrpcString,
@@ -1690,12 +1690,12 @@
 return $rs;
 }
 
- function serialize()
+ function serialize(): string
 {
 return $this->serializeval($this);
 }
 
- function serializeval($o)
+ function serializeval($o): string
 {
 //global $xmlrpcTypes;
 $rs = '';
@@ -1719,7 +1719,7 @@
 reset($this->me['struct']);
 }
 
- function structeach()
+ function structeach(): array
 {
 return each($this->me['struct']);
 }
@@ -1784,7 +1784,7 @@
 return $nv;
 }
 
- function arraysize()
+ function arraysize(): int
 {
 reset($this->me);
 list($a, $b) = each($this->me);
Modified: trunk/lib/XMLRPC/xmlrpc_emu.inc
===================================================================
--- trunk/lib/XMLRPC/xmlrpc_emu.inc	2023年07月14日 11:09:38 UTC (rev 11053)
+++ trunk/lib/XMLRPC/xmlrpc_emu.inc	2023年07月14日 11:16:48 UTC (rev 11054)
@@ -255,7 +255,7 @@
 }
 
 // public. serialize self as xml string.
- function serialize()
+ function serialize(): string
 {
 /* check if fault */
 if ($this->fn) {
@@ -291,13 +291,13 @@
 }
 
 // unused. xmlrpc-epi does this automagically
- function xml_header()
+ function xml_header(): string
 {
 return "xml_header not supported";
 }
 
 // unused. not necessary
- function xml_footer()
+ function xml_footer(): string
 {
 return "xml_footer not supported";
 }
@@ -339,7 +339,7 @@
 return $this->params[$i];
 }
 
- function getNumParams()
+ function getNumParams(): int
 {
 return sizeof($this->params);
 }
@@ -399,7 +399,7 @@
 }
 
 // public. add a php scalar value.
- function addScalar($val, $type = "string")
+ function addScalar($val, $type = "string"): int
 {
 global $xmlrpcTypes, $xmlrpcBoolean;
 
@@ -435,7 +435,7 @@
 }
 
 // public. add a php array
- function addArray($vals)
+ function addArray($vals): int
 {
 global $xmlrpcTypes;
 if ($this->mytype != 0) {
@@ -449,7 +449,7 @@
 }
 
 // public. add a php keyed array as a struct.
- function addStruct($vals)
+ function addStruct($vals): int
 {
 global $xmlrpcTypes;
 if ($this->mytype != 0) {
@@ -477,7 +477,7 @@
 
 // public. kind of value.
 // (not 1 to 1 mapping with xmlrpc types or php types)
- function kindOf()
+ function kindOf(): string
 {
 switch ($this->mytype) {
 case 3:
@@ -495,7 +495,7 @@
 }
 
 // unused.
- function serializedata($typ, $val)
+ function serializedata($typ, $val): string
 {
 return "serializedata not supported";
 }
@@ -529,7 +529,7 @@
 }
 
 // public. get key/val pair of next struct item.
- function structeach()
+ function structeach(): array
 {
 return each($this->me["struct"]);
 }
@@ -562,7 +562,7 @@
 }
 
 // public. get array size
- function arraysize()
+ function arraysize(): int
 {
 reset($this->me);
 list($a, $b) = each($this->me);
Modified: trunk/lib/XMLRPC/xmlrpcs.inc
===================================================================
--- trunk/lib/XMLRPC/xmlrpcs.inc	2023年07月14日 11:09:38 UTC (rev 11053)
+++ trunk/lib/XMLRPC/xmlrpcs.inc	2023年07月14日 11:16:48 UTC (rev 11054)
@@ -245,7 +245,7 @@
 }
 }
 
- function serializeDebug()
+ function serializeDebug(): string
 {
 global $_xmlrpc_debuginfo;
 if ($_xmlrpc_debuginfo != '') {
@@ -281,7 +281,7 @@
 );
 }
 
- function verifySignature($in, $sig)
+ function verifySignature($in, $sig): array
 {
 for ($i = 0; $i < sizeof($sig); $i++) {
 // check each possible signature in turn
Modified: trunk/lib/XMLRPC/xmlrpcs_emu.inc
===================================================================
--- trunk/lib/XMLRPC/xmlrpcs_emu.inc	2023年07月14日 11:09:38 UTC (rev 11053)
+++ trunk/lib/XMLRPC/xmlrpcs_emu.inc	2023年07月14日 11:16:48 UTC (rev 11054)
@@ -77,7 +77,7 @@
 * is then returned to the server, parsed, and possibly spit *
 * out as xmlrpc. *
 *************************************************************/
-function _introspection_cb($userdata)
+function _introspection_cb($userdata): string
 {
 foreach ($userdata as $name => $method) {
 if ($incr++ > 0) break;
@@ -157,7 +157,7 @@
 }
 
 // private. not really useful anymore since this is all handled by the xmlrpc-epi stuff.
- function serializeDebug()
+ function serializeDebug(): string
 {
 global $_xmlrpc_debuginfo;
 if ($_xmlrpc_debuginfo != "")
@@ -183,7 +183,7 @@
 }
 
 // private. no equivalent in C library (yet)
- function verifySignature($in, $sig)
+ function verifySignature($in, $sig): string
 {
 return "verifySignature not supported";
 }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <var...@us...> - 2023年07月14日 11:09:41
Revision: 11053
 http://sourceforge.net/p/phpwiki/code/11053
Author: vargenau
Date: 2023年07月14日 11:09:38 +0000 (2023年7月14日)
Log Message:
-----------
lib/WikiDB: PHP 7: add types for function arguments and return
Modified Paths:
--------------
 trunk/lib/WikiDB/PDO.php
 trunk/lib/WikiDB/SQL.php
 trunk/lib/WikiDB/backend.php
Modified: trunk/lib/WikiDB/PDO.php
===================================================================
--- trunk/lib/WikiDB/PDO.php	2023年07月14日 11:00:34 UTC (rev 11052)
+++ trunk/lib/WikiDB/PDO.php	2023年07月14日 11:09:38 UTC (rev 11053)
@@ -101,7 +101,7 @@
 return str_replace("'", "\'", $in);
 }
 
- public function isOpen()
+ public function isOpen(): bool
 {
 /**
 * @var WikiRequest $request
Modified: trunk/lib/WikiDB/SQL.php
===================================================================
--- trunk/lib/WikiDB/SQL.php	2023年07月14日 11:00:34 UTC (rev 11052)
+++ trunk/lib/WikiDB/SQL.php	2023年07月14日 11:09:38 UTC (rev 11053)
@@ -54,7 +54,7 @@
 parent::__construct($backend, $dbparams);
 }
 
- public static function view_dsn($dsn = false)
+ public static function view_dsn($dsn = false): string
 {
 if (!$dsn) {
 $dsninfo = DB::parseDSN($GLOBALS['DBParams']['dsn']);
@@ -97,7 +97,7 @@
 return $this->_backend->_dbh->escapeSimple($s);
 }
 
- public function isOpen()
+ public function isOpen(): bool
 {
 /**
 * @var WikiRequest $request
Modified: trunk/lib/WikiDB/backend.php
===================================================================
--- trunk/lib/WikiDB/backend.php	2023年07月14日 11:00:34 UTC (rev 11052)
+++ trunk/lib/WikiDB/backend.php	2023年07月14日 11:09:38 UTC (rev 11053)
@@ -91,7 +91,7 @@
 * don't think we need this...)
 * </dl>
 */
- abstract public function get_pagedata($pagename);
+ abstract public function get_pagedata(string $pagename): array;
 
 /**
 * Update the page meta-data.
@@ -116,7 +116,7 @@
 * @param string $pagename Page name.
 * @param array $newdata hash New meta-data.
 */
- abstract public function update_pagedata($pagename, $newdata);
+ abstract public function update_pagedata(string $pagename, array $newdata);
 
 /**
 * Get the current version number for a page.
@@ -125,7 +125,7 @@
 * @return int The latest version number for the page. Returns zero if
 * no versions of a page exist.
 */
- abstract public function get_latest_version($pagename);
+ abstract public function get_latest_version(string $pagename): int;
 
 /**
 * Get preceding version number.
@@ -135,7 +135,7 @@
 * @return int The version number of the version in the database which
 * immediately precedes $version.
 */
- abstract public function get_previous_version($pagename, $version);
+ abstract public function get_previous_version(string $pagename, int $version): int;
 
 /**
 * Get revision meta-data and content.
@@ -161,7 +161,7 @@
 * For description of other version meta-data see WikiDB_PageRevision::get().
 * @see WikiDB_PageRevision::get
 */
- abstract public function get_versiondata($pagename, $version, $want_content = false);
+ abstract public function get_versiondata(string $pagename, int $version, bool $want_content = false);
 
 /**
 * Create a new page revision.
@@ -175,7 +175,7 @@
 *
 * @see get_versiondata
 */
- abstract public function set_versiondata($pagename, $version, $data);
+ abstract public function set_versiondata(string $pagename, int $version, array $data);
 
 /**
 * Update page version meta-data.
@@ -189,7 +189,7 @@
 * @param array $newdata hash New revision metadata.
 * @see set_versiondata, get_versiondata
 */
- public function update_versiondata($pagename, $version, $newdata)
+ public function update_versiondata(string $pagename, int $version, array $newdata)
 {
 $data = $this->get_versiondata($pagename, $version, true);
 if (!$data) {
@@ -218,7 +218,7 @@
 * @param string $pagename Page name.
 * @param int $version int Version to delete.
 */
- abstract public function delete_versiondata($pagename, $version);
+ abstract public function delete_versiondata(string $pagename, int $version);
 
 /**
 * Rename page in the database.
@@ -226,7 +226,7 @@
 * @param string $pagename Current page name
 * @param string $to Future page name
 */
- abstract public function rename_page($pagename, $to);
+ abstract public function rename_page(string $pagename, string $to);
 
 /**
 * Delete page from the database with backup possibility.
@@ -237,7 +237,7 @@
 * i.e save_page('') and DELETE nonempty id
 * Can be undone and is seen in RecentChanges.
 */
- abstract public function delete_page($pagename);
+ abstract public function delete_page(string $pagename);
 
 /**
 * Delete page (and all its revisions) from the database.
@@ -244,7 +244,7 @@
 *
 * @param string $pagename Page name.
 */
- abstract public function purge_page($pagename);
+ abstract public function purge_page(string $pagename);
 
 /**
 * Find pages which link to or are linked from a page.
@@ -261,13 +261,13 @@
 * @return object A WikiDB_backend_iterator.
 */
 abstract public function get_links(
- $pagename,
- $reversed = true,
- $include_empty = false,
- $sortby = '',
- $limit = '',
- $exclude = '',
- $want_relations = false
+ string $pagename,
+ bool $reversed = true,
+ bool $include_empty = false,
+ string $sortby = '',
+ string $limit = '',
+ string $exclude = '',
+ bool $want_relations = false
 );
 
 /**
@@ -276,7 +276,7 @@
 * @param string $pagename Page name
 * @param array $links List of page(names) which page links to.
 */
- abstract public function set_links($pagename, $links);
+ abstract public function set_links(string $pagename, array $links);
 
 /**
 * Get all revisions of a page.
@@ -284,7 +284,7 @@
 * @param string $pagename The page name.
 * @return object A WikiDB_backend_iterator.
 */
- public function get_all_revisions($pagename)
+ public function get_all_revisions(string $pagename)
 {
 include_once 'lib/WikiDB/backend/dumb/AllRevisionsIter.php';
 return new WikiDB_backend_dumb_AllRevisionsIter($this, $pagename);
@@ -311,10 +311,10 @@
 * @return object A WikiDB_backend_iterator.
 */
 abstract public function get_all_pages(
- $include_empty = false,
- $sortby = '',
- $limit = '',
- $exclude = ''
+ bool $include_empty = false,
+ string $sortby = '',
+ string $limit = '',
+ string $exclude = ''
 );
 
 /**
@@ -338,11 +338,11 @@
 * @see WikiDB::titleSearch
 */
 public function text_search(
- $search,
- $fulltext = false,
- $sortby = '',
- $limit = '',
- $exclude = ''
+ object $search,
+ bool $fulltext = false,
+ string $sortby = '',
+ string $limit = '',
+ string $exclude = ''
 )
 {
 // This method implements a simple linear search
@@ -374,7 +374,7 @@
 * @return object A WikiDB_backend_iterator.
 * @see WikiDB::linkSearch
 */
- public function link_search($pages, $linkvalue, $linktype, $relation = false, $options = array())
+ public function link_search($pages, $linkvalue, string $linktype, $relation = false, array $options = array())
 {
 include_once 'lib/WikiDB/backend/dumb/LinkSearchIter.php';
 $pageiter = $this->text_search($pages);
@@ -391,7 +391,7 @@
 * @param string $sortby
 * @return object A WikiDB_backend_iterator.
 */
- public function most_popular($limit = 20, $sortby = '-hits')
+ public function most_popular(int $limit = 20, string $sortby = '-hits')
 {
 // This is method fetches all pages, then
 // sorts them by hit count.
@@ -412,7 +412,7 @@
 * @return object A WikiDB_backend_iterator.
 * @see WikiDB::mostRecent
 */
- public function most_recent($params)
+ public function most_recent(array $params)
 {
 // This method is very inefficient and searches through
 // all pages for the most recent changes.
@@ -444,7 +444,7 @@
 *
 * All backends <em>should</em> support write locking.
 */
- abstract public function lock($tables = array(), $write_lock = true);
+ abstract public function lock(array $tables = array(), bool $write_lock = true);
 
 /**
 * Unlock backend database.
@@ -454,7 +454,7 @@
 * unlock() is called as many times as lock() has been. If $force is
 * set to true, the the database is unconditionally unlocked.
 */
- abstract public function unlock($tables = array(), $force = false);
+ abstract public function unlock(array $tables = array(), bool $force = false);
 
 /**
 * Close database.
@@ -475,7 +475,7 @@
 *
 * @return bool
 */
- public function optimize()
+ public function optimize(): bool
 {
 return true;
 }
@@ -492,7 +492,7 @@
 * @param bool $args
 * @return bool True iff database is in a consistent state.
 */
- public function check($args = false)
+ public function check(bool $args = false): bool
 {
 return true;
 }
@@ -507,7 +507,7 @@
 * @param bool $args
 * @return bool True iff successful.
 */
- public function rebuild($args = false)
+ public function rebuild(bool $args = false): bool
 {
 /**
 * @var WikiRequest $request
@@ -534,7 +534,7 @@
 return true;
 }
 
- public function _parse_searchwords($search)
+ public function _parse_searchwords($search): array
 {
 $search = strtolower(trim($search));
 if (!$search) {
@@ -559,7 +559,7 @@
 * Usage:
 * list($offset,$count) = $this->limit($args['limit']);
 */
- public static function limit($limit)
+ public static function limit($limit): array
 {
 if (strstr($limit, ',')) {
 list($from, $limit) = explode(',', $limit);
@@ -654,13 +654,13 @@
 return '';
 }
 
- public function sortable_columns()
+ public function sortable_columns(): array
 {
 return array('pagename' /*,'mtime','author_id','author'*/);
 }
 
 // adds surrounding quotes
- public function quote($s)
+ public function quote($s): string
 {
 return "'" . $s . "'";
 }
@@ -671,7 +671,7 @@
 return $s;
 }
 
- public function isSQL()
+ public function isSQL(): bool
 {
 return in_array(DATABASE_TYPE, array('SQL', 'PDO'));
 }
@@ -746,7 +746,7 @@
 */
 abstract public function next();
 
- public function count()
+ public function count(): int
 {
 if (!empty($this->_pages)) {
 return count($this->_pages);
@@ -800,28 +800,28 @@
 $this->stoplisted = array();
 }
 
- public function _quote($word)
+ public function _quote($word): string
 {
 return preg_quote($word, "/");
 }
 
 //TODO: use word anchors
- public function EXACT($word)
+ public function EXACT($word): string
 {
 return "^" . $this->_quote($word) . "$";
 }
 
- public function STARTS_WITH($word)
+ public function STARTS_WITH($word): string
 {
 return "^" . $this->_quote($word);
 }
 
- public function ENDS_WITH($word)
+ public function ENDS_WITH($word): string
 {
 return $this->_quote($word) . "$";
 }
 
- public function WORD($word)
+ public function WORD($word): string
 {
 return $this->_quote($word);
 }
@@ -832,7 +832,7 @@
 }
 
 //TESTME
- public function _pagename_match_clause($node)
+ public function _pagename_match_clause($node): string
 {
 $method = $node->op;
 $word = $this->$method($node->word);
@@ -842,7 +842,7 @@
 /* Eliminate stoplist words.
 * Keep a list of Stoplisted words to inform the poor user.
 */
- public function isStoplisted($node)
+ public function isStoplisted($node): bool
 {
 // check only on WORD or EXACT fulltext search
 if ($node->op != 'WORD' and $node->op != 'EXACT') {
@@ -861,7 +861,7 @@
 */
 class WikiDB_backend_search_sql extends WikiDB_backend_search
 {
- public function _pagename_match_clause($node)
+ public function _pagename_match_clause($node): string
 {
 // word already quoted by TextSearchQuery_node_word::sql_quote()
 $word = $node->sql();
@@ -874,7 +874,7 @@
 }
 }
 
- public function _fulltext_match_clause($node)
+ public function _fulltext_match_clause($node): string
 {
 // force word-style %word% for fulltext search
 $dbh = &$this->_dbh;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <var...@us...> - 2023年07月14日 11:00:37
Revision: 11052
 http://sourceforge.net/p/phpwiki/code/11052
Author: vargenau
Date: 2023年07月14日 11:00:34 +0000 (2023年7月14日)
Log Message:
-----------
lib/WikiDB/backend: PHP 7: add types for function arguments and return
Modified Paths:
--------------
 trunk/lib/WikiDB/backend/PDO.php
 trunk/lib/WikiDB/backend/PDO_mysql.php
 trunk/lib/WikiDB/backend/PDO_oci8.php
 trunk/lib/WikiDB/backend/PDO_pgsql.php
 trunk/lib/WikiDB/backend/PearDB.php
 trunk/lib/WikiDB/backend/PearDB_ffpgsql.php
 trunk/lib/WikiDB/backend/PearDB_mysqli.php
 trunk/lib/WikiDB/backend/PearDB_oci8.php
 trunk/lib/WikiDB/backend/PearDB_pgsql.php
 trunk/lib/WikiDB/backend/dba.php
 trunk/lib/WikiDB/backend/dbaBase.php
 trunk/lib/WikiDB/backend/dumb/AllRevisionsIter.php
 trunk/lib/WikiDB/backend/dumb/LinkSearchIter.php
 trunk/lib/WikiDB/backend/dumb/MostPopularIter.php
 trunk/lib/WikiDB/backend/file.php
 trunk/lib/WikiDB/backend/flatfile.php
Modified: trunk/lib/WikiDB/backend/PDO.php
===================================================================
--- trunk/lib/WikiDB/backend/PDO.php	2023年07月14日 10:33:04 UTC (rev 11051)
+++ trunk/lib/WikiDB/backend/PDO.php	2023年07月14日 11:00:34 UTC (rev 11052)
@@ -278,7 +278,7 @@
 /*
 * Read page information from database.
 */
- public function get_pagedata($pagename)
+ public function get_pagedata(string $pagename): array
 {
 $dbh = &$this->_dbh;
 $page_tbl = $this->_table_names['page_tbl'];
@@ -290,7 +290,7 @@
 return $row ? $this->_extract_page_data($row[3], $row[2]) : false;
 }
 
- public function _extract_page_data($data, $hits)
+ public function _extract_page_data($data, $hits): array
 {
 if (empty($data)) {
 return array('hits' => $hits);
@@ -299,7 +299,7 @@
 }
 }
 
- public function update_pagedata($pagename, $newdata)
+ public function update_pagedata(string $pagename, array $newdata): bool
 {
 $dbh = &$this->_dbh;
 $page_tbl = $this->_table_names['page_tbl'];
@@ -434,7 +434,7 @@
 return $id;
 }
 
- public function get_latest_version($pagename)
+ public function get_latest_version(string $pagename): int
 {
 $dbh = &$this->_dbh;
 extract($this->_table_names);
@@ -448,7 +448,7 @@
 return $sth->fetchColumn();
 }
 
- public function get_previous_version($pagename, $version)
+ public function get_previous_version(string $pagename, int $version): int
 {
 $dbh = &$this->_dbh;
 extract($this->_table_names);
@@ -474,7 +474,7 @@
 *
 * @return array|false The version data, or false if specified version does not exist.
 */
- public function get_versiondata($pagename, $version, $want_content = false)
+ public function get_versiondata(string $pagename, int $version, bool $want_content = false)
 {
 $dbh = &$this->_dbh;
 extract($this->_table_names);
@@ -555,7 +555,7 @@
 /*
 * Create a new revision of a page.
 */
- public function set_versiondata($pagename, $version, $data)
+ public function set_versiondata(string $pagename, int $version, array $data)
 {
 $dbh = &$this->_dbh;
 $version_tbl = $this->_table_names['version_tbl'];
@@ -611,7 +611,7 @@
 /*
 * Delete an old revision of a page.
 */
- public function delete_versiondata($pagename, $version)
+ public function delete_versiondata(string $pagename, int $version)
 {
 $dbh = &$this->_dbh;
 extract($this->_table_names);
@@ -637,7 +637,7 @@
 * so that get_latest_version returns id+1 and get_previous_version returns prev id
 * and page->exists returns false.
 */
- public function delete_page($pagename)
+ public function delete_page(string $pagename): bool
 {
 /**
 * @var WikiRequest $request
@@ -699,7 +699,7 @@
 /*
 * Delete page completely from the database.
 */
- public function purge_page($pagename)
+ public function purge_page(string $pagename): int
 {
 $dbh = &$this->_dbh;
 extract($this->_table_names);
@@ -734,7 +734,7 @@
 * @param string $pagename Page name
 * @param array $links List of page(names) which page links to.
 */
- public function set_links($pagename, $links)
+ public function set_links(string $pagename, array $links)
 {
 // Update link table.
 // FIXME: optimize: mysql can do this all in one big INSERT/REPLACE.
@@ -803,13 +803,13 @@
 * if (isset($next['linkrelation']))
 */
 public function get_links(
- $pagename,
- $reversed = true,
- $include_empty = false,
- $sortby = '',
- $limit = '',
- $exclude = '',
- $want_relations = false
+ string $pagename,
+ bool $reversed = true,
+ bool $include_empty = false,
+ string $sortby = '',
+ string $limit = '',
+ string $exclude = '',
+ bool $want_relations = false
 )
 {
 $dbh = &$this->_dbh;
@@ -872,10 +872,10 @@
 }
 
 public function get_all_pages(
- $include_empty = false,
- $sortby = '',
- $limit = '',
- $exclude = ''
+ bool $include_empty = false,
+ string $sortby = '',
+ string $limit = '',
+ string $exclude = ''
 )
 {
 $dbh = &$this->_dbh;
@@ -935,11 +935,11 @@
 * Text search (title or full text)
 */
 public function text_search(
- $search,
- $fulltext = false,
- $sortby = '',
- $limit = '',
- $exclude = ''
+ object $search,
+ bool $fulltext = false,
+ string $sortby = '',
+ string $limit = '',
+ string $exclude = ''
 )
 {
 $dbh = &$this->_dbh;
@@ -991,7 +991,7 @@
 * This is only for already resolved wildcards:
 * " WHERE $page_tbl.pagename NOT IN ".$this->_sql_set(array('page1','page2'));
 */
- public function _sql_set($pagenames)
+ public function _sql_set($pagenames): string
 {
 $s = '(';
 foreach ($pagenames as $p) {
@@ -1003,7 +1003,7 @@
 /*
 * Find highest or lowest hit counts.
 */
- public function most_popular($limit = 20, $sortby = '-hits')
+ public function most_popular(int $limit = 20, string $sortby = '-hits')
 {
 $dbh = &$this->_dbh;
 extract($this->_table_names);
@@ -1041,7 +1041,7 @@
 /*
 * Find recent changes.
 */
- public function most_recent($params)
+ public function most_recent(array $params)
 {
 $limit = 0;
 $since = 0;
@@ -1161,7 +1161,7 @@
 * @param string $to Future page name
 */
 
- public function rename_page($pagename, $to)
+ public function rename_page(string $pagename, string $to)
 {
 $dbh = &$this->_dbh;
 extract($this->_table_names);
@@ -1239,7 +1239,7 @@
 * Calls can be nested. The tables won't be unlocked until
 * _unlock_database() is called as many times as _lock_database().
 */
- public function lock($tables = array(), $write_lock = true)
+ public function lock(array $tables = array(), bool $write_lock = true)
 {
 if ($this->_lock_count++ == 0) {
 $this->_current_lock = $tables;
@@ -1270,7 +1270,7 @@
 *
 * @see _lock_database
 */
- public function unlock($tables = array(), $force = false)
+ public function unlock(array $tables = array(), bool $force = false)
 {
 if ($this->_lock_count == 0) {
 $this->_current_lock = false;
@@ -1330,13 +1330,13 @@
 return $this->_dbh->databaseType;
 }
 
- public function connection()
+ public function connection(): bool
 {
 trigger_error("PDO: connectionID unsupported", E_USER_ERROR);
 return false;
 }
 
- public function listOfTables()
+ public function listOfTables(): array
 {
 trigger_error("PDO: virtual listOfTables", E_USER_ERROR);
 return array();
@@ -1362,7 +1362,7 @@
 BETWEEN $offset AND $last
 ORDER BY $pk $asc_desc
 */
- public function _limit_sql($limit = false)
+ public function _limit_sql($limit = false): string
 {
 if ($limit) {
 list($offset, $count) = $this->limit($limit);
@@ -1413,7 +1413,7 @@
 //$this->_fields = $field_list;
 }
 
- public function count()
+ public function count(): int
 {
 if (!is_object($this->_result)) {
 return false;
@@ -1467,7 +1467,7 @@
 
 class WikiDB_backend_PDO_search extends WikiDB_backend_search_sql
 {
- public function _pagename_match_clause($node)
+ public function _pagename_match_clause($node): string
 {
 $word = $node->sql();
 if ($word == '%') { // ALL shortcut
@@ -1481,7 +1481,7 @@
 }
 }
 
- public function _fulltext_match_clause($node)
+ public function _fulltext_match_clause($node): string
 {
 // force word-style %word% for fulltext search
 $dbh = &$this->_dbh;
@@ -1538,7 +1538,7 @@
 *
 * @author Tomas V.V.Cox <co...@id...>
 */
-function parseDSN($dsn)
+function parseDSN(string $dsn): array
 {
 $parsed = array(
 'phptype' => false,
Modified: trunk/lib/WikiDB/backend/PDO_mysql.php
===================================================================
--- trunk/lib/WikiDB/backend/PDO_mysql.php	2023年07月14日 10:33:04 UTC (rev 11051)
+++ trunk/lib/WikiDB/backend/PDO_mysql.php	2023年07月14日 11:00:34 UTC (rev 11052)
@@ -35,7 +35,7 @@
 $this->_dbh->query("SET NAMES 'utf8'");
 }
 
- public function backendType()
+ public function backendType(): string
 {
 return 'mysql';
 }
@@ -66,7 +66,7 @@
 /**
 * Pack tables.
 */
- public function optimize()
+ public function optimize(): bool
 {
 $this->_timeout();
 foreach ($this->_table_names as $table) {
@@ -75,7 +75,7 @@
 return true;
 }
 
- public function listOfTables()
+ public function listOfTables(): array
 {
 $sth = $this->_dbh->prepare("SHOW TABLES");
 $sth->execute();
@@ -90,7 +90,7 @@
 * offset specific syntax within mysql
 * convert from,count to SQL "LIMIT $from, $count"
 */
- public function _limit_sql($limit = false)
+ public function _limit_sql($limit = false): string
 {
 if ($limit) {
 list($from, $count) = $this->limit($limit);
Modified: trunk/lib/WikiDB/backend/PDO_oci8.php
===================================================================
--- trunk/lib/WikiDB/backend/PDO_oci8.php	2023年07月14日 10:33:04 UTC (rev 11051)
+++ trunk/lib/WikiDB/backend/PDO_oci8.php	2023年07月14日 11:00:34 UTC (rev 11052)
@@ -29,12 +29,12 @@
 
 class WikiDB_backend_PDO_oci8 extends WikiDB_backend_PDO
 {
- public function backendType()
+ public function backendType(): string
 {
 return 'oci8';
 }
 
- public function optimize()
+ public function optimize(): bool
 {
 // Do nothing here -- Leave that for the DBA
 // Cost Based Optimizer tuning vary from version to version
Modified: trunk/lib/WikiDB/backend/PDO_pgsql.php
===================================================================
--- trunk/lib/WikiDB/backend/PDO_pgsql.php	2023年07月14日 10:33:04 UTC (rev 11051)
+++ trunk/lib/WikiDB/backend/PDO_pgsql.php	2023年07月14日 11:00:34 UTC (rev 11052)
@@ -29,7 +29,7 @@
 
 class WikiDB_backend_PDO_pgsql extends WikiDB_backend_PDO
 {
- public function backendType()
+ public function backendType(): string
 {
 return 'pgsql';
 }
@@ -38,7 +38,7 @@
 * offset specific syntax within pgsql
 * convert from,count to SQL "LIMIT $count OFFSET $from"
 */
- public function _limit_sql($limit = false)
+ public function _limit_sql($limit = false): string
 {
 if ($limit) {
 list($from, $count) = $this->limit($limit);
Modified: trunk/lib/WikiDB/backend/PearDB.php
===================================================================
--- trunk/lib/WikiDB/backend/PearDB.php	2023年07月14日 10:33:04 UTC (rev 11051)
+++ trunk/lib/WikiDB/backend/PearDB.php	2023年07月14日 11:00:34 UTC (rev 11052)
@@ -166,7 +166,7 @@
 /*
 * Read page information from database.
 */
- public function get_pagedata($pagename)
+ public function get_pagedata(string $pagename): array
 {
 $dbh = &$this->_dbh;
 //trigger_error("GET_PAGEDATA $pagename", E_USER_NOTICE);
@@ -181,7 +181,7 @@
 return $result ? $this->_extract_page_data($result) : false;
 }
 
- public function _extract_page_data($data)
+ public function _extract_page_data($data): array
 {
 if (empty($data)) {
 return array();
@@ -194,7 +194,7 @@
 }
 }
 
- public function update_pagedata($pagename, $newdata)
+ public function update_pagedata(string $pagename, array $newdata)
 {
 $dbh = &$this->_dbh;
 $page_tbl = $this->_table_names['page_tbl'];
@@ -309,7 +309,7 @@
 return $id;
 }
 
- public function get_latest_version($pagename)
+ public function get_latest_version(string $pagename): int
 {
 $dbh = &$this->_dbh;
 extract($this->_table_names);
@@ -323,7 +323,7 @@
 ));
 }
 
- public function get_previous_version($pagename, $version)
+ public function get_previous_version(string $pagename, int $version): int
 {
 $dbh = &$this->_dbh;
 extract($this->_table_names);
@@ -353,7 +353,7 @@
 *
 * @return array|false The version data, or false if specified version does not exist.
 */
- public function get_versiondata($pagename, $version, $want_content = false)
+ public function get_versiondata(string $pagename, int $version, bool $want_content = false)
 {
 $dbh = &$this->_dbh;
 extract($this->_table_names);
@@ -428,7 +428,7 @@
 /*
 * Create a new revision of a page.
 */
- public function set_versiondata($pagename, $version, $data)
+ public function set_versiondata(string $pagename, int $version, array $data)
 {
 $dbh = &$this->_dbh;
 $version_tbl = $this->_table_names['version_tbl'];
@@ -471,7 +471,7 @@
 /*
 * Delete an old revision of a page.
 */
- public function delete_versiondata($pagename, $version)
+ public function delete_versiondata(string $pagename, int $version)
 {
 $dbh = &$this->_dbh;
 extract($this->_table_names);
@@ -491,7 +491,7 @@
 /*
 * Delete page completely from the database.
 */
- public function purge_page($pagename)
+ public function purge_page(string $pagename): int
 {
 $dbh = &$this->_dbh;
 extract($this->_table_names);
@@ -527,7 +527,7 @@
 * @param string $pagename Page name
 * @param array $links List of page(names) which page links to.
 */
- public function set_links($pagename, $links)
+ public function set_links(string $pagename, array $links)
 {
 // Update link table.
 // FIXME: optimize: mysql can do this all in one big INSERT/REPLACE.
@@ -591,13 +591,13 @@
 * if (isset($next['linkrelation']))
 */
 public function get_links(
- $pagename,
- $reversed = true,
- $include_empty = false,
- $sortby = '',
- $limit = '',
- $exclude = '',
- $want_relations = false
+ string $pagename,
+ bool $reversed = true,
+ bool $include_empty = false,
+ string $sortby = '',
+ string $limit = '',
+ string $exclude = '',
+ bool $want_relations = false
 )
 {
 $dbh = &$this->_dbh;
@@ -666,10 +666,10 @@
 }
 
 public function get_all_pages(
- $include_empty = false,
- $sortby = '',
- $limit = '',
- $exclude = ''
+ bool $include_empty = false,
+ string $sortby = '',
+ string $limit = '',
+ string $exclude = ''
 )
 {
 $dbh = &$this->_dbh;
@@ -733,11 +733,11 @@
 * Text search (title or full text)
 */
 public function text_search(
- $search,
- $fulltext = false,
- $sortby = '',
- $limit = '',
- $exclude = ''
+ object $search,
+ bool $fulltext = false,
+ string $sortby = '',
+ string $limit = '',
+ string $exclude = ''
 )
 {
 $dbh = &$this->_dbh;
@@ -788,7 +788,7 @@
 
 //Todo: check if the better Mysql MATCH operator is supported,
 // (ranked search) and also google like expressions.
- public function _sql_match_clause($word)
+ public function _sql_match_clause($word): string
 {
 $word = preg_replace('/(?=[%_\\\\])/', "\\", $word);
 $word = $this->_dbh->escapeSimple($word);
@@ -799,7 +799,7 @@
 return "LOWER(pagename) LIKE '%$word%'";
 }
 
- public function _sql_casematch_clause($word)
+ public function _sql_casematch_clause($word): string
 {
 $word = preg_replace('/(?=[%_\\\\])/', "\\", $word);
 $word = $this->_dbh->escapeSimple($word);
@@ -806,7 +806,7 @@
 return "pagename LIKE '%$word%'";
 }
 
- public function _fullsearch_sql_match_clause($word)
+ public function _fullsearch_sql_match_clause($word): string
 {
 $word = preg_replace('/(?=[%_\\\\])/', "\\", $word);
 $word = $this->_dbh->escapeSimple($word);
@@ -815,7 +815,7 @@
 return "LOWER(pagename) LIKE '%$word%' OR content LIKE '%$word%'";
 }
 
- public function _fullsearch_sql_casematch_clause($word)
+ public function _fullsearch_sql_casematch_clause($word): string
 {
 $word = preg_replace('/(?=[%_\\\\])/', "\\", $word);
 $word = $this->_dbh->escapeSimple($word);
@@ -822,7 +822,7 @@
 return "pagename LIKE '%$word%' OR content LIKE '%$word%'";
 }
 
- public function _sql_set(&$pagenames)
+ public function _sql_set(&$pagenames): string
 {
 $s = '(';
 foreach ($pagenames as $p) {
@@ -834,7 +834,7 @@
 /*
 * Find highest or lowest hit counts.
 */
- public function most_popular($limit = 20, $sortby = '-hits')
+ public function most_popular(int $limit = 20, string $sortby = '-hits')
 {
 $dbh = &$this->_dbh;
 extract($this->_table_names);
@@ -872,7 +872,7 @@
 /*
 * Find recent changes.
 */
- public function most_recent($params)
+ public function most_recent(array $params)
 {
 $limit = 0;
 $since = 0;
@@ -981,7 +981,7 @@
 * @param string $to Future page name
 */
 
- public function rename_page($pagename, $to)
+ public function rename_page(string $pagename, string $to)
 {
 $dbh = &$this->_dbh;
 extract($this->_table_names);
@@ -1006,7 +1006,7 @@
 * Can be undone and is seen in RecentChanges.
 */
 
- public function delete_page($pagename)
+ public function delete_page(string $pagename)
 {
 /**
 * @var WikiRequest $request
@@ -1084,7 +1084,7 @@
 * Calls can be nested. The tables won't be unlocked until
 * _unlock_database() is called as many times as _lock_database().
 */
- public function lock($tables = array(), $write_lock = true)
+ public function lock(array $tables = array(), bool $write_lock = true)
 {
 if ($this->_lock_count++ == 0) {
 $this->_lock_tables($write_lock);
@@ -1108,7 +1108,7 @@
 *
 * @see _lock_database
 */
- public function unlock($tables = array(), $force = false)
+ public function unlock(array $tables = array(), bool $force = false)
 {
 if ($this->_lock_count == 0) {
 return;
@@ -1173,7 +1173,7 @@
 *
 * @return bool True iff error is not really an error.
 */
- private function _is_false_error($error)
+ private function _is_false_error($error): bool
 {
 if ($error->getCode() != DB_ERROR) {
 return false;
@@ -1268,7 +1268,7 @@
 $this->_options = $field_list;
 }
 
- public function count()
+ public function count(): int
 {
 if (!$this->_result) {
 return false;
@@ -1306,7 +1306,7 @@
 }
 }
 
- public function asArray()
+ public function asArray(): array
 {
 $result = array();
 while ($page = $this->next()) {
Modified: trunk/lib/WikiDB/backend/PearDB_ffpgsql.php
===================================================================
--- trunk/lib/WikiDB/backend/PearDB_ffpgsql.php	2023年07月14日 10:33:04 UTC (rev 11051)
+++ trunk/lib/WikiDB/backend/PearDB_ffpgsql.php	2023年07月14日 11:00:34 UTC (rev 11052)
@@ -93,13 +93,13 @@
 /*
 * Read page information from database.
 */
- public function get_pagedata($pagename)
+ public function get_pagedata(string $pagename)
 {
 global $page_prefix;
 return parent::get_pagedata($page_prefix . $pagename);
 }
 
- public function update_pagedata($pagename, $newdata)
+ public function update_pagedata(string $pagename, array $newdata)
 {
 $dbh = &$this->_dbh;
 $page_tbl = $this->_table_names['page_tbl'];
@@ -164,13 +164,13 @@
 $this->unlock(array($page_tbl));
 }
 
- public function get_latest_version($pagename)
+ public function get_latest_version(string $pagename): int
 {
 global $page_prefix;
 return parent::get_latest_version($page_prefix . $pagename);
 }
 
- public function get_previous_version($pagename, $version)
+ public function get_previous_version(string $pagename, int $version): int
 {
 global $page_prefix;
 return parent::get_previous_version($page_prefix . $pagename, $version);
@@ -185,7 +185,7 @@
 *
 * @return array The version data, or false if specified version does not exist.
 */
- public function get_versiondata($pagename, $version, $want_content = false)
+ public function get_versiondata(string $pagename, int $version, bool $want_content = false): array
 {
 $dbh = &$this->_dbh;
 extract($this->_table_names);
@@ -288,7 +288,7 @@
 /*
 * Delete page completely from the database.
 */
- public function purge_page($pagename)
+ public function purge_page(string $pagename): int
 {
 $dbh = &$this->_dbh;
 extract($this->_table_names);
@@ -335,13 +335,13 @@
 * if (isset($next['linkrelation']))
 */
 public function get_links(
- $pagename,
- $reversed = true,
- $include_empty = false,
- $sortby = '',
- $limit = '',
- $exclude = '',
- $want_relations = false
+ string $pagename,
+ bool $reversed = true,
+ bool $include_empty = false,
+ string $sortby = '',
+ string $limit = '',
+ string $exclude = '',
+ bool $want_relations = false
 )
 {
 $dbh = &$this->_dbh;
@@ -393,10 +393,10 @@
 }
 
 public function get_all_pages(
- $include_empty = false,
- $sortby = '',
- $limit = '',
- $exclude = ''
+ bool $include_empty = false,
+ string $sortby = '',
+ string $limit = '',
+ string $exclude = ''
 )
 {
 $dbh = &$this->_dbh;
@@ -468,7 +468,7 @@
 /*
 * Find highest or lowest hit counts.
 */
- public function most_popular($limit = 20, $sortby = '-hits')
+ public function most_popular(int $limit = 20, string $sortby = '-hits')
 {
 $dbh = &$this->_dbh;
 extract($this->_table_names);
@@ -510,7 +510,7 @@
 /*
 * Find recent changes.
 */
- public function most_recent($params)
+ public function most_recent(array $params)
 {
 $limit = 0;
 $since = 0;
@@ -628,7 +628,7 @@
 * @param string $to Future page name
 */
 
- public function rename_page($pagename, $to)
+ public function rename_page(string $pagename, string $to)
 {
 $dbh = &$this->_dbh;
 extract($this->_table_names);
@@ -681,7 +681,7 @@
 * Pack tables.
 * NOTE: Disable vacuum, wikiuser is not the table owner
 */
- public function optimize()
+ public function optimize(): bool
 {
 return true;
 }
@@ -690,11 +690,11 @@
 * Text search (title or full text)
 */
 public function text_search(
- $search,
- $fulltext = false,
- $sortby = '',
- $limit = '',
- $exclude = ''
+ object $search,
+ bool $fulltext = false,
+ string $sortby = '',
+ string $limit = '',
+ string $exclude = ''
 )
 {
 $dbh = &$this->_dbh;
@@ -757,7 +757,7 @@
 return $iter;
 }
 
- public function exists_link($pagename, $link, $reversed = false)
+ public function exists_link($pagename, $link, $reversed = false): int
 {
 $dbh = &$this->_dbh;
 extract($this->_table_names);
@@ -781,7 +781,7 @@
 
 class WikiDB_backend_PearDB_ffpgsql_search extends WikiDB_backend_PearDB_pgsql_search
 {
- public function _pagename_match_clause($node)
+ public function _pagename_match_clause($node): string
 {
 $word = $node->sql();
 // @alu: use _quote maybe instead of direct pg_escape_string
Modified: trunk/lib/WikiDB/backend/PearDB_mysqli.php
===================================================================
--- trunk/lib/WikiDB/backend/PearDB_mysqli.php	2023年07月14日 10:33:04 UTC (rev 11051)
+++ trunk/lib/WikiDB/backend/PearDB_mysqli.php	2023年07月14日 11:00:34 UTC (rev 11052)
@@ -51,7 +51,7 @@
 /*
 * Create a new revision of a page.
 */
- public function set_versiondata($pagename, $version, $data)
+ public function set_versiondata(string $pagename, int $version, array $data)
 {
 $dbh = &$this->_dbh;
 $version_tbl = $this->_table_names['version_tbl'];
@@ -163,7 +163,7 @@
 /**
 * Pack tables.
 */
- public function optimize()
+ public function optimize(): bool
 {
 $dbh = &$this->_dbh;
 $this->_timeout();
@@ -211,7 +211,7 @@
 
 class WikiDB_backend_PearDB_mysqli_search extends WikiDB_backend_PearDB_search
 {
- public function _pagename_match_clause($node)
+ public function _pagename_match_clause($node): string
 {
 $word = $node->sql();
 $dbh = &$this->_dbh;
Modified: trunk/lib/WikiDB/backend/PearDB_oci8.php
===================================================================
--- trunk/lib/WikiDB/backend/PearDB_oci8.php	2023年07月14日 10:33:04 UTC (rev 11051)
+++ trunk/lib/WikiDB/backend/PearDB_oci8.php	2023年07月14日 11:00:34 UTC (rev 11052)
@@ -60,7 +60,7 @@
 /**
 * Pack tables.
 */
- public function optimize()
+ public function optimize(): bool
 {
 // Do nothing here -- Leave that for the DBA
 // Cost Based Optimizer tuning vary from version to version
@@ -89,7 +89,7 @@
 }
 }
 
- public function _quote($s)
+ public function _quote($s): string
 {
 return base64_encode($s);
 }
@@ -135,7 +135,7 @@
 // Index on the CLOB. While it is very efficient, it requires the
 // Intermedia Text option, so let's stick to the 'simple' thing
 // Note that this does only an exact fulltext search, not using MATCH or LIKE.
- public function _fulltext_match_clause($node)
+ public function _fulltext_match_clause($node): string
 {
 if ($this->isStoplisted($node)) {
 return "1=1";
Modified: trunk/lib/WikiDB/backend/PearDB_pgsql.php
===================================================================
--- trunk/lib/WikiDB/backend/PearDB_pgsql.php	2023年07月14日 10:33:04 UTC (rev 11051)
+++ trunk/lib/WikiDB/backend/PearDB_pgsql.php	2023年07月14日 11:00:34 UTC (rev 11052)
@@ -43,7 +43,7 @@
 * Pack tables.
 * NOTE: Only the table owner can do this. Either fix the schema or setup autovacuum.
 */
- public function optimize()
+ public function optimize(): bool
 {
 return true; // if the wikiuser is not the table owner
 
@@ -55,7 +55,7 @@
 */
 }
 
- public function _quote($s)
+ public function _quote($s): string
 {
 if (USE_BYTEA) {
 return pg_escape_bytea($s);
@@ -166,11 +166,11 @@
 * Text search (title or full text)
 */
 public function text_search(
- $search,
- $fulltext = false,
- $sortby = '',
- $limit = '',
- $exclude = ''
+ object $search,
+ bool $fulltext = false,
+ string $sortby = '',
+ string $limit = '',
+ string $exclude = ''
 )
 {
 $dbh = &$this->_dbh;
@@ -230,7 +230,7 @@
 
 class WikiDB_backend_PearDB_pgsql_search extends WikiDB_backend_PearDB_search
 {
- public function _pagename_match_clause($node)
+ public function _pagename_match_clause($node): string
 {
 $word = $node->sql();
 if ($node->op == 'REGEX') { // posix regex extensions
@@ -258,7 +258,7 @@
 * The full-text index will still be used, and the regex will be used to
 * prune the results afterwards.
 */
- public function _fulltext_match_clause($node)
+ public function _fulltext_match_clause($node): string
 {
 $word = strtolower($node->word);
 $word = str_replace(" ", "&", $word); // phrase fix
Modified: trunk/lib/WikiDB/backend/dba.php
===================================================================
--- trunk/lib/WikiDB/backend/dba.php	2023年07月14日 10:33:04 UTC (rev 11051)
+++ trunk/lib/WikiDB/backend/dba.php	2023年07月14日 11:00:34 UTC (rev 11052)
@@ -60,11 +60,11 @@
 parent::__construct($db);
 }
 
- public function lock($tables = array(), $write_lock = true)
+ public function lock(array $tables = array(), bool $write_lock = true)
 {
 }
 
- public function unlock($tables = array(), $force = false)
+ public function unlock(array $tables = array(), bool $force = false)
 {
 }
 }
Modified: trunk/lib/WikiDB/backend/dbaBase.php
===================================================================
--- trunk/lib/WikiDB/backend/dbaBase.php	2023年07月14日 10:33:04 UTC (rev 11051)
+++ trunk/lib/WikiDB/backend/dbaBase.php	2023年07月14日 11:00:34 UTC (rev 11052)
@@ -82,16 +82,16 @@
 $this->_dbdb = new DbaPartition($dba, 'd');
 }
 
- public function sortable_columns()
+ public function sortable_columns(): array
 {
 return array('pagename', 'mtime' /*,'author_id','author'*/);
 }
 
- public function lock($tables = array(), $write_lock = true)
+ public function lock(array $tables = array(), bool $write_lock = true)
 {
 }
 
- public function unlock($tables = array(), $force = false)
+ public function unlock(array $tables = array(), bool $force = false)
 {
 }
 
@@ -100,7 +100,7 @@
 $this->_db->close();
 }
 
- public function optimize()
+ public function optimize(): bool
 {
 $this->_db->optimize();
 return true;
@@ -111,7 +111,7 @@
 $this->_db->sync();
 }
 
- public function rebuild($args = false)
+ public function rebuild(bool $args = false): bool
 {
 if (!empty($args['all'])) {
 $result = parent::rebuild();
@@ -125,7 +125,7 @@
 return true;
 }
 
- public function check($args = false)
+ public function check(bool $args = false): bool
 {
 // cleanup v?Pagename UNKNOWN0x0
 $errs = array();
@@ -162,7 +162,7 @@
 return array_merge($errs, $this->_linkdb->check());
 }
 
- public function get_pagedata($pagename)
+ public function get_pagedata(string $pagename): array
 {
 $result = $this->_pagedb->get($pagename);
 if (!$result) {
@@ -172,7 +172,7 @@
 return unserialize($packed);
 }
 
- public function update_pagedata($pagename, $newdata)
+ public function update_pagedata(string $pagename, array $newdata)
 {
 $result = $this->_pagedb->get($pagename);
 if ($result) {
@@ -198,12 +198,12 @@
 );
 }
 
- public function get_latest_version($pagename)
+ public function get_latest_version(string $pagename): int
 {
 return (int)$this->_pagedb->get($pagename);
 }
 
- public function get_previous_version($pagename, $version)
+ public function get_previous_version(string $pagename, int $version): int
 {
 $versdb = &$this->_versiondb;
 
@@ -224,7 +224,7 @@
 *
 * @return array|false The version data, or false if specified version does not exist
 */
- public function get_versiondata($pagename, $version, $want_content = false)
+ public function get_versiondata(string $pagename, int $version, bool $want_content = false)
 {
 $data = $this->_versiondb->get((int)$version . ":$pagename");
 if (empty($data) or $data == 'UNKNOWN'.chr(0)) {
@@ -246,7 +246,7 @@
 * Can be undone and is seen in RecentChanges.
 * See backend.php
 */
- public function delete_page($pagename)
+ public function delete_page(string $pagename)
 {
 /**
 * @var WikiRequest $request
@@ -275,7 +275,7 @@
 /*
 * Completely delete all page revisions from the database.
 */
- public function purge_page($pagename)
+ public function purge_page(string $pagename)
 {
 $pagedb = &$this->_pagedb;
 $versdb = &$this->_versiondb;
@@ -296,7 +296,7 @@
 * @param string $to Future page name
 */
 
- public function rename_page($pagename, $to)
+ public function rename_page(string $pagename, string $to): bool
 {
 /**
 * @var WikiRequest $request
@@ -337,7 +337,7 @@
 /*
 * Delete an old revision of a page.
 */
- public function delete_versiondata($pagename, $version)
+ public function delete_versiondata(string $pagename, int $version)
 {
 $versdb = &$this->_versiondb;
 
@@ -363,7 +363,7 @@
 /*
 * Create a new revision of a page.
 */
- public function set_versiondata($pagename, $version, $data)
+ public function set_versiondata(string $pagename, int $version, array $data)
 {
 $versdb = &$this->_versiondb;
 // fix broken pages
@@ -396,7 +396,7 @@
 $pagedb->set($pagename, (int)$latest . ':' . (int)$flags . ":$pagedata");
 }
 
- public function numPages($include_empty = false, $exclude = '')
+ public function numPages($include_empty = false, $exclude = ''): int
 {
 $pagedb = &$this->_pagedb;
 $count = 0;
@@ -422,7 +422,7 @@
 return $count;
 }
 
- public function get_all_pages($include_empty = false, $sortby = '', $limit = '', $exclude = '')
+ public function get_all_pages(bool $include_empty = false, string $sortby = '', string $limit = '', string $exclude = '')
 {
 $pagedb = &$this->_pagedb;
 $pages = array();
@@ -473,7 +473,7 @@
 * @param string $pagename Page name
 * @param array $links List of page(names) which page links to.
 */
- public function set_links($pagename, $links)
+ public function set_links(string $pagename, array $links)
 {
 $this->_linkdb->set_links($pagename, $links);
 }
@@ -494,13 +494,13 @@
 */
 
 public function get_links(
- $pagename,
- $reversed = true,
- $include_empty = false,
- $sortby = '',
- $limit = '',
- $exclude = '',
- $want_relations = false
+ string $pagename,
+ bool $reversed = true,
+ bool $include_empty = false,
+ string $sortby = '',
+ string $limit = '',
+ string $exclude = '',
+ bool $want_relations = false
 )
 {
 // optimization: if no relation at all is found, mark it in the iterator.
@@ -527,7 +527,7 @@
 $also_attributes = false,
 $only_attributes = false,
 $sorted = true
- )
+ ): array
 {
 $linkdb = &$this->_linkdb;
 $relations = array();
@@ -568,7 +568,7 @@
 * the link key, we iterate here directly over the
 * linkdb and check the pagematch there.
 *
- * @param object$pages A TextSearchQuery object for the pagename filter.
+ * @param object $pages A TextSearchQuery object for the pagename filter.
 * @param object $linkvalue A SearchQuery object (Text or Numeric) for the linkvalues,
 * linkto, linkfrom (=backlink), relation or attribute values.
 * @param string $linktype One of the 4 linktypes "linkto",
@@ -580,11 +580,11 @@
 * @see WikiDB::linkSearch
 */
 public function link_search(
- $pages,
- $linkvalue,
- $linktype,
+ object $pages,
+ object $linkvalue,
+ string $linktype,
 $relation = false,
- $options = array()
+ array $options = array()
 )
 {
 /**
@@ -713,7 +713,7 @@
 * @return object A WikiDB_backend_iterator.
 * @see WikiDB::linkSearch
 */
- public function relation_search($pages, $query, $options = array())
+ public function relation_search(object $pages, object $query, array $options = array())
 {
 /**
 * @var WikiRequest $request
@@ -778,22 +778,22 @@
 }
 }
 
-function WikiDB_backend_dbaBase_sortby_pagename_ASC($a, $b)
+function WikiDB_backend_dbaBase_sortby_pagename_ASC($a, $b): int
 {
 return strcasecmp($a, $b);
 }
 
-function WikiDB_backend_dbaBase_sortby_pagename_DESC($a, $b)
+function WikiDB_backend_dbaBase_sortby_pagename_DESC($a, $b): int
 {
 return strcasecmp($b, $a);
 }
 
-function WikiDB_backend_dbaBase_sortby_mtime_ASC($a, $b)
+function WikiDB_backend_dbaBase_sortby_mtime_ASC($a, $b): int
 {
 return WikiDB_backend_dbaBase_sortby_num($a, $b, 'mtime');
 }
 
-function WikiDB_backend_dbaBase_sortby_mtime_DESC($a, $b)
+function WikiDB_backend_dbaBase_sortby_mtime_DESC($a, $b): int
 {
 return WikiDB_backend_dbaBase_sortby_num($b, $a, 'mtime');
 }
@@ -806,7 +806,7 @@
 return WikiDB_backend_dbaBase_sortby_num($b, $a, 'hits');
 }
 */
-function WikiDB_backend_dbaBase_sortby_num($aname, $bname, $field)
+function WikiDB_backend_dbaBase_sortby_num($aname, $bname, $field): int
 {
 global $request;
 $dbi = $request->getDbh();
@@ -910,7 +910,7 @@
 
 //TODO: try storing link lists as hashes rather than arrays.
 // backlink deletion would be faster.
- public function get_links($page, $reversed = true, $want_relations = false)
+ public function get_links($page, $reversed = true, $want_relations = false): array
 {
 if ($want_relations) {
 $this->found_relations = 0;
@@ -1086,7 +1086,7 @@
 $this->_set_links('i', $page, $backlinks);
 }
 
- public function _has_link($which, $page, $link)
+ public function _has_link($which, $page, $link): bool
 {
 $links = $this->_get_links($which, $page);
 // NOTE: only backlinks are sorted, so need to do linear search
Modified: trunk/lib/WikiDB/backend/dumb/AllRevisionsIter.php
===================================================================
--- trunk/lib/WikiDB/backend/dumb/AllRevisionsIter.php	2023年07月14日 10:33:04 UTC (rev 11051)
+++ trunk/lib/WikiDB/backend/dumb/AllRevisionsIter.php	2023年07月14日 11:00:34 UTC (rev 11052)
@@ -35,23 +35,23 @@
 /**
 * @var WikiDB_backend
 */
- private $_backend;
+ private WikiDB_backend $_backend;
 
 /**
 * @var int
 */
- private $_lastversion;
+ private int $_lastversion;
 
 /**
 * @var string
 */
- private $_pagename;
+ private string $_pagename;
 
 /**
 * @param WikiDB_backend $backend
 * @param string $pagename Page whose revisions to get.
 */
- public function __construct($backend, $pagename)
+ public function __construct($backend, string $pagename)
 {
 $this->_backend = &$backend;
 $this->_pagename = $pagename;
Modified: trunk/lib/WikiDB/backend/dumb/LinkSearchIter.php
===================================================================
--- trunk/lib/WikiDB/backend/dumb/LinkSearchIter.php	2023年07月14日 10:33:04 UTC (rev 11051)
+++ trunk/lib/WikiDB/backend/dumb/LinkSearchIter.php	2023年07月14日 11:00:34 UTC (rev 11052)
@@ -170,7 +170,7 @@
 }
 
 // get the links of each page in advance
- public function _get_links($pagename)
+ public function _get_links($pagename): array
 {
 $links = array();
 if ($this->linktype == 'attribute') {
Modified: trunk/lib/WikiDB/backend/dumb/MostPopularIter.php
===================================================================
--- trunk/lib/WikiDB/backend/dumb/MostPopularIter.php	2023年07月14日 10:33:04 UTC (rev 11051)
+++ trunk/lib/WikiDB/backend/dumb/MostPopularIter.php	2023年07月14日 11:00:34 UTC (rev 11052)
@@ -81,7 +81,7 @@
 }
 }
 
-function WikiDB_backend_dumb_MostPopularIter_sortf($a, $b)
+function WikiDB_backend_dumb_MostPopularIter_sortf($a, $b): int
 {
 $ahits = $bhits = 0;
 if (isset($a['pagedata']['hits'])) {
@@ -93,7 +93,7 @@
 return $bhits - $ahits;
 }
 
-function WikiDB_backend_dumb_MostPopularIter_sortf_rev($a, $b)
+function WikiDB_backend_dumb_MostPopularIter_sortf_rev($a, $b): int
 {
 $ahits = $bhits = 0;
 if (isset($a['pagedata']['hits'])) {
Modified: trunk/lib/WikiDB/backend/file.php
===================================================================
--- trunk/lib/WikiDB/backend/file.php	2023年07月14日 10:33:04 UTC (rev 11051)
+++ trunk/lib/WikiDB/backend/file.php	2023年07月14日 11:00:34 UTC (rev 11052)
@@ -85,7 +85,7 @@
 
 // *********************************************************************
 // common file load / save functions:
- protected function _pagename2filename($type, $pagename, $version = 0)
+ protected function _pagename2filename($type, $pagename, $version = 0): string
 {
 if ($version == 0) {
 return $this->_dir_names[$type] . '/' . urlencode($pagename);
@@ -276,7 +276,7 @@
 
 // *********************************************************************
 // Load/Save Page-Links
- protected function _loadPageLinks($pagename)
+ protected function _loadPageLinks($pagename): array
 {
 $pd = $this->_loadPage('links', $pagename, 0, false);
 if ($pd != null) {
@@ -306,7 +306,7 @@
 * don't think we need this...)
 * </dl>
 */
- public function get_pagedata($pagename)
+ public function get_pagedata(string $pagename): array
 {
 return $this->_loadPageData($pagename);
 }
@@ -335,7 +335,7 @@
 * @param array $newdata hash New meta-data.
 *
 */
- public function update_pagedata($pagename, $newdata)
+ public function update_pagedata(string $pagename, array $newdata)
 {
 $data = $this->get_pagedata($pagename);
 if (count($data) == 0) {
@@ -364,7 +364,7 @@
 * @return int The latest version number for the page. Returns zero if
 * no versions of a page exist.
 */
- public function get_latest_version($pagename)
+ public function get_latest_version(string $pagename): int
 {
 return $this->_getLatestVersion($pagename);
 }
@@ -379,7 +379,7 @@
 *
 * FIXED: Check if this version really exists!
 */
- public function get_previous_version($pagename, $version)
+ public function get_previous_version(string $pagename, int $version): int
 {
 $prev = ($version > 0 ? $version - 1 : 0);
 while ($prev and !file_exists($this->_pagename2filename('ver_data', $pagename, $prev))) {
@@ -412,7 +412,7 @@
 * For description of other version meta-data see WikiDB_PageRevision::get().
 * @see WikiDB_PageRevision::get
 */
- public function get_versiondata($pagename, $version, $want_content = false)
+ public function get_versiondata(string $pagename, int $version, bool $want_content = false)
 {
 $vd = $this->_loadVersionData($pagename, $version);
 if ($vd == null) {
@@ -428,7 +428,7 @@
 * @param string $to Future page name
 */
 
- public function rename_page($pagename, $to)
+ public function rename_page(string $pagename, string $to): bool
 {
 global $request;
 $version = $this->_getLatestVersion($pagename);
@@ -456,7 +456,7 @@
 /*
 * See PDO for a better delete_page(), which can be undone and is seen in RecentChanges.
 */
- public function delete_page($pagename)
+ public function delete_page(string $pagename)
 {
 $this->purge_page($pagename);
 }
@@ -466,7 +466,7 @@
 *
 * @param string $pagename Page name.
 */
- public function purge_page($pagename)
+ public function purge_page(string $pagename)
 {
 $ver = $this->get_latest_version($pagename);
 while ($ver > 0) {
@@ -491,7 +491,7 @@
 * @param string $pagename Page name.
 * @param int $version int Version to delete.
 */
- public function delete_versiondata($pagename, $version)
+ public function delete_versiondata(string $pagename, int $version)
 {
 if ($this->get_latest_version($pagename) == $version) {
 // try to delete the latest version!
@@ -522,7 +522,7 @@
 *
 * @see get_versiondata
 */
- public function set_versiondata($pagename, $version, $data)
+ public function set_versiondata(string $pagename, int $version, array $data)
 {
 $this->_saveVersionData($pagename, $version, $data);
 }
@@ -539,7 +539,7 @@
 * @param array $newdata hash New revision metadata.
 * @see set_versiondata, get_versiondata
 */
- public function update_versiondata($pagename, $version, $newdata)
+ public function update_versiondata(string $pagename, int $version, array $newdata)
 {
 $data = $this->get_versiondata($pagename, $version, true);
 if (!$data) {
@@ -561,7 +561,7 @@
 * @param string $pagename Page name
 * @param array $links List of page(names) which page links to.
 */
- public function set_links($pagename, $links)
+ public function set_links(string $pagename, array $links)
 {
 $this->_savePageLinks($pagename, $links);
 }
@@ -581,13 +581,13 @@
 * @return object A WikiDB_backend_iterator.
 */
 public function get_links(
- $pagename,
- $reversed = true,
- $include_empty = false,
- $sortby = '',
- $limit = '',
- $exclude = '',
- $want_relations = false
+ string $pagename,
+ bool $reversed = true,
+ bool $include_empty = false,
+ string $sortby = '',
+ string $limit = '',
+ string $exclude = '',
+ bool $want_relations = false
 )
 {
 if ($reversed == false) {
@@ -645,10 +645,10 @@
 * @return object A WikiDB_backend_iterator.
 */
 public function get_all_pages(
- $include_empty = false,
- $sortby = '',
- $limit = '',
- $exclude = ''
+ bool $include_empty = false,
+ string $sortby = '',
+ string $limit = '',
+ string $exclude = ''
 )
 {
 require_once 'lib/PageList.php';
@@ -671,12 +671,12 @@
 return new WikiDB_backend_file_iter($this, $a);
 }
 
- public function sortable_columns()
+ public function sortable_columns(): array
 {
 return array('pagename');
 }
 
- public function numPages($filter = false, $exclude = '')
+ public function numPages($filter = false, $exclude = ''): int
 {
 $this->_loadLatestVersions();
 return count($this->_latest_versions);
@@ -695,7 +695,7 @@
 *
 * All backends <em>should</em> support write locking.
 */
- public function lock($tables = array(), $write_lock = true)
+ public function lock(array $tables = array(), bool $write_lock = true)
 {
 }
 
@@ -707,7 +707,7 @@
 * unlock() is called as many times as lock() has been. If $force is
 * set to true, the the database is unconditionally unlocked.
 */
- public function unlock($tables = array(), $force = false)
+ public function unlock(array $tables = array(), bool $force = false)
 {
 }
 
@@ -732,7 +732,7 @@
 *
 * @return bool
 */
- public function optimize()
+ public function optimize(): bool
 {
 //trigger_error("optimize: Not Implemented", E_USER_WARNING);
 return true;
@@ -750,7 +750,7 @@
 * @param bool $args
 * @return bool True iff database is in a consistent state.
 */
- public function check($args = false)
+ public function check(bool $args = false): bool
 {
 //trigger_error("check: Not Implemented", E_USER_WARNING);
 return true;
@@ -766,13 +766,13 @@
 * @param bool $args
 * @return bool True iff successful.
 */
- public function rebuild($args = false)
+ public function rebuild(bool $args = false): bool
 {
 //trigger_error("rebuild: Not Implemented", E_USER_WARNING);
 return true;
 }
 
- public function _parse_searchwords($search)
+ public function _parse_searchwords($search): array
 {
 $search = strtolower(trim($search));
 if (!$search) {
@@ -851,7 +851,7 @@
 return $this->_result;
 }
 
- public function count()
+ public function count(): int
 {
 return count($this->_result);
 }
Modified: trunk/lib/WikiDB/backend/flatfile.php
===================================================================
--- trunk/lib/WikiDB/backend/flatfile.php	2023年07月14日 10:33:04 UTC (rev 11051)
+++ trunk/lib/WikiDB/backend/flatfile.php	2023年07月14日 11:00:34 UTC (rev 11052)
@@ -41,7 +41,7 @@
 // *********************************************************************
 // common file load / save functions:
 // FilenameForPage is from loadsave.php
- protected function _pagename2filename($type, $pagename, $version = 0)
+ protected function _pagename2filename($type, $pagename, $version = 0): string
 {
 $fpagename = FilenameForPage($pagename);
 if (strstr($fpagename, "/")) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <var...@us...> - 2023年07月14日 10:33:07
Revision: 11051
 http://sourceforge.net/p/phpwiki/code/11051
Author: vargenau
Date: 2023年07月14日 10:33:04 +0000 (2023年7月14日)
Log Message:
-----------
lib/wikilens: PHP 7: add types for function arguments and return
Modified Paths:
--------------
 trunk/lib/wikilens/Buddy.php
 trunk/lib/wikilens/CustomPrefs.php
 trunk/lib/wikilens/PageListColumns.php
 trunk/lib/wikilens/RatingsDb.php
 trunk/lib/wikilens/RatingsUser.php
 trunk/lib/wikilens/Utils.php
Modified: trunk/lib/wikilens/Buddy.php
===================================================================
--- trunk/lib/wikilens/Buddy.php	2023年07月14日 10:03:49 UTC (rev 11050)
+++ trunk/lib/wikilens/Buddy.php	2023年07月14日 10:33:04 UTC (rev 11051)
@@ -48,7 +48,7 @@
 addPageTextData($user, $dbi, $buddy, $START_DELIM, $DELIM);
 }
 
-function getBuddies($fromUser, $dbi, $thePage = "")
+function getBuddies($fromUser, $dbi, $thePage = ""): array
 {
 $START_DELIM = $thePage . _("Buddies:");
 $DELIM = ",";
@@ -88,7 +88,7 @@
 return $result;
 }
 
-function CoAgreement($dbi, $page, $users, $active_userid)
+function CoAgreement($dbi, $page, $users, $active_userid): int
 {
 //Returns a "yes" 1, "no" -1, or "unsure" 0 for whether
 //the group agrees on the page based on their ratings
Modified: trunk/lib/wikilens/CustomPrefs.php
===================================================================
--- trunk/lib/wikilens/CustomPrefs.php	2023年07月14日 10:03:49 UTC (rev 11050)
+++ trunk/lib/wikilens/CustomPrefs.php	2023年07月14日 10:33:04 UTC (rev 11051)
@@ -35,7 +35,7 @@
 class _UserPreference_recengine // recommendation engine method
 extends _UserPreference
 {
- public $valid_values = array('php', 'mysuggest', 'mymovielens', 'mycluto');
+ public array $valid_values = array('php', 'mysuggest', 'mymovielens', 'mycluto');
 public $default_value = 'php';
 
 public function sanify($value)
@@ -51,7 +51,7 @@
 class _UserPreference_recalgo // recommendation engine algorithm
 extends _UserPreference
 {
- public $valid_values = array(
+ public array $valid_values = array(
 'itemCos', // Item-based Top-N recommendation algorithm with cosine-based similarity function
 'itemProb', // Item-based Top-N recommendation algorithm with probability-based similarity function.
 // This algorithms tends to outperform the rest.
Modified: trunk/lib/wikilens/PageListColumns.php
===================================================================
--- trunk/lib/wikilens/PageListColumns.php	2023年07月14日 10:03:49 UTC (rev 11050)
+++ trunk/lib/wikilens/PageListColumns.php	2023年07月14日 10:33:04 UTC (rev 11051)
@@ -206,7 +206,7 @@
 return ($rating ? $rating : "-");
 }
 
- public function hasNoRatings($pages)
+ public function hasNoRatings($pages): bool
 {
 $total = 0;
 $use = & $this->_user;
@@ -346,7 +346,7 @@
 
 class _PageList_Column_top3recs extends _PageList_Column_custom
 {
- public $_active_ratings_user;
+ public RatingsUser $_active_ratings_user;
 public $_users;
 
 public function __construct($params)
Modified: trunk/lib/wikilens/RatingsDb.php
===================================================================
--- trunk/lib/wikilens/RatingsDb.php	2023年07月14日 10:03:49 UTC (rev 11050)
+++ trunk/lib/wikilens/RatingsDb.php	2023年07月14日 10:33:04 UTC (rev 11051)
@@ -293,7 +293,7 @@
 *
 * @return true upon success
 */
- public function delete_rating($rater, $ratee, $dimension)
+ public function delete_rating($rater, $ratee, $dimension): bool
 {
 if (RATING_STORAGE == 'SQL') {
 $this->sql_delete_rating($rater, $ratee, $dimension);
@@ -314,7 +314,7 @@
 *
 * @return true upon success
 */
- public function rate($rater, $ratee, $rateeversion, $dimension, $rating)
+ public function rate($rater, $ratee, $rateeversion, $dimension, $rating): bool
 {
 if (RATING_STORAGE == 'SQL') {
 $page = $this->_dbi->getPage($pagename);
@@ -539,7 +539,7 @@
 $rater = null,
 $ratee = null,
 $orderby = null,
- $pageinfo = "ratee"
+ string $pageinfo = "ratee"
 )
 {
 if (is_null($dimension)) {
@@ -656,7 +656,7 @@
 *
 * @return true upon success
 */
- public function sql_delete_rating($rater, $ratee, $dimension)
+ public function sql_delete_rating($rater, $ratee, $dimension): bool
 {
 //$dbh = &$this->_dbi;
 $dbi = &$this->_sqlbackend;
@@ -686,7 +686,7 @@
 *
 * @return true upon success
 */
- public function sql_rate($rater, $ratee, $rateeversion, $dimension, $rating)
+ public function sql_rate($rater, $ratee, $rateeversion, $dimension, $rating): bool
 {
 $dbi = &$this->_sqlbackend;
 extract($dbi->_table_names);
Modified: trunk/lib/wikilens/RatingsUser.php
===================================================================
--- trunk/lib/wikilens/RatingsUser.php	2023年07月14日 10:03:49 UTC (rev 11050)
+++ trunk/lib/wikilens/RatingsUser.php	2023年07月14日 10:33:04 UTC (rev 11051)
@@ -54,11 +54,11 @@
 class RatingsUser
 {
 public $_userid;
- public $_ratings_loaded;
- public $_ratings;
- public $_num_ratings;
- public $_mean_ratings;
- public $_pearson_sims;
+ public bool $_ratings_loaded;
+ public array $_ratings;
+ public int $_num_ratings;
+ public array $_mean_ratings;
+ public array $_pearson_sims;
 
 public function __construct($userid)
 {
@@ -96,7 +96,7 @@
 *
 * @return bool True if $user can view this user's ratings, false otherwise
 */
- public function allow_view_ratings($user)
+ public function allow_view_ratings($user): bool
 {
 return true;
 }
@@ -106,7 +106,7 @@
 *
 * @return array Assoc. array [page_name][dimension] = _UserRating object
 */
- public function get_ratings()
+ public function get_ratings(): array
 {
 $this->_load_ratings();
 return $this->_ratings;
@@ -148,7 +148,7 @@
 // ephemeral and doesn't particularly care about the ratings count or any
 // other features that these methods might provide down the road)
 
- public function has_rated($pagename, $dimension = null)
+ public function has_rated($pagename, $dimension = null): bool
 {
 // XXX: does this really want to do a full ratings load? (scalability?)
 $this->_load_ratings();
@@ -380,22 +380,22 @@
 $this->rating = (float)$rating;
 }
 
- public function get_rater()
+ public function get_rater(): string
 {
 return $this->rater;
 }
 
- public function get_ratee()
+ public function get_ratee(): string
 {
 return $this->ratee;
 }
 
- public function get_rating()
+ public function get_rating(): float
 {
 return $this->rating;
 }
 
- public function get_dimension()
+ public function get_dimension(): int
 {
 return $this->dimension;
 }
Modified: trunk/lib/wikilens/Utils.php
===================================================================
--- trunk/lib/wikilens/Utils.php	2023年07月14日 10:03:49 UTC (rev 11050)
+++ trunk/lib/wikilens/Utils.php	2023年07月14日 10:33:04 UTC (rev 11051)
@@ -101,7 +101,7 @@
 return $retArray;
 }
 
-function notEmptyName($var)
+function notEmptyName($var): bool
 {
 return $var != "";
 }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
286 messages has been excluded from this view by a project administrator.

Showing results of 13438

<< < 1 .. 4 5 6 7 8 .. 538 > >> (Page 6 of 538)
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 によって変換されたページ (->オリジナル) /