Перед созданием новой темы, пожалуйста, ознакомьтесь с FAQ по LinkorCMS

Вставка картинки на форуме.

Супер пользователь
Сообщений: 62
Всем доброго дня!
Как сделать вставку изображения на форуме только с определенных хостингов изображений, то есть как вставка видео с youtube или rutube ? Ранее я задавал такой вопрос http://linkorcms.ru/forum/topic263.html
Разработчик
Сообщений: 605
А смысл создавать новую тему, если есть почти такая же причем с ответом?
Супер пользователь
Сообщений: 62
Я в php пока плохо соображаю. Тогда подскажите пожалуйста в каком файле и на "какой строке" прописана вставка видео, чтобы разобраться как это выглядит.
Разработчик
Сообщений: 605
Интересные для вас файлы:
addpost.php и addtopic.php \modules\forum\functions (функции добавления сообщений и тем (там добавляется первое сообщение темы))
\base\inc\system\bbcode.php (парсер ббкодов)

Собственно в функциях сохранения добавляется в базу пост. Там особых каких-то проверок нет.Пост вставляется как есть с ббкодом в нем. Но вы можете вставить свои проверки (логично сделать отдельной функцией).

Парсер ббкода у нас простой, реализован на регулярных выражениях (грубо говоря, никакого анализа, просто заменяем все по шаблону. довольно топорно, но на несложных постах работает нормально). Собственно основное регулярное выражение для тега img (я прям всю строку выдергиваю. там есть и другие вариации этог тега, как и многие другие теги, включая неописанные. да, таблицы можно строить в постах и многое другое).

'~\[img\](.*?)\[\/img\]~si' => '<a href="$1" target="_blank"><img src="$1"></a>',


У вас есть регулярки, которые способны выхватить так скажем аргументы у ббкодов (например, ссылку на изображение у тега img). Одну я привел выше. Берете с и помощью функций PHP для регулярных выражений и мб циклов выхватываете ссылки на изображения из тегов img и прогоняете свои проверки. Функции preg_match_all, strpos, in_array, и цикл foreach должны оказаться вашими друзьями в этом случае. Обратите сперва на их внимание, они должны подойти для реализации. Ну а дальше уже пишите функцию проверки и суете ее вызов в функции сохранения.

P.S. Пишу усталым, могут быть ляпы.
Гости не могут отвечать на темы. Войдите или Зарегистрируйтесь.
Здесь присутствуют
(пользователей: 0, гостей: 1)
Быстрый переход: