[img] - вставка изображений только со своего домена.

Автор we1t, 17 августа 2009, 11:41:10

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

we1t

Уважаемые, подскажите, пожалуйста. Возможно, где-то об этом уже писали, но в поиске не нашёл.
Имеется задача разрешить вставку изображений в тело сообщения тегом img, но только со своего сайта (например, ссылка начинается на http://www.simplemachines.ru или http://simplemachines.ru).
Это может быть вставка изображений из галереи, либо из аттачей других сообщений.
А при публикации остальных - чтобы отображалась только текстовая ссылка (точно так, как при отключении bb-тегов).
Возможно ли это сделать, или уже есть такой мод?

SMF 1.1.10.

Заранее всем спасибо.

deadbead

По идее в месте где обрабатывается bbCode (при выводе) нужно поменять регулярное выражение чтобы не все [img] парсил, а только [img]'.$boardurl

На вскидку где это сделать не нашел.... Думаю аксакалы подскажут)
Это же самый страшный разум во вселенной. Высылайте беспилотный модуль.

BIOHAZARD

Мои моды:
  • RedirectPage
  • Counters
  • CustomSearch
  • SypexDumper
   адаптирую темы    1.1.хx<=>2.0задавая вопросы, старайтесь сразу указывать конечную цель, предполагаемый Вами путь не обязательно окажется самым коротким

Любые моды на заказ

Beer

Можно добавить в список "плохих слов" определенные напр. radikal.ru - заменить на радикал.ру, я так частично сделал, у меня схожая задача - вставляют картины в тело сообщения без превью, не используя кнопку [hide] [/hide] ну и лишние ссылки опять же....
Я для галереи делал смайлы, вот кусок кода, при обработке которого коды переводятся в ссылки на смайлы, теоретически можно сменить все на все, как оно работает в smf я не смог осилить.....
function smilies($text,$enablesmilies = 1) {
  global $smileyfromcache, $smileytocache;
  $imagesdir = TEMPLATE_PATH."/smiley";
  if(gettype($smileyfromcache) != "array") {
$smilesfrom = array(
":fie:" => "fie",
":smile:" => "smile",
":wink:" => "wink",
":yes:" => "yes",
":lol:" => "lol",
":shok:" => "shok",
":shocked:" => "shocked",
":cry:" => "cry",
":cool:" => "cool",
":yes:" => "yes",
":redface:" => "redface",
":tongue:" => "tongue",
":beer:" => "beer",
":confused:" => "confused",
":whistling:" => "whistling",
":laugh:" => "laugh",
  );
foreach ($smilesfrom as $key => $val) {
  $smileyfromcache[] ='/(((>[^<]*)|(^[^<]*))([\s\n\r]|^|<br( \/)?[>]))('.str_replace('|','\|', quotemeta(str_replace("<", "&lt;", str_replace(">", "&gt;", str_replace("\/", "\\\/", $key))))).')/s';
  $smileytocache[] = "\\1<img src=\"$imagesdir/$val.gif\" alt=\"\" border=\"0\">";

we1t

Это понятно.
Но, наверное, можно решить эту проблему и просто через .htaccess?
По крайней мере как запретить вставлять свои изображения на чужих сайтах, такие решения есть.

BIOHAZARD

Цитата: we1t от 06 января 2010, 15:10:25
Но, наверное, можно решить эту проблему и просто через .htaccess?
нельзя
.htaccess фактически просто управляет доступом к сайту (не будем вдаваться в подробности), так что рендеринг его средствами делать затруднительно (хотя возможно :о))
Мои моды:
  • RedirectPage
  • Counters
  • CustomSearch
  • SypexDumper
   адаптирую темы    1.1.хx<=>2.0задавая вопросы, старайтесь сразу указывать конечную цель, предполагаемый Вами путь не обязательно окажется самым коротким

Любые моды на заказ

Макар

А чем плохи теги [atacments id=] и [smg id=]
запрещаем [имж] ставим моды для атачей или smg медиа галерею и пользуемся только своими картинками .
Если Вы здесь недавно, не обольщайтесь тоном некоторых дискуссий.
Все чаще слова - юзай поиск, приобретают смысл - иди в ж..........  Приобретение смысла автоматизированно - Ответы на любой вопрос по SMF
Не пишите несколько сообщений подряд - тут вам не Twitter  >:( в остальных ситуациях мы не сильно зверствуем 2funny