このサイトは株式会社オープンソース・ワークショップの旧サイトです。
新サイトを参照していただけますようお願いいたします。
https://opensource-workshop.jp/
NetCommons開発TIPS
NC1.xから2.4.0.xへの移行
--- 環境
--- NCMigration1.0.3を使う
--- 準備NC1
--- 準備NC2
--- 準備NCMigration
--- サイト構成
--- データ移行
--- エラー1
--- 対応1
--- エラー2
INSERT INTO netcommons2_pages_users_link(`room_id`,`user_id`,`role_authority_id`,`createroom_flag`,`insert_time`,`insert_site_id`,`insert_user_id`,`insert_user_name`,`update_time`,`update_site_id`,`update_user_id`,`update_user_name`) VALUES(?,?,?,?,?,?,?,?,?,?,?,?);:Array ( [room_id] => 9615 [user_id] => 6d2ec6f4f918347aef5cfb189bfedcd8d85ff44d [role_authority_id] => 4 [createroom_flag] => 0 [insert_time] => 20150327233503 [insert_site_id] => 0621068e454f23fc44c714e8eaef6f27f41b2662 [insert_user_id] => 6f08a38bcb67340f22bb7122d5e4ebdbe8c4c58d [insert_user_name] => XX5200 [update_time] => 20150327233503 [update_site_id] => 0621068e454f23fc44c714e8eaef6f27f41b2662 [update_user_id] => 6f08a38bcb67340f22bb7122d5e4ebdbe8c4c58d [update_user_name] => HA5217 ) :Duplicate entry '9615-6d2ec6f4f918347aef5cfb189bfedcd8d85ff44d' for key 1:C:\projects\xampp_lite\htdocs\NCMigration\model\utility.php:393
--- 対応2
--- エラー3
--- 対応3
/**
* NC1データベースコネクションオブジェクト設定
*
* @param string $dsn データソース名称(dbType://user:password@host/dbName?new)
* @return void
* @access public
*/
function setNC1ADOConnection($dsn)
{
$dsn = $this->addDSNNew($dsn);
$this->nc1ADOConnection = NewADOConnection($dsn);
if (!empty($this->nc1ADOConnection)) {
// 追記箇所
$adoConnection = $this->nc1ADOConnection;
if (strpos($adoConnection->dataProvider, "mysql") === 0) {
$serverInfo = $adoConnection->ServerInfo();
if (floatval($serverInfo["version"]) >= 4.01) {
$adoConnection->Execute("SET NAMES 'ujis';");
}
}
$this->nc1ADOConnection->SetFetchMode(ADODB_FETCH_ASSOC);
}
}
NetCommons2のFileUploadフィルター調査
こんにちは。牟田口です。
よくアップロード処理の開発でハマるので、FileUploadフィルターについて調べてみた。
### maple.ini
[FileUpload]
name = file_csv ← input type=file属性のname名称。実際のテンプレートに合わせる
allow_extension = "true" ← configテーブルの許す拡張子の一覧から拡張子チェックを行うかどうかのフラグ
maxsize = "" ← 最大ファイル容量=無制限
stopper = "false" ← 無指定だと trueになる。
true:FileUploadフィルタ内で、MIME-Typeチェック、拡張子チェック等行う。チェックエラーの場合、画面に出るエラーメッセージは一律「ファイルアップロードに失敗しました」
false:ファイルの最大ファイル容量チェック、ルームの合計最大ファイル容量チェックのみ行う。
### stopper = "true"チェック
### stopper = "false"でもチェック
### 参考
### おまけ allow_attachment
[FileUpload]
;allow_attachment = _ALLOW_ATTACHMENT_IMAGE
基本、指定しなくて良い。
指定しないと、allow_attachment = _ALLOW_ATTACHMENT_ALL として扱われる。
//configの権限でアップロード可能かどうかを取得
$allow_attachment_flag = $session->getParameter("_allow_attachment_flag");
//maple.iniで allow_attachment の定数取得
$attributes_allow_attachment_flag = $this->constantDef($attributes["allow_attachment"]);
- configのアップロード権限が、_ALLOW_ATTACHMENT_IMAGE
- maple.iniの allow_attachment _ALLOW_ATTACHMENT_ALL
理由はよくわからんのです。
ではでは。
NetCommons2で開発中はsmartyのコンパイルを自動にする
こんにちは。牟田口です。
忘れるのでメモ。
NetCommons2で使っているテンプレートエンジン smarty。
smartyは一度、phpに変換をするコンパイルが必要。
通常は、モジュール管理からモジュールをアップデートすると、
対象モジュールのsmartyがコンパイルされる。
開発中は、smartyテンプレートを変えたら、すぐに画面に反映して欲しいので、自動コンパイルさせたい。
NetCommons2だと、下記パラメータにすればOK
\html\webapp\config\maple.inc.php
define('SMARTY_FORCE_COMPILE', true);
maple.inc.php - github
https://github.com/netcommons/NetCommons2/blob/e89bfb7c3e9253c07c34ac16999b44428473b51e/html/webapp/config/maple.inc.php#L55
本番リリース時は、パフォーマンスが落ちるので、false を推奨。
ではでは。
PHP5.6 をremi からインストールしたら、SimpleXML は明示的にインストール
こんにちは。
永原です。
PHP5.6 をremi からインストールしたら、SimpleXML は明示的にインストールすること。
# yum install --enablerepo=remi --enablerepo=remi-php56 php-xml
これを忘れていて、phpExcel でコケました。
[追記]
php-xml がインストールされていないと、検索モジュールでコケました。
検索の初期画面が出ない現象なので、ちょっとはまりました。
MySQL5.6 はSTRICT_TRANS_TABLES が初期値
こんにちは。
永原です。
MySQL5.6 はSTRICT_TRANS_TABLES が初期値で設定されているんですよね。
my.cnf にしっかりと。
NetCommons2.4.2.1 では、まだ汎用データベースのデータベース作成アクションにバグがあり、この状態ではコケてしまいます。
(他にどこにバグがあるかはわからない)
ということで、以下の通り、MySQL の設定を変更して対応しています。
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
sql_mode=NO_ENGINE_SUBSTITUTION
以上