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

[gelöst] Benutzerprofildaten und Contenttype zusammen in einer View darstellen

Eingetragen von derHai (15)
am 09.07.2015 - 16:05 Uhr in
  • Views
  • Drupal 7.x

Hallo

Ich möchte eine View mit verschiedenen Personen (Felder: Name, Benutzerbild, Text) erstellen. Manche dieser Personen haben einen Drupalaccount mit diesen Daten in ihrem Profil, andere Personen sollen keinen Drupalaccount bekommen. Für die Personen ohne Account sind die Daten in einem Contenttype personenOhneAccount (auch mit den Feldern Name, Bild, Text) vorhanden.

Jetzt will ich alle Personen zusammen (die mit und die ohne Account) in einer view darstellen. Wie könnte das funktioniern?

Ich habe schon nach Modulen gesucht und bin auf content_type_groups gestoßen. Nur leider funktioniert das nicht für Profildaten.

Danke für eure Hilfe und viele Grüße
derHai

‹ entity reference mit context filter benutzen [gelöst] Benutzerprofildaten und Contenttype zusammen in einer View darstellen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Kallo Hai, wenn ich Dich

Eingetragen von it-stent (26)
am 09.07.2015 - 17:18 Uhr

Kallo Hai,

wenn ich Dich richtig verstehe gibt es 2 verschiedene Gruppen:
a. User mit account,
b. User ohne account.

Versuche alle 6 Felder in einer View zu zeigen:

a-Name
a-Bild
a-Text
b-Name
b-Bild
b-Text

und bei den Fields-Einstellungen --> "No results behavior" --> "Hide if empty"

Ps: Um an die User-Felder "ranzukommen" solltest Du ein "Inhalt: Autor" - Relationship hinzufügen.

Viele Grüße
Piotr

  • Anmelden oder Registrieren um Kommentare zu schreiben

hallo ja du hast mich

Eingetragen von derHai (15)
am 10.07.2015 - 08:21 Uhr

hallo

ja du hast mich richtig verstanden.

Nur schaffe ich es nicht in einer View gleichseitig Inhalts- und Benutzerdaten anzuzeigen. Die Auswahl muss ich ja schon beim erstellen der View machen.

Über ein "Inhalt Autor" Relationship bekomme ich zur Zeit nur Nutzer, welche auch Inhalt vom Typ b erstellt haben. Aber leider nicht an alle.

Eigentlich will ich die Namen auch noch Alphabetisch sortieren (egal ob sie vom Typ a oder b sind). Deshalb will ich die Daten in einer View haben. Sonst könnte ich auch einfach 2 Views machen und diese über Blöcke auf einer Seite anzeigen.

Grüße
derHai

  • Anmelden oder Registrieren um Kommentare zu schreiben

ein User ohne Account

Eingetragen von ronald (3857)
am 10.07.2015 - 08:53 Uhr

kann auch kein Profil haben.

Wo soll das herkommen, und wie soll das zugewiesen werden?

Gast ist Gast, und hat kein Profil.

Ansonsten ist es natürlich möglich eine Referenz auf den logged in User zu setzen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Natürlich haben Leute ohne

Eingetragen von derHai (15)
am 10.07.2015 - 09:37 Uhr

Natürlich haben Leute ohne Account kein Profil.

Deshalb gibt es für diese, (wie im ersten Post beschrieben) einen Content type in dem die Daten erstellt wurden. Das ist der Grund, warum ich überhaupt sowohl BenutzerProfil-Daten als auch normale Inhaltsdaten zusammen in einer View darstellen will.

Ich weiß nicht in wie weit mich Referenzen überhaupt weiter bringen. Eigentlich will ich ja nicht referenzieren, sondern zwei verschiedene Dinge in einer View darstellen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

views

Eingetragen von ronald (3857)
am 10.07.2015 - 10:14 Uhr

sind nicht Darstellungsobjekte, sondern Datenbankabfragen, die man dann natürlich darstellen kann.

