* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0 */ namespace PrestaShop\Module\Mbo\Tab; class TabCollectionDecoderXml { private $content; /** * Constructor. * * @param string $content */ public function __construct($content) { $this->content = $content; } /** * @return array */ public function toArray() { $data = []; if (empty($this->content)) { return $data; } $simpleXMLElement = @simplexml_load_string($this->content); if (false === $simpleXMLElement || !isset($simpleXMLElement->tab) ) { return $data; } foreach ($simpleXMLElement->tab as $tab) { $tabClassName = null; $tabDisplayMode = 'slider_list'; $tabRecommendedModules = []; foreach ($tab->attributes() as $key => $value) { if ('class_name' === $key) { $tabClassName = (string) $value; } if ('display_type' === $key) { $tabDisplayMode = (string) $value; } } foreach ($tab->children() as $module) { if (isset($module['position'], $module['name'])) { $tabRecommendedModules[(int) $module['position']] = (string) $module['name']; } } if (!empty($tabClassName)) { $data[$tabClassName] = [ 'displayMode' => $tabDisplayMode, 'recommendedModules' => $tabRecommendedModules, ]; } } return $data; } }