Browse Source

Islandora IIIF: Address PHPCS errors.

959-iiif-width-height-caching
Alexander O'Neill 1 year ago
parent
commit
c1b41410ed
  1. 36
      modules/islandora_iiif/src/IiifInfo.php
  2. 38
      modules/islandora_iiif/src/Plugin/views/style/IIIFManifest.php

36
modules/islandora_iiif/src/IiifInfo.php

@ -25,24 +25,24 @@ class IiifInfo {
/** /**
* The HTTP client * The HTTP client.
* *
* @var \GuzzleHttp\Client; * @var \GuzzleHttp\Client
*/ */
protected $httpClient; protected $httpClient;
/** /**
* This module's config. * This module's config.
* *
* @var \Drupal\Core\Config\ImmutableConfig * @var \Drupal\Core\Config\ImmutableConfig
*/ */
protected $iiifConfig; protected $iiifConfig;
/** /**
* JWT Auth provider service. * JWT Auth provider service.
* *
* @var \Drupal\jwt\Authentication\Provider\JwtAuth * @var \Drupal\jwt\Authentication\Provider\JwtAuth
*/ */
protected $jwtAuth; protected $jwtAuth;
/** /**
@ -52,23 +52,22 @@ class IiifInfo {
*/ */
protected $logger; protected $logger;
/** /**
* Constructs an IiifInfo object. * Constructs an IiifInfo object.
* *
* @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
* The config factory. * The config factory.
* @param \Guzzle\Http\Client $http_client * @param \Guzzle\Http\Client $http_client
* The HTTP Client. * The HTTP Client.
* @param \Drupal\Core\Logger\LoggerChannelInterface $channel * @param \Drupal\Core\Logger\LoggerChannelInterface $channel
* Logger channel. * Logger channel.
* @param \Drupal\jwt\Authentication\Provider\JwtAuth $jwt_auth * @param \Drupal\jwt\Authentication\Provider\JwtAuth $jwt_auth
* The JWT auth provider. * The JWT auth provider.
*/ */
public function __construct(ConfigFactoryInterface $config_factory, Client $http_client, LoggerChannelInterface $channel, JwtAuth $jwt_auth) { public function __construct(ConfigFactoryInterface $config_factory, Client $http_client, LoggerChannelInterface $channel, JwtAuth $jwt_auth) {
$this->configFactory = $config_factory; $this->configFactory = $config_factory;
$this->iiifConfig= $this->configFactory->get('islandora_iiif.settings'); $this->iiifConfig = $this->configFactory->get('islandora_iiif.settings');
$this->httpClient = $http_client; $this->httpClient = $http_client;
$this->logger = $channel; $this->logger = $channel;
$this->jwtAuth = $jwt_auth; $this->jwtAuth = $jwt_auth;
@ -76,10 +75,11 @@ class IiifInfo {
/** /**
* The IIIF base URL for an image. * The IIIF base URL for an image.
*
* Visiting this URL will resolve to the info.json for the image. * Visiting this URL will resolve to the info.json for the image.
* *
* @return string * @return string
* The absolute URL on the IIIF server. * The absolute URL on the IIIF server.
*/ */
public function baseUrl($image) { public function baseUrl($image) {
@ -101,7 +101,8 @@ class IiifInfo {
* *
* @param \Drupal\File\FileInterface $file * @param \Drupal\File\FileInterface $file
* The image file. * The image file.
* @return array|FALSE *
* @return array|false
* The image dimensions in an array as [$width, $height] * The image dimensions in an array as [$width, $height]
*/ */
public function getImageDimensions(FileInterface $file) { public function getImageDimensions(FileInterface $file) {
@ -109,9 +110,9 @@ class IiifInfo {
try { try {
$info_json = $this->httpClient->request('get', $iiif_url, [ $info_json = $this->httpClient->request('get', $iiif_url, [
'headers' => [ 'headers' => [
'Authorization' => 'bearer ' . $this->jwtAuth->generateToken() 'Authorization' => 'bearer ' . $this->jwtAuth->generateToken(),
] ],
])->getBody(); ])->getBody();
$resource = json_decode($info_json, TRUE); $resource = json_decode($info_json, TRUE);
$width = $resource['width']; $width = $resource['width'];
$height = $resource['height']; $height = $resource['height'];
@ -125,5 +126,4 @@ class IiifInfo {
return FALSE; return FALSE;
} }
} }

38
modules/islandora_iiif/src/Plugin/views/style/IIIFManifest.php

@ -6,24 +6,19 @@ use Drupal\Core\Config\ImmutableConfig;
use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Entity\EntityTypeManagerInterface; use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Extension\ModuleHandlerInterface; use Drupal\Core\Extension\ModuleHandlerInterface;
use Drupal\Core\File\FileSystemInterface;
use Drupal\Core\Field\FieldItemInterface; use Drupal\Core\Field\FieldItemInterface;
use Drupal\Core\File\FileSystemInterface;
use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Messenger\MessengerInterface; use Drupal\Core\Messenger\MessengerInterface;
use Drupal\Core\Url; use Drupal\Core\Url;
use Drupal\iiif_presentation_api\Encoder\V3\IiifP;
use Drupal\islandora\IslandoraUtils; use Drupal\islandora\IslandoraUtils;
use Drupal\islandora_iiif\IiiffInfo;
use Drupal\islandora_iiif\IiifInfo; use Drupal\islandora_iiif\IiifInfo;
use Drupal\views\Plugin\views\style\StylePluginBase; use Drupal\views\Plugin\views\style\StylePluginBase;
use Drupal\views\ResultRow; use Drupal\views\ResultRow;
use GuzzleHttp\Client; use GuzzleHttp\Client;
use GuzzleHttp\Exception\ClientException;
use GuzzleHttp\Exception\ConnectException;
use GuzzleHttp\Exception\ServerException;
use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\Serializer\SerializerInterface;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Serializer\SerializerInterface;
/** /**
* Provide serializer format for IIIF Manifest. * Provide serializer format for IIIF Manifest.
@ -74,7 +69,7 @@ class IIIFManifest extends StylePluginBase {
/** /**
* The IIIF Info service. * The IIIF Info service.
* *
* @var IiifInfo * @var \Drupal\islandora_iiif\IiifInfo
*/ */
protected $iiifInfo; protected $iiifInfo;
@ -347,14 +342,16 @@ class IIIFManifest extends StylePluginBase {
if (isset($image->width) && is_numeric($image->width) if (isset($image->width) && is_numeric($image->width)
&& isset($image->height) && is_numeric($image->height)) { && isset($image->height) && is_numeric($image->height)) {
return [intval($image->width), return [intval($image->width),
intval($image->height)]; intval($image->height),
];
} }
if ($properties = $image->getProperties() if ($properties = $image->getProperties()
&& isset($properties['width']) && is_numeric($properties['width']) && isset($properties['width']) && is_numeric($properties['width'])
&& isset($properties['height']) && is_numeric($properties['width'])) { && isset($properties['height']) && is_numeric($properties['width'])) {
return [intval($properties['width']), return [intval($properties['width']),
intval($properties['height'])]; intval($properties['height']),
];
} }
$entity = $image->entity; $entity = $image->entity;
@ -363,8 +360,9 @@ class IIIFManifest extends StylePluginBase {
&& $entity->hasField('field_width') && $entity->hasField('field_width')
&& !$entity->get('field_width')->isEmpty() && !$entity->get('field_width')->isEmpty()
&& $entity->get('field_width')->value > 0) { && $entity->get('field_width')->value > 0) {
return [ $entity->get('field_width')->value, return [$entity->get('field_width')->value,
$entity->get('field_height')->value]; $entity->get('field_height')->value,
];
} }
if ($mime_type === 'image/tiff') { if ($mime_type === 'image/tiff') {
@ -376,7 +374,8 @@ class IIIFManifest extends StylePluginBase {
$image_size = getimagesize($path); $image_size = getimagesize($path);
if ($image_size) { if ($image_size) {
return [intval($image_size[0]), return [intval($image_size[0]),
intval($image_size[1])]; intval($image_size[1]),
];
} }
} }
} }
@ -398,8 +397,8 @@ class IIIFManifest extends StylePluginBase {
* The entity at the current row. * The entity at the current row.
* @param \Drupal\taxonomy\TermInterface|null $structured_text_term * @param \Drupal\taxonomy\TermInterface|null $structured_text_term
* The term that structured text media references, if any. * The term that structured text media references, if any.
* *
* return String|FALSE * return String|FALSE
* The absolute URL of the current row's structured text, * The absolute URL of the current row's structured text,
* or FALSE if none. * or FALSE if none.
*/ */
@ -412,7 +411,7 @@ class IIIFManifest extends StylePluginBase {
$ocr_field_name = $ocrField->definition['field_name']; $ocr_field_name = $ocrField->definition['field_name'];
if (!is_null($ocr_field_name)) { if (!is_null($ocr_field_name)) {
$ocrs = $ocr_entity->{$ocr_field_name}; $ocrs = $ocr_entity->{$ocr_field_name};
$ocr = isset($ocrs[0]) ? $ocrs[0] : FALSE; $ocr = $ocrs[0] ?? FALSE;
$ocr_url = $ocr->entity->createFileUrl(FALSE); $ocr_url = $ocr->entity->createFileUrl(FALSE);
} }
} }
@ -554,14 +553,13 @@ class IIIFManifest extends StylePluginBase {
/** /**
* Submit handler for options form. * Submit handler for options form.
*
* Used to store the structured text media term by URL instead of Ttid. * Used to store the structured text media term by URL instead of Ttid.
* *
* @param array $form * @param array $form
* The form. * The form.
* @param \Drupal\Core\Form\FormStateInterface $form_state * @param \Drupal\Core\Form\FormStateInterface $form_state
* The form state object. * The form state object.
*
* @return void
*/ */
public function submitOptionsForm(&$form, FormStateInterface $form_state) { public function submitOptionsForm(&$form, FormStateInterface $form_state) {
$style_options = $form_state->getValue('style_options'); $style_options = $form_state->getValue('style_options');

Loading…
Cancel
Save