スタッフブログ

  • カテゴリ プリロード の最新配信
  • RSS

XOOPS Cubeのテーマでトップページ判定するためのPreload

Ryuji : XOOPS » プリロード 2013/4/18 14:54

Blogger's Avatar

まだtheme.html内で一発でサクッとトップページへのアクセスかを判定する方法が
なかったようなのでちょっとpreloadファイルをつくってみました。

下記コードをhtml/preload/IsToppage.class.phpとして保存します。
<?php
class IsToppage extends XCube_ActionFilter
{
    protected $isTop = false;
    public function preBlockFilter()
    {
        $this->mController->mRoot->mDelegateManager->add("Legacypage.Top.Access", array(&$this, 'topAccess'));
    }

    public function topAccess()
    {
        $this->isTop = true;
        $GLOBALS['xoopsTpl']->assign('xoops_is_top', $this->isTop);
    }
}
これだけで、theme.htmlで下記のようにトップページ判定ができるようになります。
<{if $xoops_is_top }>
トップページだよ!
<{else}>
トップページじゃないねっ
<{/if}>

Facebookいいね!などのソーシャルボタン設定を簡単に行う

mik : XOOPS » プリロード 2012/9/10 15:03

Blogger's Avatar

Facebookのいいねを始め、twitterやgoogle+のソーシャルボタンを自動的に設定できるプリロードを suinさん が発表しました。大変便利だと思いますのでご紹介します。

ソーシャルボタン全部入りプリロード
https://github.com/suin/xoopscube-preloads/tree/master/TotalSocialButtons


ダウンロードする

上記のページにある

TotalSocialButtons.class.php

という文字リンクをクリックしてページを移動します。

そして「Raw」ボタンを右クリック(Windowsの場合)して「名前を付けてリンク先を保存」でPCにファイルを保存します。






プリロードファイルを設置する

保存したファイルを使いたいXOOPSのルート直下にある preload フォルダに置きます。

theme.htmlを修正する


利用中のthemeフォルダにあるtheme.htmlを修正します。修正箇所は2カ所あります。

1.ボタンを挿入

theme.htmlでソーシャルボタンを挿入したい箇所に

<{xoops_explaceholder control="TotalSocialButton"}>

と書きます


2.ソーシャルボタンに関連するjavascriptを挿入

順番が大事なのでかならず theme.html の の直前に下記のタグを書きます。

<{xoops_explaceholder control="TotalSocialButton.JavaScript"}> </body>


Facebookボタン、twitterボタン、google+を設置する例


全部のボタンを出すのではなく、いくつかのボタンを出す例を書きます。

まずFacebookボタンを使うには開発者登録をしてAPPキーを作成する必要があります。簡単にできますので、

https://github.com/suin/xoopscube-preloads/tree/master/TotalSocialButtons

を参照して、キーを取得してください。

使いたいボタンだけを

<{xoops_explaceholder control="TotalSocialButton" use="facebook-like twitter google-plus" fb_app_id="ここには取得したキーをいれます"}>

のように指定します。すると、以下のように選んだキーだけが表示されるようになります。

↓これは画像となります。このページのいいねボタンはこのページのずっと下の方にあります!よろしければポチッとお願いします♪

モジュールを一括アップデートしてくれる超便利なプリロード:RapidModuleUpdate

suin : XOOPS » プリロード 2011/3/1 12:49

Blogger's Avatar

XOOPS Cubeにありそうでなかった機能の一つが、「モジュール一括アップデート」機能です。 モジュールのアップデートを行うとなると、個々のモジュールのアップデートページで ひとつひとつ対応していくことになります。 決まった作業なのに、手作業とは手間ですね。 そこで、モジュールアップデート作業を自動で処理できるようなプラグイン(プリロード)を作りました。

RapidModuleUpdateは、モジュール一括アップデート機能をモジュール管理に追加するプラグイン(プリロード)です。 まずは、そのでも動画をごらんください。30秒で終わります。

このように、RapidModuleUpdateは複数のモジュールアップデート作業を自動化し、なんとも手間いらずです。

インストールの方法も簡単です。FTPでRapidModuleUpdate.class.phpを/preloadフォルダに置くだけで完了です。 あとは、管理者権限でログインして、「モジュール管理」を開いてみてください。 上の動画にあったような一括アップデートのチェックボックスが出ているはずです。

RapidModuleUpdateダウンロード

互換モジュールのメニューに「プリファレンス」をすべて出すプリロード

suin : XOOPS » プリロード 2010/9/30 18:47

Blogger's Avatar

互換モジュールのメニューに「プリファレンス」をすべて出すプリロード

XOOPS Cube Legacyの互換モジュールでは、
以下のプリファレンスがメニューに表示されません。

・禁止用語設定
・検索オプション
・メール設定

XOOPS2のころは、上のプリファレンスもメニューに表示されていたはずなのですが…。

XOOPS2に慣れていると、XOOPS Cube Legacyの「XOOPSコンフィグ」が目に入ってこないものです。

そこで、XOOPS2っぽいメニュー表示をするプリロードを作ってみました。

使い方

こちらからプリロードを入手します。
・Xoops2StyleMenu.class.phpをpreloadフォルダに入れます。
・管理権限でログインするとメニューの表示が変わっています。

Before After

XOOPS Cubeのメール送信を拡張する。preload "RyusExmailString"

Ryuji : XOOPS » プリロード 2009/5/13 15:43

Blogger's Avatar

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 オフィシャルサイト日本語フォーラムに要望だしておいたので、もし採用されれば使えるようになります。(もちろん自力で直してしまっても使えるようになります)

スタッフブログ最新
カテゴリ一覧

〒104-0061 東京都中央区銀座1丁目3番3号 G1ビル7階
お問い合わせ TEL 03-3524-8860

Copyright(c) 2012 RYUS.All Rights Reserved.