<?xml version="1.0" encoding="UTF-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
<title>Suinasia(ダウンロード)</title>
<subtitle>「ダウンロード」なエントリー</subtitle>
<link rel="alternate" type="text/html" href="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89"/>
<link rel="self" type="application/atom+xml" href="http://suin.asia/feed/atom/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89"/>
<author>
<name>suin</name>
</author>
<updated>2012-02-08T23:01:05Z</updated>
<id>http://example.com/atom1.xml</id>
<entry>
<title>XOOPS Cube &amp; TOKYOPenでパワフルなデバッグツールAdelieDebug</title>
<link href="http://suin.asia/2012/01/06/xoops-adelie-debug"/>
<summary>&lt;p&gt;XOOPS Cubeの開発者なら必ず入れておきたいデバッグツール AdelieDebug について紹介します。&lt;/p&gt;

&lt;h3&gt;AdelieDebugって何？&lt;/h3&gt;

&lt;p&gt;AdelieDebug(アデリーデバッグ)は、XOOPS Cube Legacy や &lt;a href=&quot;http://tokyopen.jp...</summary>
<published>2012-01-06T06:18:36Z</published>
<updated>2012-01-06T06:16:58Z</updated>
<id>http://suin.asia/2012/01/06/xoops-adelie-debug</id>
<category term="XOOPS" label="XOOPS" scheme="http://suin.asia/tag/XOOPS" />
<category term="AdelieDebug" label="AdelieDebug" scheme="http://suin.asia/tag/AdelieDebug" />
<category term="TOKYOPen" label="TOKYOPen" scheme="http://suin.asia/tag/TOKYOPen" />
<category term="プリロード" label="プリロード" scheme="http://suin.asia/tag/%E3%83%97%E3%83%AA%E3%83%AD%E3%83%BC%E3%83%89" />
<category term="ダウンロード" label="ダウンロード" scheme="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89" />
<content type="html" xml:lang="ja" xml:base="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89">
<![CDATA[<p>XOOPS Cubeの開発者なら必ず入れておきたいデバッグツール AdelieDebug について紹介します。</p>

<h3>AdelieDebugって何？</h3>

<p>AdelieDebug(アデリーデバッグ)は、XOOPS Cube Legacy や <a href="http://tokyopen.jp">TOKYOPen</a> でモジュール・プリロードなどを開発するデベロッパー向けのパワフルな開発支援ツールです。どのあたりが、パワフルかいくつか特徴を紹介しましょう。</p>

<h4>特徴1: 見やすいデバッグ画面</h4>

<p class="photo"><a href="https://picasaweb.google.com/lh/photo/38bZCxP_0kYIu8zXhzF2kdMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh3.googleusercontent.com/-6eASUD-qeYk/TwaPZpHaY9I/AAAAAAAABno/GcZuarntiGM/s400/%2525E3%252582%2525B9%2525E3%252582%2525AF%2525E3%252583%2525AA%2525E3%252583%2525BC%2525E3%252583%2525B3%2525E3%252582%2525B7%2525E3%252583%2525A7%2525E3%252583%252583%2525E3%252583%252588%2525202012-01-06%25252014.14.33.png" height="258" width="400" /></a></p>

<p>XOOPS Cube標準のデバッグモードでは、PHP・MySQL・Smartyなど各モードを切り替えなければなりません。一方、AdelieDebugではPHP・MySQLをひとつの画面に出すことができます。PHPについては、エラーがあれば<span style="color:red">赤</span>でハイライトされて表示されるので、標準のものと違い見落とす危険性が少ないです。MySQLについては、クエリーログを表示します。もちろんエラーが起こっているクエリーはハイライト表示がされます。加えて、var_dump()で確認することが多い、$_GET, $_POST, $COOKIE, $_FILES, $_SESSION, $_SERVER, 送信されたHTTPヘッダなどの環境変数も自動で表示してくれます。</p>

<p>PHPやSQLのログはひとつの<strong>タイムライン</strong>にまとめて表示してくれます。これにより、処理の時系列や前後関係が把握しやすくなっています。例えば、あるクエリーがどこで発行されているか知りたい場合があります。従来であれば、var_dump(__FILE__, __LINE__); を随所に仕込んだうえで、出力されたファイル名と行数をなんとなく頭の中にいれて判断するといった具合でした。AdelieDebugでは、adump() を任意の箇所に仕込めば、タイムライン上でadump()とクエリーの関係を一目で知ることが可能です。</p>

<h4>特徴2: 便利なデバッグ関数</h4>

<p>AdelieDebugは便利なデバッグ関数を提供します。それはvar_dump()よりも強力で、var_dump()+Xdebugよりも導入が簡単です。</p>

<p>adump(): var_dump()関数と同じ働きをしますが、出力内容を&lt;pre&gt;タグで囲むので見やすくなっています。var_dump()は、あちこちに仕込むとどこに仕込んだた分からなくなることがありました。adump()は仕込んだファイル名と行数を表示するので、見失う心配がありません。</p>

<pre name="code" class="php">
adump($uid);
</pre>

<p class="photo"><a href="https://picasaweb.google.com/lh/photo/tIOseCd_Ng-4MC-JfqzZgNMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh3.googleusercontent.com/-iaqUbSyDuvE/TwaPZyItxAI/AAAAAAAABns/LGgrmvu_BLU/s400/%2525E3%252582%2525B9%2525E3%252582%2525AF%2525E3%252583%2525AA%2525E3%252583%2525BC%2525E3%252583%2525B3%2525E3%252582%2525B7%2525E3%252583%2525A7%2525E3%252583%252583%2525E3%252583%252588%2525202012-01-06%25252014.14.07.png" height="166" width="400" /></a></p>

<p>atrace(): その行がどの関数で呼ばれているかを表示します。PHPビルトイン関数の<a href="http://php.net/manual/ja/function.debug-print-backtrace.php">debug_print_backtrace()</a>と同等の働きをしますが、debug_print_backtrace()のようにメモリオーバーになる心配はありません。</p>

<pre name="code" class="php">
atrace();
</pre>

<p class="photo"><a href="https://picasaweb.google.com/lh/photo/cl0BAxTj-LEmOXkINxIsrtMTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh6.googleusercontent.com/-u6bvc6PrqlE/TwaPe5u8MuI/AAAAAAAABoA/YVTogUUoQ-g/s400/%2525E3%252582%2525B9%2525E3%252582%2525AF%2525E3%252583%2525AA%2525E3%252583%2525BC%2525E3%252583%2525B3%2525E3%252582%2525B7%2525E3%252583%2525A7%2525E3%252583%252583%2525E3%252583%252588%2525202012-01-06%25252014.41.15.png" height="160" width="400" /></a></p>

<p>awhich(): オブジェクトやクラス、関数がどのファイルの何行目で定義されているかを表示します。awhich()を使えば、わざわざファイル全体をgrep検索する必要はありません。</p>

<pre name="code" class="php">
awhich('Legacy_Controller');
awhich($mRoot);
</pre>

<p class="photo"><a href="https://picasaweb.google.com/lh/photo/NhXPShpVzYN6_1tLMzx8l9MTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh5.googleusercontent.com/-CTufJRnd2tk/TwaPY8znD_I/AAAAAAAABng/f-4zA0u3as0/s400/%2525E3%252582%2525B9%2525E3%252582%2525AF%2525E3%252583%2525AA%2525E3%252583%2525BC%2525E3%252583%2525B3%2525E3%252582%2525B7%2525E3%252583%2525A7%2525E3%252583%252583%2525E3%252583%252588%2525202012-01-06%25252014.52.44.png" height="21" width="400" /></a></p>

<p>asynop(): クラスやインターフェイスの概要(synopsys)を表示します。継承した親クラス、実装したインターフェイス、クラスが持っている定数・プロパティ・メソッドが一目でわかるようになります。</p>

<pre name="code" class="php">
asynop('Legacy_Controller');
asynop($this);
</pre>

<p class="photo"><a href="https://picasaweb.google.com/lh/photo/QTsAzOLO3QjRGglhdbLCm9MTjNZETYmyPJy0liipFm0?feat=embedwebsite"><img src="https://lh3.googleusercontent.com/-MZ2rYtdhFTY/TwaPZAqAUjI/AAAAAAAABnk/zbYbW9SEwRc/s400/%2525E3%252582%2525B9%2525E3%252582%2525AF%2525E3%252583%2525AA%2525E3%252583%2525BC%2525E3%252583%2525B3%2525E3%252582%2525B7%2525E3%252583%2525A7%2525E3%252583%252583%2525E3%252583%252588%2525202012-01-06%25252013.36.56.png" height="276" width="400" /></a></p>

<h4>特徴3: XOOPS Cube Legacyのためのツールであること</h4>

<p>XOOPS Cube Legacy は標準出力をバッファでのみこんでしまいます。なので var_dump() しても何も表示されず、すぐあとに exit() をつけないといけませんでした。さもなければ、&lt;{stdout}&gt;をテーマに書く必要がありました。AdelieDebugは、そのような手間は不要です。XOOPSのob_bufferを自動的に回避するからです。</p>

<p>var_dump() は問答無用で文字列を出力します。なので、XML出力画面にダンプしてしまって、Ajaxのテストがうまくできない、なんてことがありました。AdelieDebugでは、AJAXリクエストのときやHTML出力以外のコンテクストではデバッグ出力を自動でオフにすることで、そういったストレスを軽減します。</p>


<h4>特徴4: 実践で使われているツールであること</h4>

<p>AdelieDebug は開発現場から生まれた実践的ツールです。XOOPSを用いたシステム開発を数多く手がける<a href="http://ryus.co.jp">株式会社RYUS</a>では(地道な布教活動により 笑)プログラマに広く活用されています。</p>

<h3>導入・使い方</h3>

<p>AdelieDebug はプリロードといわれるワンファイルのXOOPS Cube用のプラグインです。ですので、導入は至って簡単。<a href="https://raw.github.com/suin/xoops-adelie-debug/master/build/AdelieDebug.class.php">こちらのAdelieDebug.class.php</a>をダウンロードして、 preload フォルダに放り込むだけです。</p>

<p>不要になった場合は、このプリロードを削除します。</p>


<h3>AdelieDebug</h3>

<ul>
	<li>github: <a href="https://github.com/suin/xoops-adelie-debug">https://github.com/suin/xoops-adelie-debug</a></li>
	<li>ライセンス: たぶんGPL</li>
	<li>動く環境: PHP 5.2 ~</li>
	<li>動くプラットフォーム: XOOPS Cube Legacy 2.1 ~, TOKYOPen 1.0 ~</li>
</ul>]]>
</content>
</entry>
<entry>
<title>Iframe 1.00</title>
<link href="http://suin.asia/2011/05/29/iframe_100"/>
<summary>Iframeモジュールは、外部URLをiframeタグで表示し、まるでXOOPSのコンテンツの一部のように表示するモジュールです。</summary>
<published>2011-05-29T14:18:25Z</published>
<updated>2011-05-29T14:17:03Z</updated>
<id>http://suin.asia/2011/05/29/iframe_100</id>
<category term="iframe" label="iframe" scheme="http://suin.asia/tag/iframe" />
<category term="ダウンロード" label="ダウンロード" scheme="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89" />
<category term="XOOPS" label="XOOPS" scheme="http://suin.asia/tag/XOOPS" />
<category term="モジュール" label="モジュール" scheme="http://suin.asia/tag/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB" />
<content type="html" xml:lang="ja" xml:base="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89">
<![CDATA[<p><a href="http://dl.dropbox.com/u/949822/Downloads/iframe_100.zip" class="download">ダウンロード</a>Iframeモジュールは、外部URLをiframeタグで表示し、まるでXOOPSのコンテンツの一部のように表示するXOOPS Cube Legacy用モジュールです。</p>
<p>詳細はファイルに同封されている ReadMe/japanese.html を御覧ください。</p>]]>
</content>
</entry>
<entry>
<title>モジュールアップデートに便利なプリロードRapidModuleUpdate</title>
<link href="http://suin.asia/2011/03/01/rapidmoduleupdate_preload"/>
<summary>「RapidModuleUpdate」プリロードが便利です。このプリロードは、XOOPS Cubeのモジュール管理に「モジュール一括アップデート」機能をつけてくれるものです。モジュールアップデートを行う機会</summary>
<published>2011-03-01T04:19:48Z</published>
<updated>2011-03-01T04:04:49Z</updated>
<id>http://suin.asia/2011/03/01/rapidmoduleupdate_preload</id>
<category term="XOOPS" label="XOOPS" scheme="http://suin.asia/tag/XOOPS" />
<category term="プリロード" label="プリロード" scheme="http://suin.asia/tag/%E3%83%97%E3%83%AA%E3%83%AD%E3%83%BC%E3%83%89" />
<category term="ダウンロード" label="ダウンロード" scheme="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89" />
<content type="html" xml:lang="ja" xml:base="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89">
<![CDATA[<p><a href="http://ryus.co.jp/modules/d3blog/details.php?bid=339">株式会社RYUS</a>で、配布されている「RapidModuleUpdate」プリロードが便利です。このプリロードは、XOOPS Cubeのモジュール管理に「モジュール一括アップデート」機能をつけてくれるものです。モジュールアップデートを行う機会自体少ないので、「自動化しよう」とは思わず、モジュールひとつひとつ手動で作業しがちです。</p>

<p>実際に、RapidModuleUpdateがどんなものかは動画を見てみるのが早いでしょう</p>

<p class="photo">
<iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/p97e1w0u-Ds" frameborder="0" allowfullscreen></iframe>
</p>

<p>RapidModuleUpdateはプリロードなので、そのファイルをひとつサーバーに置いておけば、すぐさま「モジュール一括アップデート」が行えるようになり難しい知識は一切いらないのも特徴です。</p>

<p>プリロードだけで、<strong>管理画面で</strong>JavaScriptを動かす裏技も詰まってるので、興味のある開発者はソースコードを見てみてください(笑)</p>]]>
</content>
</entry>
<entry>
<title>protectorの締め出しを強制解除させるプリロード: F*ckinBan</title>
<link href="http://suin.asia/2011/02/18/fxinban_preload"/>
<summary>このプリロードはprotectorモジュールに締め出されたと思われるときに使うことで締め出しを解除します。</summary>
<published>2011-02-18T10:28:38Z</published>
<updated>2011-02-18T08:12:46Z</updated>
<id>http://suin.asia/2011/02/18/fxinban_preload</id>
<category term="XOOPS" label="XOOPS" scheme="http://suin.asia/tag/XOOPS" />
<category term="プリロード" label="プリロード" scheme="http://suin.asia/tag/%E3%83%97%E3%83%AA%E3%83%AD%E3%83%BC%E3%83%89" />
<category term="ダウンロード" label="ダウンロード" scheme="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89" />
<content type="html" xml:lang="ja" xml:base="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89">
<![CDATA[<a href="http://dl.dropbox.com/u/949822/Downloads/FxckinBan_1.0.zip" class="download">download</a>

<blockquote>2月18日、東京在住の男性(23)自称プログラマが、自分が管理者であるはずのサイトにおいてprotectorモジュールに締め出されたことに腹を立てて、protectorの締め出しを解除するプリロードを作っていたことが当局の調査で明らかになった。なお同氏は「ついカッとなって作った。今は反省している。」と話している。protector設定によって、管理者さえも排除の対象になる点については以前からXOOPSユーザの間でたびたび問題視されてきた。protectorの機能を一時無効化するプリロードを作った例はこの件が初めてだと言う。</blockquote>


<h3>このプリロードについて</h3>
このプリロードはprotectorモジュールに締め出されたと思われるときに使うことで締め出しを解除します。

<h3>使うタイミング</h3>
<ul>
<li>自分はアクセスできないのに、他の人がアクセスできる。</li>
<li>何度かアクセスしているうちに、画面が真っ白になった。</li>
<li>protectorに怒られたと思ったら、次から画面が真っ白になった。</li>
</ul>

<h3>使い方</h3>

<ol>
<li>FxckinBan.class.phpをFTPなどでpreloadフォルダにアップロードする</li>
<li>締め出しを食らったサイトにアクセスする</li>
<li>再び締め出される前に、protectorモジュールの設定を変更する</li>
<li>FTPなどでFxckinBan.class.phpを削除する</li>
</ol>

<h3>注意事項</h3>
<ul>
<li><font color="red">一時的にprotectorの機能を無効化するので、使い終わったら直ちにFxckinBan.class.phpを削除してください。</font></li>
</ul>]]>
</content>
</entry>
<entry>
<title>MySQLで特定のテーブルだけダンプするスクリプト</title>
<link href="http://suin.asia/2011/02/12/mysql_dump_tables"/>
<summary>mysqldumpでもテーブルを指定して、ダンプすることができますが、ひとつひとつ指定する必要があります。それはちょっと不便だと思ったので、PHPでLIKE検索の容量でテーブルを一括してダン</summary>
<published>2011-02-12T11:45:13Z</published>
<updated>2011-02-12T11:42:50Z</updated>
<id>http://suin.asia/2011/02/12/mysql_dump_tables</id>
<category term="MySQL" label="MySQL" scheme="http://suin.asia/tag/MySQL" />
<category term="PHP" label="PHP" scheme="http://suin.asia/tag/PHP" />
<category term="ダウンロード" label="ダウンロード" scheme="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89" />
<content type="html" xml:lang="ja" xml:base="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89">
<![CDATA[<a href="http://dl.dropbox.com/u/949822/Downloads/MySqlDumpTable.zip" class="download">ダウンロード</a>

<p>mysqldumpでもテーブルを指定して、ダンプすることができますが、ひとつひとつ指定する必要があります。それはちょっと不便だと思ったので、PHPでLIKE検索の要領でテーブルを一括してダンプするスクリプトを書いてみました。mysqldumpと同じようにコマンドラインで実行します。</p>

<p><a href="http://remysharp.com/2007/09/16/mysql-dump-tables-like/">こちら</a>の記事も参考になります。</p>]]>
</content>
</entry>
<entry>
<title>公開画面から直にブロック編集に行けるプリロード:QuikManageBlock</title>
<link href="http://suin.asia/2010/10/11/quick_manage_block"/>
<summary>XOOPS Cubeでブロックを編集しようとなると、一旦管理画面に行く必要があります。確認は公開側の画面になります。管理画面と公開側を行ったり来たりするのが面倒なので、公開側のブロッ</summary>
<published>2010-10-12T03:56:33Z</published>
<updated>2010-10-11T10:13:24Z</updated>
<id>http://suin.asia/2010/10/11/quick_manage_block</id>
<category term="ダウンロード" label="ダウンロード" scheme="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89" />
<category term="QuikManageBlock" label="QuikManageBlock" scheme="http://suin.asia/tag/QuikManageBlock" />
<category term="プリロード" label="プリロード" scheme="http://suin.asia/tag/%E3%83%97%E3%83%AA%E3%83%AD%E3%83%BC%E3%83%89" />
<category term="XOOPS" label="XOOPS" scheme="http://suin.asia/tag/XOOPS" />
<content type="html" xml:lang="ja" xml:base="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89">
<![CDATA[<a href="http://dl.dropbox.com/u/949822/Downloads/QuikManageBlock_1.1.zip" class="download">ダウンロード</a>

<p>久しぶりのXOOPS Cubeネタです。</p>

<p>XOOPS Cubeでブロックを編集しようとなると、一旦管理画面に行く必要があります。確認は公開側の画面になります。管理画面と公開側を行ったり来たりするのが面倒なので、公開側のブロックから直接ブロック管理に飛べるようにするプリロードを作りました。題して、QuikManageBlock。</p>

<p>QuikManageBlockは、ブロックのタイトルの右隅に編集ボタンを作ってくれます。公開側のブロックから編集したいブロックを視覚的に選べるので、直感的な操作ができるようになります。</p>

<p class="photo"><img src="http://dl.dropbox.com/u/949822/Downloads/QuikManageBlock.png" /></p>

<p>使うには、QuikManageBlockをダウンロードしてきて、QuikManageBlock.class.phpをpreloadフォルダに入れるだけです。あとは、「互換モジュール」の管理者権限のあるアカウントでログインするだけです。要らなくなったら、QuikManageBlock.class.phpを削除するだけです。</p>

<h4>余談</h4>

<p>Legacy_RenderSystem.BeginRenderデリゲートを使って、ブロックをdivタグで囲む処理を作りたかったんだけど、うまくいかなかった...orz。かわりに何か応用できないかなと思って作ったのがこのプリロードです(汗) 転んでもただでは起きないプリロードでした(笑) Ajaxとmodal windowを駆使すれば、管理画面に良く必要すらないんだろうけど^^;</p>

<p>いくつかプリロードを作ってきたけど、プリロードの情報を一括するサイトがあると便利なんだろうな。時間があったらPreload Finderでもつくろう。</p>

<h4>ブロックのアンインストールができるようになりました v1.1</h4>

<p>あの「<a href="http://usadeki.jp/">うさぎにもできるXOOPS Cube入門</a>」で有名なmikaさんがブロックのアンインストールもできるようにしてくれました！</p>]]>
</content>
</entry>
<entry>
<title>DynamicThemeChanger 1.0.0 URLで動的にテーマを切り替えるプリロード</title>
<link href="http://suin.asia/2010/04/21/dynamic_theme_changer_100"/>
<summary>DynamicThemeChangerはURLで指定したテーマに切り替えるプリロードです。テーマ配布サイトがテーマのプレビューを示すことを想定して作りました。プリロードをアップロードすることで、URLで?t</summary>
<published>2010-04-21T14:48:50Z</published>
<updated>2010-04-21T14:43:47Z</updated>
<id>http://suin.asia/2010/04/21/dynamic_theme_changer_100</id>
<category term="XOOPS" label="XOOPS" scheme="http://suin.asia/tag/XOOPS" />
<category term="プリロード" label="プリロード" scheme="http://suin.asia/tag/%E3%83%97%E3%83%AA%E3%83%AD%E3%83%BC%E3%83%89" />
<category term="ダウンロード" label="ダウンロード" scheme="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89" />
<category term="DynamicThemeChanger" label="DynamicThemeChanger" scheme="http://suin.asia/tag/DynamicThemeChanger" />
<content type="html" xml:lang="ja" xml:base="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89">
<![CDATA[<a href="http://suin-xoops.googlecode.com/files/DynamicThemeChanger.1.0.0.zip" class="download">ダウンロード</a>
<p>DynamicThemeChangerはURLで指定したテーマに切り替えるプリロードです。テーマ配布サイトがテーマのプレビューを示すことを想定して作りました。プリロードをアップロードすることで、URLで?theme={テーマディレクトリ名}の形でテーマを指定すると、そのテーマに切り替わります。</p>]]>
</content>
</entry>
<entry>
<title>WhiteoutRescue 真っ白画面解決支援プリロード</title>
<link href="http://suin.asia/2010/03/12/whiteoutrescue_preload"/>
<summary>WhiteoutRescueプリロードは、ホワイトデイに「真っ白」画面を出さないためのプリロードです。ホワイトデイに真っ白画面に出くわしたサイトオーナーがこのプリロードをアップロードします</summary>
<published>2010-03-11T15:59:48Z</published>
<updated>2010-03-11T15:19:16Z</updated>
<id>http://suin.asia/2010/03/12/whiteoutrescue_preload</id>
<category term="XOOPS" label="XOOPS" scheme="http://suin.asia/tag/XOOPS" />
<category term="ダウンロード" label="ダウンロード" scheme="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89" />
<category term="プリロード" label="プリロード" scheme="http://suin.asia/tag/%E3%83%97%E3%83%AA%E3%83%AD%E3%83%BC%E3%83%89" />
<content type="html" xml:lang="ja" xml:base="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89">
<![CDATA[<p>
<a href="http://dl.dropbox.com/u/949822/Downloads/WhiteoutRescue_1.0.zip" class="download">WhiteoutRescue_1.0.zip</a>
ホワイトデイ(3月14日)は、一般には男子が女子にクッキーをあげる日ですが、XOOPSユーザにとっては厄日だそうです。XOOPSオーナーが最も嫌うのは、エラーなどでXOOPSの画面が「真っ白」になることです。ホワイトデイの「ホワイト」が「真っ白」を連想させることもあり、ホワイトデイに「真っ白」画面が出ると、その年のXOOPS運が大殺界であることを意味するそうで、縁担ぎのために3月14日の1日だけXOOPSを止めたり、熱心なXOOPS関係のデベロッパーの中にはこの日だけ開発を休んだりするそうです。</p>

<p>WhiteoutRescueプリロードは、ホワイトデイに「真っ白」画面を出さないためのプリロードです。ホワイトデイに真っ白画面に出くわしたサイトオーナーがこのプリロードをアップロードします。そして、真っ白画面のページにアクセスすると、黒背景を基調としたデバッグページが現れます。サイトオーナーはそのデバッグ情報をたよりに真っ白画面を解消します。このように、真っ白画面を直すことで、厄払いの意味になり、その年のXOOPS運が大安になると言われています。</p>

<p class="photo"><a href="http://picasaweb.google.co.jp/lh/photo/8WxTNouyTtprVY2q8vpKJQ?feat=embedwebsite"><img src="http://lh5.ggpht.com/_dG0BBWAhWis/S5kJmrP1wtI/AAAAAAAABJ8/5_DyGvIV9vM/s400/%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3%201.png" /></a></p>

<h3>動作要件</h3>
<ul>
<li>XOOPS Cube Legacy 2.x</li>
<li>PHP 5.1 (5.2からかも)</li>
<li>UTF-8環境(EUC-JPでも動くことは動く)</li>
</ul>

<h3>WhiteoutRescueプリロードの使い方</h3>

<p>XOOPSオーナーに伝わるWhiteoutRescueプリロードの使い方は以下のようです。</p>

<ol>
<li>WhiteoutRescue.class.phpを/preloadにアップロードする</li>
<li>真っ白のページにアクセスする</li>
<li>表示されたデバッグ情報をもとに問題を解決する</li>
<li>使い終わったら、WhiteoutRescue.class.phpを削除する</li>
</ol>

<p>なお、使い終わってもWhiteoutRescueプリロードを削除しないでいると、XOOPSのセキュリティやパフォーマンスが低下し、XOOPSが白い悪魔に取り憑かれるそうなので、必ず削除するようにしましょう。</p>

<p>WhiteoutRescueを使っても真っ白のままの場合、以下のことが考えられます。</p>
<ul>
<li>プリロード読み込み以前にXOOPSがこけてる</li>
<li>PHPのパースエラー（セミコロンがダブルコロンだ、など）この場合はPHPのエラーログを参照</li>
<li>サーバーの問題 (.htaccessの設定ミスなど)</li>
<li>そもそもXOOPS Cube Legacyじゃない</li>
<li>しかるべくして真っ白なページ</li>
</ul>

<h3>ライセンス</h3>
<p>GNU GPL2ライセンスです。動作無保証です。あなたは、GPL2の条件をみたせばこのプログラムを改変・頒布することができます。</p>

<h3>リポジトリ</h3>
<code>
svn checkout http://suin-xoops.googlecode.com/svn/trunk/WhiteoutRescue suin-xoops-read-only
</code>

<h3>[訂正 2010/03/12]</h3>
<p>XOOPSオーナーの間で、3月14日が厄日などの記述がありましたが、実際にはそんな習慣はないそうです。教えてくれたwhite_devilさんありがとうございます。</p>]]>
</content>
</entry>
<entry>
<title>ユーザのパスワードに期限をつけるプリロード PasswordLimitter 1.2</title>
<link href="http://suin.asia/2010/03/05/passwordlimitter"/>
<summary>パスワードは定期的に変更するほうがより安全と言われています。PasswordLimitterは、XOOPSのユーザのパスワードに期限を設け、期限がすぎたユーザに対しては、ログイン時にパスワード変更を</summary>
<published>2010-03-04T16:52:44Z</published>
<updated>2010-03-04T16:47:43Z</updated>
<id>http://suin.asia/2010/03/05/passwordlimitter</id>
<category term="XOOPS" label="XOOPS" scheme="http://suin.asia/tag/XOOPS" />
<category term="プリロード" label="プリロード" scheme="http://suin.asia/tag/%E3%83%97%E3%83%AA%E3%83%AD%E3%83%BC%E3%83%89" />
<category term="ダウンロード" label="ダウンロード" scheme="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89" />
<category term="PasswordLimitter" label="PasswordLimitter" scheme="http://suin.asia/tag/PasswordLimitter" />
<content type="html" xml:lang="ja" xml:base="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89">
<![CDATA[<a href="http://dl.dropbox.com/u/949822/Downloads/PasswordLimitter_1.2.zip" class="download">ダウンロード</a>

<p>パスワードは定期的に変更するほうがより安全と言われています。PasswordLimitterは、XOOPSのユーザのパスワードに期限を設け、期限がすぎたユーザに対しては、ログイン時にパスワード変更を促すメッセージを表示します。</p>

<h3>インストール方法</h3>
<ol>
<li>PasswordLimitter.class.phpを/preloadにアップロード</li>
<li>管理アカウントで、http://あなたのXOOPS/misc.php?password_limitter=adminにアクセス</li>
<li>「INSTALL」をクリックしてインストールを実行</li>
<li>その後、設定ページで期限日数を設定する</li>
</ol>

<h3>アンインストール方法</h3>
<ol>
<li>管理アカウントで、http://あなたのXOOPS/misc.php?password_limitter=adminにアクセス</li>
<li>「UNINSTALL」をクリックしてインストールを実行</li>
<li>PasswordLimitter.class.phpを/preloadから削除</li>
</ol>

<h3>変更点 1.0 =&gt; 1.2</h3>
<ul>
<li>ユーザ新規登録時に有効期限がセットされないバグを修正。</li>
</ul>
<p>1.1とばしてしまった…orz</p>

<h3>開発情報</h3>

<ul>
<li><a href="http://code.google.com/p/suin-xoops/source/browse/#svn/trunk/PasswordLimitter">リポジトリ</a></li>
</ul>]]>
</content>
</entry>
<entry>
<title>あなたのモジュール開発が加速するSuinDebugプリロード</title>
<link href="http://suin.asia/2010/02/12/suin_debug_preload"/>
<summary>SuinDebugプリロードは、たったひとつのファイルで、あなたのデバッグをよりスムースにするためのサイトプリロードです。</summary>
<published>2010-02-12T07:31:40Z</published>
<updated>2010-02-12T06:40:56Z</updated>
<id>http://suin.asia/2010/02/12/suin_debug_preload</id>
<category term="XOOPS" label="XOOPS" scheme="http://suin.asia/tag/XOOPS" />
<category term="プリロード" label="プリロード" scheme="http://suin.asia/tag/%E3%83%97%E3%83%AA%E3%83%AD%E3%83%BC%E3%83%89" />
<category term="ダウンロード" label="ダウンロード" scheme="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89" />
<category term="SuinDebug" label="SuinDebug" scheme="http://suin.asia/tag/SuinDebug" />
<content type="html" xml:lang="ja" xml:base="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89">
<![CDATA[<a href="http://dl.dropbox.com/u/949822/Downloads/SuinDebug_1.0.zip" class="download">Download</a>

<p>SuinDebugプリロードは、たったひとつのファイルで、あなたのXOOPS Cube Legacyでのデバッグをよりスムースにするためのサイトプリロードです。</p>

<object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/n_XczAn4_8A&hl=ja_JP&fs=1&hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/n_XczAn4_8A&hl=ja_JP&fs=1&hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object>

<p>HD画質なので、フルスクリーンで見るのをおすすめします。</p>

<h3>特徴</h3>

<ul>
<li>
<h4>サイト(開発環境)を汚さない</h4>
SuinDebugは、たったひとつのファイルからなるサイトプリロードです。{stdout_buffer}をテーマに書くことでテーマが汚れるデメリットや、デバッグ関連のファイルをいくつもアップロードすることで、開発パッケージに余分なファイルがあふれるデメリット、デバッグ関連の情報をデータベースに保存することで、データベースに不必要な情報が紛れ込むデメリットが一切ありません。
</li>
<li>
<h4>エラーで画面を汚さない</h4>
SuinDebugは、PHPやMySQLなどのデバッグ情報をウェブページに直接出力しません。デバッグ情報などによる、レイアウト崩れ・ソースの汚損からま逃れることができます。
</li>
<li>
<h4>ポップアップウィンドウを開かない</h4>
SuinDebugを使えば、デバッグのためにこれ以上ポップアップウィンドウを開く必要はありません。デバッグ情報はJavaScriptによるモーダルウィンドウで表示されます。つまり、ひとつのウィンドで完結するので、ポップアップからくるストレスを軽減できます。
</li>
<li>
<h4>それなりのインターフェイス</h4>
エラーSQLやDelegateのハイライト機能など、視覚的な面が考慮されています。また、デバッグモードを切り替える必要なしに、SQL, Delegate, XoopsTpl, stdout_buffer, PHP Errorsを一様に閲覧することができます。
</li>
</ul>

<h3>使い方</h3>

<ol>
<li>SuinDebugをダウンロードします。</li>
<li>それを解凍して、{XOOPS_ROOT}/preload/に保存します。</li>
<li>JavaScriptをONにした状態で、管理者アカウントでログインします。</li>
<li>管理画面でPHPデバッグモードをONにします。</li>
<li>ウィンドウ上端から100pxくらいのところにカーソルを移動するとメニューが表示されます。</li>
<ol>

<h3>注意</h3>

<p>SuinDebugを公開サイトにアップロードしないでください。あくまで、このプリロードは非公開の開発環境で使用することを想定しています。たとえば、VMwareやXAMPP・MAMPで構築されたローカル開発環境。なお、サイトを公開する場合は、SuinDebugを削除してください。</p>


<h3>SuinDebug description</h3>

<p>SuinDebug is a site preload. It will help your debugging when you develop modules in XOOPS Cube Legacy.</p>

<h3>Features</h3>

<ul>
<li>
<h4>SuinDebug doesn't litter your XOOPS</h4>
SuinDebug consists of only one site preload file. You never have to write {stdout_buffer} in your theme. You never have to upload too many files for debugging. You never have to add any information into your database. You only have to upload SuinDebug preload.
</li>
<li>
<h4>SuinDebug doesn't litter your webpages with errors</h4>
SuinDebug doesn't directory output debugging information into your webpages such as PHP or MySQL. So, it doesn't break webpage layout with debugginf information.
</li>
<li>
<h4>SuinDebug never opens popup windows any more</h4>
To show debugging informaiton, SuinDebug uses mordal window. So it never annoy you with popup windows.
</li>
<li>
<h4>SuinDebug has good interface</h4>
Without changing debugging mode, you can browse SQL, Delegate, XoopsTpl, stdout_buffer, PHP Errors at the same time in the same window.
</li>
</ul>

<h3>How to Use</h3>

<ol>
<li>Please Download SuinDebug.</li>
<li>Please Upload it to {XOOPS_ROOT}/preload/</li>
<li>Please Turn on JavaScript and login as site admin.</li>
<li>Please Turn on PHP debugging mode in legacy module.</li>
<li>Please Move your pointer by near 100px from window top.</li>
<ol>

<h3>Notice</h3>

<p>Please DO NOT upload SuinDebug to public website. SuinDebug should be used only in local developing envenment; for example, VMware, XAMMP, MAMP and so on. When you public your website, please remove SuinDebug.</p>]]>
</content>
</entry>
<entry>
<title>XOOPS Cube Legacy Developer&apos;s Cheat-sheet 1.2</title>
<link href="http://suin.asia/2010/01/30/xoops_cube_legacy_developer_s_cheat-sheet_1.2"/>
<summary>XOOPS Cubeでモジュール開発に役立つ(かもしれない?)カンペ作ってみた。</summary>
<published>2010-01-31T09:32:06Z</published>
<updated>2010-01-30T12:27:16Z</updated>
<id>http://suin.asia/2010/01/30/xoops_cube_legacy_developer_s_cheat-sheet_1.2</id>
<category term="XOOPS" label="XOOPS" scheme="http://suin.asia/tag/XOOPS" />
<category term="ダウンロード" label="ダウンロード" scheme="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89" />
<content type="html" xml:lang="ja" xml:base="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89">
<![CDATA[<p>XOOPS Cube Legacyでの開発に便利なチートシート「XOOPS Cube Legacy Developer's Cheat-sheet」を更新しました。今回追加したのは、smartyの変数などです。1.1では、ライセンスを明確にしていなかったのですが、1.2からはライセンスを<a href="http://creativecommons.org/licenses/by/2.1/jp/">クリエイティブコモンズライセンス 表示2.1</a>としたいと思います。ライセンスの許す範囲でお好きにお使い下さい。</p>

<h3>日本語版</h3>
<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,47,0" width="560" height="420">
<param name="MOVIE" value="http://dl.dropbox.com/u/949822/XoopsCubeLegacyCheatSheet/XoopsCubeLegacy2.xDevelopersCheatSheet1.2-ja.swf?INITIAL_VIEW=100" />
<param name="PLAY" value="true" />
<param name="LOOP" value="true" />
<param name="QUALITY" value="high" />
<param name="WMODE" value="transparent" />
<embed src="http://dl.dropbox.com/u/949822/XoopsCubeLegacyCheatSheet/XoopsCubeLegacy2.xDevelopersCheatSheet1.2-ja.swf" width="560" height="420" wmode="transparent" type="application/x-shockwave-flash"></embed></object></p>

<ul>
<li><a href="http://dl.dropbox.com/u/949822/XoopsCubeLegacyCheatSheet/XoopsCubeLegacy2.xDevelopersCheatSheet1.2-ja.pdf">PDF版ダウンロード</a></li>
<li><a href="http://dl.dropbox.com/u/949822/XoopsCubeLegacyCheatSheet/XoopsCubeLegacy2.xDevelopersCheatSheet1.2-ja.docx">Word2007版ダウンロード</a></li>
</ul>

<h3>English version</h3>
<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,47,0" width="560" height="420">
<param name="MOVIE" value="http://dl.dropbox.com/u/949822/XoopsCubeLegacyCheatSheet/XoopsCubeLegacy2.xDevelopersCheatSheet1.2-en.swf?INITIAL_VIEW=100" />
<param name="PLAY" value="true" />
<param name="LOOP" value="true" />
<param name="QUALITY" value="high" />
<param name="WMODE" value="transparent" />
<embed src="http://dl.dropbox.com/u/949822/XoopsCubeLegacyCheatSheet/XoopsCubeLegacy2.xDevelopersCheatSheet1.2-en.swf" width="560" height="420" wmode="transparent" type="application/x-shockwave-flash"></embed></object></p>

<ul>
<li><a href="http://dl.dropbox.com/u/949822/XoopsCubeLegacyCheatSheet/XoopsCubeLegacy2.xDevelopersCheatSheet1.2-en.pdf">Download PDF version</a></li>
<li><a href="http://dl.dropbox.com/u/949822/XoopsCubeLegacyCheatSheet/XoopsCubeLegacy2.xDevelopersCheatSheet1.2-en.docx">Download Office Word 2007 version</a></li>
</ul>

<p><a rel="license" href="http://creativecommons.org/licenses/by/2.1/jp/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by/2.1/jp/88x31.png" /></a><br />&#12371;&#12398;&#20316;&#21697;&#12399;&#12289;<a rel="license" href="http://creativecommons.org/licenses/by/2.1/jp/">&#12463;&#12522;&#12456;&#12452;&#12486;&#12451;&#12502;&#12539;&#12467;&#12514;&#12531;&#12474;&#12539;&#12521;&#12452;&#12475;&#12531;&#12473;</a>&#12398;&#19979;&#12391;&#12521;&#12452;&#12475;&#12531;&#12473;&#12373;&#12428;&#12390;&#12356;&#12414;&#12377;&#12290;</p>]]>
</content>
</entry>
<entry>
<title>Searchモジュールに転送するpreload</title>
<link href="http://suin.asia/2010/01/24/preload_for_search_module"/>
<summary>XOOPS検索へのリダイレクトを実行してくれるプリロード</summary>
<published>2010-01-24T08:01:32Z</published>
<updated>2010-01-24T07:48:47Z</updated>
<id>http://suin.asia/2010/01/24/preload_for_search_module</id>
<category term="ダウンロード" label="ダウンロード" scheme="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89" />
<category term="プリロード" label="プリロード" scheme="http://suin.asia/tag/%E3%83%97%E3%83%AA%E3%83%AD%E3%83%BC%E3%83%89" />
<category term="XOOPS" label="XOOPS" scheme="http://suin.asia/tag/XOOPS" />
<category term="saerch" label="saerch" scheme="http://suin.asia/tag/saerch" />
<content type="html" xml:lang="ja" xml:base="http://suin.asia/tag/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89">
<![CDATA[<a href="http://dl.dropbox.com/u/949822/Downloads/SearchModuleRedirecter.class.php" class="download">ダウンロード</a>
<p>ながらくメンテナンスしていない<a href="http://suin.asia/2007/12/05/search">XOOPS検索モジュール</a>ですが、XOOPS Cube Legacyでも動作するようです。このモジュールは、/search.phpの検索機能(グローバルサーチという)を乗っ取り、より充実した検索機能を実現すべくXOOPS2向けに作られたモジュールです。search.phpを乗っ取るさい、XOOPS2ではsearch.phpを直接書き換える手続きが必要でした。一方、XOOPS Cube Legacyでは、preloadを置くだけで乗っ取りが完了します。XOOPS Cube LegacyでもXOOPS検索モジュールを使っている方はどうぞpreloadをダウンロードしてお使い下さい。</p>
<p>ちなみに、XOOPS Cubeのグローバルサーチを乗っ取りたい人は、このプリロードが参考になるかと思います。</p>
<pre name="code" class="php">&lt;?php
/**
 *
 * @package    SearchModuleRedirecter
 * @author     Hidehito NOZAWA aka Suin &lt;http://suin.asia/&gt;
 * @copyright  2009 Hidehito NOZAWA
 * @license    http://www.gnu.org/licenses/gpl-2.0.html GNU GPL v2.0
 *
 */

if ( !defined('XOOPS_ROOT_PATH') ) exit;

class SearchModuleRedirecter extends XCube_ActionFilter
{
        var $searchDirname = 'search';

        function preBlockFilter()
        {
                $this-&gt;mRoot-&gt;mDelegateManager-&gt;add('Legacypage.Search.Access', array($this, 'redirect'), XCUBE_DELEGATE_PRIORITY_FIRST);
        }

        function redirect()
        {
                if ( file_exists(XOOPS_ROOT_PATH.'/modules/'.$this-&gt;searchDirname.'/index.php') )
                {
                        $moduleHandler =&amp; xoops_gethandler('module');
                        $moduleObj =&amp; $moduleHandler-&gt;getByDirname($this-&gt;searchDirname);
                        if ( $moduleObj-&gt;getVar('isactive') == 1 )
                        {
                                header('Location: '.XOOPS_URL.'/modules/'.$this-&gt;searchDirnam.'/index.php?'.$_SERVER['QUERY_STRING']);
                                die;
                        }
                }
        }
}

?&gt;</pre>]]>
</content>
</entry>
</feed>
