Перейти к контенту
  • 0

BB-код для HTML


Вопрос

Так, как на вопрос про Silverlight мне никто не ответил, у меня другой вопрос - а нет ли BB-кода, позволяющего вставлять HTML? Можно и в виде фрейма, только чтобы это было внутри сообщения/темы
Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

Без вмешательства в парсер ббкодов вам такого не провернуть... а такие критичные для безопасности вещи лучше не трогать.

 

Попробуйте сформулировать для себя, зачем именно вам нужна BBCode-вставка HTML для отельных пользователей? Чем вас не устраивает встроенная функция разрешения HTML для определенных групп? Нельзя ли реализовать то, что вы хотите, совсем без HTML?

 

Как правило, 99% потребностей пользователей можно реализовать с помощью BBCode. Видео с youtube, песня с boomp3, флеш-ролик, таблица, да все что угодно... Это в любом случае лучше, чем "распахнуть ворота" настежь и разрешить делать с форумом все что угодно.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
По крайней мере в списке тегов в АЦ такого нет.

Я плохо знаю "двушки", но в создании форума вижу: http://i43.tinypic.com/r2n8es.gif

Первая строка что означает, как Вы думаете? Тот самый тег ... Кнопки же нет, и не будет.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Я понимаю, что мои требования нестандартны. Мне не нужен флэш! Мне не нужны таблицы! Мне нужна возможность вставки HTML либо объекта Silverlight

 

Кстати, DOHTML не работает. Кто-то там говорил, что есть возможность сделать?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

FatCat, а точно ли нужен этот "тэг"? Разве с этой галкой HTML не начинает работать во всем посте?

 

Кстати, пример Silverlight приложения (сколько у микромягких помпезности-то, а внутри оказывается знакомый нам по HTML5 объект canvas + javascript + несколько доп. объектов для работы с мультимедиа):

 

<Canvas
  xmlns="http://schemas.microsoft.com/client/2007"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Width="640" Height="480"
  Background="White"
  >   
<MediaElement AutoPlay="False" x:Name="Movie_wmv"
	Width="320" Height="240" Canvas.Left="128" Canvas.Top="56"
	Source="Movie.wmv" Stretch="Fill"/>
<TextBlock x:Name="txtPlay" Width="72" Height="24" 
  Canvas.Left="136" 
  Canvas.Top="336" Text="Play" TextWrapping="Wrap"  
  MouseLeftButtonDown="java script:DoPlay"/>
<TextBlock x:Name="txtStop" Width="80" Height="24" Canvas.Left="136" 
  Canvas.Top="368" Text="Stop" TextWrapping="Wrap" 
  MouseLeftButtonDown="java script:DoStop"/>
</Canvas>
<script language="JavaScript">
function DoPlay(sender, eventArgs)
{
  var theHost = document.getElementById("SilverlightControl");
  var theMedia = theHost.content.findName("Movie_wmv");
  theMedia.Play();
}
function DoStop(sender, eventArgs)
{
  var theHost = document.getElementById("SilverlightControl");
  var theMedia = theHost.content.findName("Movie_wmv");
  theMedia.Stop();
}
</script>

 

Думаю, полезно для ознакомления всем, кто будет отвечать в этой теме)

Ссылка на комментарий
Поделиться на других сайтах

  • 0
FatCat, а точно ли нужен этот "тэг"? Разве с этой галкой HTML не начинает работать во всем посте?

В "однушках" точно нужен; в "двушках" не проверял.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

В классе BBCode-парсера видим строки:

		$txt = preg_replace( "#javascript\:#is"	, "java script:", $txt );
	$txt = preg_replace( "#vbscript\:#is"		, "vb script:"	  , $txt );
	$txt = str_replace(  "`"				   , "`"	   , $txt );
	$txt = preg_replace( "#moz\-binding:#is"   , "moz binding:", $txt );
	$txt = str_replace(  "<script"			   , "<script"  , $txt );

 

Чувствую я, они сильно помешают Silverlight-безобразиям)))

 

