wiki:pne-customize
 ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Version 20 (modified by kiwa, 11 years ago) (diff)

#2645,#2646 noteへのリンクを改善

TOC(depth=3)?

OpenPNEカスタマイズ

OpenPNEカスタマイズのためのガイドラインです。

管理画面でカスタマイズ

管理画面から設定を行うことで、OpenPNE本体の挙動を変更したり、機能を追加することが出来ます。

デザインカスタマイズ

テンプレート設定

OpenPNE2.12からのテンプレートの設定についてはwiki:pne-xhtmlcss/tipsをご覧ください?

!MyNewsを使用する

!MyNewsとは、フレンドが自分のホームにアクセスした場合に自分の近況を一言表示する機能です。マイホームに入力フォームを、フレンドホームに表示部分を作ることで使用可能になります。以下、OpenPNE2.12からの使用方法を紹介します。

入力フォームの作成(暫定)

管理画面「テンプレート挿入」の「【PC版】 h_home 9」に以下を入力してください。

<div class="dparts formTable"><div class="parts">
<div class="partsHeading"><h3>My News!</h3></div>
<div class="partsInfo">
<p>({if $c_member.profile.PNE_MY_NEWS_DATETIME.value})({$c_member.profile.PNE_MY_NEWS_DATETIME.value|date_format:"%m/%d %H:%M"}) 更新({/if})</p>
</div>
<form action="./" method="post">
<input type="hidden" name="m" value="pc" />
<input type="hidden" name="a" value="do_h_home_update_my_news" />
<input type="hidden" name="sessid" value="({$PHPSESSID})" />
<div class="block" style="padding: 5px;">
<textarea style="width: 320px; height: 50px; vertical-align: middle;" name="prof_my_news" rows="3" cols="50">({$c_member.profile.PNE_MY_NEWS.value})</textarea>
<input type="submit" style="height: 50px; vertical-align: middle;" value="&nbsp;変&nbsp;更&nbsp;" />
</div>
</form>
</div></div>

表示部分の作成(暫定)

管理画面「テンプレート挿入」の「【PC版】 f_home (h_prof) 7」に以下を入力してください。

({if $target_c_member.profile.PNE_MY_NEWS_DATETIME.value})

<div class="dparts simpleBox"><div class="parts">
<div class="partsHeading"><h3>My News!</h3></div>
<div class="partsInfo">
<p>({$target_c_member.profile.PNE_MY_NEWS_DATETIME.value|date_format:"%m/%d %H:%M"}) 更新</p>
</div>
<div class="block">
<p style="text-align:left; padding:0px 5px 0px 5px;">
({$target_c_member.profile.PNE_MY_NEWS.value|nl2br|t_url2a})
</p>
</div>
</div></div>

({/if})

OpenPNE2.12以前のバージョンで使用するには

OpenPNE2.10

OpenPNE2.10はOpenPNE2.12とテンプレートの書き方が違うため、上記のテンプレートではレイアウトが崩れてしまいます。OpenPNE2.10での表示方法はこちらをご覧ください。

OpenPNE2.10以前のバージョン

!MyNews機能に対応していないため、使用できません。

ポイント・ランクをフレンドホームにも表示させる

ポイント・ランク機能は、「日記を書く」「友人を招待する」などの特定のアクションを起こすことでメンバーに対してポイントが加算され、更にポイントに対応したランクの設定を行うことができる機能です。管理画面「SNS設定」の「ポイント・ランク使用設定」から使用の可否を選択することができます。

デフォルトの状態は他のメンバーのポイント・ランクを確認することはできませんが、管理画面「テンプレート挿入」から表示用のテンプレートを挿入することでメンバーのホームに表示させることができます。

表示部分の作成(暫定)

管理画面「テンプレート挿入」の「【PC版】 f_home (h_prof) 4」に以下を入力してください。

({if $rank.image_filename})
<div style="text-align:center; margin:0px 0px 10px 0px;">
<img src="img.php?filename=({$rank.image_filename})" alt="({$rank.name})" />
<p style="text-align:center">({$point})point</p>
</div>
({/if})

OpenPNE2.12以前のバージョンで使用するには

OpenPNE2.12以前バージョンはOpenPNE2.12とテンプレートの書き方が違うため、上記のテンプレートではレイアウトが崩れてしまいます。OpenPNE2.10での表示方法はこちらをご覧ください。

PV集計を行う

Google Analytics

Google Analyticsで発行されたタグをOpenPNEの管理画面に設定することで、PVの集計が行えます。

忍者ツールズ

忍者ツールズも利用できます。携帯のPVも測定できます。

広告管理をする

OpenAds

OpenAdsをOpenPNEとは別にインストールし、管理画面の設定で有効にします。 バナー領域やサイドバナー領域にセットするのが良いでしょう。

GoogleAdsense

!GoogleAdsenseを利用することも可能です。

ID連携でカスタマイズ

OpenPNEと他のアプリケーションをID連携させることで、OpenPNEのソースコードを直接編集しないでも機能追加することが出来ます。

MasterPNE

OpenPNEのメンバーIDをマスターにして、WikiやCMSなどの他のアプリケーションを追加機能として利用します。

  • Geeklog
  • TRAC

pne-masterslave

SlavePNE

外部のアプリケーション・認証システムを親としてOpenPNEを連携させます。

  • LDAP
  • POP3
  • ActiveDirectory

等に対応しています。

pne-masterslave

小窓でカスタマイズ

OpenPNEには他の機能サービスとマッシュアップさせるための「小窓CMD」と言う機構が備わっています。

pne-cmd

pne-cmd-howto

ソースコードを修正するカスタマイズ

OpenPNE内部の関数やモジュール機構は現在でも頻繁な変更が行われており、明確なインターフェースの規定が有りません。よって、OpenPNE本体のソースコードを変更する場合、本体のバージョンアップに応じてカスタマイズの作り直し作業が発生する可能性が有ります。

OpenPNE本体修正の際のアドバイス

OpenPNE本体のバージョンアップに追従するカスタマイズ手法を採ることが重要になります。

バージョン管理ツールの使用

OpenPNEのソースコードはSubversionにより管理されています。

OpenPNEに対して、カスタマイズ開発を行う際にも、Subversionを利用すると開発作業やバージョンアップへの追従作業が簡単になります。

既存のDB定義に対して変更を行わない

  • OpenPNEの既存テーブルにはさわらない
    • 新規でテーブルを作成し、外部キーで連携させる

表示系のカスタマイズ

  • Smartyプラグインを作る
  • Smartyプラグイン内でDBに接続する。
    • 出来ればプラグイン内で利用する関数はop_関数が良い
  • 作成したSmartyプラグインをTPL修正で埋め込む

実行系

  • 新規でモジュールを作成する

WikiInclude(DIRECTORYNAVI)?

Attachments (9)

Download all attachments as: .zip