Rozchodil jsem Highslidegal na MODx Revo verze 2.x.x
např:
http://puschpull.org/modx_rev/portfolio1?id=9
http://123.puschpull.org/galerie
a nastavení:
http://123.puschpull.org/setup
eventuelně modifikace bráchovo galerie implementovaná do MODx Revo:
http://123.puschpull.org/dawe?id=2
Přikládám jako nástřel kód snippetu, který tvoří základ
třeba tam něco najdete pro inspiraci:
Kód: Vybrať všetko
<?php
if (!isset($_GET['pageid']))
{
$page_id = $_SESSION['page_id'];
}
else
{
$pageid = $_GET['pageid'];
}
$page_set = 12; // počet záznamů na stránku - vybrat číslo dělitelné počtem sloupců !!
$pagesize=$page_set;
$a = $_GET['id'];
// echo 'ID zvolené kategorie je: '.$a.'<br>';
function getTree($parent) {
global $modx;
$path = MODX_CORE_PATH . 'components/fotogalerie/';
$result = $modx->addPackage('fotogalerie',$path . 'model/','pp_');
if($result){
$g = $modx->newQuery('Category');
$g->where(array(
'parent_id' => $parent,
));
$trees = $modx->getCollection('Category',$g);
}
$pole = array();
foreach ($trees as $tre) {
$pole[] = $tre->get('id_category');
$pole = array_merge($pole, getTree($tre->get('id_category')));
}
return $pole;
}
$path = MODX_CORE_PATH . 'components/fotogalerie/';
$result = $modx->addPackage('fotogalerie',$path . 'model/','pp_');
if($result){
$e = $modx->newQuery('Category');
$e->where(array(
'id_category' => $a,
));
$seze = $modx->getCollection('Category',$e);
}
foreach ($seze as $se) {
echo '<br>Vybraná kategorie je: <b><font size="+1" color="#FFFF99">'.$se->get('name').'</font></b>';
}
$iii = $a;
$seznam_kategorii = getTree($iii);
$seznam_kategorii[] = $iii;
$seznam_kategorii_retezec = '\''.implode('\',\'', $seznam_kategorii).'\'';
// echo 'Seznam kategorií celé vybrané větve: <br>'.$seznam_kategorii_retezec.'<br><hr>';
// ********************************************************************************************
if($result){
$f = $modx->newQuery('Galerie');
$f->innerJoin('Category','Category', array("Galerie.kategorie = Category.id_category"));
$f->select(array(
$modx->getSelectColumns('Galerie', 'Galerie'),
$modx->getSelectColumns('Category', 'Category', '', array('name','id_category')),
));
$f->where(array('kategorie:IN' => $seznam_kategorii));
$f->sortby('id_galerie','ASC');
$vypis = $modx->getCollection('Galerie',$f);
}
$f->prepare();
// echo 'SQL QUERY:<div class="sql">'.$f->toSql().'</div><hr>';
$totalrecord = count($vypis);
// echo 'Celkový počet nalezených záznamů: '.count($vypis).'<br><hr>';
// echo $totalrecord;echo $pagesize;
$totalpage=(int)($totalrecord/$pagesize);
if(($totalrecord%$pagesize)!=0){
$totalpage+=1;
}
if(isset($pageid)){
$start=$pagesize*($pageid-1);
}
else{
$pageid=1;
$start=0;
}
// ********************************************************************************************
if($result){
$ff = $modx->newQuery('Galerie');
$ff->innerJoin('Category','Category', array("Galerie.kategorie = Category.id_category"));
$ff->select(array(
$modx->getSelectColumns('Galerie', 'Galerie'),
$modx->getSelectColumns('Category', 'Category', '', array('name','id_category')),
));
$ff->where(array('kategorie:IN' => $seznam_kategorii));
$ff->sortby('id_galerie','DESC');
// $ff->limit(8);
// $ff->limit(8,0);
$ff->limit($pagesize,$start);
$vypis2 = $modx->getCollection('Galerie',$ff);
}
$ff->prepare();
// echo 'XXX-SQL QUERY:<div class="sql">'.$ff->toSql().'</div><hr>';
// echo 'Celkový počet nalezených záznamů: '.count($vypis2).'<br><hr>';
echo '<div id="db">';
$t = '<table class="border">';
$i = 0;
$k = 4; // počet sloupců v tabulce galerie
foreach ($vypis2 as $val) {
$j = $i % $k; // binarni nasobeni $k (3)
if ($j==0) {$t .= '<tr>';}
$t.='<td id="in_table_work" style="empty-cells:show; border-style:solid; border-width:1px">';
// $t.=' '.$val->get('id_galerie').' |';
// $t.=' '.$val->get('name_cz').' <br />';
// $t.=' '.$val->get('kdy').' <br />';
// $t.='<font size="-1" color="#FFFF99">('.$val->get('name').')</font>';
// $t.=' <br>';
$t.= '<div align="center">
<a class="highslide" onclick="return hs.htmlExpand(this, { contentId: \'highslide-html-'.$val->get('id_galerie').'\' } )" href="#">
<img style="vertical-align: baseline; /*width:180px; height:180px;*/ text-align: center; border: black 0px solid;" title="puschpull.org" src='.$val->get('path_thumbs').' alt="puschpull.org" /></a>
<div id="highslide-html-'.$val->get('id_galerie').'" class="highslide-html-content">
<div style="empty-cells:show; border-style:solid; border-width:0px; border-color:orange; /*width:400px;*/ height:100%; margin: auto; text-align:center; vertical-align:center;">
<table bordercolor="#33FF00" width="100%" height="100%" border="0" style="margin: auto; vertical-align:center; ">
<tr>
<td width="20px" height="20px"> </td>
<td width="724px" height="20px">
<div id="font_top"><strong>'.$val->get('name_cz').'</strong> <font size="-1"> <em>'.$val->get('name_lat').'</em></font></div>
</td>
<td width="20px" height="20px">
<a onclick="return hs.close(this)" title="Zavřít okno / Close Window" href="#"><font size="5" color="#FFCC66">x</font></a>
</td>
</tr>
<tr>
<td width="20px" height="724px"> </td>
<td width="724px" height="724px">
<img style="vertical-align:middle; text-align: center; border: white 0px solid;" title="puschpull.org" src="'.$val->get('path_large').'" alt="puschpull.org" />
</td>
<td width="20px" height="724px"> </td>
</tr>
<tr>
<td width="20px" height="20px"> </td>
<td width="724px" height="20px">
<div id="font_bottom_right">'.$val->get('kde').' | '.$val->get('kdy').'</div>
<div id="font_bottom_left">'.$val->get('short_text').'</div>
</td>
<td width="20px" height="20px"> </td>
</tr>
</table>
</div></div></div>';
// $t.=' <a href='.$val->get('path_large').' class="highslide" onclick="return hs.expand(this)"><img src='.$val->get('path_thumbs').' alt="Highslide JS" title="Click to enlarge" style=" vertical-align: baseline; /*width:150px; height:150px;*/ text-align: center; border: yellow 2px solid; " /></a> <br />';
// $t.=' Kategorie: <b><font size="+0" color="#FF6600">'.$val->get('name').'</font></b>';
// $t.=' <br>';
$t.='<br><font size="-1" color="#FFFF99">'.$val->get('name').'</font>';
$t.='</td>';
if ($j==$k) {$t .= '</tr>';}
$i++; }
//echo '$i='.$i;
$ik = $i % $k;
//echo '|$ik='.$ik;
$ir = ceil(($i / $page_set)*($k-1));
//echo '|$ir='.$ir;
//echo '|$j='.$j;
//echo '|$k='.$k;
$b = floor(($page_set - $i) / $k);
//echo '|$b='.$b;
$c = $page_set / $k;
//echo '|$c='.$c;
$d1 = ($page_set / $c)*1;
$d2 = ($page_set / $c)*2;
//echo '|$d1='.$d1;
//echo '|$d2='.$d2;
if ($i <> 0){
if ($i < $page_set){
if (($i <> $d1) and ($i <> $d2)){
for ($w=($ik+1); $w<=$k; $w++) {$t.='<td id="in_table_work" style="empty-cells:show; border-style:solid; border-width:1px"></td>';}
}
$t .= '</tr>';
if ($ir <= $c){
for ($s = 1; $s <= $b; $s++) {
//$r = abs($j-$k+1);
for ($ww=1; $ww<=$k; $ww++) {$t.='<td id="in_table_work" style="empty-cells:show; border-style:solid; border-width:1px"></td>';}
$t .= '</tr>';
} } }
}
else {
for ($s = 1; $s <= $b; $s++) {
//$r = abs($j-$k+1);
for ($ww=1; $ww<=$k; $ww++) {$t.='<td id="in_table_work" style="empty-cells:show; border-style:solid; border-width:1px"></td>';}
$t .= '</tr>';
}
}
$t .= '</table>';
echo $t;
echo '</div> <!-- end db -->';
echo '<div id="page_navigator">';
// This is the Page Navigator.
for ($i=1; $i<=$totalpage; $i++){
if ($i==$pageid){
echo "[".$i."] ";
}
else{
echo '<a href=[[~[[*id]]]]?id='.$_GET['id'].'&pageid='.$i.'>' .$i.'</a> ';
}
}
echo '</div>';