Example #1
0
function _HCM_gallery($cesta = "", $rozmery = null, $strankovani = null, $lightbox = 1)
{
    // priprava
    $result = "";
    $cesta = _indexroot . $cesta;
    $cesta_noroot = $cesta;
    if (mb_substr($cesta, -1, 1) != "/") {
        $cesta .= "/";
    }
    if (mb_substr($cesta_noroot, -1, 1) != "/") {
        $cesta_noroot .= "/";
    }
    if (isset($strankovani) and $strankovani > 0) {
        $strankovat = true;
        $strankovani = intval($strankovani);
        if ($strankovani <= 0) {
            $strankovani = 1;
        }
    } else {
        $strankovat = false;
    }
    $lightbox = _boolean($lightbox);
    if (isset($rozmery)) {
        $rozmery = explode('/', $rozmery);
        if (sizeof($rozmery) === 2) {
            // sirka i vyska
            $x = intval($rozmery[0]);
            $y = intval($rozmery[1]);
        } else {
            // pouze vyska
            $x = null;
            $y = intval($rozmery[0]);
        }
    } else {
        // neuvedeno
        $x = null;
        $y = 128;
    }
    if (@file_exists($cesta) and @is_dir($cesta)) {
        $handle = @opendir($cesta);
        // nacteni polozek
        $items = array();
        while (false !== ($item = @readdir($handle))) {
            $ext = pathinfo($item);
            if (isset($ext['extension'])) {
                $ext = mb_strtolower($ext['extension']);
            } else {
                $ext = "";
            }
            if (@is_dir($item) or $item == "." or $item == ".." or !in_array($ext, SL::$imageExt)) {
                continue;
            }
            $items[] = $item;
        }
        @closedir($handle);
        natsort($items);
        // priprava strankovani
        if ($strankovat) {
            $count = count($items);
            $paging = _resultPaging(_indexOutput_url, $strankovani, $count, "", "#hcm_gal" . SL::$hcmUid, "hcm_gal" . SL::$hcmUid . "p");
        }
        // vypis
        $result = "<div class='anchor'><a name='hcm_gal" . SL::$hcmUid . "'></a></div>\n<div class='gallery'>\n";
        $counter = 0;
        foreach ($items as $item) {
            if ($strankovat and $counter > $paging[6]) {
                break;
            }
            if (!$strankovat or $strankovat and _resultPagingIsItemInRange($paging, $counter)) {
                $thumb = _pictureThumb($cesta_noroot . $item, array('x' => $x, 'y' => $y));
                $result .= "<a href='" . $cesta . _htmlStr($item) . "' target='_blank'" . ($lightbox ? " class='lightbox' data-fancybox-group='lb_hcm" . SL::$hcmUid . "'" : '') . "><img src='" . $thumb . "' alt='" . $item . "' /></a>\n";
            }
            $counter++;
        }
        $result .= "</div>\n";
        if ($strankovat) {
            $result .= $paging[0];
        }
    }
    return $result;
}
Example #2
0
function _HCM_xlist($adresar = "", $maska_souboru = "", $razeni = 0, $strankovani = 0, $maska = "", $zobrazeni_strankovani = null, $kod_pred = null, $kod_za = null)
{
    //nacteni parametru
    $output = "";
    $rdir = _removeSlashesFromEnd($adresar);
    $rdirs = $rdir . "/";
    $rmask = $maska_souboru;
    if ($rmask == "*") {
        $rmask = 1;
    } elseif ($rmask == "%") {
        $rmask = 2;
    } else {
        $rmask = explode(";", $rmask);
    }
    $rsort = $razeni;
    $rpaging = intval($strankovani);
    if ($rpaging <= 0) {
        $rpaging = false;
    }
    $rtemplate = $maska;
    //nepovinne
    if (isset($zobrazeni_strankovani)) {
        $rpaging_pos = intval($zobrazeni_strankovani);
        if ($rpaging_pos < 0 or $rpaging_pos > 3) {
            $rpaging_pos = 0;
        }
    } else {
        $rpaging_pos = 0;
    }
    if (isset($kod_pred)) {
        $rcover_top = $kod_pred . "\n";
    } else {
        $rcover_top = "";
    }
    if ($rpaging != false) {
        $rcover_top = "<div class='anchor'><a name='hcm_xlist" . SL::$hcmUid . "'></a></div>\n" . $rcover_top;
    }
    if (isset($kod_za)) {
        $rcover_bottom = $kod_za . "\n";
    } else {
        $rcover_bottom = "";
    }
    //otevreni adresare
    $rhandle = @opendir($rdir);
    if ($rhandle) {
        //nacteni polozek
        $ritems = array();
        $rsort_data = array();
        while (false !== ($item = readdir($rhandle))) {
            $rinfo = pathinfo($item);
            if (isset($rinfo['extension'])) {
                $rext = $rinfo['extension'];
            } else {
                $rext = "";
            }
            if ($item == "." or $item == ".." or $rmask != "*" and ($rmask == 2 and !@is_dir($rdirs . $item) or is_array($rmask) and !in_array(mb_strtolower($rext), $rmask))) {
                continue;
            }
            $ritems[] = $item;
            if ($rsort == 3 or $rsort == 4) {
                $rsort_data[] = @filemtime($rdirs . $item);
            }
        }
        closedir($rhandle);
        $count = count($ritems);
        //serazeni polozek
        switch ($rsort) {
            case 1:
                natsort($ritems);
                break;
            case 2:
                natsort($ritems);
                $ritems = array_reverse($ritems, false);
                break;
            case 3:
                asort($rsort_data);
                break;
            case 4:
                arsort($rsort_data);
                break;
            case 5:
                $rrandom = array_rand($ritems, $count);
                $rsort_data = array();
                foreach ($rrandom as $key) {
                    $rsort_data[$key] = null;
                }
                break;
        }
        //sjednoceni poli pri razeni podle $rsort_data
        if ($rsort == 3 or $rsort == 4 or $rsort == 5) {
            $ritems_new = array();
            foreach ($rsort_data as $key => $val) {
                $ritems_new[] = $ritems[$key];
            }
            $ritems = $ritems_new;
        }
        //inicializace strankovani
        if ($rpaging != false) {
            $rpaging_data = _resultPaging(_indexOutput_url, $rpaging, $count, "", "#hcm_xlist" . SL::$hcmUid, "hcm_xlist" . SL::$hcmUid . "p");
        }
        //vypis horniho strankovani a obalu
        if ($rpaging != false and ($rpaging_pos == 1 or $rpaging_pos == 2)) {
            $output .= $rpaging_data[0];
        }
        $output .= $rcover_top;
        //vypis polozek
        $counter = 0;
        if ($rpaging == false) {
            $end = $count - 1;
        }
        foreach ($ritems as $item) {
            //efekty strankovani
            if ($rpaging != false) {
                $end = $rpaging_data[6];
                if ($counter > $end) {
                    break;
                }
                if (!_resultPagingIsItemInRange($rpaging_data, $counter)) {
                    $counter++;
                    continue;
                }
            }
            //odrezani pripony
            if (!is_array($rmask) and $rmask == "%") {
                $dotpos = false;
            } else {
                $dotpos = mb_strrpos($item, ".");
            }
            if ($dotpos == false) {
                $item_noext = $item;
            } else {
                $item_noext = mb_substr($item, 0, $dotpos);
            }
            //nahrazeni znacek, vypis kodu
            $GLOBALS['_hcm_xlist_data'] = array(SL::$hcmUid, $rdirs, $item, $item_noext, $counter, $count, $end);
            $output .= preg_replace_callback('|\\[tag\\](.*?)\\[/tag\\]|s', '_tmp_hcm_xlistReplaceTemplateMatch', $rtemplate) . "\n";
            $counter++;
        }
        unset($GLOBALS['_hcm_xlist_data']);
        //vypis dolniho obalu a strankovani
        $output .= $rcover_bottom;
        if ($rpaging != false and ($rpaging_pos == 0 or $rpaging_pos == 2)) {
            $output .= $rpaging_data[0];
        }
    } else {
        $output = "Nelze otevrit adresar.";
    }
    return $output;
}