引き続き、XOOPS Cube Legacy 2.2 ベースでのお話。サーバー環境のせいか、d3downloads 1.47 を利用している時に、以下のような問題が発生していた。
既に d3downloads の更新は停滞しているようなので、自力で何とかしてみることにした。
スポンサードリンク
激しく久しぶりの更新ですが、今回は手がけている XOOPS を利用したWebサイトで使ったハックを少し。
Weblinks というモジュールにはいくつかの連携機能があり、その中の一つに Webphoto モジュールを呼び出して、画像アルバムからサムネイル画像を引っ張ってきて表示できるという機能があります。
これはとても便利でいい感じなのですが、そのサムネイル画像をクリックすると Webphoto モジュール内の各画像ページに飛んでしまう仕様となっています。私の希望としては、ページ遷移なしでサムネイルをクリックすると画像が拡大するようにしたかったので、その部分を書き換えてみました。
スポンサードリンク
ドメインキング から、XOOPS Cube Legacy で作成していたサイトを さくらのVPS に移したのだが、モジュールインストール時に以下のようなエラーが出てインストールできなくなってしまった。
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘TYPE=MyISAM’ at line XXX
どうやらMySQL 5.5系では ‘TYPE=MyISAM’ 指定が無効になっており、’ENGINE=MyISAM’ とSQL文を書いてやらないとダメな模様。このサーバーではremiレポジトリからPHP 5.3系・MySQL 5.5系がインストールされているため、既にインストールされていたモジュールは問題なかったものの、モジュールの新規インストールで問題が出たようだ。
その後、いくつかのモジュールのSQLを確認したが、確認した限りのモジュール全てで ‘TYPE=MyISAM’ が使われていたため、全部置換するのも面倒だなーと思っていたら、XOOPS Cubeの公式フォーラムに投稿されていた以下のハックで解決。
class/database/sqlutility.php
の
function splitMySqlFile(&$ret, $sql)
{
直下に、以下の行を挿入。
$sql = str_replace( 'TYPE=MyISAM', 'ENGINE=MyISAM', $sql );
これでモジュールのインストールができるようになった。