Example #1
0
 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;
 }