diff options
author | Michael Hamann <michael@content-space.de> | 2013-07-31 17:20:00 +0200 |
---|---|---|
committer | Michael Hamann <michael@content-space.de> | 2013-07-31 18:03:31 +0200 |
commit | 07ff0babae240ba072a3bc8b83a989c4305c24cd (patch) | |
tree | f8548a00f31c47f11344d8e880893e812570f783 /inc/fulltext.php | |
parent | cd997f938b450010efa93aa8a65ecbed9a68a32e (diff) | |
download | rpg-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.php | 12 |
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]); } } |