Перейти к контенту
  • 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

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

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

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

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

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

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

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

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

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

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