Categories: コンピュータ

ネットコモンズ – Netcommons 変更メモ(その1)

■ネットコモンズ変更メモ(その1)


何も分からない状態からネットコモンズをカスタマイズしてみたときに気づいた備忘録&メモ
です。
レンタルサーバー上でのバックアップとレストアが確実にできる状況を確認できたので、
いよいよネットコモンズの変更に挑戦してみたいと思います。
注)
内容の正確さは全くわかりませんし、個人的なメモなので当てになるかどうかわかりま
せん。
間違えていたら教えて頂けると幸いです。
XOOPS等に比べてとにかく情報が少ないので、手探り状態です。


NetCommonsで開発時にEclipseを使ったときの問題
どうやらNetCommonsのファイル郡はBOM無しUTF-8形式のファイルになっているようです。
eclipse3.5(PHP)の日本語版を使ってみようと環境を整えましたが各分野のコンテンツ設定でUTF-8
を選択し順調に行っていたかと思えばCSSファイルでBOMなしによるコード誤検出でSJISとして
扱われるので全角文字がどうしても文字化けします。
Web上で色々探したのですが未だに解決できず・・・・
日本語版でunicodeに完全対応していないソフトはBOM無しUTF-8をはしばしばSJISと勘違いする
という情報は何件か見つけたのでこれかもしれません。
しかし
CSS以外のPHP,TEXT,INI等はOKなのにどうしてCSSだけ・・
この問題はただ単に設定ミス、オペミスの可能性も高いです
どなたか解決方法を知っていたら教えてください。

 


MapleとSmarty
その昔PHPが登場し始めた頃趣味程度に簡単なWebアプリケーションを組んでいたのですが、NetCommonsのコードをみて見慣れないコーディングに戸惑いました・・?
どうやら「Maple」というフレームワークと「Smarty」という仕組みを使ってNetCommonsは
動作しているようです。
まずはこの「Maple」と「Smarty」という仕組みの勉強をしないといけないのかもしれません。
maple : http://kunit.jp/maple/index.html
smarty : http://www.smarty.net/manual/ja/what.is.smarty.php
参考 :
http://www.php-labo.net/tutorial/class/smarty.html
http://www.phppro.jp/school/smarty/
説明を読んでみるとコア部分の開発とデザインの開発を分離させることが目的の仕組みらしいので
そこまで深く知る必要はなさそうですが、コードの変更には必要な知識のようです。
この辺からぼちぼち勉強していきたいと思います。


SVNで全体像を追う
何をいじれば何のファイルが変更されるのかを知りたくて、TortoiseSVNで差分の管理をして
みました。
すると変更後にモジュールのアップデート(コンパイル??)を必要とするNetCommonsでは
特に変更していないファイルに大量の変更が発生するようです。
始めネットコモンズ以下全てのフォルダーを対象に差分管理したところ「htdocs」は妨害が多く
起こり管理不能になり、「Webapptemplate_c」は変更もしないのにsmatyがコンパイル時間で
ファイルを書き換えるようです。
  
コンパイル後に作成されたファイルはSVNで管理しないように管理するフォルダーを分けないと
差分チェックが大変やりにくい状態になりそうです。


 
基本操作をマスター
NetCommonsのデザインカスタマイズやソースコードの変更をするのが目的ですが
肝心のNetCommonsの操作方法が分かりません。まずはこちらから勉強しなければ・・・
マニュアル : http://www.netcommons.org/nc20/nc20_manual/japanese/index.html
http://www.netcommons.org/nc20/nc20_manual/japanese/admin_manual/index.html

 


