Ilua

Ilua

С нами с 01 июля 2024; Место в рейтинге пользователей: #11068

php + Tv's

Добрый день, столкнулся с такой проблемой, может кто подскажет?
Есть php код
<?php



$category = $for = $out = '';



$imgs = [];



if( isset($_POST['category']) && $_POST['category'] && ctype_digit($_POST['category']) ){$category = $_POST['category'];}



if( isset($_POST['for']) && $_POST['for'] && ctype_digit($_POST['for']) ){$for = $_POST['for'];}



$id_resource = $modx->getTemplateVarOutput(array('id_resource_photo'), 5)['id_resource_photo'];


$id_resource_arr = explode(',',  $id_resource);


if ($category){



	$imgs = json_decode($modx->getTemplateVarOutput(array('imgs_1'), $category)['imgs_1'],true)['fieldValue'];



}else{

		if($page == 'other'){ //ограничение - 5 элементов на главной



				$arr = json_decode($modx->getTemplateVarOutput(array('imgs_1'), $id_resource_arr[$i])['imgs_1'],true)['fieldValue'];



				if(is_array($arr))



					$imgs = $arr;

		} else {

			foreach ($id_resource_arr as $id) {



				$arr = json_decode($modx->getTemplateVarOutput(array('imgs_1'), $id)['imgs_1'],true)['fieldValue'];



				if(is_array($arr))



					$imgs = array_merge($imgs, $arr);



			}

		}



}

?>
который должен фильтровать по 2ум критериям, которые выбираются на сайте 2мя выпадающими списками (собственно category и for) при выборе только category, все работает, но при выборе for выводится сообщение о том, что подходящие изображения не найдены category — категория в которой нужно найти подкатегорию for.

(вывод изображений):

<?php



				if($imgs){



					foreach ($imgs as $i){



						if(isset($i['photo']) || isset($i['photo1']) || isset($i['photo_webp'])){



							$photo = (isset($i['photo']) && $i['photo']) ? $i['photo'] : $i['photo1']; 



							$photo_crop = $modx->runSnippet('phpthumb', ['input'=>$photo, 'options'=>'w=348,h=261,zc=C']);



							$photo1 = (isset($i['photo1']) && $i['photo1']) ? $i['photo1'] : $i['photo'];

							$photo_webp = isset($i['photo_webp']) ? $i['photo_webp'] : '';

							if($for){



								if(isset($i['for']) && $i['for']){



									$fors = explode(',', $i['for']);



									if(in_array($for, $fors)){



										$out .= '<a href="'.$photo1.'" data-lightbox="img"><img src="'.$photo1.'" loading="lazy" alt="'.$i['title'].'"></a>';



									}



								}



							}else{ //echo $photo_webp;

								// print_r($i);

								$srcset = !empty($photo_webp) ? 'data-srcset="'.$photo_webp.'"' : '';

								$cr = empty($photo1) ? $photo_webp : $photo1;

								$crop = $modx->runSnippet('phpthumb', ['input'=>$cr, 'options'=>'w=1000,h=1000,zc=C']);

								

								$out .= '<div><a class="block_gallery-item" href="'.$photo_webp.'" data-fancybox="img" '.$srcset.'>';

								if (empty($photo_webp)) {

									$crop = $modx->runSnippet('phpthumb', ['input'=>$cr, 'options'=>'w=348,h=261,zc=C']);

									$out .= '<img src="'.$crop.'" loading="lazy" alt="'.$i['title'].'">';

								}

								else { 



									$alt = explode('/', $photo_webp);



									// if ($alt[2] = "svetovoj") {

									// 	$alt[2] = "Световые потолки";

									// }



									$cr = empty($photo1) ? $photo_webp : $photo1;

									$crop = $modx->runSnippet('phpthumb', ['input'=>$cr, 'options'=>'w=348,h=261,zc=C']);



									$out .='

									<picture>

										<source srcset="'.$photo_webp.'" type="image/webp">

										<img src="'.$photo_webp.'" alt="'.$alt[2].'">

									</picture>';

								}

								$out .=	'</a></div>';



							}



						}



					}



				}



				echo $out ? $out : '<p class="bold-text">Подходящих результатов не найдено.</p>';



			?>
id_resource_photo — строка с id страниц «123, 234, 345» такого типа, на изображениях которые нужно вставить чекбоксом выбирается подкатегория
Ilua
01 июля 2024, 21:34
modx.pro
238
0