XOOPS Cubeにありそうでなかった機能の一つが、「モジュール一括アップデート」機能です。
モジュールのアップデートを行うとなると、個々のモジュールのアップデートページで ひとつひとつ対応していくことになります。
決まった作業なのに、手作業とは手間ですね。
そこで、モジュールアップデート作業を自動で処理できるようなプラグイン(プリロード)を作りました。
RapidModuleUpdateは、モジュール一括アップデート機能をモジュール管理に追加するプラグイン(プリロード)です。
まずは、そのでも動画をごらんください。30秒で終わります。
このように、RapidModuleUpdateは複数のモジュールアップデート作業を自動化し、なんとも手間いらずです。
インストールの方法も簡単です。FTPでRapidModuleUpdate.class.phpを/preloadフォルダに置くだけで完了です。
あとは、管理者権限でログインして、「モジュール管理」を開いてみてください。
上の動画にあったような一括アップデートのチェックボックスが出ているはずです。
RapidModuleUpdateダウンロード
互換モジュールのメニューに「プリファレンス」をすべて出すプリロード
XOOPS Cube Legacyの互換モジュールでは、
以下のプリファレンスがメニューに表示されません。
・禁止用語設定
・検索オプション
・メール設定
XOOPS2のころは、上のプリファレンスもメニューに表示されていたはずなのですが…。
XOOPS2に慣れていると、XOOPS Cube Legacyの「XOOPSコンフィグ」が目に入ってこないものです。
そこで、XOOPS2っぽいメニュー表示をするプリロードを作ってみました。
使い方
・
こちらからプリロードを入手します。
・Xoops2StyleMenu.class.phpをpreloadフォルダに入れます。
・管理権限でログインするとメニューの表示が変わっています。
Before |
After |
|
|
XOOPS Cube Legacyのユーザモジュールにメール一括配信をする「メールジョブ管理」というメニューがあります。
このメールジョブ管理からメール(PM送信も可能)を送るときに、本文に特殊な記述をすることで、送信先ユーザのアカウント名やメールアドレスなどを本文にうめこむことが可能です。
現在(XOOPS Cube Legacy 2.1.6a)で使えるようになってるのは下記の3つです。
タグ | 説明 |
{X_UID} | 送信先ユーザのユーザID |
{X_UNAME} | 送信先ユーザのユーザ名(アカウント名) |
{X_UEMAIL} | 送信先ユーザのメールアドレス |
もし他にも一括配信メールにいろいろ埋め込みたい場合は、preloadでこれを拡張できるようになっています。
というわけで、埋め込みタグを拡張するpreloadのサンプルを作ってみました。
・RyusExmailString
サンプルで追加したタグは次の2つです
タグ | 説明 |
{X_NAME} | 送信先ユーザの「本名(記入されてなければユーザ名)」 |
{X_TODAY} | 今日の日付 |
このファイル内で実際に置き換えを実行しているのは、下記の部分になりますので、ここをお好みにあわせて変更していただければ、いくらでも好きなタグを定義できます。
/**
*
* @param $t_body string メール本文
* @param $to_user XoopsUser 送り先
* @param $from_user XoopsUser 送信者
* @return void
*/
function _replace(& $string, &$to_user, &$from_user)
{
/*
* ここに置き換えを追加すれば、本文もタイトルでも置き換えタグを拡張できます。
*/
$to_user_name = $to_user->get('name');
$to_user_name = empty($to_user_name) ? $to_user->get('uname') : $to_user_name;
$string = str_replace('{X_NAME}', $to_user_name, $string);
$string = str_replace('{X_TODAY}', formatTimestamp(time(), 's', $to_user->get('timezone_offset')), $string);
}
メールの件名も置き換えたかったんですが、こちらはXOOPS Cube Legacy2.1.6aでは、デリゲートの宣言はあったのですが、実際には呼び出されてなかったため機能しませんでした。
XOOPS Cube オフィシャルサイト日本語フォーラムに要望だしておいたので、もし採用されれば使えるようになります。(もちろん自力で直してしまっても使えるようになります)