finalize_source() приватный статический Метод

private static finalize_source ( $source, $format, $url_suffix )
Пример #1
0
 public static function cloudinary_url($source, &$options = array())
 {
     $source = self::check_cloudinary_field($source, $options);
     $type = Cloudinary::option_consume($options, "type", "upload");
     if ($type == "fetch" && !isset($options["fetch_format"])) {
         $options["fetch_format"] = Cloudinary::option_consume($options, "format");
     }
     $transformation = Cloudinary::generate_transformation_string($options);
     $resource_type = Cloudinary::option_consume($options, "resource_type", "image");
     $version = Cloudinary::option_consume($options, "version");
     $format = Cloudinary::option_consume($options, "format");
     $cloud_name = Cloudinary::option_consume($options, "cloud_name", Cloudinary::config_get("cloud_name"));
     if (!$cloud_name) {
         throw new InvalidArgumentException("Must supply cloud_name in tag or in configuration");
     }
     $secure = Cloudinary::option_consume($options, "secure", Cloudinary::config_get("secure"));
     $private_cdn = Cloudinary::option_consume($options, "private_cdn", Cloudinary::config_get("private_cdn"));
     $secure_distribution = Cloudinary::option_consume($options, "secure_distribution", Cloudinary::config_get("secure_distribution"));
     $cdn_subdomain = Cloudinary::option_consume($options, "cdn_subdomain", Cloudinary::config_get("cdn_subdomain"));
     $secure_cdn_subdomain = Cloudinary::option_consume($options, "secure_cdn_subdomain", Cloudinary::config_get("secure_cdn_subdomain"));
     $cname = Cloudinary::option_consume($options, "cname", Cloudinary::config_get("cname"));
     $shorten = Cloudinary::option_consume($options, "shorten", Cloudinary::config_get("shorten"));
     $sign_url = Cloudinary::option_consume($options, "sign_url", Cloudinary::config_get("sign_url"));
     $api_secret = Cloudinary::option_consume($options, "api_secret", Cloudinary::config_get("api_secret"));
     $url_suffix = Cloudinary::option_consume($options, "url_suffix", Cloudinary::config_get("url_suffix"));
     $use_root_path = Cloudinary::option_consume($options, "use_root_path", Cloudinary::config_get("use_root_path"));
     if (!$private_cdn and !empty($url_suffix)) {
         throw new InvalidArgumentException("URL Suffix only supported in private CDN");
     }
     if (!$source) {
         return $source;
     }
     if (preg_match("/^https?:\\//i", $source)) {
         if ($type == "upload") {
             return $source;
         }
     }
     $resource_type_and_type = Cloudinary::finalize_resource_type($resource_type, $type, $url_suffix, $use_root_path, $shorten);
     $sources = Cloudinary::finalize_source($source, $format, $url_suffix);
     $source = $sources["source"];
     $source_to_sign = $sources["source_to_sign"];
     if (strpos($source_to_sign, "/") && !preg_match("/^https?:\\//", $source_to_sign) && !preg_match("/^v[0-9]+/", $source_to_sign) && empty($version)) {
         $version = "1";
     }
     $version = $version ? "v" . $version : NULL;
     $signature = NULL;
     if ($sign_url) {
         $to_sign = implode("/", array_filter(array($transformation, $source_to_sign)));
         $signature = str_replace(array('+', '/', '='), array('-', '_', ''), base64_encode(sha1($to_sign . $api_secret, TRUE)));
         $signature = 's--' . substr($signature, 0, 8) . '--';
     }
     $prefix = Cloudinary::unsigned_download_url_prefix($source, $cloud_name, $private_cdn, $cdn_subdomain, $secure_cdn_subdomain, $cname, $secure, $secure_distribution);
     return preg_replace("/([^:])\\/+/", "\$1/", implode("/", array_filter(array($prefix, $resource_type_and_type, $signature, $transformation, $version, $source))));
 }