Thursday, April 18 2024 @ 07:21 PM JST

Geeklog 自動タグ(Autotags)をPHPで実行する

  • Tuesday, January 13 2015 @ 02:16 AM JST
  • 投稿者:
  • 表示回数 21,924
Geeklog

自動タグをPHPで実行する場合は、次のように記述します。

[tagname:item]
これをPHPで実行するなら
<?php echo PLG_replaceTags('[tagname:item]'); ?>
テーマ変数を引数にしたければ通常はPHPで記述の必要はありません。
[tagname:{var}]
これを
{!!autotag tagname:'.{var}.' !!}
と表示。 これをPHPで実行するなら
<?php echo PLG_replaceTags('[tagname:'.$this->get_var('var').']'); ?>

自動タグをテンプレート内に記述するとき、引数をテーマ変数ではなく、自由な変数を使ってセットしたければ、以下のようにPHPで記述します。

<?php echo PLG_replaceTags('[tagname:'.$var.']'); ?>
なお、テーマ変数は、PHPでは以下のようにすればテンプレート内でも参照できます。 テーマ変数titleを取得したければ以下。
$this->get_var('title');
PHPで、ログインしているかどうかの判定は以下。COM_isAnonUser()を使います。
    if (COM_isAnonUser()){
        echo CUSTOM_getStaticpage('_login' );
    } else {
        echo CUSTOM_getStaticpage('_logout' );
    }

くわしくはWiki

テーマ変数をトリミングする場合は、テンプレートに以下のように記述します。

<?php
$var = $this->get_var('data_description'); 
$length = 140; $encoding = 'utf-8'; echo mb_strimwidth( stripslashes( $var ), 0, $length, '...', $encoding);
?>
なお、多言語サイトの場合、言語IDは
COM_getLanguageId()
で取得します。 例

echo PLG_replaceTags('[staticpage_content:_header_navigation_'.COM_getLanguageId().']');