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

Использование doHTML в форуме


Nerva

Вопрос

Как включить dohtml я разобрался, в форумах теперь делаю таблицы и т.п.

 

Однако возникла проблема - с форума новости, выводятся сообщения на главную страницу портала, так вот в форуме теги срабатывают и все видно как надо, а когда окрываешь страницу портала, все отображается в виде кода, который начинается с и заканчивается

 

помогите понять в чем дело

 

версия форума 1.3, русская скаченная отсюда, версия портала 4.0

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

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

  • 0

Nerva

всё очень просто. Портал - не форум, не входил в его первоначальную поставку, значит и теги в нём не парсятся. А посему обращайся к разработчикам портала.

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

  • 0
всё очень просто. Портал - не форум, не входил в его первоначальную поставку, значит и теги в нём не парсятся. А посему обращайся к разработчикам портала.

 

Ну ты гений ваще :D

Человек помощи просит, а ты обращайся к разработчику. Нафига тогда этот форум ваще?

 

Насколько мне известно все сообщения храняться в базе не в чистом виде а переконвертированые в ХТМЛ мнемонику. Т.е. спец символы вроде <, >,& и т.д. превращаються в & < >. И при выводе подобной строки в хтмл воспринимаются не как спец. символы а как и любая буква.

 

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

 

Осталось только найти где что добавить или удалить. Либо в skin_portal.php или portal.php.

Добавлено в [mergetime]1102010861[/mergetime]

Я нашел выход только есть один минус. Но позже.

Открываем skin_portal.php.

После первой строки добавляем:

function parse_html($t="", $do_br=1)

{

if ( $t == "" )

{

return $t;

}

if ( $do_br == 1 )

{

$t = str_replace( "<br>" , "\n" , $t );

$t = str_replace( "<br />" , "\n" , $t );

}

$t = str_replace( "'" , "'", $t );

$t = str_replace( "!" , "!", $t );

$t = str_replace( "$" , "$", $t );

$t = str_replace( "|" , "|", $t );

$t = str_replace( "&" , "&", $t );

$t = str_replace( ">" , ">", $t );

$t = str_replace( "<" , "<", $t );

$t = str_replace( """ , '"', $t );

$t = str_replace( "" , '', $t );

$t = str_replace( "" , '', $t );

$t = preg_replace( "/alert/i" , "alert" , $t );

$t = preg_replace( "/onmouseover/i", "onmouseover", $t );

$t = preg_replace( "/onclick/i" , "onclick" , $t );

$t = preg_replace( "/onload/i" , "onload" , $t );

$t = preg_replace( "/onsubmit/i" , "onsubmit" , $t );

 

return $t;

}

 

Находим строку function news($data) в файле skin_portal.php

После global $ibforums добавляем.

$temp=$data['post_body'];

$temp=parse_html($temp,1);Чуть ниже в функции news есть строка

<td class='post1'>{$data['post_body']}{$data['post_body_extra']}</td>

заменяем на

<td class='post1'>$temp{$data['post_body_extra']}</td>

 

А теперь небольшой трабл тэг и будит убиваться только в нижнем регистре. Если у вас в топиках то поменяйте эти строки

$t = str_replace( "" , '', $t );

$t = str_replace( "" , '', $t );

в функции parse_html.

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

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

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

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

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

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

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

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

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

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

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

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