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

Парсинг цитат


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

Юзеры мне тут учудили. "Чайник" - это огромная разрушительная сила.

http://img252.imageshack.us/my.php?image=drrrff6.gif

[QUOTE]А.[/QUOTE]Б.[/QUOTE][quote][quote]С.[/quote]

 

А вот что из этого выйдет здесь:

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

Фига се.. а куда делся закрывающий тег

, который после Б. стоит? Ведь он тоже должен был быть напечатан? И один тег
тоже пропал.. :D

 

p.s. FatCat, в бан чайников за мозгоклюйство ;)

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

так, посмотрим что здесь в html

<!--quoteo--><div class='quotetop'>Цитата</div><div class='quotemain'><!--quotec-->А.<!--QuoteEnd--></div><!--QuoteEEnd-->Б.<!--QuoteEnd--></div><!--QuoteEEnd--><!--quoteo--><div class='quotetop'>Цитата</div><div class='quotemain'><!--quotec--><!--quoteo--><div class='quotetop'>Цитата</div><div class='quotemain'><!--quotec-->С.<!--QuoteEnd--></div><!--QuoteEEnd--></div>

сколько раз что встречается?

 

в общем лишний тут я так понимаю, только

<!--QuoteEnd--></div><!--QuoteEEnd-->

После Б.

 

а дальше 4 дива открыто и 4 закрыто

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

в общем лишний тут я так понимаю, только

<!--QuoteEnd--></div><!--QuoteEEnd-->

После Б.

В двушках-то на дивах сверстано, а в однушках на таблицах.

<div class="row1" style="padding:6px"><div class='postcolor'>  <!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>Цитата</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->А.<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->Б.<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd--><!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>Цитата</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin--><!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>Цитата</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->С.<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->  </div></div>

После открывающего тега таблицы идут два закрывающих, этим закрывается таблица топика. А дальше лишний открывающий табличный тег включает весь боттом страницы в ячейку с продолжением топика...

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

да есть такое..

тогда надо как-то проверять количество открытых <table> и закрытых

и закрывать лишние < и удалять лишние </

 

или проще, еще перед формированием собственно таблиц, такое проделывать с тегом quote

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

легче забить на это дело..

знали бы вы как там через одно место все эти цитаты обрабатываются..

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

легче забить на это дело..

знали бы вы как там через одно место все эти цитаты обрабатываются..

Есть идея как подлатать эту ошибку.

На пхп не осилю, а на джава-скрипте напишу как будет время. Добавкой к проверке на незаполненное поле сообщения.

 

 

Написал, в 1.3 работает.

В skin_post.php (если разрешена форма быстрого ответа, то и в skin_topic.php) в функцию CheckLength() после строки

errors = "";

добавит код:

tqotastr=document.REPLIER.Post.value.toLowerCase().split('[quote').join('Q+').split('[/quote').join('Q-')
var tqotaar = new Array()
tqotaar=tqotastr.split('Q')
tqotanum=tqotakey=tqotahtung='0'
if(tqotaar.length>1){
for(z in tqotaar){
tqotakey=tqotastr.split('Q')[z].substring(0,1)
if(tqotakey!='')eval('tqotanum=tqotanum*1'+tqotakey+'1*1')
if(tqotanum<0)tqotahtung=1
}
if(tqotahtung==1)errors = "Недопустимое расположение тегов цитат!"
}

 

Кому не лень, могут вынести текст предупреждения в ленг-файл, я лично поленился.

 

 

UPD от 26.02.07: подправил код, чтобы не выдавал ошибки при отсутствии цитат.

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

Кому не лень, могут вынести текст предупреждения в ленг-файл, я лично поленился.

из жабаскрипта-то? :D

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

Кому не лень, могут вынести текст предупреждения в ленг-файл, я лично поленился.

из жабаскрипта-то? :D

В той же функции текст предупреждения о пустом сообщении берется из ленг-файла. Это с понтом многоязычность форума.

Я же написал жестко в скине на все языки один текст.

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

×
×
  • Создать...

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

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