From 7b64efbc813baf4c1ce630005855139494953cd8 Mon Sep 17 00:00:00 2001 From: Alex Barth <alex_b@53995.no-reply.drupal.org> Date: Thu, 16 Sep 2010 18:31:50 +0000 Subject: [PATCH] #887846 ekes: Make FeedsSimplePieEnclosure (un)serialization safe. --- CHANGELOG.txt | 1 + plugins/FeedsSimplePieParser.inc | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 4a09a92b..84644cc5 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -3,6 +3,7 @@ Feeds 6.x xxxxxxxxxxxxxxxxxxxxxx -------------------------------- +- #887846 ekes: Make FeedsSimplePieEnclosure (un)serialization safe. - #908582 XiaN Vizjereij, alex_b: Fix "Cannot use object of type stdClass as array" error in mappers/taxonomy.inc. - #906654 alex_b: Fix phantom subscriptions. diff --git a/plugins/FeedsSimplePieParser.inc b/plugins/FeedsSimplePieParser.inc index 18aa23c8..d2267f98 100644 --- a/plugins/FeedsSimplePieParser.inc +++ b/plugins/FeedsSimplePieParser.inc @@ -6,6 +6,7 @@ */ class FeedsSimplePieEnclosure extends FeedsEnclosure { protected $simplepie_enclosure; + private $_serialized_simplepie_enclosure; /** * Constructor requires SimplePie enclosure object. @@ -14,6 +15,26 @@ class FeedsSimplePieEnclosure extends FeedsEnclosure { $this->simplepie_enclosure = $enclosure; } + /** + * Serialization helper. + * + * Handle the simplepie enclosure class seperately ourselves. + */ + public function __sleep() { + $this->_serialized_simplepie_enclosure = serialize($this->simplepie_enclosure); + return array('_serialized_simplepie_enclosure'); + } + + /** + * Unserialization helper. + * + * Ensure that the simplepie class definitions are loaded for the enclosure when unserializing. + */ + public function __wakeup() { + feeds_include_library('simplepie.inc', 'simplepie'); + $this->simplepie_enclosure = unserialize($this->_serialized_simplepie_enclosure); + } + /** * Override parent::getValue(). */ -- GitLab