昨日のエントリーでBlogPetリニューアルに伴うスクリプトの変更点を記事にしましたが、POCユーザに対応した変更により無料版BlogPetで広告が表示されなくなります。嬉しい副作用だったのですが、規約違反という話が…。
以前のように同じFlashファイルでもID見て広告の表示/非表示を切り替わればよいと思うのですが、というかできてしまうのはどうでしょう?
しかし、LiteBox(LightBox後継版)での問題の回避が本筋なので規約違反は本意ではありません。
POCユーザとそれ以外のユーザで広告の表示/非表示のFlashファイルを切り替えるようにスクリプトを変更しました。
1. スクリプトの先頭付近の修正
「1匹目のID」がPOCユーザで「それ以外」がPOCでない場合の例です。idpoc配列変数の"p"としたものがPOCユーザのIDになります。配列変数idarrayの並びと順序を合わせて下さい。
<変更前>
var idarray = new Array("1匹目のID", "2匹目のID", "3匹目のID", "4匹目のID", "5匹目のID");
var interval = 60000;
以下、省略
<変更後>
var idarray = new Array("1匹目のID", "2匹目のID", "3匹目のID", "4匹目のID", "5匹目のID");
var idpoc = new Array("p","n","n","n","n");
var interval = 60000;
以下、省略
2. スクリプトの最終付近の修正
赤文字部分が追加部分。青文字部分は「LiteBoxでの問題」を対応した部分です。
<変更前>
function show_pet()
{
var id = idarray[num];
oldnum = num;
pethtml = "<object id='usa' classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0' width='130' height='320' align='middle'><param name='allowScriptAccess' value='sameDomain' /><param name='movie' value='http://www.blogpet.net/usan.swf' /><param name='play' value='true' /><param name='loop' value='false' /><param name='menu' value='false' /><param name='quality' value='high' /><param name='FlashVars' value='username=" + id + "&blogpet_domain=www.blogpet.net/&selfurl="+encodeURIComponent(document.URL)+"' /><embed src='http://www.blogpet.net/usan.swf' loop='false' menu='false' quality='high' bgcolor='#ffffff' width='130' height='320' name='usa' align='middle' allowScriptAccess='sameDomain' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' FlashVars='username=" + id + "&blogpet_domain=www.blogpet.net/&selfurl="+encodeURIComponent(document.URL)+"' /></object>\n";
以下、省略
<変更後>
function show_pet()
{
var id = idarray[num];
var poc = (idpoc[num]=='p'?'p':'n');
var height = (idpoc[num]=='p'?'220':'320');
oldnum = num;
pethtml = "<object id='usa' classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0' width='130' height=" + height + " align='middle'><param name='allowScriptAccess' value='sameDomain' /><param name='movie' value='http://www.blogpet.net/usa" + poc + ".swf' /><param name='play' value='true' /><param name='loop' value='false' /><param name='menu' value='false' /><param name='quality' value='high' /><param name='FlashVars' value='username=" + id + "&blogpet_domain=www.blogpet.net/&selfurl="+encodeURIComponent(document.URL)+"' /><param name='wmode' value='transparent' /><embed src='http://www.blogpet.net/usa" + poc + ".swf' loop='false' menu='false' quality='high' bgcolor='#ffffff' width='130' height=" + height + " name='usa' align='middle' allowScriptAccess='sameDomain' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' FlashVars='username=" + id + "&blogpet_domain=www.blogpet.net/&selfurl="+encodeURIComponent(document.URL)+"' wmode='transparent' /></object>\n";
以下、省略
※スクリプトの変更については自己責任でお願い致します。本変更について、BlogPetサポートやスクリプトのオリジナル作成者“壱”さまに問合せ等を絶対にしないようによろしくお願い致します。
【追記 2007/8/22】
2007年7月12日のBlogPet大幅リニューアルにより上記の方法は使えなくなりました。