Постер в быстром поиске через доп. поле и короткую новость

АТ
Maxim

Maxim

Active member
Команда форума
Не в сети
)))

Только непонятно, что нужно заменить на
PHP:
preg_match_all('\[img\]([^\[\]\'"]+)\[\/img\]/', $xf['image'], $images);
Возьмём за пример этот код:
PHP:
$buffer .= "<a href=\"" . $full_link . "\"><img src=\"".$xf['poster']."\" style=\"float:left; max-width:50px; margin-right:5px;\">
В этом коде доп. поле содержит простую ссылку на изображение.

меняем его так (точнее добавляем строчку указанную выше над этим примером)
PHP:
preg_match('\[img\]([^\[\]\'"]+)\[\/img\]/', $xf['poster'], $images);
$buffer .= "<a href=\"" . $full_link . "\"><img src=\"".$images[1]."\" style=\"float:left; max-width:50px; margin-right:5px;\">

функция preg_match ищет по шаблону изображение заключённое в тег [ img ] и создаёт массив с информацией об исходной строке и поисковом результате. Я назвал этот массив $images (его можно как угодно называть). На первом месте находится исходник, на втором - искомая ссылка, т.е. берём 2ую строчку массива и выводим в код -> $images[1]. Но, если массив images был переименован, то и тут следует заменить название массива. Саму функцию обязательно нужно выводит ДО самого внедрения кода.
 

Mondi

New member
Не в сети
1673637016290.png
У меня в поиске не выводит картинку. Разобрался в чем проблема, но не могу решить ее самостоятельно.
Вылезает вот такая вот код в браузере.
HTML:
<img src="2023-01/1673613960_reliz-image.png|0|0|260x360|244.6 Kb" style="float:left; max-width:50px; margin-right:5px;">
Так как у меня картинке в uploads/posts/, то я просто добавил в код это. Получилось так -
PHP:
$buffer .= "<a href=\"" . $full_link . "\"><img src=\"uploads/posts/".$xf['reliz-image']."\" style=\"float:left; max-width:50px; margin-right:5px;\">
Но картинка не выводится по другой причине.
Вот это появляется после .png - |0|0|260x360|244.6 Kb
Подскажите, как это убрать?
Возьмём за пример этот код:
PHP:
$buffer .= "<a href=\"" . $full_link . "\"><img src=\"".$xf['poster']."\" style=\"float:left; max-width:50px; margin-right:5px;\">
В этом коде доп. поле содержит простую ссылку на изображение.

меняем его так (точнее добавляем строчку указанную выше над этим примером)
PHP:
preg_match('\[img\]([^\[\]\'"]+)\[\/img\]/', $xf['poster'], $images);
$buffer .= "<a href=\"" . $full_link . "\"><img src=\"".$images[1]."\" style=\"float:left; max-width:50px; margin-right:5px;\">

функция preg_match ищет по шаблону изображение заключённое в тег [ img ] и создаёт массив с информацией об исходной строке и поисковом результате. Я назвал этот массив $images (его можно как угодно называть). На первом месте находится исходник, на втором - искомая ссылка, т.е. берём 2ую строчку массива и выводим в код -> $images[1]. Но, если массив images был переименован, то и тут следует заменить название массива. Саму функцию обязательно нужно выводит ДО самого внедрения кода.
 

Mondi

New member
Не в сети
Посмотреть вложение 663
У меня в поиске не выводит картинку. Разобрался в чем проблема, но не могу решить ее самостоятельно.
Вылезает вот такая вот код в браузере.
HTML:
<img src="2023-01/1673613960_reliz-image.png|0|0|260x360|244.6 Kb" style="float:left; max-width:50px; margin-right:5px;">
Так как у меня картинке в uploads/posts/, то я просто добавил в код это. Получилось так -
PHP:
$buffer .= "<a href=\"" . $full_link . "\"><img src=\"uploads/posts/".$xf['reliz-image']."\" style=\"float:left; max-width:50px; margin-right:5px;\">
Но картинка не выводится по другой причине.
Вот это появляется после .png - |0|0|260x360|244.6 Kb
Подскажите, как это убрать?
Решил свой вопрос сам, немного разобравшись с php.
Рассказываю для остальных.
Не знаю почему, но картинки из доп поля [xfield] в базу данных у меня поступали вот такими -
1673697110698.png
Что бы путь был полным я добавил в код uploads/posts/
B что бы убрать вс лишнее после .png я использовал функцию strstr.
В итоге последняя строчка должна выглядеть не так -
PHP:
$buffer .= "<a href=\"" . $full_link . "\"><img src=\"".$xf['poster']."\" style=\"float:left; max-width:50px; margin-right:5px;\">
А вот так -
PHP:
$buffer .= "<a href=\"" . $full_link . "\"><img src=\"uploads/posts/".strstr($xf['poster'], '|', true). "\" style=\"float:left; max-width:50px; margin-right:5px;\">
Там где 'poster' у вас должно быть всое название поля. К примеру у меня это 'reliz-image'
 
АТ
Maxim

Maxim

Active member
Команда форума
Не в сети
Спасибо, что дополнил. Система ДЛЕ тоже не стояла на месте, и многое изменилось - в том числе и пути к изображениям. БУдет время - я поправлю инструкцию к актуальной версии ДЛЕ
 
Сверху