function plugin_related_action() { global $vars, $defaultpage, $_related_messages; $_page = isset($vars['page']) ? $vars['page'] : null; if (empty($_page)) { $_page = $defaultpage; } if (!IS_AJAX) { // Result $retval[] = '<a href="' . get_page_uri($_page) . '">' . sprintf($_related_messages['msg_return'], Utility::htmlsc($_page)) . '</a><br />' . "\n"; } // Get related from cache $links = new Relational($_page); $data = $links->getRelated(); if (empty($data)) { $retval[] = '<ul><li>' . $_related_messages['msg_nomatch'] . '</li></ul>' . "\n"; } else { // Hide by array keys (not values) foreach (array_keys($data) as $page) { $wiki = Factory::Wiki($page); if (!$wiki->isEditable() || $wiki->isHidden()) { unset($data[$page]); } } unset($wiki); // Show count($data)? ksort($data, SORT_STRING); $retval[] = '<ul class="list_pages">' . "\n"; foreach ($data as $page => $time) { $wiki = Factory::Wiki($page); $retval[] = ' <li><a href="' . $wiki->uri() . '">' . Utility::htmlsc($page) . '</a> ' . $wiki->passage(true, true) . '</li>'; } $retval[] .= '</ul>' . "\n"; } return array('msg' => sprintf($_related_messages['msg'], Utility::htmlsc($_page)), 'body' => join("\n", $retval)); }
/** * 関連リンクを取得 * @return array */ public function related() { global $related; // Get repated pages from DB $link = new Relational($this->page); $ret = $related + $link->getRelated(); ksort($ret, SORT_NATURAL); return $ret; }
/** * Returns a list of backlinks of a Wiki page. * このページにリンクしているページの配列を返す。 * @param string $pagename ページ名 * @return array */ public function getBackLinks($pagename) { $links = new Relational($pagename); return $links->getRelated(); }