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; }
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; }