/** * @param $data * @param bool $str_output */ protected static function build_special_params($str = array(), $str_output = false) { $dom = new DOMDocument(self::XML_VERSION, self::XML_ENCODING); if (HW_Encryptor::is_serialize_base64($str)) { $data = unserialize(base64_decode($str)); if (is_array($data)) { #$data = unserialize($data);# //belong to skin config if (is_array($data) && isset($data['skin_name']) && isset($data['default_skin_path']) && isset($data['apply_current_path']) && isset($data['plugin_url'])) { $what_skin = rtrim($data['skin_name'], '.php'); //get skin information $pskin = new HWIE_Skin_Params('skin', $what_skin); $pskin->add_skin_config('hwskin_config', array('group' => !empty($data['group']) ? $data['group'] : '')); /*$skin_instance = $dom->createElement('params:skin_instance'); $skin_instance->setAttribute('name', 'hwskin_config'); $skin_instance->setAttribute('instance', $what_skin); if(!empty($data['group'])) { $skin_instance->appendChild($dom->createElement('skin:group', $data['group'])); } $dom->appendChild($skin_instance);*/ $dom->appendChild($dom->importNode($pskin->get_skinconfig(0), true)); } } elseif (is_string($data) && count(explode('|', $data)) >= 8) { $skin = explode('|', $data); if (in_array(end($skin), array('theme', 'plugin', 'wp_content'))) { $what_skin = rtrim($skin[6], '.php'); //create skin instance $pskin = new HWIE_Skin_Params('skin', $what_skin); $pskin->add_hash_skin('hash_skin', array('skin' => trim($skin[1], '\\/'), 'skin_type' => $skin[3], 'source' => end($skin))); /*$hash_skin = $dom->createElement('params:skin_encoded'); $hash_skin->setAttribute('name', 'hash_skin'); $hash_skin->setAttribute('instance', $what_skin); //skin ns $hash_skin->appendChild($dom->createElement('skin:skin', trim($skin[1], '\/'))); //skin_type ns $hash_skin->appendChild($dom->createElement('skin:skin_type', $skin[3])); $dom->appendChild($hash_skin) ;*/ $dom->appendChild($dom->importNode($pskin->get_hash_skin(0), true)); } } return $str_output ? HW_XML::output_dom_to_string($dom, true) : $dom->documentElement; } return false; }