private static function process_layer($layer, $layer_parameter) { if (is_array($layer)) { $resource_type = Cloudinary::option_get($layer, "resource_type"); $text = Cloudinary::option_get($layer, "text"); $type = Cloudinary::option_get($layer, "type"); $public_id = Cloudinary::option_get($layer, "public_id"); $format = Cloudinary::option_get($layer, "format"); $components = array(); if ($text != NULL && $resource_type == NULL) { $resource_type = "text"; } if ($public_id != NULL && $format != NULL) { $public_id = $public_id . "." . $format; } if ($public_id == NULL && $resource_type != "text") { throw new InvalidArgumentException("Must supply public_id for for non-text {$layer_parameter}"); } if ($resource_type != NULL && $resource_type != "image") { array_push($components, $resource_type); } if ($type != NULL && $type != "upload") { array_push($components, $type); } if ($resource_type == "text" || $resource_type == "subtitles") { if ($public_id == NULL && $text == NULL) { throw new InvalidArgumentException("Must supply either text or public_id in {$layer_parameter}"); } $text_options = Cloudinary::process_text_options($layer, $layer_parameter); if ($text_options != NULL) { array_push($components, $text_options); } if ($public_id != NULL) { $public_id = str_replace("/", ":", $public_id); array_push($components, $public_id); } if ($text != NULL) { $text = Cloudinary::smart_escape($text); $text = str_replace("%2C", "%E2%80%9A", $text); $text = str_replace("/", "%E2%81%84", $text); array_push($components, $text); } } else { $public_id = str_replace("/", ":", $public_id); array_push($components, $public_id); } $layer = implode(":", $components); } return $layer; }