img srcに入る画像URLの取得

2016年11月27日 at 13:48

ご覧いただきありがとうございます。

concrete5.7.5.9です。

concrete5.7に元々入っている「画像スライダー」のブロックを改造してオリジナルのブロックを作ろうとしています。
その中で私の知識では分からなくて困っていることがありまして、ご教授願えればと思い書き込みしました。

img srcに入る画像URLが、aタグのhrefの所にも自動で(同時に?)入るようにしたいのですがどう書けばいいのか分かりません。
ブロックを配置する際に、画像をアップロードした後画像のURLをコピーして、画像スライダーブロック上ではリンクを外部URLにしてそこに貼り付ければ出来ますが、そうではなくて画像を選択すれば自動的にその画像のURLへのリンクも入るようにしたいのです。


画像スライダーブロックのview.phpの中で、aタグやimg srcが出力されている箇所は分かりますが、a hrefの所をどう書き換えたらimg srcに入る画像URLも入るようにできるのでしょうか?

これが出来れば、クライアントに更新してもらう時にラクに更新していただけるようになるので何とかしたいのですが…

よろしくお願いいたします。

添付: 1.JPG
タグ: 画像, a, href, img, src, イメージ, スライダー

Re: img srcに入る画像URLの取得

2016年11月28日 at 20:26
スライダーview.php44行目付近の if(is_object($f)) { 内で
$imageSrc = $f->getURL();
として
href="<?php echo $imageSrc?>"
でどうでしょうか?

$imageSrc はなんでもいいです。
自分のわかりやすいものに変えてください。
 

Re: img srcに入る画像URLの取得

2016年11月29日 at 10:02
aki様ありがとうございます。

やってみましたがダメでした。。。
hrefは空で出力されます。
 

Re: img srcに入る画像URLの取得

2016年11月29日 at 12:21
全く未検証ですが、
view.phpの38〜52行目を

<?php
$f = File::getByID($row['fID'])
$fv = $f->getApprovedVersion();
?>

<?php if(is_object($f)) { ?>
<a href="<?php echo $fv->getURL(); ?>" class="mega-link-overlay"></a>
<?php } ?>

<?php if(is_object($f)) {
$tag = Core::make('html/image', array($f, false))->getTag();
if($row['title']) {
$tag->alt($row['title']);
}else{
$tag->alt("");
}
print $tag; ?>
<?php } ?>

と変更すれば、いけるような気がします。
と、なんとも頼りない感じで申し訳ないです。
 

Re: img srcに入る画像URLの取得

2016年11月29日 at 12:35
多摩勉強会/遠藤様
ありがとうございます。

やってみたところ、Dreamweaver上で「$fv = $f->getApprovedVersion();」の行がシンタックスエラーとなり、それを無視してブロック設置してみましたところ、「予期せぬエラーが発生しました。syntax error, unexpected '$fv' (T_VARIABLE)」となってしまいます。。。
 

Re: img srcに入る画像URLの取得

2016年11月29日 at 13:05
済みません!
その前の行の行末に
;
が足りてませんね。
付け加えて下さい。
 

Re: img srcに入る画像URLの取得

2016年11月29日 at 13:16
多摩勉強会/遠藤様

わ~!出来ました!!
ありがとうございます!
これで…
オリジナルブロックの幅が広がります♪

本当にありがとうございました。
 

Re: img srcに入る画像URLの取得

2016年11月29日 at 13:57
多分、作成されているのは、カスタムテンプレートに成ると思いますが、
動いて良かったです。

http://documentation.concrete5.org/api/index.html

など眺めていると、楽しいと思います。
 

Re: img srcに入る画像URLの取得

2016年12月2日 at 15:33
ありがとうございます!
ゆっくり見てみます♪