Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Views ›

Develop Custom Field in Views

Eingetragen von PhilippCar (92)
am 03.05.2022 - 17:22 Uhr in
  • Views
  • Drupal 9.x

Hallo zusammen,

ich versuche nun schon seit längerem für folgende Aufgabe eine Lösung zu finden und würde mich über Feedback/Hilfe/Ideen freuen:

In einer View möchte ich Daten aus der SQL Tabelle über ein selbst programmiertes Modul ausgeben. Das Modul stellt dabei die Felder in der View bereit. Die SQL Tabelle soll im ersten schritt Node sein, im zweiten meine eigene SQL Tabelle. Leider klappt es bisher selbst für eine Node nicht.

Was funktioniert ist das Einfügen und Anzeigen des Feldes in die View:

customcode.views.inc
function customcode_views_data_alter(array &$data) {
  $data['node']['custom_name'] = [
    'title' => t('Attendee Name'),
    'field' => [
      'title' => t('Attendee Name'),
      'help' => t('Links a webform submission to a user profile.'),
      'id' => 'custom_name',
    ],
  ];
}

Das Anzeigen der Daten funktioniert hingegen nicht:

Code.php

namespace Drupal\customcode\Plugin\views\field;
use Drupal\views\Plugin\views\field\FieldPluginBase;
use Drupal\views\ResultRow;
use Drupal\Core\Link;

class Code extends FieldPluginBase {


public function query() {

  }


  public function render(ResultRow $values) {

    // Hier muss das Datenfeld in der SQL Tabelle ausgelesen werden - aber wie???
    //folgenden Ansatz habe ich gefunden, aber die Seite gibt dann nur einen Error aus:

   $show = $values->_entity;
   $show_data = $show->getElementData('name_datenfeld');

  return $show_data;
}

Frage: Was genau muss name_datenfeld sein? Das feld einer Node funktioniert bei mir nicht. Auch wenn name_datenfeld der Name einer Tabelle in SQL ist, funktioniert es nicht. Habt ihr Ideen für eine Lösung? Ich würde mich sehr freuen.

‹ Ansicht (view) läuft in "unexpected error" bei Filter des Feld "Datum" Wie kann man die Ansicht der Benutzer erweitern? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich kann Dir nur empfehlen

Eingetragen von montviso (2189)
am 06.05.2022 - 07:46 Uhr

Ich kann Dir nur empfehlen Devel kint und Extrakint zu installieren.
Dann kannst Du mit dsm($variable); die Werte von Variablen (auch Arrays) ausgeben lassen.
Extra-Kint braucht es, um auch Methoden zeigen zu lassen, mit denen Du an diverse Werte kommst oder auch solche zuweisen kannst.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Also, du musst...

Eingetragen von rhodes (631)
am 30.07.2022 - 18:47 Uhr

... erstmal in. die Datenbank rein.

// Hier muss das Datenfeld in der SQL Tabelle ausgelesen werden - aber wie???

Da gibt es mehrere Methoden in Drupal...

$database = \Drupal::database(); //macht die Verbindung zur DB
$search = '/mein/toller/alias';
$search = '%'.$database->escapeLike($search).'%';
$result = $database->select('path_alias','p')->fields('p')->condition('p.alias',$search,'LIKE')->execute();

Das Beispiel liest aus der Path-alias Tabelle, anschließend kannst Du bei mehreren Treffern eine Schleife über $result machen.

ODER

wenn du nur nodes durchfräsen willst würde ich den entitytypemanager bemühen...

Rhodes

  • Anmelden oder Registrieren um Kommentare zu schreiben

Was ist denn

Eingetragen von tobi-berlin (857)
am 02.08.2022 - 08:55 Uhr

Was ist denn "name_datenfeld"? Ist das ein existierndes Node Feld? Dann gibt es doch eine Feldausgabe in Views, oder?

Also den Wert eines Feldes bekommst Du nicht mit getElementData(), sondern so:

$value = $show->get('name_datenfeld')->value

oder

$value = $show->get('name_datenfeld')->getValue()

Nur zur Erklärung: so ein Views Feld Plugin sollte nicht dazu genutzt, in dem Plugin selbst noch mal SQL Queries auszuführen. Eigentlich ist das Plugin dazu gedacht, der View beim Aufbau der Query zu sagen, welche Daten der Views-Query hinzugefügt werden sollen. Wenn in einem Feld-Plugin noch mal völlig andere SQL-Queries durchgeführt werden, kann das schnell zu einem echten Performance-Fiasko führen und ist halt auch nicht so, wie das gedacht ist.

Was ist denn die Ausgangssituation? Du scheinst mir ja eigentlich Daten aus einer anderen Tabelle hinzufügen zu wollen, kann das sein? Ist das eine Tabelle, die Du in einem Custom Modul hinzugefügt hast? Eine Custom Entity oder etwas ganz anderes? Wenn "name_datenfeld" eine Tabelle ist (das hast Du irgendwie erwähnt) muss das ganz anders gemacht werden.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
Weiter

Neue Kommentare

  • Verwende doch das Tag dafür,
    vor 2 Tagen 21 Stunden
  • Guckst du hier: step by step
    vor 2 Tagen 11 Stunden
  • Guckst du hier: step by step
    vor 2 Tagen 11 Stunden
  • Ich habe ja keine Angst vor
    vor 1 Woche 4 Tagen
  • Ist grundsätzlichmachbar – aber nichts für „einfach mal schnell“
    vor 2 Wochen 3 Stunden
  • Vielen Dank erst einmal, aber
    vor 2 Wochen 1 Tag
  • Du hast die "Trusted host
    vor 2 Wochen 2 Tagen
  • Bitte genauer den aktuellen Lösungs-Ansatz beschreiben
    vor 4 Wochen 1 Tag
  • Git und rsync sind die wichtigsten Werkzeuge
    vor 4 Wochen 4 Tagen
  • Arrrrg. Nix Tabelle :-D /*
    vor 8 Wochen 6 Tagen

Statistik

Beiträge im Forum: 250284
Registrierte User: 20498

Neue User:

  • Inga GuAph
  • Robertolix
  • DavidBit

» Alle User anzeigen

User nach Punkten sortiert:
wla9464
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 18 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association