Кастомный сниппет Evogallery

Часто встречалось в проектах необходимость вывести свой вариант отображение картинок в с Evogallery, так не всегда верстка идеальная или задача стоит другая.
Назовем сниппет CustomEvoGal
содержимое сниппета:

<?php
$gals_table = $modx->db->config['table_prefix']."portfolio_galleries";
 $result_gall = $modx->db->select("*", $gals_table, "content_id = '$docid'", "id ASC");

while($row_gall[] = $modx->db->getRow($result_gall)){
	
	

	$filename         = $row_gall['filename'];
	$id         = $row_gall['id'];	
		


 }

$url_papkas ='/assets/galleries/';
$i   = 0;

if(!empty($row_gall[0])){
foreach($row_gall as $key=>$val){
	 $i++;
	
	if($val['filename'] !=''){
	$din_din =  $url_papkas.$docid.'/'.$val['filename'];
	
	
	$params_one=array('input' => $din_din,'options' => 'w=655,h=491,zc=C');
$params_two=array('input' => $din_din,'options' => 'w=385,h=247,zc=C');

$image_big = $modx->runSnippet('phpthumb', $params_one);
$image_small = $modx->runSnippet('phpthumb', $params_two);
	
	$img_arrats .='<a href="'.$din_din .'" class="gal-link" data-lightbox="gal-1">
                                <img src="'.$image_small.'" alt="" class="gal-img" title="'.$val['title'].'">
                            </a>';
	

  if ($i % 2 == 0 && $i < (count($row_gall)) - 2){
	  $img_arrats .='</li><li>'; 
	
}
}

}


echo $img_arrats;
}
?>

вызов сниппета на странице сайта
[[CustomEvoGal? &docid=`[*id*]`]]

вызов сниппета в Ditto
[[CustomEvoGal? &docid=`[+id+]`]]

4 комментария

avatar
А не проще было бы показать вывод галереи через DL? И кастомизации больше, и настроек…
avatar
это для быстрого решение заготовка как говориться, условиями выставил что нада да и все
avatar
Дело в том, что для быстрого вывода картинок, как не странно, подходит сниппет evoGallery, который в себе несет множество настроек, в т.ч. и кастомный вывод))
Если вы хотели написать решение для тех, кто разбирается в php, то такие ребята как бы и сами накатают скрипт, который нужен будет для конкретной задачи. Если для тех кто не разбирается в php, то им будет достаточно сложно лезть в ваш код и что либо там править для кастомизации.
Так что в данном случае вариант через DL — наиболее оптимальный, но он уже где-то, вроде, приводился.
Как демонстрация того, что писать сниппеты на MODX не так и сложно — код имеет право на существование, но как готовое решение — не очень смотрится, имхо.
avatar
согласен с вами если для копипастеров то не подходит, а для мастеров не нужно. тогда соглашусь бесполезный сниппет, ну может каком то новочеку пригодится. Правда там нечего ковыряться, соединение с бд и вывод данные, просто как загатовка и все=)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.