テキストをリンクに変換

特定の記述法をした場合にテキストをリンクに変換するプラグインです。
名前や持ってくるタイトルは好きなようにしたらよか。解説サイトとかに使えるのではなかろうか。
通常の文章と区別するために[@~~]と記述することでリンクに変換します。
プラグイン「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