title; $appValue['widgets'] = array(); foreach ($data->widgets as $value) { $widget = array( 'type' => $value->type, 'title' => $value->title ); foreach ($value->data as $valueData) { $data = array( 'image' => self::getValue($valueData->data->image), 'title' => self::getValue($valueData->data->title), 'action' => array( 'type' => $valueData->data->action->value, 'params' => self::get_params($valueData->data->action->value, $valueData->data->action_value->value) ) ); if($widget['type'] == "html"){ $data["html"] = $valueData->data->html->value; } $widget['data'][] = $data; } $appValue['widgets'][] = $widget; } $appValue['hash'] = md5(serialize($appValue)); return ($appValue); } public static function convert_navMenu_data($data){ $appValue = array(); $appValue['data'] = self::convert_navMenu_data_item($data); $appValue['hash'] = md5(serialize($appValue)); return ($appValue); } public static function convert_navMenu_data_item($data){ $return = array(); foreach ($data as $value) { $menu = array( 'title' => $value->title, 'icon' => $value->icon, 'type' => $value->type->id, 'action' => array ( ), 'nodes' => self::convert_navMenu_data_item($value->nodes), ); if($value->type->id != "title"){ if(is_string($value->action_value)) $val = $value->action_value; else $val = $value->action_value->id; $menu["action"] = array( 'type' => $value->action->id, 'params' => self::get_params($value->action->id,$val) ); } $return[] = $menu; } return $return; } public static function get_params($action,$action_value) { switch ($action) { case 'OPEN_URL' : case 'OPEN_IN_WEB_VIEW' : { $params = array('url' => $action_value); } break; case 'LIST_POST' : { $params = array('categories' => $action_value); } break; case 'OPEN_IN_APP_PAGE' : { $params = array('id' => $action_value); } break; case 'OPEN_POST' : { $params = array('id' => $action_value); } break; default : { $params = array(); } break; } return $params; } /** * @param mixed $value * @return string */ protected static function getValue($value){ if(is_string($value)) return $value; else return $value->value; } }