vBulletin: Importing announcements may crash

Kirby

Well-known member
Affected version
1.6.1
Code:
Exception trace:
  at <redacted>/src/XF/Str/Formatter.php:231
 XF\Cli\Runner->run() at <redacted>/cmd.php:17

In Formatter.php line 231:

  [TypeError]
  XF\Str\Formatter::replaceSmiliesHtml(): Argument #1 ($text) must be of type string, null given, called in <redacted>/src/XF/BbCode/Renderer/Html.php on line 441

Exception trace:
  at <redacted>/src/XF/Str/Formatter.php:231
 XF\Str\Formatter->replaceSmiliesHtml() at <redacted>/src/XF/BbCode/Renderer/Html.php:441
 XF\BbCode\Renderer\Html->filterString() at <redacted>/src/XF/BbCode/Renderer/Html.php:419
 XF\BbCode\Renderer\Html->renderString() at <redacted>/src/XF/BbCode/Traverser.php:67
 XF\BbCode\Traverser->renderSubTree() at <redacted>/src/XF/BbCode/Traverser.php:39
 XF\BbCode\Traverser->renderAst() at <redacted>/src/XF/BbCode/Traverser.php:22
 XF\BbCode\Traverser->render() at <redacted>/src/XF/SubContainer/BbCode.php:236
 XF\SubContainer\BbCode->render() at <redacted>/src/addons/XFI/Import/Importer/vBulletin.php:4640
 XFI\Import\Importer\vBulletin->parseAnnouncementForNotice() at <redacted>/src/addons/XFI/Import/Importer/vBulletin.php:4592
 XFI\Import\Importer\vBulletin->stepAnnouncements() at <redacted>/src/XF/Import/Runner.php:244
 XF\Import\Runner->runStep() at <redacted>/src/XF/Import/Runner.php:61
 XF\Import\Runner->run() at <redacted>/src/XF/Import/Runner.php:154
 XF\Import\Runner->runUntilCompleteInternal() at <redacted>/src/XF/Import/Runner.php:130
 XF\Import\Runner->runUntilComplete() at <redacted>/src/XF/Cli/Command/Import.php:159
 XF\Cli\Command\Import->execute() at <redacted>/src/vendor/symfony/console/Command/Command.php:298
 Symfony\Component\Console\Command\Command->run() at <redacted>/src/vendor/symfony/console/Application.php:1040
 Symfony\Component\Console\Application->doRunCommand() at <redacted>/src/vendor/symfony/console/Application.php:301
 Symfony\Component\Console\Application->doRun() at <redacted>/src/vendor/symfony/console/Application.php:171
 Symfony\Component\Console\Application->run() at <redacted>/src/XF/Cli/Runner.php:115
 XF\Cli\Runner->run() at <redacted>/cmd.php:17

This happens if the announcement has BB code enabled and the source database is not using utf8.

Changing
PHP:
$import->message = $this->parseAnnouncementForNotice($announcement['pagetext'], $hasBbCode, $hasHtml);

to

PHP:
$import->message = $this->parseAnnouncementForNotice($this->convertToUtf8($announcement['pagetext']), $hasBbCode, $hasHtml);

seems to fix this.
 
Back
Top Bottom