Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: По разбивке предложения [3]
Покинул форум
Сообщений всего: 37
Дата рег-ции: Апр. 2017
Помог: 0 раз(а)
Не выходит, с точками на странице данные дублируются. Но что с ними, что без них, вариант - foto/123.png прописывается текстово. Эту строку почему-то не обрамляет
Строитель
Отправлено: 04 Апреля, 2017 - 13:10:09
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
bellagio пишет:
Не выходит, с точками на странице данные дублируются. Но что с ними, что без них, вариант - foto/123.png прописывается текстово. Эту строку почему-то не обрамляет
Значит надо пересмотреть вариант решения. Напомните, пожалуйста, условие вашей задачи.
bellagio
Отправлено: 04 Апреля, 2017 - 13:14:55
Новичок
Покинул форум
Сообщений всего: 37
Дата рег-ции: Апр. 2017
Помог: 0 раз(а)
При создании новой записи в блоге, в редакторе tinymce автор оставляет текстовые строки и записи на картинки типа:
foto/123.png=а тут описание картинки+тут альт картинки
foto/123.png=а тут описание картинки
foto/123.png
на странице могут присутствовать все три типа вышеописанной записи для картинок. В соответствии с чем, каждую из них необходимо обрамлять.
Обрамление в примерах выше.
Кроме того, существует еще и видео ролики, которые тоже вставляются по ссылке. Но с ними нет проблем, ибо запись для поиска ссылки одна, и не изменяется.
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
bellagio, похоже, что в текущей версии кода происходит перезапись ранее обработанных данных. Если это так, то я думаю, что надо убрать preg_replace(), и вместо неё подставлять найденные данные функцикей preg_match(), добавив к ней третий параметр, в который будут "складываться" найденные строки:
$str='foto/1.png=картинка про лето+летний пейзаж';
echo parse_links_image($str).'<br />';
$str='foto/2.png=картинка про лето';
echo parse_links_image($str).'<br />';
$str='foto/3.png';
echo parse_links_image($str);
// Результат :
/*
<div class="wp-caption aligncenter">
<img src="foto/1.png" alt="летний пейзаж" />
<div class="wp-caption-text">
картинка про лето
</div>
</div><div class="wp-caption aligncenter">
<img src="foto/2.png" alt="картинка про лето" />
<div class="wp-caption-text">
картинка про лето
</div>
</div><div class="wp-caption aligncenter">
<img src="foto/3.png" alt="" />
</div>
*/
bellagio
Отправлено: 05 Апреля, 2017 - 05:51:20
Новичок
Покинул форум
Сообщений всего: 37
Дата рег-ции: Апр. 2017
Помог: 0 раз(а)
Код отрабатывает для одного из первых попавшихся результатов. Но не для всех и сразу
Строитель
Отправлено: 05 Апреля, 2017 - 08:06:47
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
bellagio пишет:
Код отрабатывает для одного из первых попавшихся результатов. Но не для всех и сразу
Покажите, как вы передаете данные на вход.
bellagio
Отправлено: 05 Апреля, 2017 - 12:11:59
Новичок
Покинул форум
Сообщений всего: 37
Дата рег-ции: Апр. 2017
Помог: 0 раз(а)
у меня идет переменная в шаблоне - [[parse_img? &input=`[[*content]]`]]
где, parse_img - это название нашего плагина, для обработки картинок. А сам [[*content]] - это стандартная переменная cms для вывода тех данных что введены в редакторе tinymce, иными словами сам текст статьи. В тексте статьи, мы вставляем ссылки:
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.