예제 #1
0
function plugin_tooltip_inline($args)
{
    $args = func_get_args();
    $glossary = array_pop($args);
    $term = array_shift($args);
    if (empty($glossary)) {
        $glossary = Glossary::getGlossary($term);
        // $debug .= "B=$glossary/";
        if ($glossary === FALSE) {
            $glossary = plugin_tooltip_get_page_title($term);
            if ($glossary === FALSE) {
                $glossary = '';
            }
        }
    }
    $s_glossary = Utility::htmlsc($glossary);
    $page = Utility::stripBracket($term);
    $wiki = Factory::Wiki($page);
    if ($wiki->isValied() && $wiki->isReadable()) {
        return '<abbr class="glossary" title="' . $s_glossary . ' ' . $wiki->passage(false, false) . '"><a href="' . $wiki->uri() . '">' . $term . '</a></abbr>';
    }
    return '<abbr title="' . $s_glossary . '">' . $term . '</abbr>';
}
예제 #2
0
 /**
  * ページの自動リンクを作成
  * @global type $vars
  * @global type $link_compact
  * @global type $related
  * @global type $_symbol_noexists
  * @param string $page ページ名
  * @param string $alias リンクの名前
  * @param string $anchor ページ内アンカー(アドレスの#以降のテキスト)
  * @param string $refer リンク元
  * @param boolean $isautolink 自動リンクか?
  * @return string
  */
 public static function setAutoLink($page, $alias = '', $anchor = '', $refer = '', $isautolink = FALSE)
 {
     global $vars, $link_compact, $related, $_symbol_noexists, $related;
     if (empty($page)) {
         // ページ内リンク
         return '<a href="' . $anchor . '">' . Utility::htmlsc($alias) . '</a>';
     }
     $wiki = Factory::Wiki($page);
     if (!$wiki->has()) {
         // ページが存在しない場合は、AutoAliasから該当ページが存在するかを確認する
         foreach (AutoAlias::getAutoAliasDict() as $aliaspage => $realpage) {
             if (Factory::Wiki($realpage)->has()) {
                 // リンクをエイリアス先に
                 return self::setLink($page, $aliaspage);
             }
         }
     } else {
         if (!isset($related[$page]) && isset($vars['page']) && $page !== $vars['page']) {
             $related[$page] = $wiki->time();
         }
     }
     $s_page = Utility::htmlsc($page);
     $anchor_name = empty($alias) ? $page : $alias;
     $anchor_name = str_replace('&amp;#039;', '\'', $anchor_name);
     // 'が&#039;になってしまう問題をとりあえず解消
     if ($isautolink || $wiki->has()) {
         // ページが存在する場合
         // 用語集にページ名と同じワードが含まれていた場合
         $glossary = Glossary::getGlossary($page);
         if (!empty($glossary)) {
             // AutoGlossray
             return '<abbr class="glossary" title="' . $glossary . ' ' . $wiki->passage(false, true) . '">' . '<a href="' . $wiki->uri() . '"' . ($isautolink === true ? ' class="autolink"' : '') . '>' . $anchor_name . '</a></abbr>';
         }
         return '<a href="' . $wiki->uri() . $anchor . '" ' . (!$link_compact ? 'title="' . $s_page . ' ' . $wiki->passage(false, true) . '"' : '') . ($isautolink === true ? ' class="autolink"' : '') . '>' . $anchor_name . '</a>';
     } else {
         // Dangling link
         if (Auth::check_role('readonly')) {
             return Utility::htmlsc($alias);
         }
         // No dacorations
         $retval = $anchor_name . '<a href="' . $wiki->uri('edit', empty($refer) ? null : array('refer' => $refer)) . '" rel="nofollow">' . $_symbol_noexists . '</a>';
         return $link_compact ? $retval : sprintf(RendererDefines::NOEXISTS_STRING, $retval);
     }
 }
예제 #3
0
 function __construct($start)
 {
     parent::__construct($start);
 }