スライドショー終了後にリダイレクト

2012年11月14日 at 21:10

5枚ほどの写真から成るスライドショーが終わったタイミングで自動的に次のページにリダイレクトしたいとの要望をお客さんからいただきましたが、そのようなことは可能でしょうか。
どなたかよい考えがありましたらご教示いただけると幸いです。
よろしくお願いいたします。

タグ:

Re: スライドショー終了後にリダイレクト

2012年11月14日 at 21:35
試してないので推測です。

スライドショーブロックのカスタムテンプレートで対応できるのではないかと思います。

view.php の 35行目

if(this.imgNum>=this.imgInfos.length) this.imgNum=0;

このあたりを加工すれば出来るんじゃないでしょうか?
 

Re: スライドショー終了後にリダイレクト

2012年11月14日 at 22:54
早速ありがとうございます。
ただ、プログラミングがわからないので、その行をどのように変更すれば良いのか見当がつきません。大変恐縮ですがアドバイスいただけると幸いです。

素人考えで想像するに、この部分を変更するとサイト中すべてのスライドショーに影響を及ぼすということになるのだと思いますが、そうなるとそれはまた問題です。
よろしくお願いいたします。
 

Re: スライドショー終了後にリダイレクト

2012年11月15日 at 13:38
かなり力技ですが、これでどうでしょう?

if(this.imgNum>=this.imgInfos.length) location.href = 'http://xxx.com/xxx/xxx’;

http://xxx.com/xxx/xxx

の部分にリダイレクト先のURLを入れる。たしかページを指定する簡単なものがあったような気がしますが、これでもいけると思います。

>この部分を変更するとサイト中すべてのスライドショーに影響を及ぼす

カスタムテンプレートにすれば影響はないです。

/concrete/blocks/slideshow/view.php

/blocks/slideshow/templates/custom.php
にコピーして上記の変更をしてみてください。

僕はプロでないので、よく分かってないかもしれません。他にいい方法があるかもしれないので参考程度に思っていただければ。。。。
 

Re: スライドショー終了後にリダイレクト

2012年11月16日 at 22:12
ありがとうございます。試してみます。
今後ともよろしくお願いいたします。
 

Re: スライドショー終了後にリダイレクト

2012年11月21日 at 8:23
ご提案の方法を試してみました。
確かにスライドショーが終わると、指定したページに転送されるのですが、スライドショー自体のレイアウトが崩れてしまいます。(画像が同位置で入れ替わらずに、一枚一枚が上から下に並んでスライドが映し出される。つまり2枚目の画像がでているときは一枚目の位置が空白になるという状態です。)
block からこのカスタムテンプレートを消去したらレイアウトが正常に戻りました。
何かいい方法はあるでしょうか。
ご助言頂けると幸いです。
 

Re: Re: スライドショー終了後にリダイレクト

2012年11月21日 at 9:42
スライドショーのレイアウトが崩れてしまう原因と解決策をご本家のフォーラムで見つけました。
http://www.concrete5.org/community/forums/usage/slideshow-block-display-issue/#102862

ここにはstyle.css をコピーするように書かれていますが、view.css しかないのでそれをコピーしたらうまくいきました。これでお客さんのご要望にお応えできます。ご協力ありがとうございました。
今後ともよろしくお願いいたします。
 

Re: スライドショー終了後にリダイレクト

2012年11月21日 at 9:46
テストせず書き込みしましたのですみませんでした。

/blocks/slideshow/templates/
に custom というフォルダを作る(フォルダ名は任意です。わかりやすいものにしてください)
作成したcustom フォルダに
/concrete/blocks/slideshow フォルダ内の view.php と view.css を コピーしてください。(ファイル名の変更はなしです。)
そして、view.php を変更します。
これでどうでしょうか?

編集中でもリダイレクトしそうなので isEditMode() で 編集中かどうか判定する必要があるかもしれません。