Fixed Error when saving RSS feed

Paul B

XenForo moderator
Staff member
As discussed.

When importing the following feed: http://php.net/feed.atom

The following error is thrown on save:
Code:
Error Info
ErrorException: Argument 1 passed to DOMDocument::importNode() must be an instance of DOMNode, null given, called in C:\xampp\htdocs\dev\library\Zend\Feed\Reader\Entry\Atom.php on line 128 and defined - library\Zend\Feed\Reader\Extension\Atom\Entry.php:152

Stack Trace
#0 [internal function]: XenForo_Application::handlePhpError(4096, 'Argument 1 pass...', 'C:\\xampp\\htdocs...', 152, Array)
#1 C:\xampp\htdocs\dev\library\Zend\Feed\Reader\Extension\Atom\Entry.php(152): DOMDocument->importNode(NULL, true)
#2 C:\xampp\htdocs\dev\library\Zend\Feed\Reader\Entry\Atom.php(128): Zend_Feed_Reader_Extension_Atom_Entry->getContent()
#3 C:\xampp\htdocs\dev\library\XenForo\Model\Feed.php(206): Zend_Feed_Reader_Entry_Atom->getContent()
#4 C:\xampp\htdocs\dev\library\XenForo\DataWriter\Feed.php(95): XenForo_Model_Feed->getFeedData('http://php.net/...')
#5 C:\xampp\htdocs\dev\library\XenForo\DataWriter.php(1460): XenForo_DataWriter_Feed->_preSave()
#6 C:\xampp\htdocs\dev\library\XenForo\DataWriter.php(1399): XenForo_DataWriter->preSave()
#7 C:\xampp\htdocs\dev\library\XenForo\ControllerAdmin\Feed.php(127): XenForo_DataWriter->save()
#8 C:\xampp\htdocs\dev\library\XenForo\FrontController.php(351): XenForo_ControllerAdmin_Feed->actionSave()
#9 C:\xampp\htdocs\dev\library\XenForo\FrontController.php(134): XenForo_FrontController->dispatch(Object(XenForo_RouteMatch))
#10 C:\xampp\htdocs\dev\admin.php(13): XenForo_FrontController->run()
#11 {main}

Request State
array(3) {
  ["url"] => string(49) "http://localhost/dev/admin.php?feeds/save"
  ["_GET"] => array(1) {
    ["feeds/save"] => string(0) ""
  }
  ["_POST"] => array(14) {
    ["url"] => string(24) "http://php.net/feed.atom"
    ["frequency"] => string(4) "1800"
    ["active"] => string(1) "1"
    ["user_id"] => string(1) "0"
    ["node_id"] => string(2) "42"
    ["prefix_id"] => string(1) "0"
    ["title_template"] => string(0) ""
    ["message_template"] => string(52) "{content}

[url="{link}"]Continue reading...[/url]"
    ["discussion_visible"] => string(1) "1"
    ["discussion_open"] => string(1) "1"
    ["_xfToken"] => string(8) "********"
    ["_xfRequestUri"] => string(32) "/dev/admin.php?feeds/add"
    ["_xfNoRedirect"] => string(1) "1"
    ["_xfResponseType"] => string(4) "json"
  }
}
 
This feed is actually invalid based on the Atom spec, but I have adjusted the code to handle this more gracefully.
 
Top Bottom