cloudinary-8.x-1.x-dev/modules/cloudinary_sdk/cloudinary_sdk.module

modules/cloudinary_sdk/cloudinary_sdk.module
<?php

/**
 * @file
 * File for the Cloudinary SDK module.
 */

use Cloudinary\Cloudinary;
use Cloudinary\Configuration\Configuration;
use Drupal\Core\Url;
use Drupal\Core\Link;
use Drupal\cloudinary_sdk\CloudinarySdkConstantsInterface;

/**
 * Cloudinary configuration initialization.
 */
function cloudinary_sdk_init($config = []) {
  $init = !empty($config);

  if (empty($config)) {
    $config = cloudinary_sdk_config_load();
  }

  if (!empty($config)) {
    if ($init) {
      Configuration::instance()->init($config);
    }
    else {
      Configuration::instance($config);
    }

    return TRUE;
  }

  return FALSE;
}

/**
 * Load the cloudinary api settings from variables.
 *
 * @return array
 *   API configuration of cloudinary.
 */
function cloudinary_sdk_config_load() {
  $settings = \Drupal::config('cloudinary_sdk.settings');
  $cloud_name = $settings->get('cloudinary_sdk_cloud_name');

  if (!$cloud_name) {
    return NULL;
  }

  $config = [
    'cloud' => array_filter([
      'cloud_name' => $cloud_name,
      'api_key' => $settings->get('cloudinary_sdk_api_key'),
      'api_secret' => $settings->get('cloudinary_sdk_api_secret'),
    ]),
    'url' => array_filter([
      'secure_distribution' => $settings->get('cloudinary_sdk_cname'),
      'private_cdn' => !empty($settings->get('cloudinary_sdk_cname')),
    ]),
    'api' => array_filter([
      'upload_prefix' => $settings->get('cloudinary_sdk_upload_prefix'),
    ]),
  ];

  return $config;
}

/**
 * The status of "CLOUDINARY SDK for PHP".
 */
function cloudinary_sdk_check($ver = FALSE) {
  $version = $error_message = '';

  if (!class_exists('\Cloudinary\Cloudinary')) {
    $status = CloudinarySdkConstantsInterface::CLOUDINARY_SDK_NOT_LOADED;
    $error_message = 'Cloudinary SDK not found';
  }
  elseif (Cloudinary::VERSION && version_compare(Cloudinary::VERSION, CloudinarySdkConstantsInterface::CLOUDINARY_SDK_MINIMUM_VERSION) < 0) {
    $status = CloudinarySdkConstantsInterface::CLOUDINARY_SDK_OLD_VERSION;
    $version = Cloudinary::VERSION;
  }
  else {
    $status = CloudinarySdkConstantsInterface::CLOUDINARY_SDK_LOADED;
    $version = Cloudinary::VERSION;
  }

  return $ver ? [$status, $version, $error_message] : $status;
}

/**
 * Implements hook_help().
 */
function cloudinary_sdk_help($route_name) {

  $renderer = \Drupal::service('renderer');

  $logo = [
    '#theme' => 'image',
    '#uri' => \Drupal::service('extension.list.module')->getPath('cloudinary_sdk') . '/images/logo.png',
    '#alt' => 'Cloudinary Logo',
    '#width' => '344',
    '#height' => '76',
  ];
  $logo_image = $renderer->render($logo);

  $api = [
    '#theme' => 'image',
    '#uri' => \Drupal::service('extension.list.module')->getPath('cloudinary_sdk') . '/images/api.png',
    '#alt' => 'Cloudinary Logo',
    '#width' => '600',
    '#height' => '249',
  ];
  $api_image = $renderer->render($api);


  $output = '';
  $url = Url::fromUri('http://www.cloudinary.com/');
  $url_console = Url::fromUri('http://www.cloudinary.com/console');

  switch ($route_name) {
    case 'help.page.cloudinary_sdk':
      $output .= '<p>' . Link::fromTextAndUrl($logo_image, $url)->toString() . '</p>';
      $output .= '<h3>' . t('Features') . '</h3>';
      $output .= '<ul>';
      $output .= '<li>' . t("Image upload - Securely upload images or any other file, at any scale from any source. API for fast upload directly from your user's browsers or mobile apps.") . '</li>';
      $output .= '<li>' . t('Cloud storage - Store as many images as needed. Our image hosting service stores images privately and safely with automatic backup and historical revisions.') . '</li>';
      $output .= '<li>' . t('Powerful administration - Manage your media library interactively with our Digital Asset Management solution or via APIs. Gain insights using advanced analytics.') . '</li>';
      $output .= '<li>' . t('Image manipulation - Manipulate your images dynamically to fit any graphics design. Apply effects, resizing, cropping, face detection, watermarks and tons of image processing capabilities.') . '</li>';
      $output .= '<li>' . t("Fast delivery - Get your images delivered lightning-fast, responsive and highly optimized for any device in any location. Images are served via Akamai's worldwide CDN.") . '</li>';
      $output .= '</ul>';
      break;

    case 'cloudinary_sdk.settings':
      $output .= '<p>' . Link::fromTextAndUrl($logo_image, $url)->toString() . '</p>';
      $output .= '<h3>' . t('API account') . '</h3>';
      $output .= '<p>' . t('You can get the correct cloud name, API key and API secret on your account page.') . '</p>';
      $output .= '<p>' . Link::fromTextAndUrl($api_image, $url_console)->toString() . '</p>';
      break;
  }

  return $output;
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc