<?xml version="1.0" encoding="UTF-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
<title>Suinasia(XOOPS)</title>
<subtitle>「XOOPS」なエントリー</subtitle>
<link rel="alternate" type="text/html" href="http://suin.asia/tag/XOOPS"/>
<link rel="self" type="application/atom+xml" href="http://suin.asia/feed/atom/tag/XOOPS"/>
<author>
<name>suin</name>
</author>
<updated>2012-02-04T13:38:47Z</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/XOOPS">
<![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>[XOOPS Cube]プリロードでブロックの内容を取得するサンプル</title>
<link href="http://suin.asia/2011/08/17/xoops_preload_get_block_contents"/>
<summary>&lt;p&gt;プリロードでブロックの内容を取得するサンプルです。ブロックのタイトルすべてに「&lt;a href=&quot;http://www.warna.info/archives/1620/&quot;&gt;だぷー&lt;/a&gt;」を付けます&lt;/p&gt;
&lt;p class=&quot;photo&quot;&gt;&lt;a href=&quot;https://pica...</summary>
<published>2011-08-16T15:00:00Z</published>
<updated>2011-08-16T15:00:00Z</updated>
<id>http://suin.asia/2011/08/17/xoops_preload_get_block_contents</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="Tips" label="Tips" scheme="http://suin.asia/tag/Tips" />
<content type="html" xml:lang="ja" xml:base="http://suin.asia/tag/XOOPS">
<![CDATA[<p>プリロードでブロックの内容を取得するサンプルです。ブロックのタイトルすべてに「<a href="http://www.warna.info/archives/1620/">だぷー</a>」を付けます</p>
<p class="photo"><a href="https://picasaweb.google.com/lh/photo/mlSjOsrw-AUwUldsYH6ilQ?feat=embedwebsite"><img src="https://lh4.googleusercontent.com/-qTuu6EqRc1I/Tkni-NP2bSI/AAAAAAAABgU/YicdOMr-c04/s800/%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%2525202011-08-16%25252012.24.04.png" height="314" width="187" /></a></p>
<script src="https://gist.github.com/1148371.js?file=gistfile1.aw"></script>]]>
</content>
</entry>
<entry>
<title>XOOPS Cubeでスライドショーを作れるプリロード JquerySlideShow</title>
<link href="http://suin.asia/2011/08/08/xoops_slide_show"/>
<summary>&lt;a href=&quot;http://dl.dropbox.com/u/949822/Downloads/JquerySlideShow.class.php&quot; class=&quot;download&quot;&gt;JquerySlideShow&lt;/a&gt;

&lt;p&gt;&lt;a href=&quot;http://usadeki.jp/modules/d3forum/index.php?topic_id=667&quot;&gt;うさでき&lt...</summary>
<published>2011-08-07T18:02:31Z</published>
<updated>2011-08-07T17:57:45Z</updated>
<id>http://suin.asia/2011/08/08/xoops_slide_show</id>
<category term="XOOPS" label="XOOPS" scheme="http://suin.asia/tag/XOOPS" />
<category term="jQuery" label="jQuery" scheme="http://suin.asia/tag/jQuery" />
<content type="html" xml:lang="ja" xml:base="http://suin.asia/tag/XOOPS">
<![CDATA[<a href="http://dl.dropbox.com/u/949822/Downloads/JquerySlideShow.class.php" class="download">JquerySlideShow</a>

<p><a href="http://usadeki.jp/modules/d3forum/index.php?topic_id=667">うさでき</a>のmikaさんの投稿を読みながら、もう少し手軽にできるようになるといいなーと思って、XOOPS Cubeで簡単にスライドショーを作れるプリロードを作ってみました。急いで作ったので、結構テキトーです。なにか問題があったら教えてください。</p>

<p>ちなみに、どんなスライドショーができるかは、<a href="http://usadeki.jp/">うさできのトップページ</a>を見てみてください。</p>

<p class="photo"><a href="https://picasaweb.google.com/lh/photo/m2AolCeRPfoq5qrO89S-IA?feat=embedwebsite"><img src="https://lh3.googleusercontent.com/-FMxHqFrWCcU/Tj7R1K5EGxI/AAAAAAAABec/DHKW8k5snFc/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%2525202011-08-08%2525202.45.17.jpg" height="135" width="400" /></a></p>

<h3>インストール方法</h3>

<p>ダウンロードした JquerySlideShow.class.php を/preloadフォルダにアップロードするだけです。</p>

<p>ちなみに、このファイルだけでは動作しません。jquery.jsが必要です。XCL2.2ならデフォルトで入ってます。XCL2.1の人でよく分からない人は<a href="http://dl.dropbox.com/u/949822/Downloads/Jquery.class.php.zip">Jquery.class.php</a>を/preloadフォルダに入れといてください。</p>

<h3>使い方</h3>


<p>基本的にテーマのすきなところにタグを埋め込めこんで使います。編集するテーマのファイはたぶん/themes/あなたのテーマ/theme.htmlです。埋め込み方は下の説明を御覧ください。</p>


<h4>[基本編] テーマで使う</h4>

<p>画像の大きさを指定して、画像のURLを1行ずつ列挙するだけ</p>

<pre>
&lt;{slideshow width=680 height=80}&gt;
http://example.com/path/to/image1.png
http://example.com/path/to/image2.png
http://example.com/path/to/image3.png
&lt;{/slideshow}&gt;
</pre>


<h4>[発展編] 画像のリンク先を指定する</h4>

<p>画像のURLの次に、半角スペースを挟んでリンク先のURLを指定すると、画像にリンクがつきます。</p>

<pre>
&lt;{slideshow width=680 height=80}&gt;
http://example.com/path/to/image1.png http://example.com/page1.html
http://example.com/path/to/image2.png http://example.com/page2.html
http://example.com/path/to/image3.png http://example.com/page3.html
&lt;{/slideshow}&gt;
</pre>


<h4>[応用編] 画像のURLに&lt;{$xoops_url}&gt;を使う</h4>

<p>画像のURLに&lt;{$xoops_url}&gt;を使うと、サイトのURLが変わったときに、URLを書き換える必要がないので便利です</p>

<pre>
&lt;{slideshow width=680 height=80}&gt;
&lt;{$xoops_url}&gt;/uploads/myalbum/1.png &lt;{$xoops_url}&gt;/modules/pico/index.php?content_id=1
&lt;{$xoops_url}&gt;/uploads/myalbum/2.png &lt;{$xoops_url}&gt;/modules/pico/index.php?content_id=2
&lt;{$xoops_url}&gt;/uploads/myalbum/3.png &lt;{$xoops_url}&gt;/modules/pico/index.php?content_id=3
&lt;{/slideshow}&gt;
</pre>

-----------------------------------------------------

<h4>[応用編] カスタムブロックで使う</h4>

<p>カスタムブロックの「コンテンツ」に次のようなコードを埋め込みます。
カスタムブロックの「タイプ」は「PHPスクリプト」を指定します。</p>

<pre class="php" name="code">
$params = array(
  'width' => 680, // 幅指定
  'height' => 80, // 縦指定
);
$images ="
http://example.com/path/to/image1.png
http://example.com/path/to/image2.png
http://example.com/path/to/image3.png
";
JquerySlideShow::renderSlideShow($params, $images);
</pre>]]>
</content>
</entry>
<entry>
<title>とりあえず自分のPCからxoopscube.jpを見られるようにする方法(MacOSX)</title>
<link href="http://suin.asia/2011/08/01/xoopscube.jp"/>
<summary>&lt;p&gt;2011/08/01現在xoopscube.jpが閲覧できなくなっています。
Google(8.8.8.8)にnslookupしてみると、解決できないじょうたいです。
推測ですが、xoopscube.jpのDNSの設定が変わったか、設定が削除されたんじゃないでしょうか。&lt;/p&gt;

&lt;p&gt;xoopscube....</summary>
<published>2011-08-01T10:38:41Z</published>
<updated>2011-08-01T10:35:49Z</updated>
<id>http://suin.asia/2011/08/01/xoopscube.jp</id>
<category term="xoops" label="xoops" scheme="http://suin.asia/tag/xoops" />
<category term="cube" label="cube" scheme="http://suin.asia/tag/cube" />
<content type="html" xml:lang="ja" xml:base="http://suin.asia/tag/XOOPS">
<![CDATA[<p>2011/08/01現在xoopscube.jpが閲覧できなくなっています。
Google(8.8.8.8)にnslookupしてみると、解決できないじょうたいです。
推測ですが、xoopscube.jpのDNSの設定が変わったか、設定が削除されたんじゃないでしょうか。</p>

<p>xoopscube.jpが見れないのは不便なので、とりあえず自分のPCからだけは見られるようにする方法を紹介します。
自分がMac使いなので、Macでのやり方になります。（ここでは専用のアプリを入れますが、やっていることはhostsファイルを書き換えるだけです。Windowsにもhostsファイルがあるので同じようなことができるはずです。）</p>

<p>まず、<a href="http://www.redwinder.com/macapp/hoster/">Hoster</a>というアプリをダウンロードしてください。
ダウンロードが完了したらインストールします。
インストールが終わったら起動してみましょう。起動すると下のような画面が出ます。</p>

<p class="photo"><a href="https://picasaweb.google.com/lh/photo/CoZHPnOqgCI7YJ8JqZKAeg?feat=embedwebsite"><img src="https://lh4.googleusercontent.com/-ax3Wmgyuxm0/TjaBGnIne4I/AAAAAAAABd8/27XEZY1A8bk/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%2525EF%2525BC%2525882011-08-01%25252019.21.16%2525EF%2525BC%252589.png" height="400" width="270" /></a></p>

<p>緑のプラスボタンをクリックします。フォームが出ると思うので、下の内容のとおりに値を入力してください。</p>

<pre>
セット名：XOOPS Cube
ホスト名：xoopscube.jp
IP: 210.143.106.113
</pre>

<p class="photo"><a href="https://picasaweb.google.com/lh/photo/DJthljrj2aLw12oQvIYxcw?feat=embedwebsite"><img src="https://lh4.googleusercontent.com/-uV1AuPPLTYk/TjaBGZFEx6I/AAAAAAAABd8/liCKmEvWqc0/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%2525EF%2525BC%2525882011-08-01%25252019.22.08%2525EF%2525BC%252589.png" height="400" width="265" /></a></p>

<p>入力が終わったら、「ホスト追加」ボタンを押してホストを追加し、「終了」でフォームを閉じます。
閉じると、「セット名」にXOOPS Cubeが追加されていると思います。</p>

<p class="photo"><a href="https://picasaweb.google.com/lh/photo/-CNFoOQuLIznka8rZuHmJw?feat=embedwebsite"><img src="https://lh5.googleusercontent.com/-F67hd1Cg44s/TjaBGWixoHI/AAAAAAAABd8/rwmQaelIMA4/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%2525EF%2525BC%2525882011-08-01%25252019.22.41%2525EF%2525BC%252589.png" height="400" width="270" /></a></p>

<p>最後に、「XOOPS Cube」の左にある、グレーのまるポチをクリックします。
すると、「1件の設定をホスツファイルへ反映しました」というポップアップが表示されます。</p>

<p class="photo"><a href="https://picasaweb.google.com/lh/photo/eJulCPowwuBItKmyOTlI9A?feat=embedwebsite"><img src="https://lh6.googleusercontent.com/-QS6xTIhfRQk/TjaBGfsa1nI/AAAAAAAABd8/T1N2INDIttE/s800/%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%2525EF%2525BC%2525882011-08-01%25252019.23.27%2525EF%2525BC%252589.png" height="97" width="325" /></a></p>

<p>この状態で、http://xoopscube.jp を開いてみてください。今まで通り、xoopscube.jpのサイトが見れるはずです。</p>

<p>なお、xoopscube.jp が復活したときは、上で追加したXOOPS Cubeセットを削除するだけです。
またHosterが起動していないときは、xoopscube.jp から 210.143.106.113へのホスティングはされないので、
xoopscube.jpを見たいときはHosterを起動するようにします。</p>


<p>ちなみに、xoopscube.jpのドメイン有効期間は2011/08/31までなので、ドメイン自体がなくなったわけではなさそうです。</p>]]>
</content>
</entry>
<entry>
<title>「WeeklyCMS 6/24 マイクロソフト本社特番03」の補足など</title>
<link href="http://suin.asia/2011/07/02/supporting_for_weeklycms_presentation"/>
<summary>&lt;p&gt;「WeeklyCMS 6/24 マイクロソフト本社特番03」はセキュリティ回で、ちょっと補足したほうがいいかなーと思ったんで、ブログエントリにしちゃいます。XOOPSモジュール開発しようって人に参考になればなぁと。&lt;/p&gt;

&lt;p class=&quot;photo&quot;&gt;
We...</summary>
<published>2011-07-02T13:48:41Z</published>
<updated>2011-07-02T13:45:11Z</updated>
<id>http://suin.asia/2011/07/02/supporting_for_weeklycms_presentation</id>
<category term="WeeklyCMS" label="WeeklyCMS" scheme="http://suin.asia/tag/WeeklyCMS" />
<category term="XOOPS" label="XOOPS" scheme="http://suin.asia/tag/XOOPS" />
<content type="html" xml:lang="ja" xml:base="http://suin.asia/tag/XOOPS">
<![CDATA[<p>「WeeklyCMS 6/24 マイクロソフト本社特番03」はセキュリティ回で、ちょっと補足したほうがいいかなーと思ったんで、ブログエントリにしちゃいます。XOOPSモジュール開発しようって人に参考になればなぁと。</p>

<p class="photo">
WeeklyCMS 6/24 マイクロソフト本社特番03<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="296" id="utv297310" name="utv_n_645199"><param name="flashvars" value="loc=%2F&amp;autoplay=false&amp;vid=15602462&amp;locale=ja_JP&amp;hasticket=false&amp;v3=1" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.ustream.tv/flash/viewer.swf" /><embed flashvars="loc=%2F&amp;autoplay=false&amp;vid=15602462&amp;locale=ja_JP&amp;hasticket=false&amp;v3=1" width="480" height="296" allowfullscreen="true" allowscriptaccess="always" id="utv297310" name="utv_n_645199" src="http://www.ustream.tv/flash/viewer.swf" type="application/x-shockwave-flash" /></object>
</p>

<h3>Check Secure Code (04:47〜)</h3>

<h4>$_POST/GETをforeach展開</h4>

<pre class="php" name="code">
foreach ( $_POST as $key => $value )
{
	$$key = $value;
}
</pre>

<p>「見かけたら即デリート」ということで、危険性と置き換え方がはしょられてる。時間の都合かなーと思いつつ…。</p>

<p>こういうコードの危険性としては、$_SERVERなどの変数を容易に乗っ取られてしまう点。置き換え方は、必要な変数だけ定義するようにすること。たとえば、下の例のように。</p>

<pre class="php" name="code">
// title, text, posterだけがあればいいとき
$title  = $_POST['title'];
$text   = $_POST['text'];
$poster = $_POST['poster'];
</pre>

<h4>intvalはエースケープ関数じゃない^^;</h4>

<p>bluemoonさんによると、下の例がまずいらしい。</p>

<pre class="php" name="code">
$hoge = isset($_GET['hoge']) ? $_GET['hoge'] : 0 ;</pre>

<p>そして、整数を受け取る前提のものは、次のように書き換えるべきだとしてる</p>

<pre class="php" name="code">
$hoge = isset($_GET['hoge']) ? intval($_GET['hoge']) : 0 ;</pre>

<p>最初に整数にしといたほうが安全になるのは確か。HTMLに出すとき、SQLのクエリに入れるときのどちらにも対応できるから。でも、ユーザの入力を勝手に書き換えるのはあまりベストじゃない。だから、この場合は$_GETから取るときはintvalしないでおいて、HTMLに出すときにhtmlspecialchars($hoge, ENT_QUOTES, 'UTF-8')、SQLのクエリにするときにmysql_real_escape_string($hoge)しておくのがいいと思う。</p>

<h4>htmlspecialchars()はHTMLに出す直前に</h4>

<p>「文字列だったら、htmlspecialcharsで」とのこと。そしてそのサンプルがこれ。</p>

<pre class="php" name="code">
$hoge = isset($_GET['hoge']) ? htmlspecialchars($_GET['hoge'], ENT_QUOTES) : "" ;</pre>

<p>そのとおりなんだけど、$_GETから取った直後にhtmlspecialchars()をかけることはXOOPSのモジュールではほとんどない。Smartyに変数を渡す直前でやるのが通常かなと。なぜなら、リクエストをもとに何かデータをこねくり回す(DBを参照したり)ことが多いから。そのとき、HTMLエンコードされた文字列だといろいろ不便だから。なので、やっぱりこれもintval同様に$_GETから値をとった段階では生にしとく。</p>

<pre class="php" name="code">
$hoge = isset($_GET['hoge']) ? $_GET['hoge'] : "" ;

// $hogeをもとにデータをこねくり回す処理

$hoge = htmlspecialchars($hoge, ENT_QUOTES, 'UTF-8');

$xoopsTpl->assign('hoge', $hoge); // smartyに$hogeを渡す

</pre>

<h3>SQL Injection (6:01〜)</h3>

<h4>addslashes()じゃなくてmysql_real_escape_string()を使おう</h4>

<p>録画の中でSQLインジェクションの対策として、addslashes()関数をつかうことを勧めてる。addslashes()でも、SQLのエスケープをうまくやってくれる。実際に、XOOPSのコードのいたるところにaddslashes()がある。でも、addslashes()はクエリエスケープ用の関数じゃないので、SQLインジェクション対策に使うのはちょっと意味が違う。やっぱり、ここはMySQL専用エスケープ関数のmysql_real_escape_string()を使おう。</p>

<p>Mac大好きな<a href="http://twitter.com/k_mikage">mikageさん</a>が会場がMicrosoftなのに「PCじゃなくてMacです、PCというとWindowsです」と言っちゃってるとこを見て、ポカリふきそうになったｗ そのあと、Microsoftの<a href="http://twitter.com/masakit_ms">武田さん</a>が発表の前振りで「すいません、PCでっ」ってｗｗ6/24ほんとに行きたかったし、行けなくてもリアルタイムで放送見たかったよーT_T</p>]]>
</content>
</entry>
<entry>
<title>TwitterにいるXOOPSのすごい人リスト</title>
<link href="http://suin.asia/2011/06/17/super_xoopsers_in_twitter"/>
<summary>&lt;p&gt;最近、XOOPS関係のつぶやきが多い人や、XOOPSで活発な人のリスト。完全に、&lt;a href=&quot;http://d.hatena.ne.jp/sotarok/20110617/1308227462&quot;&gt;便乗&lt;/a&gt;です。&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://twitter.com/domifara&quot;&g...</summary>
<published>2011-06-17T03:14:07Z</published>
<updated>2011-06-17T03:12:57Z</updated>
<id>http://suin.asia/2011/06/17/super_xoopsers_in_twitter</id>
<category term="XOOPS" label="XOOPS" scheme="http://suin.asia/tag/XOOPS" />
<category term="Twitter" label="Twitter" scheme="http://suin.asia/tag/Twitter" />
<content type="html" xml:lang="ja" xml:base="http://suin.asia/tag/XOOPS">
<![CDATA[<p>最近、XOOPS関係のつぶやきが多い人や、XOOPSで活発な人のリスト。完全に、<a href="http://d.hatena.ne.jp/sotarok/20110617/1308227462">便乗</a>です。</p>

<p>
<a href="http://twitter.com/domifara">@domifara</a> (すごい活発な人)<br />
<a href="http://twitter.com/bluemooninc">@bluemooninc</a> (weeklycmsの人)<br />
<a href="http://twitter.com/love_marijuana">@love_marijuana</a> (デベロッパーズバイブルの人)<br />
<a href="http://twitter.com/umotti">@umotti</a> (うさできの人)<br />
<a href="http://twitter.com/nbuy">@nbuy</a> (eguideの人)<br />
<a href="http://twitter.com/naaon">@naaon</a> (d3diaryの人)<br />
<a href="http://twitter.com/AXYZ_SAK">@AXYZ_SAK</a> (アクシズの人)<br />
<a href="http://twitter.com/naomi_xoops">@naomi_xoops</a> (テーマの人)<br />
<a href="http://twitter.com/kilica">@kilica</a> (XCL2.2コアの人)<br />
<a href="http://twitter.com/naopon">@naopon</a> (xpWikiの人)<br />
<a href="http://twitter.com/nunoluciano">@nunoluciano</a> (XCL2.2コアの人)<br />
<a href="http://twitter.com/ohwada">@ohwada</a> (OpenIDの人)<br />
<a href="http://twitter.com/tohokuaiki">@tohokuaiki</a> (D3ブログの人)<br />
<a href="http://twitter.com/RyujiAMANO">@RyujiAMANO</a> (ryusの偉い人)
</p>]]>
</content>
</entry>
<entry>
<title>XOOPSモジュール開発を始める人のための4冊</title>
<link href="http://suin.asia/2011/06/02/4books_for_new_xoops_module_developers"/>
<summary>&lt;p&gt;これからXOOPS Cubeのモジュールを開発しようとしている方に、suinの主観で選んだ推薦図書を紹介します。&lt;/p&gt;


&lt;h3&gt;『XOOPS Cube Legacy デベロッパーズ・バイブル』&lt;/h3&gt;

&lt;p&gt;
&lt;a style=&quot;float:left; margin: 5px;&quot...</summary>
<published>2011-06-02T11:49:17Z</published>
<updated>2011-06-02T11:46:34Z</updated>
<id>http://suin.asia/2011/06/02/4books_for_new_xoops_module_developers</id>
<category term="XOOPS" label="XOOPS" scheme="http://suin.asia/tag/XOOPS" />
<category term="PHP" label="PHP" scheme="http://suin.asia/tag/PHP" />
<content type="html" xml:lang="ja" xml:base="http://suin.asia/tag/XOOPS">
<![CDATA[<p>これからXOOPS Cubeのモジュールを開発しようとしている方に、suinの主観で選んだ推薦図書を紹介します。</p>


<h3>『XOOPS Cube Legacy デベロッパーズ・バイブル』</h3>

<p>
<a style="float:left; margin: 5px;" href="http://www.amazon.co.jp/gp/product/4797340487/ref=as_li_qf_sp_asin_il?ie=UTF8&tag=suinyeze-22&linkCode=as2&camp=247&creative=1211&creativeASIN=4797340487"><img border="0" src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&Format=_SL160_&ASIN=4797340487&MarketPlace=JP&ID=AsinImage&WS=1&tag=suinyeze-22&ServiceVersion=20070822" ></a><img src="http://www.assoc-amazon.jp/e/ir?t=suinyeze-22&l=as2&o=9&a=4797340487" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
XOOPSで有名な<a href="http://marijuana.ddo.jp/">Marijuana</a>さん、<a href="http://petitoops.com/">しゃの</a>さんの著書です。XOOPS Cubeで実装された新機能、プリロード、デリゲートの利用方法、XOOPS Cube Legacyらしいモジュール開発手法、複製モジュールの開発方法などついて詳しく書いてあります。
</p>

<p style="clear:both;"></p>


<h3>『パーフェクトPHP』</h3>

<p><a style="float:left; margin: 5px;" href="http://www.amazon.co.jp/gp/product/4774144371/ref=as_li_qf_sp_asin_il?ie=UTF8&tag=suinyeze-22&linkCode=as2&camp=247&creative=1211&creativeASIN=4774144371"><img border="0" src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&Format=_SL160_&ASIN=4774144371&MarketPlace=JP&ID=AsinImage&WS=1&tag=suinyeze-22&ServiceVersion=20070822" ></a><img src="http://www.assoc-amazon.jp/e/ir?t=suinyeze-22&l=as2&o=9&a=4774144371" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
PHPを体系的に学びたい方にオススメです。PHPの概要にはじまり、初心者がつまずきやすいクラスやオブジェクトなど基礎的な部分はもちろん、フレームワークを使った最近の実践的な開発手法、そして忘れてはいけないセキュリティにいたるまで、網羅的に学ぶことができます。最近出たばかりの本なので、最新情報にも詳しいです。著者もPHP業界で非常に活発な方たちである、<a href="http://twitter.com/sotarok">sotarok</a>さん、<a href="http://twitter.com/fivestr">fivestr</a>さん、そしてXOOPS業界でも有名な<a href="http://twitter.com/gusagi">gusagi</a>さんによって書かれています。
</p>

<p style="clear:both;"></p>

<h3>『PHP ポケットリファレンス』</h3>

<p>
<a style="float:left; margin: 5px;" href="http://www.amazon.co.jp/gp/product/4774125024/ref=as_li_qf_sp_asin_il?ie=UTF8&tag=suinyeze-22&linkCode=as2&camp=247&creative=1211&creativeASIN=4774125024"><img border="0" src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&Format=_SL160_&ASIN=4774125024&MarketPlace=JP&ID=AsinImage&WS=1&tag=suinyeze-22&ServiceVersion=20070822" ></a><img src="http://www.assoc-amazon.jp/e/ir?t=suinyeze-22&l=as2&o=9&a=4774125024" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
やりたいことからPHPの関数を探すのに便利です。たとえば、「ファイル全体を安全に読み込みたい」というやりたいことから、関数を調べることができます。PHPのオンラインのマニュアルだとどうも分かりにくいという方にも、この本は簡潔にエッセンスだけを提示しているのでおすすめです。私も、この本はボロボロになるまで使いました。
</p>

<p style="clear:both;"></p>

<h3>『PHPサイバーテロの技法―攻撃と防御の実際』</h3>

<p>
<a style="float:left; margin: 5px;" href="http://www.amazon.co.jp/gp/product/4883374718/ref=as_li_qf_sp_asin_il?ie=UTF8&tag=suinyeze-22&linkCode=as2&camp=247&creative=1211&creativeASIN=4883374718"><img border="0" src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&Format=_SL160_&ASIN=4883374718&MarketPlace=JP&ID=AsinImage&WS=1&tag=suinyeze-22&ServiceVersion=20070822" ></a><img src="http://www.assoc-amazon.jp/e/ir?t=suinyeze-22&l=as2&o=9&a=4883374718" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
XOOPSのモジュールは公開されてしまえば、常に攻撃の脅威にさらされることになります。モジュール開発者はそうした攻撃に強く脆弱性のないPHPの書き方についてよく知っておく必要があります。この本は、クラッカーがどのような攻撃をしてくるか説明した上で、その防御策を説明しているので理解しやすい内容になっています。著者はこれまたXOOPS業界で有名な<a href="http://xoops.peak.ne.jp/">GIJOE</a>さんです。XOOPSってほんとにPHP業界でも著名な人が多いですね。
</p>

<p style="clear:both;"></p>]]>
</content>
</entry>
<entry>
<title>あなたのXOOPSを超高速にする16のTips</title>
<link href="http://suin.asia/2011/05/29/16tips_to_speed_up_xoops"/>
<summary>2011年5月28日、マイクロソフト本社で開催されたXOOPS Cube サタデーラボで発表してきました。テーマは「あなたのXOOPSを超高速にする16のTips」だったのですが、おそらくメモをとれなかった人</summary>
<published>2011-05-29T14:34:10Z</published>
<updated>2011-05-29T14:25:57Z</updated>
<id>http://suin.asia/2011/05/29/16tips_to_speed_up_xoops</id>
<category term="XOOPS" label="XOOPS" scheme="http://suin.asia/tag/XOOPS" />
<category term="サタラボ" label="サタラボ" scheme="http://suin.asia/tag/%E3%82%B5%E3%82%BF%E3%83%A9%E3%83%9C" />
<content type="html" xml:lang="ja" xml:base="http://suin.asia/tag/XOOPS">
<![CDATA[<p>2011年5月28日、マイクロソフト本社で開催されたXOOPS Cube サタデーラボで発表してきました。テーマは「あなたのXOOPSを超高速にする16のTips」だったのですが、おそらくメモをとれなかった人もいると思うので、発表スライドと草稿時点のアウトラインをダダ漏れしておきます。</p>

<h3>発表スライド</h3>

<a href="http://dl.dropbox.com/u/949822/SaturdayLabo/20110528.pdf">20110528.pdf</a>

<h3>データベース (DBとのやりとりを減らす)</h3>

<h4>1. インストールしているモジュールを減らそう</h4>

<li>モジュールは少ないほうが早い</li>
<li>メインメニューはモジュールの数だけ遅くなる</li>

<h4>2. メインメニューはマルチメニューに置き換えよう</h4>

<li>メインメニューは毎回すべてのモジュールを読み込みに行っている</li>

<h4>3. カスタムブロックはキャッシュを使おう</h4>

<li>更新されないブロックはキャッシュONに</li>
<li>サイトの概要、注意書き、ブログパーツ貼りつけ</li>
<li>1回目の表示でXOOPS_URL/cahce/*.cache.htmlができる</li>
<li>2回目からはcache.htmlを使う（内部のPHPは動かない)</li>
<li>キャッシュの一掃は、「キャッシュクリアブロック」を使おう</li>
<li>注意：管理者にはキャッシュが効きません</li>

<h4>4. テンプレート自動更新はOFFにしよう</h4>

<li>インスト直後ではOFFになっている</li>
<li>テーマやテンプレートを編集したことがある人はONになったままの可能性あり</li>
<li>ONになっていると、新しいテンプレートが無いか確認する処理が毎回走る</li>
<li>無駄</li>

<h4>5. 1ページあたりのブロックを減らそう</h4>

<li>トップページはブロックが多くなりがち</li>
<li>ブロックは少ないほうが早い</li>
<li>マジカルナンバー7±2</li>
<li>人が瞬時に記憶できる情報の最大数</li>

<h4>6. 軽いモジュールを使おう</h4>

<li>伝説の激重モジュールnewbb2があった</li>
<li>同じようなモジュールでも、負荷は異なる</li>
<li>入れてみて試す。</li>
<li>ユーザからは品質がなかなか分かりにくい。</li>

<h3>インフラストラクチャー (サーバ・ネットワークを最適化する)</h3>

<h4>7. ハイスペックなサーバを使おう</h4>

<li>もっとも単純</li>
<li>お金で解決^^</li>
<li>弊社の案件でも、サーバのグレードを上げたら快適になった経験</li>

<h4>8. OS・Apache・MySQL・PHPの設定を見なおそう</h4>

<li>OS: 不要なサービスの停止</li>
<li>Apache: 同時アクセス可能者の調整、KeepAlive</li>
<li>MySQL: キャッシュの活用やメモリリミットの調整</li>
<li>PHP: キャッシュの活用</li>
<li>共有サーバのユーザも多い、語りだすとキリがないので詳細は割愛</li>

<h4>9. gzipをONにしよう</h4>

<li>テキストを圧縮して送る機能</li>
<li>テキストが多いサイトにはいいかも</li>
<li>ただしCPU負荷は増</li>

<h4>10. ページ分割を使おう</h4>

<li>1ページの文字数が増えれば遅延も増す</li>
<li>bulletin, d3downloadsなど[breakpage]を活用しよう。</li>
<li>picoなどは別ページに分割できないか検討しよう。</li>
<li>d3forumでは表示トピックの件数が指定できる</li>

<h4>11. デフォルト表示件数は少なめに</h4>

<li>一覧ページのデフォルト表示件数は少なめにしよう。</li>

<h4>12. 外部サービスを検討しよう</h4>

<li>サーバの仕事をできるだけ減らす</li>
<li>画像：Flickr、Picasa、フォト蔵</li>
<li>動画：YouTube、ニコニコ動画</li>
<li>ダウンロードコンテンツ：Dropbox、P2P</li>
<li>メール専用サーバ</li>
<li>外部サービスが遅い場合、そこがボトルネックになるかも</li>


<h3>ブラウザ (ブラウザの負荷を減らす)</h3>

<h4>13. リダイレクト画面を改造しよう</h4>

<li>リダイレクト画面をやめるだけで、体感速度は約3秒早くなる</li>

<h4>14. ブログパーツには注意しよう</h4>

<li>ブログパーツは他のサーバにアクセスさせる物が多い</li>
<li>最近では複雑なJavaScriptを実行させるものも</li>
<li>他サーバへのアクセス増加、JavaScriptの実行はブラウザ上での遅延になる</li>

<h4>15. FCKエディターで大きい画像はサムネイルを用意しよう</h4>

<li>容量の大きい画像は、転送・表示するときに遅延に。</li>
<li>大きい原画をwith,heightで小さく見せるのではなく、サムネイル画像を作っておこう</li>

<h3>その他</h3>

<h4>16. 悪質なクローラを排除しよう</h4>

<li>中国からのクローラがサーバに短時間高頻度でアクセスしてくることがある</li>
<li>OSやApacheのIPアクセス拒否機能を使おう</li>]]>
</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/XOOPS">
<![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>5月28日(土) 第16回 XOOPS Cube サタデーラボ 開催</title>
<link href="http://suin.asia/2011/05/19/saturdaylabo_16"/>
<summary>第16回 XOOPS Cube サタデーラボは、5月28日(土曜) 13時より、マイクロソフト本社ビルにて行います。今回は、「週替わりでCMS業界の最新情報をお届けするUstream番組」&lt;a href=&quot;http://www.ustream.tv/channel/weeklycms&quot; target=&quot;_blank&quot;&gt;Week...</summary>
<published>2011-05-19T07:39:47Z</published>
<updated>2011-05-19T07:38:20Z</updated>
<id>http://suin.asia/2011/05/19/saturdaylabo_16</id>
<category term="XOOPS" label="XOOPS" scheme="http://suin.asia/tag/XOOPS" />
<category term="サタラボ" label="サタラボ" scheme="http://suin.asia/tag/%E3%82%B5%E3%82%BF%E3%83%A9%E3%83%9C" />
<category term="イベント" label="イベント" scheme="http://suin.asia/tag/%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88" />
<content type="html" xml:lang="ja" xml:base="http://suin.asia/tag/XOOPS">
<![CDATA[第16回 XOOPS Cube サタデーラボは、5月28日(土曜) 13時より、マイクロソフト本社ビルにて行います。今回は、「週替わりでCMS業界の最新情報をお届けするUstream番組」<a href="http://www.ustream.tv/channel/weeklycms" target="_blank">WeekyCMS</a>と共同開催することになりました！午前中にWeeklyCMS生放送、お昼をはさんで、午後からXOOPS Cube サタデーラボが開催されます。<br /><br /><b>■予定されている発表</b><br />●bluemoon様<br />XOOPS Groupware Project ( <a href="http://www.bluemooninc.jp/" target="_blank">http://www.bluemooninc.jp/</a> )<br />bluemoon様からは、「ソーシャルXOOPS」をキーワードに、XOOPS CubeでFacebookのようなルックアンドフィールを実現するに当たって、bluemoon様の取り組みについてお話いただきます。<br /><br />●奥谷 様<br />奥谷 様からは、「SEOを意識しカスタムしたtinyDseoについての紹介」、「私がXOOPSに関して自作で開発やカスタムした案件について紹介」についてお話いただきます。<br /><br />●野澤(suin)<br />RYUSの野澤からは、「あなたのXOOPSを超高速にする方法」について発表します。「重い」と言われているXOOPSですが、どのようにすれば軽いXOOPSに生まれ変わるのか、具体的な手法を紹介します。<br /><br />最新情報・参加申し込みは<a href="https://ryus.co.jp/modules/eguide/event.php?eid=22" target="_blank">こちら</a>から<br /><br /><br /><b>■XOOPS Cubeサタデーラボとは</b><br />XOOPS Cube サタデーラボは、XOOPSに関する勉強会＋懇親会（自由参加）です。勉強会ではXOOPSに関する発表を聞いたり、質疑応答の形の「発表形式」、持ち込んだパソコンで自分のサイトで困っていることやXOOPSにかんする色々な質問を行う「ワークショップ形式」などとしています。かっちりとしたセミナー、勉強会ではなくXOOPSに関わるあらゆる方が楽しめるような会です。<br /><br /><b>■会場</b><br />マイクロソフト本社ビル 30F 会議室( <a href="http://www.microsoft.com/japan/mscorp/branch/sgt.mspx" target="_blank">http://www.microsoft.com/japan/mscorp/branch/sgt.mspx</a> )<br />〒108-0075  東京都港区港南 2-16-3 品川グランドセントラルタワー<br /><br /><b>■受付開始12:30~12:55</b><br />・当日、2階で入館証をお渡ししますので、12:55までにお越しください。<br />・マイクロソフト本社ビルへの入構には入館証が必要となります。<br />・午前のWeeklyCMSで入館証をお受け取りになった方は、直接会場にお越しください。<br /><br /><b>■勉強会の部 13:00~15:00（参加無料）</b><br />・ミニセッションを3つほど行う予定です。<br /><br /><b>■懇親会の部 (懇親会費3~4000円を予定)</b><br />・勉強会の部終了後、2～3時間程度の予定です。<br />・WeeklyCMS懇親会と合同開催の予定<br />※懇親会費は当日受付でお支払いください。<br /><br /><b>■参加登録のお願い</b><br />・入館証を発行する必要があるため、5月25日までにお申し込みを完了していただきますようお願いいたします。<br /><br /><b>■Twitterハッシュタグ</b><br />XOOPS Cubeサタデーラボのハッシュタグは<a href="http://twitter.com/search?q=%23denatech#search?q=%23xcl_satlab" target="_blank">#xcl_satlab</a>になります。<br /><br /><b>■お願い</b><br />今後のサタデーラボで聞いてみたい発表・スピーカー、もしくは自分が発表してみたい等ありましたら、是非参加申し込み時にコメント欄に記入をお願いします。<br /><br /><br />最新情報・参加申し込みは<a href="https://ryus.co.jp/modules/eguide/event.php?eid=22" target="_blank">こちら</a>から]]>
</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/XOOPS">
<![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/XOOPS">
<![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>
</feed>