ТО ЧТО НАПИСАНО ДАЛЕЕ - ОТКРОВЕННАЯ ТУФТА, ПОТОМУ ЧТО ПОЗВОЛИТ ВСТАВЛЯТЬ НА ФОРУМ SILVERLIGHT-ПРИЛОЖЕНИЯ, СИРЕЧЬ, ЧИСТЫЙ HTML + JAVASCRIPT, А ЗНАЧИТ, ПРОЩАЙ БЕЗОПАСНОСТЬ!*

* туфтовость решения подтверждена экспертами, см. пост ниже

 

Однако, с другой стороны можно же сделать обычные теги:

 

Тег: canvas

Код:

<Canvas xmlns="http://schemas.microsoft.com/client/2007" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="640" Height="480" Background="White">{content}</Canvas>

 

Тег: MediaElement

Код:

<MediaElement {content} />

 

Тег: TextBlock

Код:

<TextBlock {content} />

 

Тег: MouseLeftButtonDown

Код:

MouseLeftButtonDown="java script:{content}"

* без пробела в слове jаvаscript

 

Тег: Script

Код:

<script language="JavaScript">{content}</script>

 

И тогда, в теории, ваше silverlight приложение будет выглядеть в BBCode следующим образом:

[canvas]
[MediaElement]AutoPlay="False" x:Name="Movie_wmv" Width="320" Height="240" Canvas.Left="128" Canvas.Top="56" Source="Movie.wmv" Stretch="Fill"[/MediaElement]
[TextBlock]x:Name="txtPlay" Width="72" Height="24" Canvas.Left="136" Canvas.Top="336" Text="Play" TextWrapping="Wrap"  [MouseLeftButtonDown]DoPlay[/MouseLeftButtonDown][/TextBlock]
[TextBlock]x:Name="txtStop" Width="80" Height="24" Canvas.Left="136" Canvas.Top="368" Text="Stop" TextWrapping="Wrap"  [MouseLeftButtonDown]DoStop[/MouseLeftButtonDown][/TextBlock]
[/canvas]
[script]
function DoPlay(sender, eventArgs)
{
  var theHost = document.getElementById("SilverlightControl");
  var theMedia = theHost.content.findName("Movie_wmv");
  theMedia.Play();
}
function DoStop(sender, eventArgs)
{
  var theHost = document.getElementById("SilverlightControl");
  var theMedia = theHost.content.findName("Movie_wmv");
  theMedia.Stop();
}
[/script]

 

Думаю, раз уж вы решились на чистый HTML в ваших постах, безопасность такого решения вас 100% не волнует)))

Изменено пользователем Ritsuka
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Простите, но я уж не могу удерживаться.

Зачем вы предлагаете откровенную туфту?

Только совершенно не подумавший человек может предлагать разрешить всем использовать Javascript в сообщениях.

Думаете в парсере javascript, on* и т.д. просто так удаляются?

 

Р.S. Куда катится лесная страна...

Ссылка на комментарий
Поделиться на других сайтах

  • 0

А в чем принципиальное различие в плане безопасности между BBCode тегом во вставкой чистого HTML, который реквестует топикстартер, и BBCode-тега со вставкой JavaScript, приведенного мной?

 

Конечно, это отвратительное решение, и только идиот будет такое ставить на публичный форум. Но раз вопрос задан - вот ответ. Он скорее всего сработает, и разрешит любому постить javascript + HTML = Silverlight в пределах форума. Зачем это нужно автору - спросите у него. Чтобы вам было спокойнее, сейчас добавлю аналогичную жирную красную надпись в свой предыдущий пост)

Ссылка на комментарий
Поделиться на других сайтах

  • 0

А кто сказал, что то, что делает топикстартер -- хорошо?

 

А в чем принципиальное различие в плане безопасности между BBCode тегом во вставкой чистого HTML, который реквестует топикстартер, и BBCode-тега со вставкой JavaScript, приведенного мной?

В том, что в обычном HTML форум всё равно вырежет скрипты, а вы хотите это убрать.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

если серьезно заниматься этим вопросом, то можно создать автоматический распознаватель наподобие того, что я делал для вкадре

