Prüfen in welchen Content Types und Views ein FieldType verwendet wird
Eingetragen von AndyLicht (260)
am 09.09.2017 - 09:29 Uhr in
am 09.09.2017 - 09:29 Uhr in
Hallo Forum,
ich möchte prüfen in welchen Content Types sich eine bestimmte Art von Feld befindet. Aktuell lese ich zu erst alle Content Types aus und lass mir dann die Felder ausgeben und mache die Prüfung. Gibt es da einen eleganteren Weg, dass ich mir direkt vom Feldtyp ausgehend die Content Types und perspektivisch auch die Views ausgeben lassen kann?
mit bestem Gruß Andy
- Anmelden oder Registrieren um Kommentare zu schreiben
Anscheinend soll es über die
am 09.09.2017 - 09:40 Uhr
Anscheinend soll es über die Funktion laufen:
<?php
use Drupal\field\FieldStorageConfig;
$field_image = FieldStorageConfig::load('node.field_image')
$bundles = $field_image->getBundles();
?>
leider scheint es bei mir die Klasse "Drupal\field\FieldStorageConfig" nicht zu geben.
mfg
Andy
Aller Anfang ist schwer...
Versuchs mal mit <?php use
am 09.09.2017 - 10:58 Uhr
Versuchs mal mit
<?php
use Drupal\field\Entity\FieldStorageConfig;
?>
Für das oben angegebene
am 09.09.2017 - 15:33 Uhr
Für das oben angegebene Beispiel bekomme ich trotz korrigiertem Namespace nur ein leeres Array zurück. Und leider muss ich dann die Namen der einzelnen Felder noch nacheinander abarbeiten und auch erstmal wissen.Ist anscheinend nicht so einfach*G*.
Vielleicht nochmal hier mein funktionierender Code, für die die es brauchen:
<?php
$contenttypes_with_geofield = [];
$entityManager = \Drupal::service('entity_field.manager');
$node_types = NodeType::loadMultiple();
foreach($node_types as $contenttype => $node) {
$fields = $entityManager->getFieldDefinitions('node', $contenttype);
foreach($fields as $field_name => $field) {
if($field->getType() === 'geofield') {
$contenttypes_with_geofield [$contenttype] = $contenttype;
break;
}
}
}
return $contenttypes_with_geofield;
?>
Die Liste benötige ich für ein reference field, damit tatsächlich nur aus Inhalten ausgewählt werden kann, wo entsprechend bedeutende Felder enthalten sind.
Aller Anfang ist schwer...
Hi, für Views ist der ganze
am 09.09.2017 - 15:32 Uhr
Hi,
für Views ist der ganze Spaß nicht ganz so trivial, denn folgendes funktioniert schonmal nicht:
<?php
public static function getViewsWithGeom() {
$views = View::loadMultiple();
$entityManager = \Drupal::service('entity_field.manager');
//dsm($views);
foreach($views as $view) {
dsm($view->id());
dsm($view->label());
$fields = $entityManager->getFieldDefinitions('view', $view->id()); //führt zu einem ERROR
}
?>
Aller Anfang ist schwer...