Insofern gehen in eine View nur Dinge, die referenziell zusammenhängen.

Deshalb wäre es sinnvoll, auch für die registrierten User einen solchen content_type zu erstellen, und von diesem auf die entsprechenden Inhalte zu referenzieren.

View heißt hier Ansicht (der Datenbankrecords)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielleicht wird es ja in SQL

Eingetragen von derHai (15)
am 10.07.2015 - 11:00 Uhr

Vielleicht wird es ja in SQL verständlicher. Ich will im Prinzip folgende vereinfachte SQL anfrage in einer View basteln:

SELECT name FROM users where status=1
UNION ALL
SELECT title as name FROM node where (type="personenOhneAccount" and status=1)
ORDER BY name;

Die Abfrage ist sehr vereinfacht, da weitere Felder (Bilder Beschreibungstexte) aus anderen Tabellen dazu kommen. Außerdem gibt es noch mehr where Bedingungen für den User. Zur Vereinfachung habe ich auch gleich den Accountnamen, anstatt den Realname verwendet.

Wenn es mit Views nicht gehen sollte muss ich mir das in SQL halt selbst zusammenbasteln.

Viele Grüße
derHai

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Jetzt will ich alle

Eingetragen von Jenna (1883)
am 10.07.2015 - 11:46 Uhr
Zitat:

Jetzt will ich alle Personen zusammen (die mit und die ohne Account) in einer view darstellen

Wähle eine neue View vom Typ Inhalt samt den Feldern "user ohne account", und in dieser View dann über Beziehungen die "user mit account" dazu nehmen.
Die Zusatzfelder für user mit account stehen dir erst nach dem Bezug zur Verfügung, vorher siehst du die nicht.

Generelle Frage: was hast du denn später mit den "user ohne accounts" vor? Weil man oft bei solchen Kombinationen später auf Probleme stößt bzw. die User händisch eventuell in einen "echten" Account übertragen muß oder tritt der Fall nie ein?

Eventuell passt ja auch eine Rules, die dem "user ohne account" wenn du ihn anlegst (über Userprofile) eine Rolle Basic gibt, diese Rolle darf dann nichts tun, und du könntest später auch die Usernamen sortieren, denn 2 verschiedene Felder ineinander zu legen für eine Sortierung gibt sicher Probleme.

Grüße Jenna

  • Anmelden oder Registrieren um Kommentare zu schreiben

ronald schrieb Deshalb wäre

Eingetragen von derHai (15)
am 10.07.2015 - 11:59 Uhr
ronald schrieb

Deshalb wäre es sinnvoll, auch für die registrierten User einen solchen content_type zu erstellen, und von diesem auf die entsprechenden Inhalte zu referenzieren.

Ich könnte natürlich für jeden User noch einen extra node mit Reference auf das Profil erstellen. Darüber hatte ich auch schon mal nachgedacht. Allerdings ist das bei der Accountverwaltung und Aktualisierung ein ziemlicher Mehraufwand, der für die Nutzer auch verwirrend ist. Dann könnte ich auch Dummy User für die Leute ohne Accounts erstellen. Das würde es zumindest übersichtlicher machen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

das Problem ist auch

Eingetragen von ronald (3857)
am 10.07.2015 - 12:01 Uhr

dass es sich um verschiedene entity typen handelt.
Das eine sind User, das Andere ist ein content_type.

Schon alleine deshalb würde ich auch die Profile der registrierten User in einen content_type packen.

Dann hast du einen content_type "Userprofile", in dem ein Feld besteht, das auf den realen User Bezug nehmen kann.

Ist diese Referenz leer, handelt es sich um einen nicht registrierten User.

  • Anmelden oder Registrieren um Kommentare zu schreiben

den Content für das Zusatzprofil

Eingetragen von ronald (3857)
am 10.07.2015 - 12:10 Uhr

kannst du mit einer Rule anlegen lassen.

