Recenzje

ImageBrowser


ImageBrowser

Pracując nie dawno nad pewnym projektem dla klienta, byłem zmuszony znaleźć dość specyficzne rozwiązanie dotyczące zarządzania obrazkami, galeriami zdjęć.

Komponent, którego szukałem, musiał dawać możliwość łatwego i szybkiego zaimportowania dużej ilości zdjęć, o określonej, złożonej, wielopoziomowej strukturze. Dodatkowo, musiał dawać możliwość zarówno automatycznego tworzenia miniatur, ale również ręcznego wgywania wcześniej przygotowanych miniatur. Wyświetlanie zdjęć miało się odbywać poprzez standardowy już chyba popup AJAX-owy, wykorzystujący bibliotekę MooTools (albo chociaż kompatybilny). Dodatkowo, każde zdjęcie powinno posiadać możliwość edycji podpisu, który jest wyświetlany pod zdjęciem wewnątrz popupa.

Próbowałem zaadaptować do tego celu kilka rozszerzeń z którymi już pracowałem wcześniej t.j. MorfeoShow czy Simple Image Gallery, niestety bezskutecznie. Zawsze co najmniej jeden wymóg pozostawał niespełniony.

Rozwiązaniem idealnym okazał się komponent ImageBrowser. Pierwsza jego zaleta to niekorzystanie z bazy danych. Struktura zdjęć/galerii jest odwzorowywana w strukturze katalogowej na serwerze, a to oznacza, że wystarczy wgrać zdjęcia na serwer do odpowiedniego katalogu bazowego, a będziemy je widzieli w zapleczu administracyjnym komponentu. Druga zaleta, to automatyczne tworzenie miniatur, oczywiście z ustawianym maksymalnym rozmiarem. Miniatury mają takie same nazwy jak pliki zdjęć, nie ma dodawania dziwacznych przedrostków. To z kolei, pozwala na łatwy upload własnych miniatur. No i jedna z ważniejszych rzeczy – każde zdjęcie posiada edytowalny podpis (podpis jest przechowywany w pliku tekstowym o takiej samej nazwie jak zdjęcie). Tu pojawił się pierwszy mały problem – do edycji podpisu służy zwykłe pole tekstowe, a klient chciał umieszczać w podpisie linki, musiałem więc wykonać drobną modyfikację, aby podpis można była edytować edytorkiem WYSIWYG.

Praca z komponentem była prawdziwą przyjemnością. Polecam go wszystkim, niekoniecznie do tak specyficznych zastosowań. Ten komponent jest na tyle prosty a jednocześnie elastyczny, że na pewno sam będę go wykorzystywał jeszcze w różnych sytuacjach.

Poniżej załączam zmodyfikowaną przeze mnie wersję komponentu, zawiera polskie tłumaczenie i edytor WYSIWYG w widoku edycji podpisu zdjęcia.

Tagi: , , ,

Podobne posty

