ようこそ! Geeklog Japan 2018/08/17 16:43 JST

言語を指定してカレントURLを取得するPHP自動タグ currenturlを開発

Geeklog情報

言語を指定してカレントURLを取得するPHP自動タグ currenturlをhiroronさんによって開発されました。

この開発により、言語を指定して、カレントURLを取得できます。

書式 [currenturl:(言語ID) topicid:home]

多言語サイトの場合の、それぞれの言語のTOPを話題TOPにします。topicidは、そのidです。
topicid:homeの場合、
日本語TOP: http://yourdomain/index.php/topic/home_ja
英語TOP: http://yourdomain/index.php/topic/home_en
※あらかじめ話題 home_ja home_enなど、言語に対応する話題を作成しておいてください。

download:
https://github.com/ivywe/geeklog-ivywe

system/lib-custom.php 変更
system/phpautotags_currenturl.php 追加

活用方法:
Autotag plugin管理画面で、PHP関数 currenturl を登録

注意: 過去のバージョンで、PHP自動タグ管理画面で、置換文字列のtextareaを必須にしていた不具合がありました。 最新のバージョン plugins/autotag/template/admin/ を差し替えてください。

多言語切り替えで活用:
switchlang.phpでは確実に言語が切り替わらないケースがありましたが、 langsel プラグインを活用するとformでの切り替えとなり、確実に切り替えることができます。 その際、遷移先のURLを指定することができるようになりました。

TOPページ全体をcacheする方法

Geeklog情報 TOPページはもっともアクセスがあるため軽量化したいものです。
現状、Geeklogでは、ブロックや静的ページ、記事などの構成部品ごとのCacheしか用意していませんが、
1ページまるごとCacheする方法があります。

TOPページ表示用の静的ページを作成

本文:
TOPページをログアウトした状態のソースをペースト

モード:
センターエリア: チェック
表示エリア: ページ全体
所有者: admin など、自分以外の管理者
パーミッション: 0 0 0 1

これで、TOPページ表示用の静的ページがTOP ページに表示されますので、高速に表示が可能になります。

ただ、サイトによっては静的ページにソースが多すぎてすべて埋め込めない場合があります。
その場合は、assistプラグインをインストールして、本文には、以下の自動タグを。

[assist:cache id:index staticpages]

サーバーに、/data/cache/staticpages/index.html をhtmlソースをペーストしてアップロードします。index というのは、自動タグで指定したidになります。
また、パーミッションを自分以外のユーザーにしておくことで、ログインしたとき、TOPページはcacheではない本来のTOPページが表示されます。