From 9328e1ddf3ab65568afe900344e2272c2d576ae2 Mon Sep 17 00:00:00 2001 From: vargenau Date: Fri, 27 Feb 2015 15:50:45 +0000 Subject: [PATCH] PAGE_PREFIX becomes a variable (Fusionforge only) git-svn-id: svn://svn.code.sf.net/p/phpwiki/code/trunk@9569 96ab9672-09ca-45d6-a79d-3d69d39ca109 --- g | 13 ++++- lib/WikiDB/backend/PearDB_ffpgsql.php | 68 ++++++++++++++++++--------- lib/WikiUser.php | 8 ++-- lib/wikilens/RatingsUser.php | 3 +- 4 files changed, 63 insertions(+), 29 deletions(-) diff --git a/g b/g index 07ee0426b..28473be2e 100644 --- a/g +++ b/g @@ -47,7 +47,11 @@ ini_set('pcre.backtrack_limit', 100000000); // Disable compression, seems needed to get all the messages. $no_gz_buffer=true; -require_once('../../../common/include/env.inc.php'); +if (defined('WIKI_SOAP')) { + require_once 'include/env.inc.php'; +} else { + require_once '../../../common/include/env.inc.php'; +} require_once $gfcommon.'include/pre.php'; require_once $gfplugins.'wiki/common/wikiconfig.class.php'; @@ -60,6 +64,10 @@ if (forge_get_config('use_jquery_form_navigate')) { define('ENABLE_EDIT_TOOLBAR', false); } +if (defined('WIKI_SOAP')) { + $group_id = 6; +} + if (isset($group_id) && $group_id) { if (! isset($project) || ! $project) { $project = group_get_object($group_id); @@ -89,7 +97,8 @@ if (! isset($group_id) || ! isset($project)) { $wc = new WikiConfig($group_id); define('VIRTUAL_PATH', '/wiki/g/'.$group_name); - define('PAGE_PREFIX', '_g'.$group_id.'_'); + global $page_prefix; + $page_prefix = '_g'.$group_id.'_'; // We have to use a smaller value than Phpwiki due to page prefix define('MAX_PAGENAME_LENGTH', 92); diff --git a/lib/WikiDB/backend/PearDB_ffpgsql.php b/lib/WikiDB/backend/PearDB_ffpgsql.php index 34714516e..9df20ef9b 100644 --- a/lib/WikiDB/backend/PearDB_ffpgsql.php +++ b/lib/WikiDB/backend/PearDB_ffpgsql.php @@ -54,7 +54,8 @@ class WikiDB_backend_PearDB_ffpgsql $dbparams['dsn'] = str_replace('ffpgsql:', 'pgsql:', $dbparams['dsn']); parent::__construct($dbparams); - $p = strlen(PAGE_PREFIX) + 1; + global $page_prefix; + $p = strlen($page_prefix) + 1; $page_tbl = $this->_table_names['page_tbl']; $this->page_tbl_fields = "$page_tbl.id AS id, substring($page_tbl.pagename from $p) AS pagename, $page_tbl.hits AS hits"; @@ -65,7 +66,8 @@ class WikiDB_backend_PearDB_ffpgsql { $dbh = &$this->_dbh; extract($this->_table_names); - $pat = PAGE_PREFIX; + global $page_prefix; + $pat = $page_prefix; $p = strlen($pat) + 1; return $dbh->getCol("SELECT substring(pagename from $p)" . " FROM $nonempty_tbl, $page_tbl" @@ -77,7 +79,8 @@ class WikiDB_backend_PearDB_ffpgsql { $dbh = &$this->_dbh; extract($this->_table_names); - $pat = PAGE_PREFIX; + global $page_prefix; + $pat = $page_prefix; $p = strlen($pat) + 1; return $dbh->getOne("SELECT count(*)" . " FROM $nonempty_tbl, $page_tbl" @@ -87,7 +90,8 @@ class WikiDB_backend_PearDB_ffpgsql function get_pagedata($pagename) { - return parent::get_pagedata(PAGE_PREFIX . $pagename); + global $page_prefix; + return parent::get_pagedata($page_prefix . $pagename); } function update_pagedata($pagename, $newdata) @@ -100,7 +104,8 @@ class WikiDB_backend_PearDB_ffpgsql // Note that this will fail silently if the page does not // have a record in the page table. Since it's just the // hit count, who cares? - $pagename = PAGE_PREFIX . $pagename; + global $page_prefix; + $pagename = $page_prefix . $pagename; $dbh->query(sprintf("UPDATE $page_tbl SET hits=%d WHERE pagename='%s'", $newdata['hits'], $dbh->escapeSimple($pagename))); return; @@ -139,7 +144,8 @@ class WikiDB_backend_PearDB_ffpgsql $dbh->escapeSimple($this->_serialize($data)), $dbh->escapeSimple($pagename))); */ - $pagename = PAGE_PREFIX . $pagename; + global $page_prefix; + $pagename = $page_prefix . $pagename; $dbh->query("UPDATE $page_tbl" . " SET hits=?, pagedata=?" . " WHERE pagename=?", @@ -149,12 +155,14 @@ class WikiDB_backend_PearDB_ffpgsql function get_latest_version($pagename) { - return parent::get_latest_version(PAGE_PREFIX . $pagename); + global $page_prefix; + return parent::get_latest_version($page_prefix . $pagename); } function get_previous_version($pagename, $version) { - return parent::get_previous_version(PAGE_PREFIX . $pagename, $version); + global $page_prefix; + return parent::get_previous_version($page_prefix . $pagename, $version); } function get_versiondata($pagename, $version, $want_content = false) @@ -178,7 +186,8 @@ class WikiDB_backend_PearDB_ffpgsql . "$iscontent AS have_content"; } - $pagename = PAGE_PREFIX . $pagename; + global $page_prefix; + $pagename = $page_prefix . $pagename; $result = $dbh->getRow(sprintf("SELECT $fields" . " FROM $page_tbl, $version_tbl" . " WHERE $page_tbl.id=$version_tbl.id" @@ -192,12 +201,14 @@ class WikiDB_backend_PearDB_ffpgsql function get_cached_html($pagename) { - return parent::get_cached_html(PAGE_PREFIX . $pagename); + global $page_prefix; + return parent::get_cached_html($page_prefix . $pagename); } function set_cached_html($pagename, $data) { - parent::set_cached_html(PAGE_PREFIX . $pagename, $data); + global $page_prefix; + parent::set_cached_html($page_prefix . $pagename, $data); } function _get_pageid($pagename, $create_if_missing = false) @@ -217,7 +228,8 @@ class WikiDB_backend_PearDB_ffpgsql $dbh = &$this->_dbh; $page_tbl = $this->_table_names['page_tbl']; - $pagename = PAGE_PREFIX . $pagename; + global $page_prefix; + $pagename = $page_prefix . $pagename; $query = sprintf("SELECT id FROM $page_tbl WHERE pagename='%s'", $dbh->escapeSimple($pagename)); @@ -287,7 +299,8 @@ class WikiDB_backend_PearDB_ffpgsql else $exclude = ''; - $pat = PAGE_PREFIX; + global $page_prefix; + $pat = $page_prefix; $p = strlen($pat) + 1; $qpagename = $dbh->escapeSimple($pagename); @@ -323,7 +336,8 @@ class WikiDB_backend_PearDB_ffpgsql $dbh = &$this->_dbh; extract($this->_table_names); - $pat = PAGE_PREFIX; + global $page_prefix; + $pat = $page_prefix; $p = strlen($pat) + 1; $orderby = $this->sortby($sortby, 'db'); @@ -389,7 +403,8 @@ class WikiDB_backend_PearDB_ffpgsql { $dbh = &$this->_dbh; extract($this->_table_names); - $pat = PAGE_PREFIX; + global $page_prefix; + $pat = $page_prefix; $p = strlen($pat) + 1; if ($limit < 0) { $order = "hits ASC"; @@ -479,7 +494,8 @@ class WikiDB_backend_PearDB_ffpgsql if ($pick) $where_clause .= " AND " . join(" AND ", $pick); - $pat = PAGE_PREFIX; + global $page_prefix; + $pat = $page_prefix; $p = strlen($pat) + 1; // FIXME: use SQL_BUFFER_RESULT for mysql? @@ -502,7 +518,8 @@ class WikiDB_backend_PearDB_ffpgsql { $dbh = &$this->_dbh; extract($this->_table_names); - $pat = PAGE_PREFIX; + global $page_prefix; + $pat = $page_prefix; $p = strlen($pat) + 1; if ($orderby = $this->sortby($sortby, 'db', array('pagename', 'wantedfrom'))) $orderby = 'ORDER BY ' . $orderby; @@ -512,7 +529,7 @@ class WikiDB_backend_PearDB_ffpgsql if ($exclude) // array of pagenames $exclude = " AND p.pagename NOT IN " . $this->_sql_set($exclude); - $p = strlen(PAGE_PREFIX) + 1; + $p = strlen($page_prefix) + 1; $sql = "SELECT substring(p.pagename from $p) AS wantedfrom, substring(pp.pagename from $p) AS pagename" . " FROM $page_tbl p, $link_tbl linked" . " LEFT JOIN $page_tbl pp ON linked.linkto = pp.id" @@ -553,8 +570,9 @@ class WikiDB_backend_PearDB_ffpgsql $dbh->query("UPDATE $link_tbl SET linkto=$id WHERE linkto=$new"); $dbh->query("DELETE FROM $page_tbl WHERE id=$new"); } + global $page_prefix; $dbh->query(sprintf("UPDATE $page_tbl SET pagename='%s' WHERE id=$id", - $dbh->escapeSimple(PAGE_PREFIX . $to))); + $dbh->escapeSimple($page_prefix . $to))); } $this->unlock(); return $id; @@ -562,12 +580,14 @@ class WikiDB_backend_PearDB_ffpgsql function is_wiki_page($pagename) { - return parent::is_wiki_page(PAGE_PREFIX . $pagename); + global $page_prefix; + return parent::is_wiki_page($page_prefix . $pagename); } function increaseHitCount($pagename) { - parent::increaseHitCount(PAGE_PREFIX . $pagename); + global $page_prefix; + parent::increaseHitCount($page_prefix . $pagename); } function _serialize($data) @@ -592,7 +612,8 @@ class WikiDB_backend_PearDB_ffpgsql { $dbh = &$this->_dbh; extract($this->_table_names); - $pat = PAGE_PREFIX; + global $page_prefix; + $pat = $page_prefix; $len = strlen($pat) + 1; $orderby = $this->sortby($sortby, 'db'); if ($sortby and $orderby) $orderby = ' ORDER BY ' . $orderby; @@ -675,7 +696,8 @@ class WikiDB_backend_PearDB_ffpgsql_search $word = $node->sql(); // @alu: use _quote maybe instead of direct pg_escape_string $word = pg_escape_string($word); - $len = strlen(PAGE_PREFIX) + 1; + global $page_prefix; + $len = strlen($page_prefix) + 1; if ($node->op == 'REGEX') { // posix regex extensions return ($this->_case_exact ? "substring(pagename from $len) ~* '$word'" diff --git a/lib/WikiUser.php b/lib/WikiUser.php index 62bd557e0..cca18806b 100644 --- a/lib/WikiUser.php +++ b/lib/WikiUser.php @@ -2199,7 +2199,8 @@ class UserPreferences // notifyPages are pages to notify in the current project // while $notifyPagesAll is used to store all the monitored pages. if (isset($prefs['notifyPages'])) { - $this->notifyPagesAll[PAGE_PREFIX] = $prefs['notifyPages']; + global $page_prefix; + $this->notifyPagesAll[$page_prefix] = $prefs['notifyPages']; $prefs['notifyPages'] = @serialize($this->notifyPagesAll); } } @@ -2250,8 +2251,9 @@ class UserPreferences // while $notifyPagesAll is used to store all the monitored pages. if (isset($prefs['notifyPages'])) { $this->notifyPagesAll = $prefs['notifyPages']; - if (isset($this->notifyPagesAll[PAGE_PREFIX])) { - $prefs['notifyPages'] = $this->notifyPagesAll[PAGE_PREFIX]; + global $page_prefix; + if (isset($this->notifyPagesAll[$page_prefix])) { + $prefs['notifyPages'] = $this->notifyPagesAll[$page_prefix]; } else { $prefs['notifyPages'] = ''; } diff --git a/lib/wikilens/RatingsUser.php b/lib/wikilens/RatingsUser.php index 429b77b01..6bc53211e 100644 --- a/lib/wikilens/RatingsUser.php +++ b/lib/wikilens/RatingsUser.php @@ -341,7 +341,8 @@ class RatingsUser while ($rating = $rating_iter->next()) { if (defined('FUSIONFORGE') && FUSIONFORGE) { - $rating['pagename'] = preg_replace('/^' . PAGE_PREFIX . '/', '', $rating['pagename']); + global $page_prefix; + $rating['pagename'] = preg_replace('/^' . $page_prefix . '/', '', $rating['pagename']); } $this->_num_ratings++; $this->_ratings[$rating['pagename']][$rating['dimension']] -- 2.45.0