Geeklog OGP(Open Graph Protocol)プラグイン

作者 mystral-kk <geeklog AT mystral-kk DOT net>
最新バージョン 1.1.8 (2017-01-10)
システム要件 Geeklog-1.6.0以降、PHP-5.0.0以降
ライセンス GPLv2以降

概要

OGPプラグインはOpen Graph Protocol(以下、OGP)をサポートしており、<meta property="og:***" content="***">タグを出力してGeeklogサイトとFacebookなどのOGPをサポートするサイトとの連携を可能にします。

また、「いいね!」ボタンやFacebookコメントを、記事や静的ページ、イベント(カレンダープラグイン、calendarjpプラグイン)、リンクプラグイン、ファイル管理プラグイン、Downloadsプラグインで表示する機能も備えています。表示するコンテンツの種類はコンフィギュレーションで指定できます。

インストール前の準備

インストール

以下の説明で、

を表しています。

  1. ogpプラグインのアーカイブを<geeklog_dir>/pluginsディレクトリに展開します。ogpという名前のディレクトリができます。
  2. <public_html>ディレクトリの下にogpという名前のディレクトリを作ります。
  3. <admin>/pluginsディレクトリの下にogpという名前のディレクトリを作ります。
  4. <geeklog_dir>/plugins/ogp/public_htmlディレクトリに移動し、その内容をを2.で作成した <public_html>/ogpディレクトリにコピーします。
  5. <geeklog_dir>/plugins/ogp/adminディレクトリに移動し、その内容を3.で作成した <admin>/plugins/ogpディレクトリにコピーします。
  6. <public_html>/layout/使用するテーマ/header.thtmlを修正します。

    (変更前) <html{html_attribute}{xmlns}>

    (変更後) <html{html_attribute}{xmlns} xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://ogp.me/ns#">
  7. Geeklog-1.8.0よりも古いバージョンを使用している場合は、次のコードを上記header.thtmlと同じディレクトリ内にあるfooter.thtmlの</body>タグの直前に追加します。
    <div id="fb-root"></div> <script> window.fbAsyncInit = function() { FB.init({appId: 'FacebookアプリケーションID', status: true, cookie: true, xfbml: true, channelURL: 'サイトのURL/admin/plugins/ogp/channel.php'}); }; (function() { var e = document.createElement('script'); e.async = true; e.src = document.location.protocol + '//connect.facebook.net/ja_JP/all.js'; document.getElementById('fb-root').appendChild(e); }()); </script>

    FacebookアプリケーションIDサイトのURLは適切な値に置き換えます。日本語以外に対応するには、ja_JPの部分を希望するロケールに変更します。対応しているロケールはこちらのXMLファイルを参照してください。なお、Geeklog-1.8.0以降の場合、この作業は不要です。

  8. Rootユーザーとしてログインし、プラグインエディタからインストールを実行します。失敗した場合には、エラーログ(error.log)を調べます。
  9. 重要: コンフィギュレーション > OGPでFacebookユーザーIDとFacebookアプリケーションIDを指定します。「いいね!」ボタンやコメント機能を使用しない場合、後者の設定は不要です。設定した場合は、この時点で「いいね!」ボタンやコメント機能は自動タグとして利用可能になっています(それぞれ、[ogp:like][ogp:comments])。
  10. 「いいね!」ボタンやコメント機能が記事で自動的に表示されるようにするには、テンプレートファイルに追加します。上記header.thtmlと同じディレクトリ内にあるfeaturedstorytext.thtmlとstorytext.thtmlにテンプレート変数を追加します。「いいね!」ボタンは{ogp_like}、コメント機能は{ogp_comments}です。
  11. カレンダープラグイン(v1.1.2)では以下の2つの手順を踏む必要があります。
    1. <geeklog_dir>/plugins/calendar/templates/eventdetails.thtmlの一番下の部分に、{ogp_like}{ogp_comments}を追加する。
    2. <public_html>/calendar/event.phpの510行目付近にある
      $cal_templates = COM_newTemplate($_CONF['path'] . 'plugins/calendar/templates/');
      $cal_templates->set_file (array (
          'events' => 'events.thtml',
          'details' => 'eventdetails.thtml',
          'addremove' => 'addremoveevent.thtml'
      ));
          
      $cal_templates->set_var ('lang_addevent', $LANG_CAL_1[6]);

      $cal_templates = COM_newTemplate($_CONF['path'] . 'plugins/calendar/templates/');
      $cal_templates->set_file (array (
          'events' => 'events.thtml',
          'details' => 'eventdetails.thtml',
          'addremove' => 'addremoveevent.thtml'
      ));
      $cal_templates->set_var('ogp_like', OGP_like());
      $cal_templates->set_var('ogp_comments', OGP_comments());
      $cal_templates->set_var ('lang_addevent', $LANG_CAL_1[6]);

      に変更する。

  12. カレンダーjpプラグイン(v1.1.5)では以下の2つの手順を踏む必要があります。
    1. <geeklog_dir>/plugins/calendarjp/templates/eventdetails.thtmlの一番下の部分に、{ogp_like}{ogp_comments}を追加する。
    2. <public_html>/calendarjp/event.phpの520行目付近にある
          $cal_templates = COM_newTemplate($_CONF['path'] . 'plugins/calendarjp/templates/');
          $cal_templates = COM_newTemplate($_CONF['path'] . 'plugins/calendarjp/templates/');
          $cal_templates->set_file (array (
              'events' => 'events' . ($ja ? '_ja' : '') . '.thtml',
              'details' => 'eventdetails.thtml',
              'addremove' => 'addremoveevent.thtml'
          ));
       
          $cal_templates->set_var ('lang_addevent', $LANG_CALJP_1[6]);

          $cal_templates = COM_newTemplate($_CONF['path'] . 'plugins/calendarjp/templates/');
          $cal_templates = COM_newTemplate($_CONF['path'] . 'plugins/calendarjp/templates/');
          $cal_templates->set_file (array (
              'events' => 'events' . ($ja ? '_ja' : '') . '.thtml',
              'details' => 'eventdetails.thtml',
              'addremove' => 'addremoveevent.thtml'
          ));
          $cal_templates->set_var('ogp_like', OGP_like());
          $cal_templates->set_var('ogp_comments', OGP_comments());
       
          $cal_templates->set_var ('lang_addevent', $LANG_CALJP_1[6]);

      に変更する。

  13. リンク(Links)プラグイン(v2.1.1)では以下の2つの手順を踏む必要があります。
    1. <geeklog_dir>/plugins/links/templates/links.thtmlの下の方にある{page_navigation}タグの前に、{ogp_like}{ogp_comments}を追加する。
    2. <public_html>/links/index.phpの340行目付近にある
      $linklist->parse ('output', 'linklist');
      $display .= $linklist->finish ($linklist->get_var ('output'));

      $linklist->parse ('output', 'linklist');
      $display .= $linklist->finish ($linklist->get_var ('output'));
      $linklist->set_var ('ogp_like', OGP_like());
      $linklist->set_var ('ogp_comments', OGP_comments());

      に変更する。

  14. アンケート(Polls)プラグイン(v2.1.3)では以下の4つの手順を踏む必要があります。
    1. <geeklog_dir>/plugins/polls/templates/pollblock.thtmlの下の方にある{poll_comments}タグの後に、{ogp_like}{ogp_comments}を追加する。
    2. <geeklog_dir>/plugins/polls/templates/pollresult.thtmlの下の方にある{poll_comments}タグの後に、{ogp_like}{ogp_comments}を追加する。
    3. <geeklog_dir>/polls/functions.incの596行目付近にある
      $retval = $poll->finish($poll->parse('output', 'block')) . LB;

      $linklist->set_var ('ogp_like', OGP_like());
      $linklist->set_var ('ogp_comments', OGP_comments());
      $retval = $poll->finish($poll->parse('output', 'block')) . LB;

      に変更する。

    4. <geeklog_dir>/polls/functions.incの908行目付近にある
      $retval = $poll->finish($poll->parse('output', 'block')) . LB;

      $linklist->set_var ('ogp_like', OGP_like());
      $linklist->set_var ('ogp_comments', OGP_comments());
      $retval = $poll->finish($poll->parse('output', 'block')) . LB;

      に変更する。

  15. ファイル管理(Filemgmt)プラグイン(v1.6.0)では以下の手順を踏む必要があります。
    1. <public_html>/filemgmt/index.phpの277行目付近にある
      $display .= COM_siteFooter();

      $display .= OGP_like() . "\n" . OGP_comments();
      $display .= COM_siteFooter();

      に変更する。

  16. ダウンロード(Downloads)プラグイン(v1.0.4)では以下の手順を踏む必要があります。
    1. <public_html>/downloads/index.phpの526行目付近にある
      $display .= COM_siteFooter();

      $display .= OGP_like() . "\n" . OGP_comments();
      $display .= COM_siteFooter();

      に変更する。

  17. 「いいね!」ボタンやコメント機能の設定は、コンフィギュレーション > OGPで行います。

