From 4cd9f7913e21f3115fb7ff8d8820473613a39576 Mon Sep 17 00:00:00 2001 From: lisps Date: Thu, 20 Feb 2014 23:19:45 +0100 Subject: check link existence --- inc/pageutils.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'inc/pageutils.php') diff --git a/inc/pageutils.php b/inc/pageutils.php index c8d3cf4bb..20fe54a8e 100644 --- a/inc/pageutils.php +++ b/inc/pageutils.php @@ -432,9 +432,9 @@ function resolve_id($ns,$id,$clean=true){ * * @author Andreas Gohr */ -function resolve_mediaid($ns,&$page,&$exists){ +function resolve_mediaid($ns,&$page,&$exists,$rev='' ){ $page = resolve_id($ns,$page); - $file = mediaFN($page); + $file = mediaFN($page,$rev); $exists = @file_exists($file); } @@ -443,7 +443,7 @@ function resolve_mediaid($ns,&$page,&$exists){ * * @author Andreas Gohr */ -function resolve_pageid($ns,&$page,&$exists){ +function resolve_pageid($ns,&$page,&$exists,$rev='' ){ global $conf; global $ID; $exists = false; @@ -463,20 +463,20 @@ function resolve_pageid($ns,&$page,&$exists){ $page = resolve_id($ns,$page,false); // resolve but don't clean, yet // get filename (calls clean itself) - $file = wikiFN($page); + $file = wikiFN($page,$rev); // if ends with colon or slash we have a namespace link if(in_array(substr($page,-1), array(':', ';')) || ($conf['useslash'] && substr($page,-1) == '/')){ - if(page_exists($page.$conf['start'])){ + if(page_exists($page.$conf['start'],$rev)){ // start page inside namespace $page = $page.$conf['start']; $exists = true; - }elseif(page_exists($page.noNS(cleanID($page)))){ + }elseif(page_exists($page.noNS(cleanID($page),$rev))){ // page named like the NS inside the NS $page = $page.noNS(cleanID($page)); $exists = true; - }elseif(page_exists($page)){ + }elseif(page_exists($page,$rev)){ // page like namespace exists $page = $page; $exists = true; @@ -493,7 +493,7 @@ function resolve_pageid($ns,&$page,&$exists){ }else{ $try = $page.'s'; } - if(page_exists($try)){ + if(page_exists($try,$rev)){ $page = $try; $exists = true; } -- cgit v1.2.3 From 90bee6003f3d7160fb936d01511a35eeb5bc708c Mon Sep 17 00:00:00 2001 From: lisps Date: Sat, 22 Feb 2014 03:13:10 +0100 Subject: fix check link existence, have to call getLastRevisionAt for every link --- inc/pageutils.php | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) (limited to 'inc/pageutils.php') diff --git a/inc/pageutils.php b/inc/pageutils.php index 20fe54a8e..4504fdd2b 100644 --- a/inc/pageutils.php +++ b/inc/pageutils.php @@ -231,7 +231,13 @@ function sectionID($title,&$check) { * * @author Chris Smith */ -function page_exists($id,$rev='',$clean=true) { +function page_exists($id,$rev='',$clean=true, $data_at=false) { + if($rev !== '' && $date_at) { + $pagelog = new PageChangeLog($page); + $pagelog_rev = $pagelog->getLastRevisionAt($rev); + if($pagelog_rev !== false) + $rev = $pagelog_rev; + } return @file_exists(wikiFN($id,$rev,$clean)); } @@ -432,7 +438,14 @@ function resolve_id($ns,$id,$clean=true){ * * @author Andreas Gohr */ -function resolve_mediaid($ns,&$page,&$exists,$rev='' ){ +function resolve_mediaid($ns,&$page,&$exists,$rev='',$date_at=false){ + if($rev !== '' && $date_at){ + $medialog = new MediaChangeLog($media_id); + $medialog_rev = $medialog->getLastRevisionAt($rev); + if($medialog_rev !== false) { + $rev = $medialog_rev; + } + } $page = resolve_id($ns,$page); $file = mediaFN($page,$rev); $exists = @file_exists($file); @@ -443,7 +456,7 @@ function resolve_mediaid($ns,&$page,&$exists,$rev='' ){ * * @author Andreas Gohr */ -function resolve_pageid($ns,&$page,&$exists,$rev='' ){ +function resolve_pageid($ns,&$page,&$exists,$rev='',$date_at=false ){ global $conf; global $ID; $exists = false; @@ -463,20 +476,26 @@ function resolve_pageid($ns,&$page,&$exists,$rev='' ){ $page = resolve_id($ns,$page,false); // resolve but don't clean, yet // get filename (calls clean itself) + if($rev !== '' && $date_at) { + $pagelog = new PageChangeLog($page); + $pagelog_rev = $pagelog->getLastRevisionAt($rev); + if($pagelog_rev !== false)//something found + $rev = $pagelog_rev; + } $file = wikiFN($page,$rev); // if ends with colon or slash we have a namespace link if(in_array(substr($page,-1), array(':', ';')) || ($conf['useslash'] && substr($page,-1) == '/')){ - if(page_exists($page.$conf['start'],$rev)){ + if(page_exists($page.$conf['start'],$rev,true,$date_at)){ // start page inside namespace $page = $page.$conf['start']; $exists = true; - }elseif(page_exists($page.noNS(cleanID($page),$rev))){ + }elseif(page_exists($page.noNS(cleanID($page)),$rev,true,$date_at)){ // page named like the NS inside the NS $page = $page.noNS(cleanID($page)); $exists = true; - }elseif(page_exists($page,$rev)){ + }elseif(page_exists($page,$rev,true,$date_at)){ // page like namespace exists $page = $page; $exists = true; @@ -493,7 +512,7 @@ function resolve_pageid($ns,&$page,&$exists,$rev='' ){ }else{ $try = $page.'s'; } - if(page_exists($try,$rev)){ + if(page_exists($try,$rev,true,$date_at)){ $page = $try; $exists = true; } -- cgit v1.2.3 From 1d053a561daf3b6539283811cc44d39b315e1dbf Mon Sep 17 00:00:00 2001 From: lisps Date: Fri, 26 Sep 2014 13:02:24 +0200 Subject: fix scrutinizer issues --- inc/pageutils.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'inc/pageutils.php') diff --git a/inc/pageutils.php b/inc/pageutils.php index 9ea75c8aa..49c00d36f 100644 --- a/inc/pageutils.php +++ b/inc/pageutils.php @@ -255,9 +255,9 @@ function sectionID($title,&$check) { * @param bool $clean flag indicating that $id should be cleaned (see wikiFN as well) * @return bool exists? */ -function page_exists($id,$rev='',$clean=true, $data_at=false) { +function page_exists($id,$rev='',$clean=true, $date_at=false) { if($rev !== '' && $date_at) { - $pagelog = new PageChangeLog($page); + $pagelog = new PageChangeLog($id); $pagelog_rev = $pagelog->getLastRevisionAt($rev); if($pagelog_rev !== false) $rev = $pagelog_rev; @@ -493,14 +493,15 @@ function resolve_id($ns,$id,$clean=true){ * @param bool &$exists (reference) updated with existance of media */ function resolve_mediaid($ns,&$page,&$exists,$rev='',$date_at=false){ + $page = resolve_id($ns,$page); if($rev !== '' && $date_at){ - $medialog = new MediaChangeLog($media_id); + $medialog = new MediaChangeLog($page); $medialog_rev = $medialog->getLastRevisionAt($rev); if($medialog_rev !== false) { $rev = $medialog_rev; } } - $page = resolve_id($ns,$page); + $file = mediaFN($page,$rev); $exists = @file_exists($file); } -- cgit v1.2.3 From e0c26282a603881e8d2f839d94c28dbbfc57d71b Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Mon, 29 Sep 2014 03:34:17 +0200 Subject: scrutinizer documentations issues --- inc/pageutils.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc/pageutils.php') diff --git a/inc/pageutils.php b/inc/pageutils.php index 5f62926e4..adfb10cc7 100644 --- a/inc/pageutils.php +++ b/inc/pageutils.php @@ -265,7 +265,7 @@ function page_exists($id,$rev='',$clean=true) { * The filename is URL encoded to protect Unicode chars * * @param $raw_id string id of wikipage - * @param $rev string page revision, empty string for current + * @param $rev int|string page revision, empty string for current * @param $clean bool flag indicating that $raw_id should be cleaned. Only set to false * when $id is guaranteed to have been cleaned already. * @return string full path -- cgit v1.2.3 From 42ea7f447f39fbc2f79eaaec31f8c10ede59c5d0 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Wed, 1 Oct 2014 11:30:27 +0200 Subject: Many PHPDocs, some unused and dyn declared vars many PHPDocs some unused variables some dynamically declared variables declared --- inc/pageutils.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'inc/pageutils.php') diff --git a/inc/pageutils.php b/inc/pageutils.php index adfb10cc7..b9c6418e2 100644 --- a/inc/pageutils.php +++ b/inc/pageutils.php @@ -20,7 +20,7 @@ * * @param string $param the $_REQUEST variable name, default 'id' * @param bool $clean if true, ID is cleaned - * @return mixed|string + * @return string */ function getID($param='id',$clean=true){ /** @var Input $INPUT */ @@ -97,6 +97,7 @@ function getID($param='id',$clean=true){ * converted to unaccented ones * * @author Andreas Gohr + * * @param string $raw_id The pageid to clean * @param boolean $ascii Force ASCII * @return string cleaned id @@ -152,7 +153,7 @@ function cleanID($raw_id,$ascii=false){ * @author Andreas Gohr * * @param string $id - * @return string|bool the namespace part or false if the given ID has no namespace (root) + * @return string|false the namespace part or false if the given ID has no namespace (root) */ function getNS($id){ $pos = strrpos((string)$id,':'); @@ -435,7 +436,7 @@ function localeFN($id,$ext='txt'){ * @param string $ns namespace which is context of id * @param string $id relative id * @param bool $clean flag indicating that id should be cleaned - * @return mixed|string + * @return string */ function resolve_id($ns,$id,$clean=true){ global $conf; @@ -718,6 +719,7 @@ function utf8_decodeFN($file){ * Used for sidebars, but can be used other stuff as well * * @todo add event hook + * * @param string $page the pagename you're looking for * @return string|false the full page id of the found page, false if any */ -- cgit v1.2.3