Concrete5 показывает fancybox из набора файлов при нажатии на ссылку?

Я не знаю точно, с чего начать отображать файлы из набора файлов, чтобы показывать галерею fancybox по клику. Я хотел бы, чтобы галерея открывалась по ссылке. При щелчке покажите галерею, также называемую изображениями, которые имеют один и тот же rel, но настроены на отображение: нет (легко управляется моим css). Я могу сделать это, выбрав одно изображение, но не знаю, как передать изображения из набора файлов в представление (я предполагаю, что мне нужно создать какую-то функцию в моем контроллере, чтобы получить fsID, просто не знаю, как) . Мне просто нужно, чтобы первое изображение отображалось на странице (миниатюра), затем щелкните ссылку, и она покажет больше полноразмерных изображений.

В принципе, если вы знаете Concrete5, я бы хотел, чтобы он был похож на блок изображений, за исключением того, что администратор может выбрать набор файлов вместо одного изображения.

вот мой вид.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>";
}

мой контроллер.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>';

Любая помощь очень ценится.


person user2066695    schedule 27.02.2013    source источник
comment
Я обновил свой view.php   -  person user2066695    schedule 27.02.2013


Ответы (2)


Ну две вещи:

  • Вы должны установить атрибут class="fancybox-thumb" И rel для тега <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, и это важно.

person JFK    schedule 27.02.2013
comment
Ммм, да, я пропустил эти мелкие детали, пока я был сосредоточен на том, как заставить изображения отображаться в первую очередь. Спасибо за указатели! - person user2066695; 27.02.2013

У меня есть код, который обрабатывает всю внутреннюю (добавить/редактировать/контроллер) часть этого уравнения: https://github.com/jordanlev/c5_designer_gallery

Вот учебник, который объясняет, как его использовать (на примере FlexSlider, но если вы знаете, как работает Fancybox, вам не составит труда понять, что происходит): http://c5blog.jordanlev.com/blog/2011/12/build-a-slideshow-block/

person Jordan Lev    schedule 07.03.2013