Nucleus(JP)フォーラム

NucleusCMS日本語版ユーザーのためのサポートフォーラムです。疑問が生じたらまずは記事検索をご利用ください。

ログインしていません。

#1 2008-11-07 18:56:41

tadu
メンバー
登録日: 2008-10-22
投稿: 8

Re: NP_Calendarの表示をブログごとに切り替えることが可能でしょうか?

今まで日本語版で運用していたブログの英語版を準備することになりました。
NP_Calendarで実現しているカレンダー部分の表示(例えば曜日)を日本語版のときは日本語(例えば「金」)で、
英語版では英語(例えば「Fri」)で表記したいのですが、それは可能でしょうか?

※できれば、1つのNucleusで複数のブログを運営する形で実現したいと考えています。

以下、背景を説明します。

すでに日本語版が動作していて、導入済みのプラグインも多くあるので、次の方針で進めています。

1)1つのNucleusで複数のブログを作る(英語版ブログを追加する)
2)日本語版で利用しているスキンを複製する
3)複製したスキンの日本語表示部分を英語に修正し、英語版のブログに適用する

2)が済み、1)を行う段階で、カレンダー表示がプラグインで実現されていることに気づきました。
「Options for NP_Calendar」の設定を見ると、表示文字の変更は可能ですが、ブログ単位で切り替える設定は
見当たらないため、日本語版と英語版で共通のカレンダーが表示されると予想しています。

どうぞ、よろしくお願いします。

オフライン

#2 2008-11-08 04:52:33

Katsumi
メンバー
From: CA
登録日: 2005-06-24
投稿: 637
ウェブサイト

Re: NP_Calendarの表示をブログごとに切り替えることが可能でしょうか?

NP_Calendar.phpを、NP_Calendar2.phpという名でコピーし、

class NP_Calendar extends

のところを

class NP_Calendar2 extends

に書き換えてインストールするので、どうでしょう。
スキン変数は、<%Calendar2%>のように書けばよいです。

オフライン

#3 2008-11-12 15:50:06

tadu
メンバー
登録日: 2008-10-22
投稿: 8

Re: NP_Calendarの表示をブログごとに切り替えることが可能でしょうか?

Katsumi さんの提案をもとにしてカレンダーをブログごとに切り替えることができました。
ありがとうございます。

補足:
このバージョンは下位にディレクトリがありました。
ファイル名とともにディレクトリ名も変更してインストールできました。

以下に調査結果をまとめます。
細部のつながりや理由を十分把握していませんので、不適当な点があれば指摘してください。

--------------------
カレンダープラグイン2重化の試行結果:

・バージョン:NP_Calendar 0.88 日本語版
・プラグインの紹介ページ:http://japan.nucleuscms.org/wiki/plugins:calendar
・ダウンロード先:http://japan.nucleuscms.org/bb/viewtopic.php?t=4092
・ファイル名:NP_Calendar088.zip

※1つめのカレンダープラグインをインストールした後の操作です

1)プラグインのファイル、フォルダをコピーする
2)コピーしたファイルを編集しクラス名を変更する

(例)
class NP_Calendar extends NucleusPlugin {
  ↓
class NP_Calendar_english extends NucleusPlugin {

3)コピーしたファイル、フォルダの名前をクラス名に合わせる

(例)
・ファイル名:NP_Calendar_english
・フォルダ名:calendar_english

4)プラグイン管理画面に表示される説明内容の箇所を編集する

組み込み方法の明示と既存カレンダープラグインと判別しやすくするためなので、
作業しなくてもOK

(例)
return 'This plugin can be called from within skins to insert a calender on your site, by using <%Calendar%>.';
    ↓
return 'This plugin can be called from within skins to insert a calender on your site, by using <%Calendar_english%>.';

5)プラグインをインストールする

・プラグインインストール時にエラーや警告が表示されたらプラグインを削除してやり直せる
・プラグイン削除時に名称を確認できるので、4) の作業をしなくても判別できる

6)設定を変更する

7)スキンにプラグインを組み込む

・変数は <%Calendar_english%> を使用する

参考:設定後にデータベースを確認した結果(推測を含むので注意)
・テーブル「nucleus_plugin」には「NP_Calendar」と別に「NP_Calendar_english」のレコードが登録されている
・テーブル「nucleus_plugin_option」に編集したオプション項目が(元プラグインとは別に)保存されている
・テーブル「nucleus_plugin_option_desc」にも(元プラグインとは別に)設定値が保存されている
  →このテーブルは設定画面の項目表示と各項目の初期値が保存されているのだろう

