タグ別アーカイブ: NetCommons

NetCommons → WordPress 戻した。

最初このサイトは WordPress で運用していたのだけれど、Xrea に NetCommons がインストールできたのをキッカケに、途中から NetCommons をブログにしていた。

(NetCommons は、国立情報学研究所で開発されたオープンソースで、学校のホームページなどで多く使われている。)
でも、やっぱり情報量も多くてカスタマイズもしやすい WordPress での運用に戻すことにした。
# 色々試したいこともあるしね。

ちなみに NetCommons から WordPress への投稿データの移行は、カテゴリなどを考慮しなければ

NetCommons WordPress
netcommons2_journal_post.title wp_posts.post_title
netcommons2_journal_post.content + netcommons2_journal_post.more_content wp_posts.post_content
netcommons2_journal_post.journal_date wp_posts.post_date
その他のフィールドは指定しないでデフォルト値を使う

で一応は表示できるようになった。


お名前.com の共有サーバに netcommons を入れる。

入れたのは NetCommons-2.4.2.0.zip

先ず、何も対策しないでインストールしようとすると、モジュールインストール部分で固まってしまうので、webappconfigdefine.inc.php の先頭に以下を追加。これで、define.inc.php を読み込んでいれば、自動変換が OFF になる。
参考:ホーム > よくあるご質問 > インストールについて
Q.インストール途中のデータの生成でエラーが出てインストールできない。

[code lang=”php”]
ini_set(‘mbstring.encoding_translation’, ‘Off’);
ini_set(‘mbstring.internal_encoding’, ‘UTF-8’);
ini_set(‘mbstring.func_overload’, 0);
ini_set(‘mbstring.http_input’, ‘pass’);
ini_set(‘mbstring.http_output’, ‘pass’);
[/code]
さらに、webappconfigdefine.inc.php 245行目の値を 0 から増やしてチューニングしていく。少なすぎても多すぎてもモジュールインストールの失敗が多くなる。2700 ぐらいにしたら、どうやら失敗が1~2個になった。
参考:NetCommons2.4.0.0リリース
[code lang=”php”]
define(‘_MODULE_ALLUPDATE_INTERVALTIME’, 2700);  // ミリ秒 左記だと1秒間隔でリクエスト。
[/code]
あとは、ひたすらモジュールインストールで失敗したらリロードを繰り返して、10数回目で失敗が0になりインストールできた。
タイミングと運がものを言うので、もう一度、インストールできる自信ははっきり言ってないなぁ。

その後の顛末:モジュール管理が表示されない!?

管理画面に行ったら、「モジュール管理」が表示されていなかったので調査した。

  1. netcommons2_modules テーブルに モジュール管理(module_view_admin_init)は登録されている。module_id は 7
  2. modules をデータベースから参照しているところを探した。
    webapp/components/modules/View.class.php の  getModuleByRoleAuthorityId() で modules と一緒に authorities_modules_link を参照していた。
  3. netcommons2_authorities_modules_link を調査。module_id が 7 のレコードがなかった。
  4. レコード追加
    role_authority_id = 1, module_id = 7, authority_id = 5, その他の値は、他レコードのコピーで作成。

モジュール管理のアイコンが表示されました。


テーマの追加

テーマ作成:クイックスタートによると、generate.php を使って作れるらしいが、エラーになったので手動で作る。

  1. webapp/style/themes/ の下のどれかをディレクトリごと、新しいテーマ名でコピー。
    例 accessibility → newtheme
  2. newtheme/config/theme.ini の accessibility 以外の accessibility の文字列を全て newtheme で置換。
    (config/theme.ini を変えないのは、新しいテーマを 「アクセシビリティ対応」カテゴリに入れるため。新設したい場合は変更。)
  3. サムネイルを適応されるデザイン風に変更
    /webapp/style/themes/newtheme/images/default/Thumbnail.gif
  4. 最後にDBに反映する。
    コントロールパネルの「モジュール管理」にて一括アップデート。

後は、場合に応じて newtheme の中を修正していく。


モジュールのtemplateとCSSの変更

  1. 変えたいモジュールを決める。例えば xxxxx
  2. webapp/modules/xxxxx/templates/default を別名(mythemeとか)でコピー
  3. webapp/modules/xxxxx/files/css/default を同様にコピー
  4. webapp/modules/xxxxx/templates/mytheme/ と webapp/modules/xxxxx/files/css/mytheme/ の下を修正
  5. コントロールパネル、モジュール管理で、該当モジュールをアップデート
  6. モジュールの編集からテンプレートを選択

外部JSとCSSを手っ取り早く使う

NetCommons では、ヘッダーのお知らせブロックの編集画面で、次のような行を追加しておく。
[code lang=”html”]
<link type=”text/css” href=”cssのURL” rel=”stylesheet”>
<script type=”text/javascript” src=”jsのURL”></script>
[/code]
テンプレートをいじる必要もないので簡単。
[code lang=”html”]
<link rel=”stylesheet” href=”//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css” type=”text/css” />
<link rel=”stylesheet” href=”//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css” type=”text/css” />
<script src=”//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js” type=”text/javascript”></script>
[/code]
このサイトではこれが入っている。

ちなみに bootstrap は Twitter 社がオープンソース化した CSS フレームワーク。
レスポンシブル(表示デバイスに合わせて最適化する)デザインなので、モバイルファーストなサイトにももってこいだが、NetCommons が幅固定の作りなので、相性はそれほど良くはない。

実際に試してみる、一番手っ取り早い使いが、上の様に、ダウンロードもしないで CDN のURLを head に直接埋め込む方式。

同じようなデザインになってしまうとか巷(ちまた)では言われていますが、ここではあえてなるべく既存のまま使っています。
詳しい使い方は、こちらを参照:http://getbootstrap.com/css/


NetCommons が XREA に入っちゃった。

NetCommons は国立情報学研究所が次世代情報共有基盤システムとして開発したCMS。
学校などでたくさん使われている。

NetCommons はかなりインストール環境を選ぶというイメージがあったのだが、試しに XREA のサーバに入れたら、すんなり入ってしまった。

NetCommons2公式サイト

なので・・・

しばらく NetCommons をブログとして使ってみる。
→ 2015/07 に WordPress に戻しました。

ブログはどうするの?

日誌モジュールを使う。

フッターにコピーライトや文言を入れるには

  1. webapp/modules/pages/templates/default/footer.htm を以下のように修正。
  2. 管理-モジュール管理を選択し「一括アップデート」を行う。

[code lang=”html”]<font size=”1″>Copyright &copy; 会社名など All Rights Reserved.</font>&nbsp;|&nbsp;
<{$smarty.session._meta.meta_footersmarty:nodefaults}>

[/code]