если изменить или удалить ББкод то в сообщении будет просто текст (код) |
Вы уверены, что база и движок при изменении ВВ-кодов должны вести себя так, как Вы описываете?
Дело в том, что другие ВВ-коды, которые были изменены в форуме Marina-Helena, так себя не вели.
У нее в форуме было очень много ВВ-кодов для вставки видео. Со временем на ряде видеохостингов изменились ссылки, которые использовались в ВВ-кодах для вставки видео, в результате чего вставить в новые сообщения видео с помощью этих ВВ-кодов стало невозможно.
"Поправить" неисправность взялась дама, которая не знала, что изменять существующие ВВ-коды надо осторожно, поскольку может получиться так, что в старых сообщениях, где эти ВВ-коды использовались, после изменения будет просто текст. Ну и поправила... "Неработающие" ВВ-коды не удаляла, но изменила к ним и коды использования, и коды замены. Причем так, что новый код использования ни в чем не был похож на старый.
В частности, изменения коснулись ВВ-кодов mailvid и rutube для вставки видео с мейл.ру и рутуб.
В старых сообщениях с такими ВВ-кодами, естес-но, стал показываться просто текст.
Примерно так:
Подлечить появившиеся косяки попросили меня.
Ну так вот для начала я просто вернула старые коды использования и замены. Т.е. по сути, я снова эти ВВ-коды изменила.
И в старых сообщениях, где использовались такие ВВ-коды, снова стал показываться преобразованный ВВ-код.
Никакие изменения в сами сообщения при этом не вносились.
Далее... В части имевшихся ВВ-кодов помошница не трогала коды использования, но изменила коды замены. Причем, изменения в код замены были внесены такие, при которых код использования все равно бы преобразовывался нормально.
Ну, например, изменила ширину и высоту объекта.
Было в каком-нибудь коде замены написано:
- Код: Выделить всё
<object width="640" height="400"
а она записала:
- Код: Выделить всё
<object width="640" height="360"
И ничего страшного после внесения таких изменений не случилось, никаких непреобразованных ВВ-кодов в старых сообщениях не появилось.
Далее... Помимо изменения старых ВВ-кодов, помощница решила подарить марининому форуму ряд новых ВВ-кодов.
Я начала проверять эти новые ВВ-коды и нашла в их кодах замены где ошибки, где лишние теги, где теги, из-за которых код был бы невалидным.
В частности, был подарен новый Вв-код coub. Кубики понравились пользователям, и ВВ-код начал активно использоваться.
В первоначальном виде код замены к нему выглядел так:
- Код: Выделить всё
<object classid="clsid:D27CDB6E-AE6D-11CF-96B8-444553540000" codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=5,0,0,0" height="320" width="480"><param name="movie" value="https://c-cdn.coub.com/fb-player.swf?coubID={TEXT1}"><param name="play" value="false"><param name="loop" value="false"><param name="quality" value="high"><param name="allowScriptAccess" value="never"><param name="allowNetworking" value="internal"><embed src="https://c-cdn.coub.com/fb-player.swf?coubID={TEXT1}" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" play="false" loop="false" quality="high" allowscriptaccess="never" allownetworking="internal" height="320" width="480"></object>
Посмотрев этот код, я изменила его на:
- Код: Выделить всё
<object type="application/x-shockwave-flash" height="320" width="480" data="https://c-cdn.coub.com/fb-player.swf?coubID={TEXT1}"><param name="movie" value="https://c-cdn.coub.com/fb-player.swf?coubID={TEXT1}"><param name="play" value="false"><param name="loop" value="false"><param name="quality" value="high"><param name="allowScriptAccess" value="never"><param name="allowNetworking" value="internal"></object>
Если приглядеться к этим кодам - во втором никаких кардинальных изменений, код просто приведен к валидному.
И опять же, никакого непреобразованного текста в сообщениях, в которых ВВ-код coub уже использовался, после внесенных мной изменений не приключилось.
Как были кубики в сообщениях, так после изменений кода замены и остались.
Поэтому я полагала, что нормальная работа форумского движка и базы - это когда при корректном изменении ВВ-кода не только в новых, но и в старых сообщениях, где этот ВВ-код использовался, показывается преобразованный ВВ-код.
Еще через некоторое время я еще изменила код замены к coub, добавив к коду замены спойлер, поскольку флешки с coub без спойлеров сами запускались при загрузке страницы, а некоторые пользователи забывали спрятать кубик в спойлер, что приводило к неожиданным музыкальным сюрпризам. И заодно еще ввести ВВ-код coub=, позволяющий ввести заголовок к спойлеру.
И вот тут база повела себя так, как описано в первом посте, и так, как описываете Вы как "особеность движка".
Ну то бишь после очередного изменения кода замены к coub показ кубиков в старых сообщениях отвалился, и вылечить такое сообщение стало возможно только путем обновления, т.е. добавления в него какого-нибудь знака.
Ну, в общем, если все это излагать в нескольких словах, то получается так: "100 раз меняли коды использования и замены к существующим ВВ-кодам, если меняли правильно, то ничего в старых сообщениях не отваливалось. А на 101-й почему-то отвалилось".
Поскольку до этого момента при корректных изменениях кодов замены к имеющимся ВВ-кодам такого не случалось, я предположила, что с базой форума какой-то непорядок.
Автор не может молчать 39 минут 51 секунду и добавляет ...ЗЫ зачем вам такой сложный код замены? |
Из нелюбви к фреймам и ифреймам.
Автор не может молчать 1 час 53 минуты 42 секунды и добавляет ...если изменить или удалить ББкод то в сообщении будет просто текст (код) |
Вот еще вспомнила.
Из примеров, когда при изменении ВВ-кода в сообщениях, где этот ВВ-код уже использовался, ничего не отвалилось и непреобразованный текст не показывался.
Был у Марины в форуме простенький Вв-код font=, с помощью которого можно задать стиль шрифта. При этом альтернативного шрифта заданному в коде замены не было.
К ВВ-коду был сделан селектор со списком шрифтов. В список были включены только условно безопасные шрифты, которые есть на любом компе с операционкой виндос.
Ну был и был. Иногда им пользовались. Потом выяснилось, что есть пользователи, которым для украшения своих сообщений недостаточно шрифтов из списка, и которые могут попытаться впихнуть в ВВ-код font= название какого-нибудь экзотического шрифта, которого у других пользователй может и не быть.
На всякий случай решено было поправить код замены к font=, снабдив его указанием альтернативного семейства шрифтов.
То бишь вместо
- Код: Выделить всё
<span style="font-family: {SIMPLETEXT};">{TEXT}</span>
в коде замены написали:
- Код: Выделить всё
<span style="font-family: {SIMPLETEXT}, sans-serif;">{TEXT}</span>
Опять же, после изменений старые сообщения с ВВ-кодом font= не испортились, никаких непреобразованных ВВ-кодов в них не появилось.
А вот со 101-м изменением кубиков вышло все по-другому...