summaryrefslogtreecommitdiff
path: root/inc/fulltext.php
diff options
context:
space:
mode:
authorMichael Hamann <michael@content-space.de>2013-07-31 17:20:00 +0200
committerMichael Hamann <michael@content-space.de>2013-07-31 18:03:31 +0200
commit07ff0babae240ba072a3bc8b83a989c4305c24cd (patch)
treef8548a00f31c47f11344d8e880893e812570f783 /inc/fulltext.php
parentcd997f938b450010efa93aa8a65ecbed9a68a32e (diff)
downloadrpg-07ff0babae240ba072a3bc8b83a989c4305c24cd.tar.gz
rpg-07ff0babae240ba072a3bc8b83a989c4305c24cd.tar.bz2
Fix the useheading cache invalidation for hidden pages, add tests
This adds a new parameter to ft_backlinks() to ignore permissions which is needed for invalidating the cache of linking pages with useheading enabled. This also adds various test cases for ft_backlinks().
Diffstat (limited to 'inc/fulltext.php')
-rw-r--r--inc/fulltext.php12
1 files changed, 8 insertions, 4 deletions
diff --git a/inc/fulltext.php b/inc/fulltext.php
index 2f073acea..1afff25dd 100644
--- a/inc/fulltext.php
+++ b/inc/fulltext.php
@@ -125,17 +125,21 @@ function _ft_pageSearch(&$data) {
* Returns the backlinks for a given page
*
* Uses the metadata index.
+ *
+ * @param string $id The id for which links shall be returned
+ * @param bool $ignore_perms Ignore the fact that pages are hidden or read-protected
+ * @return array The pages that contain links to the given page
*/
-function ft_backlinks($id){
- $result = array();
-
+function ft_backlinks($id, $ignore_perms = false){
$result = idx_get_indexer()->lookupKey('relation_references', $id);
if(!count($result)) return $result;
// check ACL permissions
foreach(array_keys($result) as $idx){
- if(isHiddenPage($result[$idx]) || auth_quickaclcheck($result[$idx]) < AUTH_READ || !page_exists($result[$idx], '', false)){
+ if(($ignore_perms !== true && (
+ isHiddenPage($result[$idx]) || auth_quickaclcheck($result[$idx]) < AUTH_READ
+ )) || !page_exists($result[$idx], '', false)){
unset($result[$idx]);
}
}