там будут проверяться все аспекты, но такое решение с ббкодами - беспощадная ересь

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Конечно, это отвратительное решение, и только идиот будет такое ставить на публичный форум. Но раз вопрос задан - вот ответ. Он скорее всего сработает, и разрешит любому постить javascript + HTML = Silverlight в пределах форума. Зачем это нужно автору - спросите у него. Чтобы вам было спокойнее, сейчас добавлю аналогичную жирную красную надпись в свой предыдущий пост)

Замечательный ход, дать опасный код без объяснений, а потом отговариваться тем, что "это единственный ответ". Просто делать это нужно было сразу ;) не было бы никаких вопросов.

 

А для плеера можно сделать один BB-код, который ссылку на файл принимает, только по словам ТС его ещё нет. Было бы и безопасно и прозрачно для пользователей, не находите? :D

Ссылка на комментарий
Поделиться на других сайтах

  • 0

А без скриптов не будет работать silverlight)))

 

Но если автор хочет закрытый форум, куда будет постить только он сам и его проверенные друзья.... то может это то что ему нужно.

 

Если же это публичный форум - конечно применение такого граничит с идиотизмом))))

Ссылка на комментарий
Поделиться на других сайтах

  • 0
А без скриптов не будет работать silverlight)))

Кстати не факт, что ТС это понимает или знает о том, что они порежутся. По крайней мере в этой теме таких упоминаний нет, он пока что с обычной вставкой HTML не разобрался. Хотя, конечно же, этот вопрос бы ещё всплыл.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Пусть человек испробует такую вещь на локалке, решит, так ли оно ему надо вообще (в чем я лично очень сомневаюсь). Если оно реально нужно, и обязательно на публичном форуме, то можно задействовать эти же теги, просто внести их не "для всех" (т.е. не через АЦ), а вручную вписать в парсер BBCode, при этом нужным образом усложнив и добавив проверку группы и/или id пользователя.

 

Если же автор хочет всем разрешить постить у себя скрипты в постах... нууу... что тут скажешь, кроме:

 

скажи прощай своему форуму)
Изменено пользователем Ritsuka
Ссылка на комментарий
Поделиться на других сайтах

  • 0

можно посмотреть унифицированный пример кода сильверлайт плеера?

 

тоесть иначе - яваскрипт будет одинаковым для всех фильмов?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Да, он только для play/stop. Можно вообще без него, в плеер нужно кнопки класть, а не отдельно на канву.

Одним словом ждём от ТС сам плеер, а там можно будет кастомный ББ-код сделать и радоваться жизни.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

1) В Silverlight язык не java, а XAML!

2) Мне просто нужна возможность вставки приложения Silverlight 2-3 тем группам, которым разрешено. Мне не нужно описание всех контролов Silverlight на XAML. Тег Canvas - для XAML

3)Как сделать так, что бы использовать тег могли только доверенные группы?

Ссылка на комментарий
Поделиться на других сайтах

  • 0
В том, что в обычном HTML форум всё равно вырежет скрипты, а вы хотите это убрать.

ИМХО, паранойя.

Если у меня разрешен dohtml только рутовым админам - с какого переляку я должен резать джаваскрипт внутри ХТМЛ-блоков?

Не-админ все равно не внедрит джаваскрипт, его парсер порежет.

А если злоумышленник получил рутовый админский доступ - запрет на джаваскрипт нужен как трупу памперсы.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Armanx64, XAML - eXtensible Application Markup Language - это язык интерфейсов. Интерфейсы в Silverlight написаны на XAML. А фунциклирует он за счет JavaScript кода. Зачем вам нужна технология, о которой вы мало знаете?

 

А вообще вы так и не дали ответа на главный вопрос, заданный вам как Sannis, так и Arhar - какое именно silverlight-приложение вы желаете вставить на свой форум?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

из выводов FatCat собственно вытекает примитивное решение - прописать простейший if в class_bbcode

но даже если так, то остается вопрос - ЧТО именно надо вставлять, и ПОЧЕМУ нельзя сделать это доступным простым смертным, соблюдая все правила безопасности

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.