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

Changes between Version 13 and Version 14 of pne-book-9-1


Ignore:
Timestamp:
Mar 30, 2008, 7:37:11 PM (13 years ago)
Author:
imoto
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • pne-book-9-1

    v13 v14  
    66
    77== 概要 ==
    8 ディレクトリツアーではOpenPNEのディレクトリ構造を見ていきます。[[BR]]
    98現在のOpenPNE2.0系は独自のフレームワークを採用しています。[[BR]]
    10 よってディレクトリ構造も独自の構成をしています。[[BR]]
    11 今回は、trac.openpne.jpのtrunkを参照しながら解説を行っていきますのでディレクトリはアルファベット順になっているので、解説も上からアルファベット順に解説していきます。
    12 
    13 それでは、主要なディレクトリを網羅しながら、OpenPNEのディレクトリを見ていきましょう。
     9この独自のフレームワークはディレクトリ構造も独自の構成をしています。
     10そこで今回はこのディレクトリ構造を、trac.openpne.jpのtrunkを参照しながら解説を行っていきます。
     11解説するディレクトリはアルファベット順に解説していきます。
     12
     13それでは、主要なディレクトリを網羅しながら、OpenPNEのディレクトリ構造を見ていきましょう。
    1414
    1515{{{
     
    3838まずはじめに、rootディレクトリです。[[BR]]
    3939このrootディレクトリはOpenPNEのディレクトリの中で一番上の階層です。[[BR]]
    40 OpenPNEをダウンロードして解凍したり、trac.openpne.jpのtrunkをみるとこのような構造になっていると思います。[[BR]]
    41 ここには、いろいろなディレクトリがあります。それぞれディレクトリについて後ほど詳しく解説するのでここでは割愛します。[[BR]]
    42 
    43 このrootディレクトリにはその他に、二つのファイルがあります。一つがconfig.php.sampleという設定ファイルです。もう一つはLICENSEファイルです。
    44 
    45 簡単に2つのファイルについて説明すると、config.php.sampleは通常config.phpとリネームしてOpenPNEの設定ファイルとして使用します。この設定ファイルには、データベースの設定から、OpenPNEのAPI設定までさまざまな設定項目があります。詳しくは、実際にconfig.php.sampleを確認してみてください。各項目にはコメントがあるのでコメントを読めば分かると思います。
     40OpenPNEをダウンロードして解凍したり、trac.openpne.jpのtrunkをみるとこのような構造になっています。[[BR]]
     41このrootにあるディレクトリは、後ほど詳しく解説します。[[BR]]
     42
     43このrootディレクトリにはディレクトリの他に、二つのファイルがあります。一つがconfig.php.sampleという設定ファイルと、LICENSEというライセンスが記述されたファイルです。
     44
     45簡単に2つのファイルについて解説します。
     46config.php.sampleファイルは通常config.phpとリネームしてOpenPNEの設定ファイルとして使用します。この設定ファイルには、データベースの設定から、OpenPNEのAPI設定までさまざまな設定項目があります。設定項目の詳細は、実際にconfig.php.sampleのコメントを参照してください。
     47LICENSEファイルはPHP Licenseの詳細について記述しているファイルです。
     48
    4649
    4750
     
    652655}}}
    653656
    654 このbinディレクトリはアプリケーションの動作には依存していな、単体で動作するスクリプトが入っています。
    655 binの中には2種類のファイルタイプがあります。一つ目はcronで、もう一つはPHPです。
     657このbinディレクトリはアプリケーションの動作には依存していな、単体で動作するスクリプトが入っています。
     658binディレクトリの中には2種類のファイルタイプがあります。一つはcronで、もう一つはPHPです。
    656659基本的にこのcronファイルは同名のPHPファイルと対になって存在しています。
    657 もう一つは、実際に携帯の写メール投稿や、RSSの取得などの処理を行うPHPファイルです。
    658 
    659 
    660 このbinディレクトの中に、cronとPHPファイルが対でないファイルが2つあります。その2つのファイルととはconfig.inc.phpとmail.phpです。簡単にこの2つのファイルについて解説します。
    661 
    662 まず、config.inc.phpは中を見ると分かりますが、root以下にあるconfig.phpを読み込む処理が書いています。
    663 このconfig.inc.phpはそれぞれ単体で動くスクリプトにOpenPNEの設定やパスを教えるためのものです。
     660PHPファイルは、実際に携帯の写メール投稿や、RSSの取得などの処理を行うファイルです。
     661
     662このbinディレクトの中に、cronファイルとPHPファイルが対でない二つのファイルがあります。その二つのファイルとはconfig.inc.phpとmail.phpです。簡単にこの二つのファイルについて解説します。
     663
     664まず、config.inc.phpのソースコードを見てみましょう。
     665ソースコードを見ると非常にシンプルで、root以下にある設定ファイルのconfig.phpを読み込む処理が書かれています。
    664666
    665667{{{
     
    679681
    680682
    681 次に、mail.phpですが、これはcatch allというメールサーバの機能を利用してこのmail.phpにメールの本文を渡すことで動作しています。
    682 mail.phpがメールの本文などを受け取ったら、このmail.phpでメール本文を読み込み、それぞれの処理を判断しています。
    683 このmail.phpはメールを受信したときに動作するので、対のcronファイルがないということになります。
     683次に、mail.phpを解説します。
     684mail.phpはcatch allというメールサーバの機能を利用してこのmail.phpにメールの本文を渡すことで動作しています。
     685mail.phpがメールの本文などを受け取ったら、mail.phpでメール本文を読み込み、それぞれの処理を判断しています。
     686このmail.phpはメールを受信したときに動作するので、対のcronファイルがありません。
    684687
    685688
     
    697700このlibディレクトリの中には、includeディレクトリとsmarty_pluginsディレクトリがあります。このlibディレクトリには外部のライブラリが入っています。具体的にはPEARのライブラリなどが入っています。
    698701
    699 このlib直下のREADME.txtにも書いていますが、このライブラリを使用する際に注意が必要なことがあります。[[BR]]
    700 それは、OpenPNEはPHPライセンスですが、このlib直下のライブラリは必ずしもPHPライセンスではないということです。ですので、使用する際には十分注意が必要です。[[BR]]
    701 ただし、あくまでPHPライセンスで使用できるライセンスのライブラリで、GPLなど縛りの強いライセンスは同梱していないので、PHPライセンスであれば使用しても大丈夫です。[[BR]]
     702このlib直下のREADME.txtにも書いていますが、このライブラリを使用する際に注意が必要です。OpenPNEはPHPライセンスですが、このlib直下のライブラリは必ずしもPHPライセンスではないので、使用する際には十分注意が必要です。
     703
     704ただし、GPLなど縛りの強いライセンスは同梱していないので、PHPライセンスであれば使用可能です。[[BR]]
    702705
    703706
     
    735738 }}}
    736739 
    737  このincludeディレクトリは、外部のライブラリでOpenPNEに欠かせないライブラリが揃っています。[[BR]]
    738  このincludeディレクトリの特徴としては、このincludeディレクトリはインクルードパスに指定されていますので、ライブラリ名を指定して読み込むだけでファイルを読み込むことが出来ます。[[BR]]
    739  全体的にこのライブラリ群を見ると、このincludeディレクトリはの中に含まれるライブラリはほぼPEARのライブラリです。
    740  
    741  この中でも主要なディレクトリや特徴のあるライブラリについて解説していきます。
     740 このincludeディレクトリは、OpenPNEに欠かせない外部のライブラリが入っています。[[BR]]
     741 このincludeディレクトリの特徴としては、このincludeディレクトリはインクルードパスに指定されているので、ライブラリ名を指定して読み込むだけで指定のライブラリを読み込むことができます。[[BR]]
     742 このincludeディレクトリのライブラリ群を見ると、ほぼPEARのライブラリです。
     743 
     744 このincludeディレクトリの中でも主要なディレクトリや特徴のあるライブラリについて解説していきます。
    742745
    743746
    744747 まず、一番上のAuthディレクトリですが、OpenPNEの認証系には欠かせないライブラリが入っています。[[BR]]
    745  このAuthディレクトリの中でも、ContainerディレクトリはSlavePNEを実現するためのライブラリ群が入っています。SlavePNEはこのPEAR_Authを使って実現しているので、どのような認証系が使えるかどうかが知りたければ、この中のContainerディレクトリを見てみるのもいいと思います。
    746 
     748 このAuthディレクトリの中でも、ContainerディレクトリはSlavePNEを実現するためのライブラリ群が入っています。SlavePNEはこのPEAR_Authを使用して実現しているので、どの認証系を使用することができるか知りたければ、この中のContainerディレクトリ内にあるファイルを見ると対応する認証を確認することができます。
    747749
    748750 {{{
     
    773775 OpenPNEはこのPEAR_DBに依存しているので、このライブラリ群がなければデータベースの操作はできません。
    774776
    775  SmartyディレクトリはOpenPNEのテンプレートに使用しているテンプレートエンジンのライブラリ群が入っています。OpenPNEではこのSmartyに独自の拡張クラスを作成しているのですが、ベースはこのincludeディレクトリ以下のSmartyディレクトリに入っています。
    776 
    777  ファイルの中に、simplepie.incというファイルがあります。[[BR]]
    778  OpenPNEは現在のPHPライセンスにする前はGPLライセンスというライセンス形態をとっていました。RSS取得のためのライブラリにMagpieRSSを使っていたのですが、MagpieRSSがGPLライセンスなので、PHPライセンスにすることが出来ませんでした。そこで、OpenPNE2.3.0にするときに、このsimplepieというライブラリに変更したという経緯があります。
     777 SmartyディレクトリはOpenPNEのテンプレートに使用しているテンプレートエンジンのライブラリ群が入っています。OpenPNEではこのSmartyに独自の拡張クラスを作成していますが、その拡張クラスのベースはこのincludeディレクトリ以下のSmartyディレクトリに入っています。
     778
     779 ファイルの中に、simplepie.incというファイルがあります。このファイルはRSS取得のためのライブラリです。[[BR]]
     780 以前、OpenPNEはGPLライセンスというライセンス形態をとっていました。その時はRSS取得のためにMagpieRSSというライブラリを使用していました。しかし、MagpieRSSはGPLライセンスであるため、PHPライセンスにすることができませんでした。そこで、OpenPNE2.3.0にバージョンアップするときに、RSS取得のためのライブラリをMagpieRSSからこのsimplepieというライブラリに変更したという経緯があります。
    779781
    780782{{{
     
    824826
    825827それでは、Webサーバの公開領域であるpubic_htmlディレクトリを見ていきましょう。[[BR]]
    826 このpubic_htmlディレクトリはWebサーバから読み込まれるディレクトリなのでcssやjsなどがあります。詳しくは後ほど説明します。[[BR]]
     828このpubic_htmlディレクトリはWebサーバから読み込まれるディレクトリなのでCSSファイルやJavaScriptファイルなどがあります。詳しくは後ほど説明します。[[BR]]
    827829また、このpubic_htmlは公開領域であるために注意が必要な場合があります。[[BR]]
    828 このpubic_htmlディレクトリ以下のファイルはURLを直接入力された場合は誰でも見ることが出来るという特徴があります。[[BR]]
    829 例えば、会員のみに公開したい資料などをここに置いた場合でも、会員でない人がURLを直接入力してアクセスした場合は見ることが可能なので注意が必要です。[[BR]]
    830 
    831 
    832 このディレクトリにあるファイルを見ると、まずcap.phpがあります。このcap.phpはlib/includeディレクトリ以下にあるkcaptchaというライブラリを使ためにあります。[[BR]]
     830このpubic_htmlディレクトリ以下のファイルはURLを直接入力された場合、ログインしていないユーザでもファイルを見ることができます。[[BR]]
     831例えば、会員のみに公開したい資料などをここに置いた場合、会員でない人がURLを直接入力してファイルにアクセスすれば、そのファイルを見ることができるのでこのディレクトリにファイルを置くときには注意が必要です。[[BR]]
     832
     833
     834このディレクトリにあるファイルを見ると、まずcap.phpがあります。このcap.phpはlib/includeディレクトリ以下にあるkcaptchaというライブラリを使用するためにあります。[[BR]]
    833835kcaptchaライブラリは招待メールを送るときや、新規登録の際にコンピュータが判別しにくい崩れた人間しか読めない文字の画像を表示するために使用しています。[[BR]]
    834 次に、img.phpとimg_skin.phpがあります。この2つのファイルはデータベースから画像ファイルを読み込むためにあります。ブラウザ側から直接Webサーバにアクセスすることができないので、このimg.phpとimg_skin.phpがブラウザとデータベースの橋渡しになって画像ファイルのやり取りをしています。[[BR]]
    835 img.phpとimg_skin.phpの違いは、通常の画像なのか、スキン用の画像なのかという違いがあります。具体的には、認証の部分が違います。通常の画像はタイムスタンプがついていますが、テンプレートからスキン画像を読み込む場合はそれが出来ないので、この様に2種類のファイルに分けて画像の受け渡しをしています。
     836次に、img.phpとimg_skin.phpがあります。この2つのファイルはデータベースから画像ファイルを読み込むためにあります。ブラウザ側から直接Webサーバにアクセスすることができないので、このimg.phpとimg_skin.phpがブラウザとデータベースの橋渡となり、画像ファイルのやり取りをしています。[[BR]]
     837img.phpとimg_skin.phpの違いは、通常の画像であるか、スキン用の画像であるかという違いがあります。具体的には、認証の部分が違います。通常の画像はタイムスタンプがついていますが、テンプレートからスキン画像を読み込む場合はそれができないので、この様に2種類のファイルに分けて画像の受け渡しをしています。
    836838
    837839最後に、index.phpというファイルがあります。OpenPNEでは、基本的にすべてこのindex.phpが読み込まれて処理が始まります。OpenPNEのフレームワークはフロントコントローラという形式をとっており、入り口はこのindex.php一つにまとめています。このindex.phpからすべての処理が始まります。[[BR]]
     
    949951
    950952 次はflashディレクトリです。[[BR]]
    951  ここにはflashファイルが入っています。しかし、このflashディレクトリには現在一つしかファイルがありません。現在あるファイルはフレンドリストをFlashで表示するという機能のソースです。このflashのソースも公開してますので、これを編集しなおしてオリジナルのフレンドリストを作ることも可能です。[[BR]]
     953 ここにはflashファイルが入っています。しかし、このflashディレクトリには現在一つしかファイルがありません。現在あるファイルはフレンドリストをFlashで表示するという機能のソースです。このflashのソースも公開してますので、これを再編集してオリジナルのフレンドリストを作ることも可能です。[[BR]]
    952954
    953955 {{{
     
    973975 次はimgディレクトリです。このimgディレクトリはデフォルトの設定では使いません。[[BR]]
    974976 この機能を使うときは、config.phpで設定します。[[BR]]
    975  OPENPNE_IMG_CACHE_PUBLICをtrueに書き換える必要があります。[[BR]]
    976  なぜ、このOPENPNE_IMG_CACHE_PUBLICをデフォルトの設定でtrueにしていないかというと、この画像キャッシュをpublic_html以下に置くにはmod_rewriteが必要でだからです。[[BR]]
    977 
     977 【OPENPNE_IMG_CACHE_PUBLIC】をtrueに書き換える必要があります。[[BR]]
     978 このOPENPNE_IMG_CACHE_PUBLICをデフォルトでtrueにしていない理由としては、画像キャッシュをpublic_html以下に置くためにはmod_rewriteが必要だからです。
     979 mod_rewriteに対応していないレンタルサーバでも動くように、OPENPNE_IMG_CACHE_PUBLICをデフォルトでfalseにしています。
     980 
     981 
    978982 {{{
    979983root/config.php
     
    10141018 このjsディレクトリにもcmdディレクトリと同じく、JavaScriptファイルが入っています。OpenPNEには小窓以外にもJavaScriptが使われています、[[BR]]
    10151019 pne.jsはURL2CMDを実現するために必要なJavaScriptファイルです。[[BR]]
    1016  prototype.jsはフォーム入力欄のフォーカス契機で色を変えるというものに使っていました。現在は使用されていませんが、今後使用する可能性が高いためこのライブラリを残しています。[[BR]]
     1020 prototype.jsはフォーム入力欄のフォーカス契機で色を変えるというものに使っていました。現在は使用ていませんが、今後使用する可能性が高いためこのライブラリを残しています。[[BR]]
    10171021 show_flash.jsはフレンドリストをFlashで表示するために必要なJavaScriptファイルです。[[BR]]
    10181022 OpenPNEでは基本的にJavaScriptを使っておらず、あくまで補助的なものとして使用しています。
     
    10791083}}}
    10801084
    1081  次に、imgディレクトリについて見てみましょう。このimgディレクトリにはOpenPNEレッドに必要な画像しか入っていません。具体的には、ヘッダーやナビやログイン画面の画像などです。つまり、ボタン画像やアイコンは入っていません。[[BR]]
    1082  001_openpne_redディレクトリにはない、ボタン画像やアイコンはskinディレクトリ以下のdefaultディレクトリが読み込まれることになっています。同名のファイル名がない場合は、defaultディレクトリの画像が使われることになります。[[BR]]
     1085 次に、imgディレクトリ見てみましょう。このimgディレクトリにはOpenPNEレッドに必要な画像しか入っていません。具体的には、ヘッダーやナビやログイン画面の画像などです。つまり、ボタン画像やアイコンは入っていません。[[BR]]
     1086 001_openpne_redディレクトリにはない、ボタン画像やアイコンはskinディレクトリ以下のdefaultディレクトリが読み込まれています。同名のファイル名がない場合は、defaultディレクトリの画像が使用されます。[[BR]]
    10831087
    10841088 {{{
     
    11151119
    11161120このsetupディレクトリにはセットアップに必要なファイルとOpenPNEのマニュアルが入っています。[[BR]]
    1117 PostgreSQLを使う場合はOpenPNE_Setup_pgsql.htmlをてください。[[BR]]
    1118 そのほかにも、アップグレードのマニュアルもあるので安定版から安定版にアップグレードしたいときは、OpenPNE_Upgrade.htmlを見てアップグレードを進めてください。[[BR]]
    1119 それではscriptディレクトリから見ていきましょう。[[BR]]
     1121PostgreSQLを使う場合はOpenPNE_Setup_pgsql.htmlを参照してください。[[BR]]
     1122その他にも、アップグレードのマニュアルもあるので安定版から安定版にアップグレードする場合は、OpenPNE_Upgrade.htmlを参照してアップグレードしてください。[[BR]]
     1123それではscriptディレクトリ見ていきましょう。[[BR]]
    11201124
    11211125 === script ===
     
    11441148}}}
    11451149
    1146  次に、sqlディレクトリですが、このディレクトリには基本的にSQLファイルが入っています。OpenPNEは原則として画像などもデータベースに保存しているためバージョンアップの時もこのSQLを実行するだけでバージョンアップをすることが出来ます。[[BR]]
    1147  基本的にはどのディレクトリも構造は同じなのでOpenPNEが推奨しているMySQL4.1系のディレクトリを詳しく見ていきましょう。[[BR]]
     1150 次に、sqlディレクトリをみていきましょう。このsqlディレクトリには基本的にSQLファイルが入っています。OpenPNEは原則として画像などもデータベースに保存しているためバージョンアップの時もこのSQLを実行するだけでバージョンアップをすることができます。[[BR]]
     1151 基本的にはどのディレクトリも同じ構造なので、今回はOpenPNEが推奨しているMySQL4.1系のディレクトリについて詳しく見ていきましょう。[[BR]]
    11481152 
    11491153 
     
    11601164 installディレクトリにはOpenPNEを新規にインストールするためのSQLが入っています。
    11611165
    1162  optionには、OpenPNEの動作に必須ではないSQLが入っています。例えば、add_c_api.sqlはOpenPNEの動作には直接関係していません。つまり実行しなくてもOpenPNEは動作します。[[BR]]
     1166 optionディレクトリには、OpenPNEの動作に必須ではないSQLが入っています。例えば、add_c_api.sqlはOpenPNEの動作には直接関係していません。つまり実行しなくてもOpenPNEは動作します。[[BR]]
    11631167 しかし、OpenPNEのAPIを使用する場合にはこのadd_c_api.sqlを実行する必要があります。sqlディレクトリにあるREADME.txtの「用途」の欄を見ればoptionディレクトリにあるSQLの説明があります。
    11641168 
     
    11841188}}}
    11851189
    1186 このvarディレクトリには基本的には一時的なファイル、一時的なデータが入るようになります。ですので、OpenPNEをダウンロードして展開した状態だと空の状態です。
    1187 
    1188 OpenPNEはデータはデータベースに置くという方針で開発しています。しかし、毎回データベースに接続して読み込んでいると表示速度が遅くなることがあるので、一度データベースから読み込んだファイルはこのvarディレクトリに置いておきます。[[BR]]
    1189 そうすることで、毎回データベースにデータを読み込みに行く必要がなくなるのでパフォーマンスが上がります。
     1190このvarディレクトリには基本的には一時的なファイル、一時的なデータが入ります。よって、OpenPNEをダウンロードして展開した状態だと空の状態です。
     1191
     1192OpenPNEはデータはデータベースに置くという方針で開発しています。しかし、毎回データベースに接続して読み込んでいると表示速度が遅くなるので、一度データベースから読み込んだファイルはこのvarディレクトリにキャッシュとして置いておきます。[[BR]]
     1193キャッシュすることで、毎回データベースにデータを読み込みに行く必要がなくなるのでパフォーマンスが向上します。
    11901194
    11911195varディレクトリを詳しく見ていきましょう。[[BR]]
    11921196まず一番上にfunction_cacheディレクトリがあります。このfunction_cacheディレクトリは、 負荷のかかる処理などをキャッシュするために存在します。[[BR]]
    1193 例えば、OpenPNEにはランキングという機能がありますが、このランキングを集計するのは非常に時間がかかります。しかも、ランキングは一日に一回しか計算しません。ですので、あらかじめ計算しておいて、このfunction_cacheディレクトリに置いています。このように、計算の難しいことや時間のかかることは一回計算した結果をこのfunction_cacheディレクトリに置いておきます。そして、二回目からはデータベースを読み込まないで、ファイルを読み込んで計算結果を出力しています。[[BR]]
     1197例えば、OpenPNEにはランキング機能がありますが、このランキングを集計するのは非常に時間がかかります。しかも、ランキングは一日に一回しか計算しません。ですので、あらかじめ計算しておいて、このfunction_cacheディレクトリに置いています。このように、計算の難しいことや時間のかかることは一回計算した結果をこのfunction_cacheディレクトリに置いておきます。そして、二回目からはデータベースを読み込まないで、ファイルを読み込んで計算結果を出力しています。[[BR]]
    11941198
    11951199次に、img_cacheディレクトリです。このimg_cacheディレクトリは日記やプロフィールなどの画像をキャッシュするために存在します。この img_cacheディレクトリを見ると、まずは拡張子別で分かれていて、次に高さ・幅、サイズ別に分かれています。サイズを分けてキャッシュをとることによって性能が劣化するのを避けています。[[BR]]
     
    12351239このディレクトリには2つのファイルがあります。
    12361240
    1237 まず、init.incですがOpenPNEはconfigの後にこのファイルを読み込むことになります。このファイルにはOpenPNEのフレームワークの設定などがここには書いています。[[BR]]
    1238 version.phpはOpenPNEのバージョンを定義しているだけのファイルです。
     1241まず、init.incですがOpenPNEはconfigの後にこのファイルを読み込みます。このファイルにはOpenPNEのフレームワークの設定が書かれています。[[BR]]
     1242version.phpはOpenPNEのバージョンを定義しているファイルです。
    12391243
    12401244
     
    12971301 
    12981302 
    1299   OpenPNEではこのdbディレクトリ以下のファイルをよく使用しています。[[BR]]
     1303  OpenPNEではこのdbディレクトリ以下のファイルにある関数を頻繁に使用しています。[[BR]]
    13001304  例えば、メンバーのidを取得したい場合、member.phpファイル内のdb_member_c_member4c_member_idという関数を呼ぶと、指定したメンバーの情報が取得出来ます。
    13011305
     
    13201324}}}
    13211325
    1322 
    13231326  ==== OpenPNE ====
    13241327  このOpenPNEディレクトリにはOpenPNEが使っているクラスライブラリが入っています。例えば、Smarty.phpはsmartyの派生クラスであるOpenPNE_Smartyというクラスを定義しています。ここではOpenPNE独自の処理を施しています。[[BR]]
     
    13261329
    13271330  ==== color ====
    1328   colorディレクトリには配色設定があります。[[BR]]
    1329   このディレクトリはktaiディレクトリとpcディレクトリに分けてプリセットカラーが定義されています。
     1331  colorディレクトリには配色設定をしているファイルが入っています。[[BR]]
     1332  このディレクトリはktaiディレクトリとpcディレクトリに分けてプリセットカラーが定義されています。
    13301333
    13311334  pcディレクトリには各プリセットカラーの配色設定が定義されています。[[BR]]
    1332   同じフォーマットで新たに定義ファイルを追加すると、プリセットカラーとして管理画面から選択出来る様になります。
     1335  同じフォーマットで新たに定義ファイルを追加すると、プリセットカラーとして管理画面から選択できるようになります。
    13331336
    13341337  {{{
     
    13471350  このsmarty_pluginsディレクトリには、OpenPNEプロジェクトが作ったSmartyのプラグインが入っています。[[BR]]
    13481351  中でも、function.t_url.phpというプラグインはOpenPNE独特のプラグインです。[[BR]]
    1349   OpenPNEの場合は、SSLを使用することがあるので、アクションによってはURLが変わることがあります。ですので、テンプレートに直接URLを書くより、Smartyプラグインを使ってSmartyにURLを生成してもらう処理をしています。[[BR]]
     1352  OpenPNEは、SSLを使用することがあるので、アクションによってはURLが変わることがあります。そのため、Smartyプラグインを使ってSmartyでURLを生成しています。[[BR]]
    13501353  その他にも、CMDタグを小窓にするfunction.t_cmd.phpや、絵文字を変換するためのoutputfilter.pne_display_emoji.phpなどもあります。
    13511354
     
    13861389
    13871390}}}
     1391
    13881392 modulesディレクトリには、管理画面からSNSの情報を変更をする、日記を読む、メッセージを送るなど、何らかの動作をするためのファイルがこの中には入っています。OpenPNEでの動作プログラムはほぼこのmodulesディレクトリの中にあります。[[BR]]
    13891393 基本的には構造は同じなのでpcディレクトリを見ながら詳しく解説していきます。[[BR]]
     
    14071411   ===== do =====
    14081412   このdoディレクトリには、実行系の処理をするファイルが入っています。
    1409    このdoディレクトリを見ると、データベースに追加、削除など何らかの処理をしています。フォームにはdo系の関数が使われることが多いことも特徴です。
     1413   このdoディレクトリを見ると、データベースに追加、削除などの処理をしています。フォームにはdo系の関数が使われることが多いことも特徴です。
    14101414   
    14111415   ===== page =====
     
    14201424   validateディレクトリには入力値のチェックのためのファイルが入っています。[[BR]]
    14211425   例えば、c_member_idは1や2などの数値ですが、aなどの文字列が変数として渡された時にプログラムが予期せぬ動作を起こすことがあるかもしれません。そのような予期せぬ動作を未然に防ぐために、あらかじめ変数の値をチェックをしています。[[BR]]
    1422    このvalidateディレクトリの中でもdoとpageに分かれておりどちらも変数の入力値をチェックしています。
     1426   このvalidateディレクトリの中でもdoとpageに分かれており、どちらも変数の入力値をチェックしています。
     1427   
    14231428   {{{
    14241429root/webapp/modules/pc/validate/
     
    14421447 このtemplatesディレクトリにはOpenPNEのすべてのモジュールから使用できるテンプレートが入っています。[[BR]]
    14431448 一番上のmailディレクトリには、メールのテンプレートが入っています。このテンプレートの中に変数があり、その変数に値を渡してメールを送信しています。[[BR]]
    1444  次に、debug.tplはconfig.phpでOPENPNE_DEBUGGINGを2にしたときに出力されるデバッグコンソールの中身です。[[BR]]
     1449 次に、debug.tplはconfig.phpでOPENPNE_DEBUGGINGを2にしたときに出力されるデバッグコンソールのテンプレートです。[[BR]]
    14451450 最後に、error.tplというのがありますが、OpenPNEではエラーやメンテナンス画面はこのerror.tplを使って表示しています。[[BR]]
    14461451
     
    14771482新しい機能を追加や拡張する時のために用意されているもので、デフォルトでは空のディレクトリです。[[BR]]
    14781483何らかの機能を追加したい場合、直接ファイルを書き換えるということも可能ですが、バージョンアップに追従できないというデメリットがあります。[[BR]]
    1479 実際にこのwebapp_extディレクトリを使用して機能を拡張する場合は、webapp_bizディレクトリが参考になると思います。[[BR]]
    1480 
    1481 webapp_extディレクトリを使用する場合は、config.phpでUSE_EXT_DIRをtrueにする必要があります。このUSE_EXT_DIRをtrueにすることによって、まずwebapp_extディレクトリが読み込まれ、もしアクションファイルが存在しない場合は、webappのアクションファイルを読み込みます。
     1484実際にこのwebapp_extディレクトリを使用して機能を拡張する場合は、webapp_bizディレクトリが参考になると思います。[[BR]]
     1485
     1486webapp_extディレクトリを使用する場合は、config.phpで【USE_EXT_DIR】をtrueにする必要があります。このUSE_EXT_DIRをtrueにすることによって、まずwebapp_extディレクトリが読み込まれ、もしアクションファイルが存在しない場合は、webappのアクションファイルを読み込みます。
    14821487
    14831488{{{
     
    14931498}}}
    14941499
    1495 ただ、webapp_extディレクトリを使用して開発する場合にいくつか注意が必要です。[[BR]]
     1500ただ、webapp_extディレクトリを使用して開発する場合にいくつか注意が必要です。[[BR]]
    14961501一つ目は「アクションファイルを追加してもvalidateで変数の値をチェックする必要」で、二つ目は「do系のアクションを追加する場合はセッションIDのハッシュ値が必要」です。
    14971502
     
    15041509
    15051510<input type="hidden" name="sessid" value="({$PHPSESSID})">
    1506 
    1507 }}}
    1508 
    1509 
    1510 {{{
    1511 OpenPNE trunk
    1512 http://trac.openpne.jp/browser/OpenPNE/trunk
    1513 }}}
     1511}}}
     1512