プラグインの変更箇所/ogp.inc.php
2022-05-22 (日) 15:51:36
変更箇所のまとめ
- ページ名からリンクを作成する機能を追加。 (内部リンクのみ)
- ベースネーム表示機能の追加。
- その他細かい変更、CSSの調整など。
変更の詳細
ページ名からリンクを作成する
作成済みのWiki内ページに限りページ名で指定できるようにする。存在しないページを指定した場合はエラーを表示。
$args = func_get_args();
$uri = get_script_uri();
+ if (strpos($args[0], '://') === false) {
+ if (! is_page($args[0]) return '#ogp Error: Pagenot found.'
+ $args[0] = get_page_uri($args[0], PKWK_URI_ABSOLUTE);
+ }
$ogpurl = (explode('://', $args[0]));
ベースネーム表示機能を追加
- ベースネーム表示機能
- Wikiだとページ名が "AAA/BBB/CCC" のように階層化されている場合がある。
この "CCC" に当たる部分がベースネーム。
階層が深くなりすぎると、ページ名が長すぎて行数制限内に収まりきらないことがあるため、オプションでベースネームのみを表示するように指定できるようにする。
$title = $graph->title;
$url = $graph->url;
$description = $graph->description;
+ if (in_array('base', $args)) {
+ $title = array_pop(explode('/', $title));
+ }
if( isset($graph->{'image:secure_url'}) ){
$src = $graph->{'image:secure_url'};
} else {
その他細かい変更
このサイトでは外部リンクに自動でアイコンを追加するようになっているので、見栄え的にリンクをタイトルではなく下部のURLにする。デザインの関係からいくつかクラスも追加。
return <<<EOD
<div class="ogp">
<div class="ogp-img-box $noimgclass">$fallback1<img loading="lazy" class="ogp-img" src="$src" alt="$title" width="100" height="100">$fallback2</div>
- <div class="ogp-title"><a href="$args[0]" target=”_blank” rel="noreferrer">$title<span class="overlink"></span></a></div>
- <div class="ogp-description">$description</div>
- <div class="ogp-url">$args[0]</div>
+ <div class="ogp-title bold">$title</div>
+ <div class="ogp-description small">$description</div>
+ <div class="ogp-url small ellipsis"><a href="$args[0]" target=”_blank” rel="noreferrer">$args[0] <span class="overlink"></span></a></div>
</div>
EOD;
あとはCSSの方でホバーアニメーションを追加したり、スマホ表示用レイアウトを追加したり。
更新履歴
- 2022-05-22
- 本体の更新に対応。カスタムURL用に内部リンク用の関数を変更したり。
- 2021-03-28
- プラグイン本体の方が更新されていたので、それに対応し記述を修正。
XSS対策やnoimgオプションを取り込んでいただけたようで、嬉しい反面自身もコーディングに自信があるわけではないのでちょっとドキドキする。
プラグイン配布元
ogp.inc.php - レ点腫瘍学ノート
pukiwiki プラグイン はてなブログの「ブログカード」は魅力的でPukiwikiにも導入したいと思い、自分で見よう見まねでプラグインを作成して個人用のPukiwikiで利用していましたが、せっかくですのでこの外部のOGPを取得してブログカードとして表示するPukiwikiプラグインを公開することにしました。外部のOGPを取得
コメント
質問や指摘などあればどうぞ。
コメントはありません。 コメント/プラグインの変更箇所/ogp.inc.php