テキストをリンクに変換 - M-Blog

テキストをリンクに変換

テキストをリンクに変換

特定の記述法をした場合にテキストをリンクに変換するプラグインです。

名前や持ってくるタイトルは好きなようにしたらよか。解説サイトとかに使えるのではなかろうか。

通常の文章と区別するために[@~~]と記述することでリンクに変換します。

プラグイン「text2link」

システムイベントは「OnParseDocument」です。

//変換用のチャンクを読み込み
//チャンク名「text2link」
$set = $modx->getChunk('text2link');
if($set){
    $array = explode (PHP_EOL,$set );
    foreach($array as $s){
        $s = explode (',',$s);
        //[@~~]を探す
        $search[] = '[@'.$s[0].']';
        $s[1] = str_replace(array("\r\n","\n","\r"), '', $s[1]);
        if(ctype_digit($s[1])){
            $url = $modx->makeUrl($s[1]);
             //リンクのタイトル メニュータイトル、長いタイトル、ページタイトルの順
            $title = $modx->getField('menutitle',$s[1]);
            if($title ==''){
                $title = $modx->getField('longtitle',$s[1]);
            }
            if($title ==''){
                $title = $modx->getField('pagetitle',$s[1]);
            }
            $replace[] = '<a href="'.$url.'">'.$title.'</a>';
        }else{
            $replace[] = $s[1];
        }
    }
    //置換
    $modx->documentOutput = str_replace($search,$replace,$modx->documentOutput);
    preg_match_all('/content=".*"/i', $modx->documentOutput, $matches);
    foreach($matches[0] as $m){
         $modx->documentOutput = str_replace($m, strip_tags($m), $modx->documentOutput);
    }
}

チャンク「text2link」

記述の仕方

置換する文字列,リソースID
置換する文字列,リソースID
.
.
.

本文では[@置換する文字列]と書けばリンクに変換されます。

例:[@ブログ]→ブログ


2018年10月16日 / CMS

カテゴリー

アーカイブ

最近の投稿

最近の更新

リンク