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

Интеграция BB кодов


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

./sources/classes/bbcode/*
Ссылка на комментарий
Поделиться на других сайтах

Адрес я дал в дополнению к ответу Song'а.

 

А мануалов в сети полно: от http://i-novice.net/2-sposoba-obrabotki-bbcode/ до стандартной фичи PHP http://ru.php.net/bbcode

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

я не силен в ipb вот и нужен подробный мануал

с болдом разобрался

$txt = preg_replace( "#\[b\](.+?)\[/b\]#is", "<b>\\1</b>", $txt );

а вот как подцепить цитату с именем пользователя

 

есть

$txt=$_POST["Post"];

$ipb = $_SERVER['DOCUMENT_ROOT']."/forum/";

include $ipb."sources/classes/bbcode/class_bbcode_core.php";

include $ipb."sources/classes/bbcode/class_bbcode_legacy.php";

include $ipb."sources/classes/bbcode/class_bbcode.php";

$this->ipsclass->member['is_mod'];

$parser = new parse_bbcode();

$parser->ipsclass =& $this->ipsclass;

$parser->parse_smilies = 1;

$parser->parse_bbcode = 1;

$bbcode_text = $parser->pre_db_parse( $txt );

echo $bbcode_text ;

 

чего не хватает?

как с них вытягивать обработку

примерчик бы

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

include $ipb."sources/classes/bbcode/class_bbcode_legacy.php";
include $ipb."sources/classes/bbcode/class_bbcode.php";

Достаточно одного.

 

Версия какая?

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

$bbcode_text = $parser->pre_display_parse($parser->pre_db_parse( $txt ));

Попробуйте на всякий случай.

 

Не ясно чего вы хотите, точнее что не получается. Вы приводите фрагмент кода замены тега , который работает независимо от форума, а не получается у вас "вытянуть обработку", шо це таке? Вам нужно из необработанного текста сообщения получить HTML средставми парсера форума, да? :D

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

$bbcode_text = $parser->pre_display_parse($parser->pre_db_parse( $txt ));

Попробуйте на всякий случай.

Fatal error: Cannot redeclare class class_bbcode in /home/user/site/forum/sources/classes/bbcode/class_bbcode.php on line 813

 

Не ясно чего вы хотите, точнее что не получается. Вы приводите фрагмент кода замены тега , который работает независимо от форума, а не получается у вас "вытянуть обработку", шо це таке? Вам нужно из необработанного текста сообщения получить HTML средставми парсера форума, да? :D

трудно выразить одной фразой, что нужно....

есть форум и сайт в одном стиле с общей авторизацией

есть комментарии к фильмам, вот и хочется средствами форума подтянуть обработку BB кодов, а так же сделать ответы с цитатами сообщений как на форуме.

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

Fatal error: Cannot redeclare class class_bbcode in /home/user/site/forum/sources/classes/bbcode/class_bbcode.php on line 813

Весь ваш код покажите, от и до.

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

Весь ваш код покажите, от и до.

<?php 
$txt=$_POST["Post"];
$ipb = $_SERVER['DOCUMENT_ROOT']."/forum/";
include_once ($ipb."conf_global.php");
include_once ($ipb."sources/classes/bbcode/class_bbcode_core.php");
include_once ($ipb."sources/classes/bbcode/class_bbcode_legacy.php");

$parser		   =  new parse_bbcode();
$bbcode_text = $parser->pre_display_parse($parser->pre_db_parse( $txt ));
?>
<html>
<head>
</head>
<body>

		<h4>ОБРАБОТКА ДАННЫХ</h4>
		<p>Ваш комментарий </p><?php echo $bbcode_text?>
</body>
</html>

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

И? Этот код не будет выдавать такую ошибку, ибо нет define ( 'IN_IPB', 1 ); в коде. Он закончит выполненияпри первом же инклюде. Может быть вы этого и не хотите, но вы только запутываете нас. Я же попросил код, который вызывает конкретную ошибку показать, а не его разновидность :D

 

1. class_bbcode_legacy -- для совместимости со старыми версиями, так что смело меняем на class_bbcode.

2. Как уже сказано выше -- define ( 'IN_IPB', 1 ); нужно добавить в начало. Желательно init.php включить вместо этого, он и остальные константы определит.

3. Без инициализации и передачи в парсер 4ipsclass доступа к БД он не получит, а значит и не сможет обработать кастомные бб-коды, которые можно найти в админке форума.

4. Я пожалуй передумаю и посоветую в таком случае использовать ./sources/handlers/han_parse_bbcode.php, с оглядкой на п.3. Он за вас проинициализирует кеши нужные.

5. Если у вас есть подключение к БД и вы не хотите использовать $ipsclass, то посмотрите в файле из п.4. какие переменные нужно заполнить для полноценной работы парсера.

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

вот код

[<?php
$txt=$_POST["Post"];
$ipb = $_SERVER['DOCUMENT_ROOT']."/forum/";
include_once ($ipb."conf_global.php");
include_once ($ipb."init.php");

include_once ($ipb."sources/ipsclass.php");
include_once ($ipb."sources/classes/bbcode/class_bbcode_core.php");
include_once ($ipb."sources/handlers/han_parse_bbcode.php");


$parser		   =  new parse_bbcode();
$bbcode_text = $parser->pre_display_parse($parser->pre_db_parse( $txt ));

?>
</head>
<body>
		<h4>ОБРАБОТКА ДАННЫХ</h4>
		<p>Ваш комментарий </p><? echo $bbcode_text?>

</body>
</html>

вот ошибка

Fatal error: Call to a member function simple_construct() on a non-object in /home/site/forum/sources/handlers/han_parse_bbcode.php on line 434

============

3. Без инициализации и передачи в парсер 4ipsclass доступа к БД он не получит, а значит и не сможет обработать кастомные бб-коды, которые можно найти в админке форума.

по подробней что такое 4ipsclass

5. Если у вас есть подключение к БД и вы не хотите использовать $ipsclass, то посмотрите в файле из п.4. какие переменные нужно заполнить для полноценной работы парсера.

какой файл подключает БД

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

$ipsclass = new ipsclass();

берётся из ./sources/ipsclass.php/ Полный пример его инициализации есть в index.php и в теме про внешнюю авторизацию этого офрума.

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

4 нажми зажав shift

 

он же и подключает

 

http://www.ibresource.ru/forums/index.php?showtopic=51733

вот тут я подключаю парсер в обход форума, можно ознакомиться

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

из всех ответов делаю вывод

проще написать самому чем подсоеденить из форума

так как четкого ответа с примером или мануалом нет

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

из всех ответов делаю вывод

проще написать самому чем подсоеденить из форума

так как четкого ответа с примером или мануалом нет

Нам тоже проще сами написать, даже пусть и с подключением форума :D

Если вы способны написать с нуля парсер весь, то и разобраться в архитектуре форумного парсера сможете ;)

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

из всех ответов делаю вывод

проще написать самому чем подсоеденить из форума

так как четкого ответа с примером или мануалом нет

 

Да давно уже известен метод: берёшь index.php от форума, убираешь его нижнюю часть где запускаются модули форума и добавляешь туда нужный тебе код. Так ты будешь полностью уверен, что всё будет работать.

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

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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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

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

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