radrigo 182 Опубликовано: 25 января 2021 Рассказать Опубликовано: 25 января 2021 Всем привет. В общем хочу из версии для печати попробовать сделать amp страницы. Всё вроде получается, но хотелось бы немного упростить код. Чтобы заменить изображение в дополнительном поле foto "Загружаемое изображение", делаю следующим образом ищу в show.full.php $xfieldsdata = $row['xfields']; И добавляю ниже if ($view_template = "print") { $amp_xfields_list = explode('||', $xfieldsdata); foreach ($amp_xfields_list as $amp_i) { if (preg_match('/^foto\|/', $amp_i, $matches)) { $amp_foto = $amp_i; } } $xfvalue_amp_foto = preg_replace( '/<img(.*?)\/?>/', '<amp-img$1 class="amp-img" width="3" height="2" layout="responsive"></amp-img>', str_replace('foto|', '', $amp_foto) ); $xfvalue_amp_foto = preg_replace( ['/<!--MBegin:.*?-->/', '/<!--dle_image_begin:.*?-->/'], '', $xfvalue_amp_foto ); $xfvalue_amp_foto = str_replace( ['<!--MEnd-->', '<!--dle_image_end-->'], '', $xfvalue_amp_foto ); $tpl->set("[xfvalue_amp_foto]", $xfvalue_amp_foto); } В данном случае я использую переменную $xfieldsdata, которую сначала разбиваю, потом ищу по совпадению 'foto|', после произвожу замену img на amp-img. Данные дополнительного поля "Галерея изображений" хранятся в базе данных в виде имен изображений через запятую, которые необходимо будет ещё разбивать, вставлять их в теги изображений, и после только выводить. Может кто подскажет, возможно ли как-то сразу получить данные дополнительного поля одной переменной? Заранее признателен всем за подсказку. Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 25 января 2021 Рассказать Опубликовано: 25 января 2021 (изменено) $xfieldsprint = xfieldsdataload( $row['xfields'] ); // В переменной $xfieldsprint все допполя в виде массива $xfieldsfoto = $xfieldsprint['foto']; // в переменной $xfieldsfoto значение допполя foto Дальше сам :-) Изменено 25 января 2021 пользователем alex32 1 Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 182 Опубликовано: 25 января 2021 Рассказать Опубликовано: 25 января 2021 Автор 22 минуты назад, alex32 сказал: $xfieldsprint = xfieldsdataload( $row['xfields'] ); // В переменной $xfieldsprint все допполя в виде массива $xfieldsfoto = $xfieldsprint['foto']; // в переменной $xfieldsfoto значение допполя foto Дальше сам :-) Спасибо большое) Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.