アンインストール

  1. プラグインエディタから、ogpプラグインをアンインストールします。
  2. インストールの過程で作成した3つのディレクトリ(<geeklog-dir>/plugins/ogpと<public_html>/ogpと<admin>/plugins/ogp)を削除します。

変更履歴

バージョン 日付(YYYY-MM-DD) 詳細
1.1.8 2017-01-10  修正   PHP-7とGeeklog-2.1.2で動くようになりました。
1.1.5 2011-12-31  修正   古いバージョンを更新する際に発生していたバグを修正しました。
1.1.4 2011-12-18  修正   ogpプラグインを新規インストール後にコンフィギュレーションがエラーになっていたバグを修正しました。
1.1.3 2011-12-17  修正   ogpプラグインを新規インストール後にコンフィギュレーションがエラーになっていたバグを修正しました。
1.1.2 2011-12-05  New!   リンク(Links)プラグイン、アンケート(Polls)プラグイン、ファイル管理(Filemgmt)、ダウンロード(Downloads)プラグインをサポートしました。
 New!   Facebookのいいね!ボタンとFacebookコメントをどのコンテンツで有効にするかをコンフィギュレーションで指定できるようになりました。
1.1.1 2011-09-16  New!  カレンダープラグインとカレンダーjpプラグインをサポートしました。
1.1.0 2011-09-11  New!  「いいね!」ボタンとコメント機能をサポートしました。
1.0.0 2011-09-04  New!  最初の公開バージョンです。