0

クリック時にファンシーボックスギャラリーを表示するために、ファイルセットからファイルを表示し始める場所が正確にはわかりません。リンクからギャラリーを開いてもらいたいです。クリックすると、ギャラリーが表示されます。別名、rel は同じですが、display:none に設定されている画像です (CSS で簡単に制御できます)。1つの画像を選択することでそれを行うことができますが、ファイルセットからビューに画像を渡す方法がわかりません(コントローラーで何らかの関数を作成してfsIDを取得する必要があると想定していますが、方法がわかりません) . ページに表示する最初の画像 (サムネイル画像) が必要なだけで、リンクをクリックすると、さらにフルサイズの画像が表示されます。

基本的に、Concrete5 を知っている場合は、管理者が 1 つの画像ではなくファイルセットを選択できることを除いて、画像ブロックのようにしてほしいと思います。

ここに私のview.phpがあります

$picture = $this->controller->getPicture();
if ($picture) {
    $bigPicture = $image->getThumbnail($picture,600,600)->src;
    $smallPicture = $image->getThumbnail($picture,200,200)->src;

    echo "<img src=" . $smallPicture . " alt=" . $imageTitle . " title=" . $imageTitle . "/>";//thumbnail picture
echo "<div id=\"image-modal\">";
echo "<a href=" . $bigPicture . " class=\"fancybox-thumb\" rel=" . $title . " title=" . $imageTitle . ">{$linkText}</a>";//open fancybox from link
echo "<div class=\"hiddenGallery\"  style=\"display:none;\">";//hidden images
    echo "<a href=\"images/pattern/t-103-n.jpg\" class=\"fancybox-thumb\" rel=" . $title . " title=" . $imageTitle . ">";
echo "<img src=\"images/pattern/t-103-n.jpg\" class=\"fancybox-thumb\" />";
echo "</a>";
    echo "</div>";
echo "</div>";
}

私のcontroller.php

function getPicture() {
        if ($this->fIDpicture > 0) {
            return File::getByID($this->fIDpicture);
        }
        return null;
    }

私のadd.php

$al = Loader::helper('concrete/asset_library');
echo $al->image('ccm-b-image', 'fIDpicture', t('Choose File'),
    $this->controller->getPicture());
echo '</div>';

どんな助けでも大歓迎です。

4

2 に答える 2

0

さて、2つのこと:

  • class="fancybox-thumb"タグではなく、タグにANDrel属性を設定する必要があります<a>!! <img />
  • ギャラリーの残りの要素を非表示にする場合は、display: none;それぞれに css プロパティを設定せず、次の<div>ような非表示のコンテナーにラップします。

    <div style="display: none;">
      <a class="fancybox-thumb" rel="gallery" href="images/02.jpg"></a>
      <a class="fancybox-thumb" rel="gallery" href="images/03.jpg"></a>
      <a class="fancybox-thumb" rel="gallery" href="images/04.jpg"></a>
      ... etc
    </div>
    

私はレンダリングされたhtmlを使用しています。これが重要です。

于 2013-02-27T05:52:07.930 に答える
0

この方程式のバックエンド (追加/編集/コントローラー) 部分全体を処理するコードがいくつかあります: https://github.com/jordanlev/c5_designer_gallery

これを使用する方法を説明するチュートリアルを次に示します (FlexSlider の例を使用しますが、Fancybox の仕組みを知っていれば、何が起こっているのかを理解するのは難しくありません): http://c5blog.jordanlev.com/blog/ 2011/12/build-a-slideshow-block/

于 2013-03-07T15:53:01.297 に答える