Komentarzy: 24

  • 25-04-09 Piotr Sajnog napisał(a):

    Nie zamieściłeś chyba linka do zmodyfikowanej przez siebie wersji komponentu, a chętnie wypróbowałbym go u siebie.

  • 25-04-09 Jacek Kowalczyk napisał(a):

    O przepraszam, mój błąd. Już poprawiłem.

  • 25-04-09 Piotr Sajnog napisał(a):

    Dzięki :)

  • 09-07-09 Marylka napisał(a):

    Mnie nie działa to przejście między zdjęciami, jak klikne na zdjęcie to otwiera mi się nowa strona i tyle nie mogę dać na następne zdjęcie w tym oknie.

    Można to jakos ustawić…?

  • 09-07-09 Jacek Kowalczyk napisał(a):

    Jeżeli zdjęcie otwiera się w nowym oknie, a nie w popupie to zazwyczej jest to kwestia konfliktu bibliotek javascriptowych. Musisz sprawdzić czy przypadkiem jakiś moduł z którego korzystasz na stronie nie wczytuje JQuery albo czegoś innego. Najlepiej podaj link do strony wtedy zerknę i postaram się pomóc.

  • 09-07-09 Marylka napisał(a):

    adres stronki: http://www.karategoliat.pl

  • 09-07-09 Jacek Kowalczyk napisał(a):

    Nie widzę na tej stronie użytego ImageBrowser. Podaj jakiś link bezpośredni do podstrony, która z tego korzysta.

  • 09-07-09 Marylka napisał(a):

    galeria jest na samym dole w menu

  • 09-07-09 Jacek Kowalczyk napisał(a):

    Ze skryptami wszystko jest OK. Musisz zmienić w ustawieniach pozycji menu "Galeria" aby zdjęcia wyświetlały się poprzez Lightbox. Wejdź w edycję tej pozycji menu i powinnaś znaleźć tam coś takiego (to będzie lista rozwijana). Życzę powodzenia!

  • 09-07-09 Marylka napisał(a):

    ale ja mam tak ustawione i nic to nie daje, dalej jest problem.

  • 09-07-09 Marylka napisał(a):

    Działa! :)

    THX

  • 10-07-09 seeboo napisał(a):

    Czy można zmusić komponent, żeby wyświetlał krótkie opisy pod miniaturkami, a nie dopiero po kliknięciu?

  • 10-07-09 Jacek Kowalczyk napisał(a):

    Jasne, że można trzeba tylko zakasać rękawy i trochę pobrudzić się kodem. Otwórz do edycji plik components/com_imagebrowser/views/gallery/tmpl/defaut.php
    Za wyświetlanie obrazków galerii odpowiada pętla zaczynająca się w linii 56. Wewnątrz tej pętli możemy wyświetlać podpis zdjęcia poprzez odwołanie do $image['caption'].
    Ja proponowałbym zamienić linię 79:
    <code></code>
    na coś takiego:
    <code><?php echo $image['caption']; ?></code>
    Dzięki temu podpisy będą wyświetlały się pod zdjęciami. Pozostaje jeszcze kwestia poukładania wszystkiego w CSS, ale w to nie będę się tutaj wgłębiał.

  • 10-07-09 Marylka napisał(a):

    Czy można jakoś ustawić żeby katalogi ze zdjęciami zawierały Polskie znaki…?

  • 16-07-09 Marylka napisał(a):

    Jacek, czy można ustawić tak żeby foldery ze zdjęciami zawierały polskie znaki…?

    Z niecierpliwością czekam na odpowiedź.

    Pozdrawiam

    Marylka

  • 16-07-09 Jacek Kowalczyk napisał(a):

    Nigdy czegoś takiego nie robiłem, i szczerze mówiąc odradzam, na sporej części hostingów będę z tym problemy.

  • 16-07-09 Marylka napisał(a):

    Bo tak na klubowej stronie chciałam zrobić galerię wykorzystując właśnie ten komponent, ale muszę mieć stworzone właśnie albumy zdjęć…! Jak inaczej można zrobić odnośniki czy coś w tym stylu żeby była ładna galeria zdjęć. No szkoda że nie można zrobić albumów w tym komponencie tylko tworzy folder gdzie są zdjęcia.

  • 17-07-09 Jacek Kowalczyk napisał(a):

    No taki już urok tego komponentu. Jeżeli zależy Ci na rozbudowanym zarządzaniu albumami to zainteresuj się "pełnoprawnymi galeriami" t.j. MorfeoShow albo PhocaGallery, być może będą Ci lepiej odpowiadać.

  • 31-07-09 Szym napisał(a):

    Czy możliwy jest taki scenariusz i jak go zaimplementować? Chciałbym stworzyć artykuł z miniaturkami zdjęć jako wejście do oddzielnych galerii. Wiem jak zrobić galerie jako kolejne pozycje menu – ale gdy próbuję wykorzystać do tego możliwości artykułu wraz z linkami do poszczególnych folderów to efekt jest mizerny – mogę przeglądać fotki – ale nie działa efekt LightBox oraz wyświetlane są wszystkie foldery galerii, a nie jeden wybrany, który miałby być przypisany do danego linku.

  • 03-09-09 Andy napisał(a):

    u mnie wszystko super działa, tylko mam problem z jedną rzeczą. na wszystkich moich podstronach pokazuje sie title u góry w przeglądarce a jak wchodzą w galerie jest pusto.

    a z tego co widzę to na stronie karate jest pokazywany title, nawet tytuł galerii

  • 03-09-09 Andy napisał(a):

    moja gafa, tam jest chyba inny skrypt obecnie. ale tak czy inaczej, jak zrobic aby title byl pokazywany?

  • 17-10-09 Łukasz napisał(a):

    A gdyby tak polskie znaki zastąpić kodami uniwersalnymi? W folderach byłyby co prawda krzaczki, ale system by sobie z tym poradził.

  • 08-07-10 mnnich napisał(a):

    Super! Wielkie dzięki! Tego właśnie szukałem!

    Pozdrawiam Serdecznie !

  • 05-08-10 Mateusz napisał(a):

    Zeby pokazywał sie tytul gareri w title:

    W pliku componentscom_imagebrowserviewsgalleryview.html.php trzeba wprowadzić dwie zmiany do funkcji display

    1. dodać deklaracje zmiennej $mainframe [linia 50]

    2. użyć metody $mainframe->getPageTitle() [linia 67]

    Zmodyfikowana funkcja wygląda tak:

    function display($tpl = null) {

    global $mainframe; // NAJLEPIEJ DODAĆ TUTAJ

    // Initialise the view

    $this->init();

    $array = explode('/', $this->folder);

    // Take the last element from the array

    $folder_title = $array[(count($array)-1)];

    // Set page title (replacing "_" and "/")

    $this->folder_title = str_replace(array('_', '/'), array(' ', ''), $folder_title);

    // Push model into the view

    $model =& $this->getModel();

    $gallery = $model->getGallery($this->folder);

    $this->images = $gallery[0];

    $this->subdirectories = $gallery[1];

    // Set up document and update pathway before we display the view

    $this->setUpDocument($mainframe->getPageTitle()); //TUTAJ ZAMIENIĆ

    if (!empty($this->folder)) {

    $this->doBreadcrumbs();

    }

    parent::display($tpl);

    }

    Teraz można ustawiać tytuł strony z poziomu zaplecza używając Pozycja menu [zmień] -> Parametry: systemu -> Tytuł strony

Dołącz się do dyskusji:

Add your comment below, or trackback from your own site. Subscribe to these comments.

Możesz używać następujących tagów:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

:

: