Help us understand the problem. What is going on with this article?

XOOPSのカスタムブロックを作ってみよう!!

More than 5 years have passed since last update.

=====





さて、皆さん。 今日がなんの日か知ってますでしょうか? そう、マネーデーですね!

そういうわけでマネーデーらしくカスタムブロックを作ってみました。

どんなカスタムブロック?

マネーデー + Webサイトで思い付くものといったら、やっぱりAmazonギフトカードですよね。
貰ってうれしいAmazonギフトカード。しかも簡単に人にプレゼントできる。となったらこれで何か作るしかないですよね。
そんなわけで、サイト管理者にAmazonギフトカードをちょこっとだけ簡単に贈れるようになるカスタムブロックを作ってみました。

カスタムブロック用のプログラムを書く

XOOPSの管理画面から直接ブロックを作成するのは、皆が大好きなVimも使えないし、ちょっとテストしたい時とかに面倒なので、1つフォルダを作ってそこにブロックのプログラムを書いていきます。

まず、作業する為のフォルダとして、XOOPS_ROOT_PATHにblocksというフォルダを作ります。
フォルダ作成

blocksフォルダを作ったら、その中にadvent_day14.phpという名前でファイルを作って、以下のコードをコピペ。

advent_day14.php
<?php

if ( !defined('XOOPS_ROOT_PATH') ) require dirname(dirname(__FILE__)).'/mainfile.php'; // おまじない

$amazon_url = "https://www.amazon.co.jp/gp/gc/order/ref=gc_dp_conv_order?ie=UTF8&casin=BT00DHI8GO&design=a_amazon_09&type=Email";

global $xoopsConfig;
$adminmail = $xoopsConfig['adminmail'];

?>

<a href="<?php echo $amazon_url ?>" onclick="contribute();">管理者にカンパする!</a>

<script type="text/javascript">
function contribute() {
  // IEの場合直接コピーさせる
  if (window.clipboardData && window.clipboardData.setData("Text", "<?php echo $adminmail ?>")) {
    return;
  }

  window.prompt("下のメールアドレスをコピーしてからOKを押して下さい", "<?php echo $adminmail ?>");
}
</script>

コピペして保存できたら、実際にちゃんと動いているか確認しましょう。
以下のように、自分のXOOPSサイトのURLに、/blocks/advent_day14.phpでアクセスして画像と同じようなものが表示されていればOK!
動作チェック

カスタムブロックの作成

ここまでできたらもう終わったも同然ですね。後は実際にXOOPSでカスタムブロックを追加して、さっき書いたadvent_day14.phpを表示させるだけ。

XOOPSの管理画面からカスタムブロックの追加にいって、画像のように設定してあげましょう。
カスタムブロック作成

まあ、自分で自分にかんぱとか必要ないので、確認が終わったらサイト管理者の権限は外しちゃっても良いかもしれませんね。
ちなみに、画像内のコードはこんな感じ。

$file = 'advent_day14.php'; // 作ったファイル名

// 以下おまじない

$path = XOOPS_ROOT_PATH . '/blocks/' . $file; // ファイルの場所を指定

if ( file_exists($path) ) require $path; // ファイルが存在すれば読み込む

デモ

ここのサイトでアドベントカレンダーの期間中は動作確認できます。ギフトカードプレゼントする所までやってみても良いんですよ。

最後に

ちなみに、このブロックの開発手法はXOOPS界で超有名らしい@suinさんの「PHPカスタムブロックの超!賢い作り方 - 株式会社RYUS」を参考にしながら作成しました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした