Knihovnu fancyBox verze 2 používám pro „hezké“ zobrazení obrázků v tzv. lightboxu. FancyBox 2 umí zobrazit skupiny obrázků na jedné stránce nezávisle na ostatních skupinách :) a to pomocí atributu rel u html elementu <img rel="" … >. Jelikož používám k formátování textu framework Texy! vytvořil jsem pro implementaci fancyBoxu jednoduchý imageHandler().

Pár poznámek k použití:

  • předpokládám název css třídy pro fancyBox fancybox,
  • určené zejména pro obrázky s náhledem,
  • použití je stejné jako v syntaxi Texy! s tím rozdílem, že u adresy max. zobrazení obrázku je uveden za znakem # název skupiny obrázků,
  • pokud není uveden název skupiny (vč. znaku #), všechny obrázky se zobrazují v jednom slide-show.
náhled zdrojového kódu
/**
 * User handler for images
 *
 * @param TexyHandlerInvocation  handler invocation
 * @param TexyImage
 * @param TexyLink
 * @return TexyHtml|string|FALSE
 *
 * použití: [* images/blob.jpg .(nejaky alt){title: titulek obrázku;} *]:[images/blob-orig.jpg#galerie1]
 */
 
function imageHandler($invocation, $image, $link)
{
    // pokud neni nastaven link obrazku, vyskocim
    if (!isset($link))
    {
        return $invocation->proceed();
    }
 
    $url = explode("#", $link->URL);
 
    if ($url[0] <> $link->URL)
    {
 
        if (isset($url[1]))
        {
            $link->modifier->attrs['rel'] = $url[1];
        }
 
        $link->URL = $url[0];
 
    }
 
    $link->modifier->attrs['class'] = "fancybox";
 
    if (isset($image->modifier->attrs['title']))
    {
        $link->modifier->attrs['title'] = $image->modifier->attrs['title'];
    }
 
    return $invocation->proceed($image, $link);
 
}

bez komentáře

Přidejte komentář

Text komentáře musí být zadán, ostatní údaje nejsou povinné. HTML tagy nejsou povoleny.

Captcha picture.