オフライン

#4 2008-11-13 05:12:10

Katsumi
メンバー
From: CA
登録日: 2005-06-24
投稿: 637
ウェブサイト

Re: NP_Calendarの表示をブログごとに切り替えることが可能でしょうか?

tadu さんの発言:

補足:
このバージョンは下位にディレクトリがありました。
ファイル名とともにディレクトリ名も変更してインストールできました。

あ、多言語対応版だと、そうでしたね。補足ありがとうございます。

オフライン

#5 2008-11-13 09:19:05

tadu
メンバー
登録日: 2008-10-22
投稿: 8

Re: NP_Calendarの表示をブログごとに切り替えることが可能でしょうか?

Katsumi さんの発言:

多言語対応版だと、そうでしたね。

下位ディレクトリは多言語対応版だけに存在するのですね。
ディレクトリの役割がわかりました。ありがとうございます。

オフライン

#6 2008-11-14 04:42:44

h1028
メンバー
登録日: 2006-08-11
投稿: 80

Re: NP_Calendarの表示をブログごとに切り替えることが可能でしょうか?

tadu さんの発言:

下位ディレクトリは多言語対応版だけに存在するのですね。
ディレクトリの役割がわかりました。ありがとうございます。

多言語ファイルの参照だけではなく、その他の追加ファイルを必要とする場合や、プラグイン管理エリアを提供する場合にも下位ディレクトリを必要とします。
http://japan.nucleuscms.org/documentati … ugins.html

オフライン

#7 2008-11-14 10:55:59

tadu
メンバー
登録日: 2008-10-22
投稿: 8

Re: NP_Calendarの表示をブログごとに切り替えることが可能でしょうか?

h1028 さんの発言:

多言語ファイルの参照だけではなく、その他の追加ファイルを必要とする場合や、プラグイン管理エリアを提供する場合にも下位ディレクトリを必要とします。
http://japan.nucleuscms.org/documentati … ugins.html

訂正ありがとうございます。
私が記載した多言語ファイル「だけ」という表現は誤りですね。
ご紹介くださった「プラグイン API」のページを読んで、そのことがわかりました。

すべてのプラグインファイルは config.php に記述されたディレクトリに置く必要があります。一般的に、それは /your/path/nucleus/plugins/ になるでしょう。プラグインファイル名は NP_name.php という形式を用いることにより認識されます。プラグインによっては、追加ファイルを格納する同名のサブディレクトリや、管理エリアを必要とします。

実際、NP_Calendar のコードでは「プラグインAPI」のメソッドを使い次の形で言語ファイルが読み込まれていました。

include_once($this->getDirectory()."lang/".$language.'.php'); 

getDirectory():プラグインの追加ファイルが格納されたサーバーのファイルシステムのパスを返します

他にもプラグイン管理ページやヘルプページはディレクトリ名に規則があるとわかりました。

プラグイン管理エリアの説明より抜粋:プラグインディレクトリに、プラグイン名をつけたサブディレクトリを作成します。

疑問に感じていたオプション保存のしくみも概要を確認でき、プラグイン用の共通テーブルに保管されることがわかりました。
それ以外の選択肢として、独自データベーステーブルの利用も可能とわかりました。

全体としてシンプルにプラグインを構築・導入でき、かつ、かなり柔軟にリソースを利用できそう、と感じました。
ありがとうございます。

オフライン

#8 2008-11-16 08:46:21

Katsumi
メンバー
From: CA
登録日: 2005-06-24
投稿: 637
ウェブサイト

Re: NP_Calendarの表示をブログごとに切り替えることが可能でしょうか?

masさんのアイデアが元ですが、別の方法でNP_Calendar_englishプラグインを導入する方法を考えてみました。
http://kandk.cafe.coocan.jp/nucleus/ind ... itemid=683

以下の内容で、NP_Calendar_english.phpを作成するだけでよいです。

<?php

$this->getPlugin('NP_Calendar');
class NP_Calendar_english extends NP_Calendar {
    function getShortName() {
        return 'calendar';
    }
    function install() { }
    function unInstall() { }
}

(2008-11-18)コードを少し修正しました。

オフライン

Board footer