Как вывести картинки из поля "набор изображений"?

#1 24 июля 2016 в 10:58
Здравствуйте!
Надо вывести 2 пресета из поля "набор изображений" (маленький и оригинальный) в записи типа контента без всяких "обработок".
Заранее благодарен!

Делать много полей типа "Изображение" предлагать не стоит.
#2 24 июля 2016 в 11:16
Что значит?

без всяких "обработок".

Олег Васильевич я
#3 24 июля 2016 в 13:48


Что значит?

без всяких "обработок".

Олег Васильевич я

Loadырь
Значит, что нужно на выходе получить только картинки (без ссылок <a class="img-photos " href="/upload/000/u1/002/f8781e55.png" rel="gal">):
Вывожу поле так:
  1.  
  2. <?php if (isset($fields['photos']) && $fields['photos']['is_in_item'] && !empty($item['photos'])){ ?>
  3. <?php echo $fields['photos']['html']; ?>
  4. <?php unset($fields['photos']); ?>
  5. <?php } ?>
  6.  
Получаю на выходе:
  1.  
  2. <a class="img-photos " href="/upload/000/u1/002/f8781e55.png" rel="gal">
  3. <img alt="название записи" src="/upload/000/u1/002/3e1f50a7.png">
  4. </a>
  5. <a class="img-photos " href="/upload/000/u1/002/165906e1.png" rel="gal">
  6. <img alt="название записи 1" src="/upload/000/u1/002/97fd06e9.png">
  7. </a>
  8. <a class="img-photos " href="/upload/000/u1/002/3847c36f.png" rel="gal">
  9. <img alt="название записи 2" src="/upload/000/u1/002/073ed6b7.png">
  10. </a>
  11. <script>
  12. $(function() { icms.modal.bindGallery(".img-photos"); });
  13. </script>
  14.  
Вопрос как получить картинки поля в таком виде (пусть будет пресет "оригинальный"):
  1.  
  2. <img alt="название записи" src="/upload/000/u1/002/3e1f50a7.png">
  3. <img alt="название записи 1" src="/upload/000/u1/002/97fd06e9.png">
  4. <img alt="название записи 2" src="/upload/000/u1/002/073ed6b7.png">
  5.  
Спасибо!
#4 24 июля 2016 в 16:49
Вариант
  1.  
  2. <?php
  3. $config = cmsConfig::getInstance();
  4.  
  5. $is_imgs=false;
  6. $fn="photos";
  7. $img_size = 'normal';
  8. $img_size_full = 'original';
  9.  
  10. if (isset($fields[$fn]) && $fields[$fn]['is_in_item'] && !empty($item[$fn])){
  11. $images = cmsModel::yamlToArray($item[$fn]);
  12. unset($fields[$fn]);
  13. $is_imgs=true;
  14. }
  15. if($is_imgs){
  16.  
  17. $images_html = '';
  18. foreach($images as $key=>$paths){
  19.  
  20. $full = isset($paths[$img_size_full]) ? $paths[$img_size_full] : '';
  21. if($full){
  22. $images_html .= '<a class="img-'.$fn.'" href="'.$config->upload_host . '/' . $full.'"><img src="'.$config->upload_host . '/' . $paths[$img_size].'" alt="'.htmlspecialchars(empty($item['title']) ? '' : $item['title'].' '.$key).'" /></a>';
  23. $images_html .= '<script>$(document).ready(function() { icms.modal.bindGallery(".img-'.$fn.'"); });</script>';
  24. }else{
  25. $images_html .= '<img src="'.$config->upload_host . '/' . $paths[$img_size].'" alt="'.htmlspecialchars(empty($item['title']) ? '' : $item['title'].' '.$key).'" />';
  26. }
  27.  
  28. }
  29.  
  30. }
  31. ?>
  32.  
И выводим там, где надо, это:
  1.  
  2. <?php echo $images_html; ?>
  3.  
Добавил условие, если нет картинки с оригинальным размером, то изображения выводим без ссылок на увеличение.

А если нужна так:
  1.  
  2.  
  3. <img alt="название записи" src="/upload/000/u1/002/3e1f50a7.png">
  4. <img alt="название записи 1" src="/upload/000/u1/002/97fd06e9.png">
  5. <img alt="название записи 2" src="/upload/000/u1/002/073ed6b7.png">
  6.  

Тогда можно оставить условие, может пригодится, и добавить:
  1.  
  2. $full=false;
  3.  
Или использовать такой код:
  1.  
  2. <?php
  3. $config = cmsConfig::getInstance();
  4.  
  5. $is_imgs=false;
  6. $fn="photos";
  7. $img_size = 'normal';
  8.  
  9. if (isset($fields[$fn]) && $fields[$fn]['is_in_item'] && !empty($item[$fn])){
  10. $images = cmsModel::yamlToArray($item[$fn]);
  11. unset($fields[$fn]);
  12. $is_imgs=true;
  13. }
  14. if($is_imgs){
  15.  
  16. $images_html = '';
  17. foreach($images as $key=>$paths){
  18. $images_html .= '<img src="'.$config->upload_host . '/' . $paths[$img_size].'" alt="'.htmlspecialchars(empty($item['title']) ? '' : $item['title'].' '.$key).'" />';
  19.  
  20. }
  21.  
  22. }
  23. ?>
  24.  
#5 24 июля 2016 в 23:03

Вариант

Денис Васильевич
Попробую приспособить к своим потребностям. Отпишусь.
Денис Васильевич, спасибо!
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.