Netcommons
複数の Netcommons を違う階層に設置する
他のCMSを使った既存サイトに同じネットコモンズを導入する場合、階層の指定方法が面倒だったります。他にも複数のネットコモンズを別の階層に設置したい事もあるでしょう。
そんな時に困るのはフレームワークの「maple」とコア「webapp」のディレクトリを設定方法ですね。出来れば共用しておけばバージョン管理も楽になる。
そんな訳でこんな構成にするために設定ファイルを書き換えてみました。
├webappコア(共用)
│
└htdocsメインサイト公開ディリクトリ(サーバーで変わる)
├index.php
├ css.php
├ js.php
├ js JavaScript用言語別ファイル
├ images イメージディリクトリ
├ themes イメージディリクトリ
├ install イメージディリクトリ
│
└SubSiteサブサイト公開ディリクトリ
├index.php
├ css.php
├ js.php
├ js JavaScript用言語別ファイル
├ images イメージディリクトリ
├ themes イメージディリクトリ
└ install イメージディリクトリ
・mapleとwebappは共用する。
・サイト毎に違うデータベースを使用する。
こんな感じになるようにしました。
■ /webapp/config/install.inc.php の編集
共用で使える様にいくつか定数を指定しなおします。
1)ベースのURL値
define('BASE_URL', 'http://hogehoge.hoge');
↓
if(!defined("BASE_URL")){ define('BASE_URL', './'); }
BASE_URLは index.php の方で指定するので、とりあえずコレで動く事は動くはずです。
2)NetCommonsのBaseディレクトリの設定(ソース格納場所)
if(!defined("BASE_DIR")){
define('BASE_DIR', dirname(START_INDEX_DIR));
}
↓
if(!defined("BASE_DIR")){
define('BASE_DIR', '/home/userdir' );
}
ベースディリクトリはフルパスを直書きした方が安定してます。
3)データベース設定値変更
define('DATABASE_DSN', 'mysql://user:pass@hostname/databasename');
↓
define('DATABASE_DSN', 'mysql://user:pass@hostname/'.DATABASE_NAME);
データベース名はindex.phpで指定しておきます。
define('DATABASE_PREFIX', 'prefix_');
↓
//define('DATABASE_PREFIX', 'prefix_');
プレフィックスはindex.phpで指定するので、コメントアウトしておきます。
■ 各サイトの index.php の編集
1)「NetCommonsの設定ファイルの読込み」の前に定数を追加しておく。
define('DATABASE_PREFIX', 'prefix_');
define('DATABASE_NAME', 'databasename');
まずデータベースの定数を指定します。
define('BASE_DIR', '/home/userdir');
mapleとwebappがあるディリクトリをフルパスで指定する。
define('BASE_URL', 'http://hogehoge.hoge');
サイト毎のURLを記載する。
2)NetCommonsの設定ファイルの読込み
define('INSTALLINC_PATH', dirname(START_INDEX_DIR) . "/webapp/config/install.inc.php");
↓
define('INSTALLINC_PATH', BASE_DIR . "/webapp/config/install.inc.php");
設定ファイルの指定方法を変更しておく。
以上こんな感じで動作すれば大丈夫です。ただ、追加インストールすれば install.inc.php が上書きされてしまうので、追加インストールする場合には留意しておいてください。
パソコンでアクセスする会員サイトの推奨設定
以下、パソコンでアクセスする会員サイトの設定です。
デフォルトのNetcommonsのままPCでも使えますし、スマホにも対応していますが、デザインがあまりキレイではありません。
※インストール方法は、公式サイトでご確認ください
以下、ある程度PCでバランスよく見える設定です。お試しください。
レイアウトの調整
ログイン/管理/→/管理画面/システム管理/ページスタイル
- パブリックスペース(アクセシビリティ対応へ変更)
- プライベートスペース(アクセシビリティ対応へ変更)
- グループスペース(アクセシビリティ対応へ変更)
- 一般/行揃え(左→中央へ変更)
必要なモジュールだけにする
管理画面/モジュール管理/インストール済みモジュール
- お知らせ(テキストやイメージを配置します)
- 日誌(ブログ的に記事をアップします)
- 汎用データベース(サイト内にデータベースを構築します)
- キャビネット(写真やデータを配布します)
- 掲示板
- 登録フォーム(メールフォーム)
- カレンダー
- 新着情報
- ログイン
- メニュー
ヘッダー調整(全体サイズを調整)
ロゴ(左寄せ)/名称(右寄せ)
- メインイメージ設置
- グローバルナビ設置
左側を調整(横サイズを調整)
メニューの編集/ブロックスタイル/一般/最小の広さ
[180]に変更する
編集終了
右側を調整(横サイズを調整)
編集(ブロック)/ブロックスタイル/一般/最小の広さ
[740]に変更する
編集終了
会員ページの作成
管理画面/ルーム管理/グループスペース/ルーム作成
- ルーム名称:[メンバーエリア]
- [X]すべての会員をデフォルトで参加させる(登録したユーザーが全員参加できる)
- [次へ]をクリック
- [決定]をクリック
メンバー登録
管理画面/会員管理/会員登録
- 必須項目を入力して[次へ>>]をクリック ※通常は[一般]権限で登録しておく
- 参加できるルーム(会員ページ)を指定して[次へ>>]をクリック
- 権限設定を確認して[次へ>>]をクリック
- 内容確認して[決定]をクリック ※登録項目は[項目設定]で編集できる。
ページ登録
メニューの[編集]をクリック
パブリックスペースに公開ページを設置する。
- ホーム(新着情報モジュールで更新情報を配置/お知らせモジュールでチーム案内を入れる)
- ニュース(日誌モジュールでニュースを投稿します)
- 練習コース(お知らせモジュールで練習コースの案内を入れます)
- カレンダー(カレンダーモジュールでチームの予定を登録)
- コンタクト(登録フォームで問合せを受け付けるメールフォームを配置)
メンバーエリアに会員ページを設置する。
- レースリザルト(汎用データベースモジュールで、限定公開する情報を登録)
- 連絡掲示板(掲示板モジュールで打合せページをつくる)
- キャビネット(キャビネットモジュールで会員用ファイルエリアを作成する)
モジュール複製スクリプト
『汎用データベース』をもっと気軽に使い回したかったので「モジュールコピースクリプト」を書きました。
一応、汎用性を持たせて『汎用データベース』以外にも使っていただけます。
- 元になるモジュールがあるディリクトリを「ベースディリクトリ」として指定します。
- 元になるモジュールの名前、ファイル内で使われているキーを設定します。
- 新しくつくるモジュールの名前とキーを指定します。
- このスクリプトを動作させます。上手く動けば新しいディリクトリが作成されています。
- 各言語は変更しませんので、language 内の各言語ディリクトリの“main.ini“、”modinfo.ini”の内容を直接編集してください。
- Netcommonsのモジュールディリクトリに移動させて、管理画面から読み込み込んでコピーしたモジュールを操作してください。
なお、php5.0以上が動作する環境でご使用ください。
このファイルのライセンスはNetcommons 2.4.2.1のライセンスに準じます。
また、このファイルを使った事によってなにか不具合があっても自己の責任で処理してください。
MacOSX x MAMP でモジュールジェネレイタが動作しない
MacOSX でNetcommonsを操作しているとイロイロな場面で不都合を感じる事がありますが、モジュール作成もその1つです。
1)改行コードについて
ファイルは、winの改行コード(CR+LF)になっている事があります。MacOSXの基本OSはBSDですので、シェルもUNIXに合わせる必要があります。
最低限、下記のファイルの改行コードはLFに変更してください。
- maple/generate/script/nc.sh
- maple/generate/script/generate.php
2)phpのパスを指定しておく
pearが上手く動作しないので、下記のファイルにMAMPのphpパスを指定します。
- maple/generate/script/generate.php
1行目に下記にを記載します。[ ]の中は、使用するphpのバージョンに合わせてください。
- ini_set("include_path",".:/Applications/MAMP/bin/php/[php000]/lib/php");
3)シェルスクリプトの mapleパスを修正します。
下記ファイルでは、Win x Xampp用になってますので、macOSX x MAMP用に書き換えます。
- maple/generate/script/nc.sh の18行目あたり
- MAPLE_DIR="D:/xampp/htdocs/maple/maple"
- ↓
- MAPLE_DIR="/[MAMPルート]/[netcommonsルート]/maple"
4)ジェネレーターの実行
- cd [MAMPルートディリクトリ]/[netcommonsルート]/maple/generate/script/
- ./nc.sh help
これでエラーが出なければ、正常動作させる事ができます。
- ./nc.sh module hello
これで、helloモジュールのスケルトンがされます。
OSC 2015 京都「45分で会員サイトをつくっちゃおう』
OSC 2015 京都で『会員サイトを簡単に作っちゃおう。国産CMSネットコモンズのススメ』と題してセミナーを行いました。
構築も運営も手間のかかる会員サイトを、Netcommonsを使って45分で構築する内容です。
リニューアル時に画像などを削除したので、少し分かりにくいかと思いますが、Netcommonsのセットアップ時の参考くらいにはなると思いますので、原稿を掲載しておきたいと思います。
想定するサイトについて
サイトの規模
会員数100人ていどまで
各ページについて
誰でも見る事ができる『公開ページ』
ログインしないと見られない『会員ページ』
ユーザー毎に作成される『マイページ』
アカウント管理
登録はオーナーのみが行える
情報の編集はユーザーが自分でできる
ユーザーがパスワードの再設定ができる
情報/データ等の共有
オーナーからの情報発信できる
ユーザー同士の情報共有
デバイスを選ばない
PC、スマホ出来れば携帯電話からもアクセス出来る
あと大事なのは『セキュリティー』でしょう。保持するデータの内容にもよりますが、会員サイトの運営にはリスクが伴います。
SSLは必須として、IPによるアクセス制限、WAFなど、CMS以外で対応する事の方が多いようです。