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

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

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

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

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

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

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

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

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

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

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

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

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