Dem User ist egal, ob er eine contentseite, oder ein Profil pflegt.

Wird ein User gelöscht, musst du eh entscheiden was mit seinem content passieren soll.
Wenn der content des Users beibehalten, und dem Gastuser zugeschlagen werden soll, aber das Profil gelöscht werden soll, und dieser Fall oft vorkommt, könntest du auch das mit einer Rule abfangen und erledigen lassen.

Allerdings wäre es natürlich auch sehr einfach, alle User (auch die, die sich nicht anmelden sollen) anzulegen.

Hierbei ergibt sich allerdings das Problem mit den eMailadressen.
Da müsstest du fakeadressen anlegen, damit sich diese User keinen Einmalzugang holen können.

Aber auch, wenn sie sich einen Einmalzugang holen, wäre das kein Problem, wenn du alle User, die nur authenticated sind, also keine gesonderte Rolle haben, behandelst wie Gäste.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Jenna schrieb Wähle eine neue

Eingetragen von derHai (15)
am 10.07.2015 - 12:14 Uhr
Jenna schrieb

Wähle eine neue View vom Typ Inhalt samt den Feldern "user ohne account", und in dieser View dann über Beziehungen die "user mit account" dazu nehmen.
Die Zusatzfelder für user mit account stehen dir erst nach dem Bezug zur Verfügung, vorher siehst du die nicht.

Das habe ich versucht, aber leider nicht hinbekommen. Welche Art von Beziehung muss ich hier wählen? Vorher hieß es ja Inhalt - Author Beziehung nur das macht keinen SInn.

Jenna schrieb

Generelle Frage: was hast du denn später mit den "user ohne accounts" vor? Weil man oft bei solchen Kombinationen später auf Probleme stößt bzw. die User händisch eventuell in einen "echten" Account übertragen muß oder tritt der Fall nie ein?

Dieser Fall wird nicht eintreten.

Jenna schrieb

Eventuell passt ja auch eine Rules, die dem "user ohne account" wenn du ihn anlegst (über Userprofile) eine Rolle Basic gibt, diese Rolle darf dann nichts tun, und du könntest später auch die Usernamen sortieren, denn 2 verschiedene Felder ineinander zu legen für eine Sortierung gibt sicher Probleme.

Ja für alle Accounts anzulegen wäre theoretisch möglich. Ich könnte die nicht gebrauchten auch einfach sperren und anders filtern... Das wollte ich aber eigentlich möglichst vermeiden.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Das habe ich versucht,

Eingetragen von Jenna (1883)
am 10.07.2015 - 13:17 Uhr
Zitat:

Das habe ich versucht, aber leider nicht hinbekommen. Welche Art von Beziehung muss ich hier wählen? Vorher hieß es ja Inhalt - Author Beziehung nur das macht keinen SInn.

View Typ Inhalt anlegen, 1 oder 2 Felder aus deinem Content Type unter Felder anlegen (user ohne account), dann unter Beziehungen Author wählen, speichern. Dann wieder auf Felder und jetzt hast du in der Auswahl zusätzlich "Benutzer" oder bei EN "User" stehen mit der ganzen Field Auswahl die du unter dem Benutzerkonten angelegt hast und natürlich auch Username.

Du darfst hier nur nicht die Beziehung erzwingen, da es ja echte User gibt die eventuell keinen Content ausgefüllt haben aus deinem "user ohne account".

Ich würde dir aber eher zu der Lösung von Ronald raten über ein Referenzfeld zu arbeiten welches die echten User mit ausfüllen oder per Checkbox anklicken.
Dann kannst du über Views nach allen suchen die sich auf dieses eine Feld beziehen.

Grüße Jenna

  • Anmelden oder Registrieren um Kommentare zu schreiben

Jenna schriebView Typ Inhalt

Eingetragen von derHai (15)
am 10.07.2015 - 13:44 Uhr
Jenna schrieb

