Nucleus
Jeans & Development | 電子ブロック工房 | 三日坊主 | フロントページ |
NP_ProtectByMD5 アップデート [Nucleus]
2007年6月6日
新しい機能を盛り込んだベータ版をフォーラムにアップ。
新機能は以下のとおり。
1)メンバーからの投稿に対して、スパムチェックを行わないような設定が可能に。
2)コメントスパム対策の場合、スキンに記述しなくても対応できるようになった(プラグインオプションの設定が必要)。
3)スパムのログが取れるようになった。
4)携帯電話からのアクセスや一部のIPアドレスからのアクセスに対して、スパムチェックを行わないような設定が可能になった。
Nucleus::subSilver への対応も多少意識した。メンバーに対してスパムチェックをしないような設定に出来るようにしたのが、それ。
新機能は以下のとおり。
1)メンバーからの投稿に対して、スパムチェックを行わないような設定が可能に。
2)コメントスパム対策の場合、スキンに記述しなくても対応できるようになった(プラグインオプションの設定が必要)。
3)スパムのログが取れるようになった。
4)携帯電話からのアクセスや一部のIPアドレスからのアクセスに対して、スパムチェックを行わないような設定が可能になった。
Nucleus::subSilver への対応も多少意識した。メンバーに対してスパムチェックをしないような設定に出来るようにしたのが、それ。
NP_if [Nucleus]
2007年6月4日
テンプレート(アイテム・コメント)で、if, else, endif, ifnot, elseif, elseifnot を使えるようにするプラグインを書いてみた。
コアの改造は、不必要。ただし、処理の重いテンプレート変数での表示を条件分岐するには向いていない。というのは、条件が false の場合でも<%if%>と<%endif%>の間のパースを行ってしまうため(表示はされない)。
(このプラグインの最新情報は、公式Wikiに。)
コアの改造は、不必要。ただし、処理の重いテンプレート変数での表示を条件分岐するには向いていない。というのは、条件が false の場合でも<%if%>と<%endif%>の間のパースを行ってしまうため(表示はされない)。
(このプラグインの最新情報は、公式Wikiに。)
global $blog を乗っ取る [Nucleus]
2007年5月23日
また別のプラグインで同じようなことをするかもしれないから、忘れないようにメモ。
ここの例では、BLOG::getSqlSearch() 関数に、
ここの例では、BLOG::getSqlSearch() 関数に、
array_merge($searchclass->blogs,array(1,2,3));と、一行追加するように、BLOG オブジェクトを入れ替える。
NP_nestedinclude [Nucleus]
2007年5月15日
前の記事の続き。
NP_nestedinclude は、スキン変数の入れ子構造に対応したスキンパースを行う。<%parsedinclude%>と置き換えて使用。
スキンとテンプレートの両方で使用できる。テンプレートは、アイテム本体と、コメント本体でのみ使用可能。
NP_nestedinclude は、スキン変数の入れ子構造に対応したスキンパースを行う。<%parsedinclude%>と置き換えて使用。
スキンとテンプレートの両方で使用できる。テンプレートは、アイテム本体と、コメント本体でのみ使用可能。
スキン変数の入れ子構造 [Nucleus]
2007年5月15日
Nucleus のスキン変数・テンプレート変数は、入れ子で使えない。また、タグの始まりは『<%』で終わりは『%>』というルールになっているが、どちらの表記をどちらに用いても、エラーにならない。つまり、
はどれも、エラーなく同じように機能する。
なので、入れ子構造のスキンを例えば次のように表記すると
これは思ったように機能しない。このコードは、次のコードと等価であるからだ。
『blogsetting(id)』はタグの外なのでそのまま表示され、『<%)%>』というタグは存在しなため、『<%)()%>』が表示される。
<%blog(default/index,10)%> %>blog(default/index,10)%> <%blog(default/index,10)<% %>blog(default/index,10)<%
はどれも、エラーなく同じように機能する。
なので、入れ子構造のスキンを例えば次のように表記すると
<%blog(default/index,<%blogsetting(id)%>)%>
これは思ったように機能しない。このコードは、次のコードと等価であるからだ。
<%blog(default/index,%>blogsetting(id)<%)%>
『blogsetting(id)』はタグの外なのでそのまま表示され、『<%)%>』というタグは存在しなため、『<%)()%>』が表示される。
NP_UnsetManagerCache [Nucleus]
2007年5月11日
前のNP_UnsetItemObjectがまったく意味のないコードだったので、別のプラグインを書いてみた。
$manager->getItem()を多用しているプラグインのテンプレート変数・スキン変数の直後に
と書けばよい。
<?php class NP_UnsetManagerCache extends NucleusPlugin { function getName() { return preg_replace('/\.php$/','',basename(__FILE__)); } function getMinNucleusVersion() { return 220; } function getAuthor() { return 'Katsumi'; } function getVersion() { return '0.1'; } function getURL() {return 'http://www.rad51.net/nucleus/index.php?itemid=313';} function getDescription() { return $this->getName().' plugin'; } function supportsFeature($what) { return (int)($what=='SqlTablePrefix'); } function doSkinVar($skinType,$type) { global $manager; switch ($type){ case 'cachedInfo': exit; default: if (@is_array($manager->$type)) $manager->$type=array(); } } } ?>
$manager->getItem()を多用しているプラグインのテンプレート変数・スキン変数の直後に
<%UnsetManagerCache(items)%>
と書けばよい。
NP_UnsetItemObject [Nucleus]
2007年5月7日
削除しました。
PostItemイベントを捕まえて、一つ前のitemオブジェクトを廃棄する仕様。テンプレート呼び出しで多数のアイテムが呼び出される場合には、効果的かもしれない。私が管理しているサイトで、700個以上のitemオブジェクトが作成されるものがあるから、それにインストールして様子を見てみる。
(追記)ver 0.1 は、意味のないコードだったので、若干修正。ver 0.1.1とした。
(追記)このコードの効果を確認するためのテストを行った。
(追記)このコードは、意味がなかった…。もっとよく考えてみることにしよう。