related_inプラグイン

知人に頼まれて被リンクされているページ一覧から指定の階層を含むページの一覧を表示するpukiwikiプラグインを作ってみた。


<?php
/**
 * related_in plugin
 *
 * @author halt <halt.hde@gmail.com>
 */
function plugin_related_in_convert()
{
    global 
$vars;
    global 
$script;
    global 
$non_list;
    global 
$defaultpage;
    global 
$whatsnew;
    
    
$args func_get_args();
    
$word $args[0] . '/';

    $_page = isset($vars['page']) ? $vars['page'] : '';
    if (
$_page == ''$_page $defaultpage;

    // Get related from cache
    
$data links_get_related_db($_page);
    if (! empty(
$data)) {
        
// Hide by array keys (not values)
        
$non_list_pattern '/' $non_list '/';
        foreach(
array_keys($data) as $page)
            if (
$page == $whatsnew ||
                
preg_match($non_list_pattern$page)){
                unset(
$data[$page]);
            }       
    }

    // Result
    
$r_word rawurlencode($_page);
    
$s_word htmlspecialchars($_page);
    
$retval '';
    
//$retval  = '<a href="' . $script . '?' . $r_word . '">' .
        
'Return to ' $s_word .'</a><br/>'"\n";
   
    if (empty(
$data)) {
        
$retval .= '<ul><li>No related pages found.</li></ul>' "\n";
    } else {
   
        
// Show count($data)?
        
ksort($data);
        
$retval .= '<ul>' "\n";
        foreach (
$data as $page=>$time) {
   
            if ( 
strpos($page$word) !== false) {
            
$r_page  rawurlencode($page);
            
$s_page  htmlspecialchars($page);
            
$passage get_passage($time);
            
$retval .= ' <li><a href="' $script '?' $r_page '">' $s_page .
                
'</a> ' $passage '</li>' "\n";
            }
   
        }
   
        
$retval .= '</ul>' "\n";
    }
   
    return 
$retval;

}
?>


relatedプラグインをコピーして、指定の階層が含まれるものだけを抽出するように変更しただけ。

やらなきゃいけない事がある時に限って他ごとしたくなりませんか?

Related posts:

  1. RECKONING NIGHT購入

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

ねこ認証:9つのパネルの中からねこを3匹選んでください

Additional comments powered byBackType