VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Я понимаю, что тема избита, но постараюсь обьяснить с чего это я вдруг занялся некромантией.
Итак, дано: скопипастить некий текст, в котором около 25-30 различных таблиц. И не надо отсылать меня к замечательному хаку Luvilla, он у меня установлен, просто время на создание даже ОДНОГО подобного поста (а их, честно говоря, нужны сотни) с лихвой перекрывает время на создание этого.
Вообще говоря, как сказано в одном замечательном фильме, "Меня терзают смутные сомнения..." Тот же DLE в полный рост использует HTML в постах по умолчанию - и ничего, жив? Есть к нему пара простеньких хаков, позволяющих запретить в комментах ссылки и мыло для предотвращения спама - и как-то хватает..
Ладно, отвлекся. Вариант решения проблемы номер раз - создать раздел с доступом только для админов, в нем разрешить HTML, а потом, после создания поста, перетаскивать пост в нужный раздел на всеобщее, так сказать, обозрение. Минусы очевидны: и тему перетаскивать и, что важнее, чтоб отредактировать пост - надо опять тащить его в закрытый раздел, там править, потом опять тащить...
Вариант номер 2- хак Allow HTML to Usergroups. Уж не знаю почему, но у меня, например, работать отказывается категорически, ДАЖЕ после того, как во всех 3 модулях выкинут ВЕСЬ код и оставлено только dohtml=1
Собственно, именно этот хак и подкинул мне следующую идею. Если есть некая переменная, разрешающая постинг HTML в конкретном разделе (я так сильно подозреваю, что это что-то из таблицы forum.options ), то где-то же она при написании поста на глобальном уровне проверяется?
То есть если при создании поста несколько изменить эту проверку и вместо опции "Есть ли разрешение на постинг HTML в этом разделе" проверять банальное if usergroupid=6 - то проблему можно считать решенной. Верно я мыслю?
Вопрос - никто не знает, где именно начинать копать методом глубокого бурения?
P.S. Для тех, кто, не дочитав, начнет что-то про угрозу безопасности - повторяю, usergropid=6 - это админы, то есть в даннгом случае - я и я уж как-нибудь разберусь, что мне можно вставлять, чтобы не убить форум
эммм)))) Взять какую-нибудь либу html -> bbcode, потом добавить теги для таблицы, потом запустить скрипт, и на выходе получить разбитые посты, которые можно будет уже добавлять в воблу, не?)
Просто html даже в сообщениях админов - это не самая хорошая идея...
@Gostemilov
Специалист
Join Date: Jun 2007
Location: Одинцово Московская область
Награды в конкурсах:
Posts: 610
Версия vB: 3.8.4
Reputation:
Professional 629
Репутация в разделе: 495
0
Я привел пример с несколькими десятками таблиц в посте. Это уже оправдывает HTML. Но - я нашел другой способ и сейчас его дорабатываю. Парсится-то где? Правильно, вызов идет из newthread.php и вызывается function_wysiwig. Что мешает влезть кривыми ручонками и переформатировать код таблиц под код хака Luvilla?
Gostemilov добавил 09.05.2013 в 10:32
В общем, такой расклад - помогайте всем миром в newthread.php добавлено перед вызовом
но я никак не могу сообразить, каким образом убрать перевод строки, чтобы таблица отображалась корректно?
Last edited by Gostemilov : 05-09-2013 at 11:32 AM.
Reason: Добавлено сообщение
Luvilla
Гость
Posts: n/a
Quote:
Originally Posted by Gostemilov
Вариант решения проблемы номер раз - создать раздел с доступом только для админов, в нем разрешить HTML, а потом, после создания поста, перетаскивать пост в нужный раздел на всеобщее, так сказать, обозрение.
ничего не получится
после "перетаскивания" хтмл перестанет парситься
Quote:
Originally Posted by Gostemilov
Вариант номер 2- хак Allow HTML to Usergroups. Уж не знаю почему, но у меня, например, работать отказывается категорически
а какой конкретно хак? их несколько в ходу, пару раз ставила - его использование вполне оправдано
у меня есть проверенный рабочий вариант
Quote:
Originally Posted by Gostemilov
плавно превращается в
я не прочла, что там перед этой строкой (много текста)... но по скрину, то, что набрано в редакторе - так и должно выводиться
тебе нужно автоматически убрать все переводы строк?
@Gostemilov
Специалист
Join Date: Jun 2007
Location: Одинцово Московская область
Награды в конкурсах:
Posts: 610
Версия vB: 3.8.4
Reputation:
Professional 629
Репутация в разделе: 495
0
Я вот что сделал - обычный код таблицы через str_replace и preg_replace приводится к BB-кодам, используемым в хаке TABLE
То есть <table class ....> меняется на [table 1 0 1] , вместо <tr> ставится <br />, вместо <td> ставится | и </td> выкидывается вообще
В результате в пост уже идет форматированная как надо таблица. Но!
Вот на чем я споткнулся
Есть код
PHP Code:
<table><tr><td>текст</td></tr></table>
и он уже обрабатывается правильно и таблица идет в пост.
далее:
PHP Code:
<p class="тут много чего напихано"> какой-то текст</p>
<table><tr><td>текст</td></tr></table>
и, чтобы избавиться от форматирования кода источника я, естественно, через регулярку выкидываю <p> и </p> иди меняю их на <p> безо всякого CSS, что, в общем, одно и то же и все опять выводится замечательно.
А вот когда это параграф ВНУТРИ таблицы....
PHP Code:
<p class="тут много чего напихано"> какой-то текст</p>
<table><tr><td><p class="тут много чего напихано"> какой-то текст</p></td></tr></table>
Gostemilov добавил 09.05.2013 в 18:54
Стою на асфальте я, в лыжи обутый.. То ли лыжи не едут, то ли я голосовал за Путина.
В функции convert_wysiwyg_html_to_bbcode прямо указано, чем пост в разделе с разрешенным HTML отличается от поста в разделе с запрещенным HTML. Это что, ВСЕ????!!!!
Ну ладно, выдрать и выкинуть все скрипты, это полезно. Хорошо, допустим теги типа <strong> являются ужасно вредными. Ну перенос строки поправить. И ВСЕ??? И вот из-за этого тут столько бодяги?
Вариант номер 2- хак Allow HTML to Usergroups. Уж не знаю почему, но у меня, например, работать отказывается категорически, ДАЖЕ после того, как во всех 3 модулях выкинут ВЕСЬ код и оставлено только dohtml=1
если пробовали использовать этот и с ним проблемы то поставьте этот, с ним проблем не было замечено.