View Typ Inhalt anlegen, 1 oder 2 Felder aus deinem Content Type unter Felder anlegen (user ohne account), dann unter Beziehungen Author wählen, speichern. Dann wieder auf Felder und jetzt hast du in der Auswahl zusätzlich "Benutzer" oder bei EN "User" stehen mit der ganzen Field Auswahl die du unter dem Benutzerkonten angelegt hast und natürlich auch Username.

Du darfst hier nur nicht die Beziehung erzwingen, da es ja echte User gibt die eventuell keinen Content ausgefüllt haben aus deinem "user ohne account".

Genau das habe ich versucht. Nur leider hat das nicht funktioniert :(. Mit der Lösung erhalte ich leider nur User, welche einen "user ohne Account" Content erstellt haben. Und die User, welche mehrere Nodes davon erstellt haben sind mehrfach vorhanden.

Die Beziehung habe ich bei den Einstellungen nicht erzwungen.

Außerdem habe ich dann einen gemeinsamen Rekord vom "user ohne account Content" und dessen Author und muss diese irgendwie wieder auseinander basteln.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die Author- Relationship

Eingetragen von glycid (921)
am 10.07.2015 - 16:30 Uhr

Die Author- Relationship entbehrt wirklich jeder Logik, denn wie bereits gesagt wurde:

ronald schrieb

Insofern gehen in eine View nur Dinge, die referenziell zusammenhängen.

Und User Typ A und User Typ B haben nix miteinander zu schaffen. Hier stößt man halt an die Grenzen von Views!

@derHai

Mittels Views hast du folgende Alternative: Du erstellst zwei Views. Eine vom Typ User und eine vom Typ Inhalt. Dann verbindest du die Ausgabe beider Views mittels EVA, indem du die eine View der anderen "anhängst".

Der Nachteil: Man sieht zuerst alle registierten User und dann alle diejenigen, die ihre Daten in der Node gespeichert haben. Oder umgekehrt. Sprich, die DB Records kommen nicht im Wechsel sondern per View getrennt:

User A
User A
User A
User B
User B
.......

Wenn das ok ist, ist EVA wohl die einfachste Lösung. Brauchst du hingegen:

User A
User B
User A
User B
...

musst du wohl selbst in die Tasten greifen und Querys schreiben und die Ausgabe dann in einer Schleife steuern.

Nachtrag: Statt mit EVA kann man natürlich auch einfach mit Blöcken arbeiten....

  • Anmelden oder Registrieren um Kommentare zu schreiben

Alles klar. Ich habe

Eingetragen von derHai (15)
am 10.07.2015 - 16:38 Uhr

Alles klar. Ich habe mittlerweile damit gerechnet, dass ich an die Grenzen von Views gestoßen bin.

Für die von dir beschriebene Lösung hatte ich schon das Modul Views Field in View gefunden.
Sortiert wäre natürlich schöner...

Mal schauen welche der Lösungen ich jetzt nutze.

Danke euch alle für die Tipps und kann geschlossen werden.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Genau das habe ich

Eingetragen von Jenna (1883)
am 10.07.2015 - 18:56 Uhr
Zitat:

Genau das habe ich versucht. Nur leider hat das nicht funktioniert :(. Mit der Lösung erhalte ich leider nur User, welche einen "user ohne Account" Content erstellt haben.

Sorry, da habe ich gepennt, man kann zwar auf die User Felder zugreifen aber es kann so keine Ausgabe erfolgen über Beziehungen, hatte das nicht vollständig gestestet.
Dank auch an glycid für die logische Erklärung dazu...

Grüße Jenna

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 5 Tagen
  • Hey danke
    vor 1 Woche 5 Tagen
  • Update: jetzt gibt's ein
    vor 1 Woche 6 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 4 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 4 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 1 Tag
  • In der entsprechenden View
    vor 3 Wochen 1 Tag
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 1 Tag
  • gelöst
    vor 5 Wochen 5 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 5 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20452

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
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