Puncte:-1

Creați programatic un nou stil de imagine

drapel us

Îmi creez propriul modul și trebuie să creez în mod programatic un stil de imagine pe care să îl folosesc cu un nou tip media.

Am găsit core/profile/standard/config/optional/image.style.max_1300x1300.yml fișier al cărui conținut este următorul.

nume: max_1300x1300
etichetă: „Max 1300x1300”
efecte:
  04caae9a-fa3e-4ea6-ae09-9c26aec7d308:
    id: imagine_scale
    date:
      latime: 1300
      inaltime: 1300
      de lux: fals
    greutate: 1
    uuid: 04caae9a-fa3e-4ea6-ae09-9c26aec7d308
langcode: en
dependențe:
  modul:
    - responsive_image
  aplicat:
    modul:
      - responsive_image

Consider că trebuie să creez un fișier în config/install, numit image.style.<image_style_id>.yml, cu acele atribute.

Ce valori UUID ar trebui să folosesc?

Kevin avatar
drapel in
Este în administrator în configurație.
drapel us
@Kevin mulțumesc, dar nu întrebarea mea, nu vreau să folosesc interfața de utilizare
Kevin avatar
drapel in
A scrie yaml-ul de mână este inutil. Faceți-le în UI și exportați-le.
Puncte:0
drapel in

Răspunzând la această întrebare, presupun că ați generat configurația prin UI și apoi ați exportat-o, așa cum a menționat Kevin în comentariul său. Acesta este cel mai bun mod de a crea configurația inițială pentru includerea în proiect.

Rețineți că toate exemplele sunt afișate folosind codul procedural, de dragul simplității; asigurați-vă că urmați cele mai bune practici și vă injectați serviciile atunci când vă construiți proiectul.


Entitatea ImageStyle

Odată ce fișierul de configurare este instalat, devine un ImageStyle entitate de configurare și poate fi manipulată ca orice entitate de configurare.

// Obțineți manipulatorul de stocare pentru entitățile ImageStyle.
$image_style_storage = \Drupal::entityTypeManager()->getStorage("image_style");
// Obțineți o instanță a entității noastre ImageStyle.
$my_image_style = $image_style_storage->load("my_image_style");

Efectele care sunt specificate în definiția ImageStyle sunt pluginuri gestionate de plugin.manager.image.efect serviciu de gestionare a pluginurilor.

După cum ar fi avut norocul, the ImageStyle entitatea oferă addImageEffect() metoda publică, care acceptă o serie de informații despre efecte. Această metodă se ocupă de fapt de generarea și atribuirea UUID-ului, care vă este apoi returnat.

funcția publică addImageEffect(array $configuration) {
    $configuration['uuid'] = $this->uuidGenerator()->generate();
    $this->getEffects()->addInstanceId($configuration['uuid'], $configuration);
    returnează $configurație['uuid'];
  }

Deci, folosind dvs imagine.style.max_1300x1300 de exemplu, atribuirea efectului de imagine ar arăta astfel:

$effect_uuid = $my_image_style->addImageEffect([
  'id' => 'image_scale',
  'date' => [
      'width' => '1300',
      'height' => '1300',
      'upscale' => FALSE,
   ],
   „greutate” => 1,
]);

Puteți găsi toate efectele de imagine înregistrate pe site-ul dvs. executând: \Drupal::service('plugin.manager.image.effect')->getDefinitions();

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.