Ilua
С нами с 01 июля 2024; Место в рейтинге пользователей: #11068php + Tv's
Добрый день, столкнулся с такой проблемой, может кто подскажет?
Есть php код
(вывод изображений):
Есть 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» такого типа, на изображениях которые нужно вставить чекбоксом выбирается подкатегория