NetCommons2のライセンス
NetCommons2系のライセンスはFreeBSDライセンスと公式ページに書いてあった。
そこでFreeBSDライセンスとはなにかをWebで調べてみると概ね下記のようなものだった。
FreeBSD公式ページのCopyright項より
(出典:http://www.freebsd.org/ja/copyright/freebsd-license.html )
ソースコード形式であれバイナリ形式であれ、変更の有無に関わらず、以下の条件を満たす限り
において、再配布および使用を許可します:
1.ソースコード形式で再配布する場合、上記著作権表示、本条件書および下記責任限定規定を
必ず含めてください。
2.バイナリ形式で再配布する場合、上記著作権表示、本条件書および下記責任限定規定を、
配布物とともに提供される文書 および/または他の資料に必ず含めてください。

IT用語辞典 e-Wordsより

(出典: http://e-words.jp/w/BSDE383A9E382A4E382BBE383B3E382B9.html )
オープンソースソフトウェアで使用されているライセンス体系
無保証・免責を宣言し、再配布する際に著作権表示を行なうことのみを条件とする、極めて制限の
緩いライセンス。
著作権表示さえしておけば、BSDライセンスのコードを他のプログラムに組み込み、しかも組み
込み後のコードを非公開にできるため、商用化のしやすいライセンスである。
また、GPLのように再配布時のライセンス条件を制限することもない。
とある。官製CMSであるNetComonnsにはふさわしいライセンスではありそうです。


サイト内で使用する画像の扱い
背景用の画像
webappstyleimagesbackgroundの下に「scroll」と「fixed」のフォルダーを作成しその中に画像
を入れる
「scroll」内に入れた画像はスクロールする背景
「fixed」内に入れた画像はスクロールしない背景
モジュールやテンプレート用の画像
webappmodulespagesfilesの下に「images」フォルダを作成しその中に画像を入れる
(imagesの下にサブフォルダを作成可能)
画像ファイルを入れるのは
webappmodulespagesfilesimagesfefpic1.gif
でもソース中は
‘<{$smarty.const.CORE_BASE_URL}>/images/pages/fef/pic1.gif’
を指定すると表示が出た。どうしてフォルダ構成が違うんだろうと色々動作させてみると。
モジュールの一括アップデートを行う際「webappmodulespagesfilesimages」からinstall.inc.php
の「CORE_BASE_URL」に指定された
フォルダに画像ファイルをコピーしているようです。
その為、フォルダ構成も少し違い、またwebappフォルダの画像データを変更しても一括アップ
デートするまで画像は変更されないみたいです。


公式サイトにある情報からカスタマイズしてみる
情報が少ないNetCommonsですが公式サイト上に少しだけカスタマイズ方法が載っていました。
これを参考にソフトの構成を追ってみたいと思います。
1)まず変更するモジュールのテンプレートを準備するようです。
webappmodulespagestemlatesの下に変更するテンプレートを準備します。
webappmodulespagestemlatesdefault
をコピーし自分の好きな名前に変更
webappmodulespagestemlatesfef
2)データベースのconfigテーブルでconf_id=70の値をdefaultからfefに変更する
phpMyAdmin等のコンソールから該当のデータベースを開き値を変更します。
ペンのマークのアイコンをクリックすると値が編集できるようです。

conf_valueを自分のテンプレートフォルダ名に変更して「実行する」をクリック

これでテンプレートに自分のユーザ用テンプレートが選択されたようです。
テンプレートが変更されたら各ファイルを編集できます。
ファイルの構成を調べてみると
「page.html」から始まってその中にinclude fileとして「addblock_box.html」「footer.html」「main.html」「headermenu.html」が指定されているようです。
そこでヘッダーメニュを変更したい場合は「headermenu.html」を変更
フッター部分を変更したい場合は「footer.html」を変更
メイン部分を変更したい場合は「main.html」を変更するようです。
ページそのものの変更は「page.html」になるようです。
ユーザ用のCSSを指定したい場合は「webappmodulespagesfiles」フォルダの下にcssユーザ
フォルダを作成しそこに入れるようです。
webappmodulespagesfilescssfefにCSSファイルを入れることにします。
CSSのファイル名は「page_style.css」で固定のようですのでその中に記述します。
既存の部分に同じクラスがある場合は既存の部分にも影響するようです。
page.htmlを編集することで自分で作った部分とNetCommonsで作った部分を分けて編集する
イメージで独自のページが作れそうな感じです。

上記をまとめると
背景画像は
webappstyleimagesbackgroundscroll
webappstyleimagesbackgroundfixed
に入れる
テンプレートやモジュール用の画像は
webappmodulespagesfilesimagesユーザテンプレート名フォルダに入れる
例: webappmodulespagesfilesimagesfefpic1.gif
ユーザーテンプレートは
webappmodulespagestemlatesユーザテンプレート名フォルダに入れる
ユーザー用テンプレートのCSSファイルは
webappmodulespagesfilescssユーザーテンプレート名フォルダpage_style.cssに記述
テンプレートの変更はデータベースの接頭語_configテーブルのID70番default_tempの値を
変更する
page.html等を編集し変更を加える
これで基本的なカスタマイズはできるようです。
と思っていたらこのpage.htmlは全てのページにかかるみたいなので、共通の部分をカスタマイズ
する場合のみ使えそうです。
各個別のページ編集方法をこれから調査してみます。表示中の画面を得られる変数とかあれば
すぐに解決するのですが・・・
変数リストどこかにないかなぁ~
4/13追加
$page_idを使えば解決できそうです。
4/17追記
基本的なカスタマイズはこの方法でできそうですが、本格的なカスタマイズはwebappstylethemes
の下に各テーマを作らないとダメそうです。
情報を収集しないと・・・・
Webapp以下をSVNで管理するためには一度「template_c」内のファイルを全て削除してsvnにイン
ポートする。
チェックアウトすると「configinstall.inc.php」の読み込み専用属性がなくなっているのでプロパティーから変更する。
「template_c」以下のファイルは勝手に生成されるようなのでsvnでは管理しない

なんだか、かなりまとまりのないメモになってる・・・・

kabekin

Recent Posts

謎なS1を頂いたので観察してみる 【その2】

謎なS1を観察してみるの第二弾…

5日 ago

初めてのGAL書込み GAL16V8A

XGecuのT48プログラマを…

2週間 ago

謎なS1を頂いたので観察してみる 【その1】

数年前にヤフオクで見かけたこと…

3週間 ago

かべきんブログ SSLに対応しました

ずっと後回しになっていたブログ…

1か月 ago

S1用アドレスマッピングRAMを注文 SIGNETICS S54S189F

S1用のアドレスマッピングRA…

1か月 ago