You are here

DevelImageProviderPluginBase.php in Devel images provider 8

Contains \Drupal\devel_image_provider\DevelImageProviderPluginBase.

File

lib/Drupal/devel_image_provider/Plugin/Type/DevelImageProviderPluginBase.php
View source
<?php

/**
 * @file
 * Contains \Drupal\devel_image_provider\DevelImageProviderPluginBase.
 */
namespace Drupal\devel_image_provider\Plugin\Type;

use Drupal\Component\Plugin\PluginBase;
use Drupal\Component\Plugin\Discovery\DiscoveryInterface;
use Drupal\devel_image_provider\Plugin\Type\DevelImageProviderPluginInterface;
abstract class DevelImageProviderPluginBase extends PluginBase implements DevelImageProviderPluginInterface {

  /**
   * The provider url.
   *
   * @var string
   */
  protected $base_url;

  /**
   * Defined settings for the method.
   *
   * @var string
   */
  protected $settings;
  public function __construct(array $configuration, $plugin_id, array $plugin_definition) {
    parent::__construct($configuration, $plugin_id, $plugin_definition);
    $this->settings = variable_get('devel_image_provider_settings_' . $plugin_id, array());
  }
  public function availableMethods() {
    return drupal_map_assoc(array(
      'curl',
      'gd',
      'file_get_contents',
    ));
  }
  public function settingsForm() {
    $info = $this
      ->getDefinition();
    $form['devel_image_provider_' . $info['id']] = array(
      '#type' => 'details',
      '#collapsed' => FALSE,
      '#title' => t('Provider settings'),
      '#states' => array(
        'visible' => array(
          ':input[name="devel_generate_image_function"]' => array(
            'value' => 'devel_image_provider_generate',
          ),
          ':input[name="available_providers[devel_image_provider_method_selected]"]' => array(
            'value' => $info['id'],
          ),
        ),
      ),
    );
    $methods = $this
      ->availableMethods();
    if (!empty($methods)) {
      $form['devel_image_provider_' . $info['id']]['devel_image_provider_get_method'] = array(
        '#type' => 'radios',
        '#title' => t('Method to get files'),
        '#default_value' => isset($this->settings['devel_image_provider_get_method']) ? $this->settings['devel_image_provider_get_method'] : 'file_get_contents',
        '#options' => $this
          ->availableMethods(),
      );
    }
    $form['devel_image_provider_' . $info['id']]['devel_image_provider_gray'] = array(
      '#type' => 'checkbox',
      '#title' => t('Gray version'),
      '#default_value' => isset($this->settings['devel_image_provider_gray']) ? $this->settings['devel_image_provider_gray'] : NULL,
    );
    return $form;
  }
  public function settingsFormValidate(&$form, &$form_state) {
  }
  public function settingsFormSubmit(&$form, &$form_state) {
    $info = $this
      ->getDefinition();
    $values = $form_state['values']['config_providers']['devel_image_provider_' . $info['id']];
    variable_set('devel_image_provider_settings_' . $info['id'], $values);
  }
  public function generateImage($object, $field, $instance, $bundle) {
  }

}

Classes