このエントリーをはてなブックマークに追加 Twitterでツイート WordPressとOpenPNEの連携みたいな

今年2月からWordPressとOpenPNEを連携させたサイト構築を行っている。
連携といってもあまり親密な連携ではなく、ごくごくシンプルなものになるのだが、若干OpenPNE側のカスタマイズもやってたり。これまでOpenPNEでカスタマイズしたことは大きく次の2つ。
・メールでのログインユーザーにOpenIDをひも付けし、どちらでもログイン可能に。
 OpenIDで会員登録したメンバーは、メールアドレスとパスワードを登録するだけでいいのだが、
 その逆は機能的に見つからなかったので、ちょっといじってみた。
・独自に追加したプロフィール項目の設定にあわせて、コミュニティに自動参加。

このほかWordPress側でのOpenPNEログイン状態の確認だったり、最終アクセス時間から1時間経過するとセッションが切れるのでWordPress側でも最終アクセス時間を更新したりといった感じ。

OpenPNE 3系のデータベースアクセス周りはDoctrineクラス使用なので、なじむまで時間がかかったような^^;

投稿日:2011年4月7日

コメント / トラックバック2 件

  1. cyanpon より:

    お初にお目に掛かります。
    記事を大変興味深く拝見させて頂きました。

    その中で、下記の記事に関して もっと具体的な行ったことをご教授頂けないでしょうか。

    >このほかWordPress側でのOpenPNEログイン状態の確認だったり、最終アクセス時間から1>時間経過するとセッションが切れるのでWordPress側でも最終アクセス時間を更新したり>といった感じ。

    現在、symfony + openpne で会員ログイン機能を連携させているサイトがあります。
    そこに WordPressのコンテンツを載せて、会員ログイン有・無で本文記事の開示範囲を制限させたいのです。
    本文は、moreタグを使って、抜粋と本文に分けようと思ってます。

    そこで、OpnePNE側で保存したcookieを利用して、ログイン中かそうでないかを判断させようと思ってます。

    //親symfony側とログイン情報を共有
    $member = $c_member_id ->OpnePNE会員ID
    $sid = session_id(); ->セッションID

    ※Wordpressは、symfony直下のwebフォルダ内にインストール済み。
    ※ドキュメントルートは、symfonyのwebフォルダになります。
      OpnePNEのpublic_htmlは、エイリアス設定にしている状態です。

    以上、宜しくお願いいたします。

  2. サイト管理者 より:

    コメントありがとうございます。
    やったことは、WordPress側でOpenPNE側に登録している情報の一部を表示。
    OpenPNE側でログインしているかどうかを調べ、コメント許諾や表示内容を
    若干制御しました。OpenPNEは3.4になります。

    ログインの延長処理は、$_SESSION[‘/symfony/user/sfUser/lastRequest’]に
    格納されている時間を変更することで実現しています。ログイン中かどうかも
    このデータの有無で確認できます。
    あと関連するところでは、$_SESSION[‘/symfony/user/sfUser/attributes’]
    でしょうか。こちらの内容については、var_dumpなどで表示してみれば理解できる
    と思います。

    なおこれらについては、OpenPNEのバージョンによって変わる可能性がありますので
    その点はご注意ください。

  • ※コメントは、スパム対策などのためIPアドレスにて制限しております。
  • ※誹謗や中傷、スパムなど、不適切な内容は公開いたしません。ご了承ください。