Example #1
0
function pieRefererList($resource, $context)
{
    $page = new Page();
    $referers = array();
    // Traverse all pages and search for matching links.
    for ($item = $page->first(); $item; $item = $page->next()) {
        if (!$page->read($item, 0)) {
            return false;
        }
        // Check for aliases that refer to originals.
        if ($page->meta['type'] == "alias" && $page->meta['original'] == $resource) {
            $referers[$item] = true;
            continue;
        }
        if ($context == "page") {
            if (!$page->meta['pages']) {
                continue;
            }
            $links = explode(" ", $page->meta['pages']);
        } elseif ($context == "file") {
            if (!$page->meta['files']) {
                continue;
            }
            $links = explode(" ", $page->meta['files']);
        } else {
            return false;
        }
        if (!in_array($resource, $links)) {
            continue;
        }
        // $item refers to $resource.
        $referers[$item] = true;
    }
    $referers = array_keys($referers);
    sort($referers);
    return $referers;
}
Example #2
0
    $hint_show = $GLOBALS['pie']['locale']->key("Show");
    $hint_edit = $GLOBALS['pie']['locale']->key("Edit");
    $ip = pieMakeString('[[$^icon_link]]');
    foreach ($referers as $name => $i) {
        $n++;
        print '<tr class="' . ($n % 2 ? "oddRow" : "evenRow") . '">' . '<td>' . pieMakeLink(htmlspecialchars($name), array('page' => $name), array('class' => "itemLink")) . '</td>' . "<td style=\"text-align: right;\">{$i}</td>" . '<td>' . pieMakeLink("<img src=\"{$ip}/information.png\" />", array('action' => "pageinfo", 'page' => $name), array('title' => $hint_info)) . '</td>' . '<td>' . pieMakeLink("<img src=\"{$ip}/page_edit.png\" />", array('action' => "edit", 'page' => $name), array('title' => $hint_edit)) . '</td>' . "</tr>\n";
    }
    print "</table>\n";
} elseif (@$_REQUEST['mode'] == "links") {
    // Walk all pages and examine their links.
    // Collect a list of _links_, i. e. destinations of broken links.
    $page = new Page();
    $file = new File();
    $deadpages = array();
    $deadfiles = array();
    for ($name = $page->first(); $name; $name = $page->next()) {
        if (!$page->read($name, 0)) {
            pieError("SourceReadError");
        }
        if ($page->meta['pages']) {
            // There are page links that are to be checked.
            $list = explode(" ", $page->meta['pages']);
            foreach ($list as $i) {
                if (!$page->exists($i)) {
                    $deadpages[$i]++;
                }
            }
        }
        if ($page->meta['files']) {
            // There are file links that are to be checked.
            $list = explode(" ", $page->meta['files']);
Example #3
0
 /**
  * Set up paging
  *
  * @access public
  * @static	
  * @param array $segments
  */
 public static function setUp(&$segments = array())
 {
     $count = count($segments);
     self::$end = self::$offset;
     if (isset($segments[$count - 2]) && isset($segments[$count - 1])) {
         if ($segments[$count - 2] == 'page' && is_numeric($segments[$count - 1])) {
             if ($segments[$count - 1] > 1) {
                 self::$page = $segments[$count - 1];
                 self::$start = (self::$page - 1) * self::$offset;
                 self::$end = self::$offset * self::$page;
             }
             unset($segments[$count - 2]);
             unset($segments[$count - 1]);
         }
     }
     self::$next = '/' . implode('/', $segments) . '/page/';
     self::$next .= self::$page + 1;
     if (self::$page > 1) {
         self::$previous = '/' . implode('/', $segments) . '/page/';
         self::$previous .= self::$page - 1;
     }
 }