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

[gelöst] Daten aus Userprofil automatisch übernehmen

Eingetragen von sskibba (20)
am 22.02.2012 - 14:05 Uhr in
  • Views
  • Drupal 7.x

Moin!

Ich versuche im Moment mit Drupals CCK und Views eine zentrale Verwaltung für dezentrale Datenbestände aufzubauen. Diese sollen in den Views später nach Standorten gefiltert werden können. Den Benutzerprofilen habe ich ein neues Feld "Standort" beigefügt. Der Inhalt soll jetzt automatisch jedem neu erstellten Datensatz des Benutzers beigefügt werden, damit es nur einmal beim Benutzerprofil und nicht ein paar hundertmal beim Eintragen der Datensätze eingetippt werden muss.
Also im neu erstellten Inhaltstyp "Eingabe" neben den übrigen benötigten Feldern ebenfalls ein Feld "Standort". Nur soll dieses nicht mit angezeigt werden, sondern im verborgenen mit den Daten aus dem im Benutzerprofil vorhandenen Feld gefüttert werden.

Leider habe ich bisher keine Möglichkeit gefunden, genau dies zu realisieren. Oder denke ich da zu festgefahren und der Weg wäre ein anderer? Bin für Denkanstösse dankbar. ;)

LG, Sven

‹ [gelöst] Frabe der Viewsausgabe ändern.. Suche nach einer best. Node und Anzeige aller Nodes der Kategorie ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Rules

Eingetragen von Achim Wagenknecht (39)
am 24.02.2012 - 08:07 Uhr

Das geht mit Rules:

---------aus dem Rules-Interface kopiert-----------
Create a new entity
Parameter: Entity type: Node, Inhaltstyp: Eingabe, Titel: [account:profile-standort-profil…, Autor: [site:current-user]
Provides variables: ...

Save entity
Parameter: Entity: [eingabe], Force saving immediately: true

Page redirect
Parameter: URL: [eingabe:edit
--------------Zitat Ende-----------------------------------
"Eingabe" ist ein selbst definierter Inhaltstyp.
Hinter "account:profile-standort-profil… verbergen sich die Daten aus dem User-Profil. Dieses ist mit Profil2 ebenfalls selbst angelegt und heißt "Standort".

3 Dinge passieren:
1. Entity (=Node) wird angelegt, dabei werden Daten aus dem Benutzer-Profil eingefügt
2. Entity speichern
3. User auf die Edit-Seite der Entity umlenken, damit er seine weiteren eingaben machen kann.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielen Dank ...

Eingetragen von sskibba (20)
am 23.02.2012 - 16:42 Uhr

... für Deine Ausführungen. Da muss ich mich nochmal intensiv mit beschäftigen. Im Moment verstehe ich grösstenteils Bahnhof. Aber jetzt habe ich zumindest eine Richtung. Also werde ich mir mal ein paar Tutorials zum Thema Rules raussuchen und durcharbeiten. Dann verstehe ich vielleicht auch Deine Ausführungen. :O

LG, Sven

  • Anmelden oder Registrieren um Kommentare zu schreiben

sskibba schrieb ... für Deine

Eingetragen von SteffenR@drupal.org (2262)
am 23.02.2012 - 20:16 Uhr
sskibba schrieb

... für Deine Ausführungen. Da muss ich mich nochmal intensiv mit beschäftigen. Im Moment verstehe ich grösstenteils Bahnhof. Aber jetzt habe ich zumindest eine Richtung. Also werde ich mir mal ein paar Tutorials zum Thema Rules raussuchen und durcharbeiten. Dann verstehe ich vielleicht auch Deine Ausführungen. :O LG, Sven

Zum Thema rules bietet die Learning Library von nodeone eigentlich genügend "Lernstoff":
http://dev.nodeone.se/en/learning-library?field_nc_learning_version_tid=...

Da lohnt es sich mal durchzuscrollen ;)

SteffenR

  • Anmelden oder Registrieren um Kommentare zu schreiben

Gute Quelle

Eingetragen von sskibba (20)
am 23.02.2012 - 21:59 Uhr

Ja, das habe ich auch schon gefunden. Trotzdem danke. Nachdem die Reihe über Views schon sehr lehrreich war, werde ich mich da morgen drauf stürzen. Nach allem was ich bisher so erarbeitet habe, scheint das Drupal-Mantra des Johan Falk bestehend aus Views, Rules und Page Manager auch für meine weitere Arbeit mit Drupal existentiell zu werden.

LG, Sven

  • Anmelden oder Registrieren um Kommentare zu schreiben

sskibba schrieb ...Dann

Eingetragen von Achim Wagenknecht (39)
am 24.02.2012 - 08:03 Uhr
sskibba schrieb

...Dann verstehe ich vielleicht auch Deine Ausführungen.

Sorry, meine Stichworte waren wirklich arg knapp. Hab's überarbeitet um es etwas klarer zu machen. Klick einfach mal im Rules-Interface rum, dann wirst du schnell verstehen, wie diese Regelsätze aufgebaut sind. Oder frag nochmal konkreter nach.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Kein Problem

Eingetragen von sskibba (20)
am 24.02.2012 - 10:34 Uhr

Damit wollte ich auch nur erläutern, warum der Thread nicht 5 min nach Deiner Antwort auf gelöst stand. Sollte keine Kritik an Deiner Hilfestellung sein. Wie gesagt, mir fehlten da doch einige Grundlagen.Hole ich ja gerade alles nach und werde wohl spätestens am Wochenende dazu kommen Deine hilfreiche Antwort umzusetzen und dann demenstprechend hier ein [gelöst] vorzusetzen. Jedenfalls noch einmal vielen Dank für den Schubs in die Richtung des Rules-Modules. Genau das, was ich für die Lösung der weiteren Problemstellungen bei meinem Projekt benötige.

LG, Sven

  • Anmelden oder Registrieren um Kommentare zu schreiben

Kann doch so schwer nicht sein

Eingetragen von sskibba (20)
am 25.02.2012 - 13:07 Uhr

Sollte man zumindest meinen ;) Bei mir hakt es leider immer noch.

Ich habe in einer Testumgebung Drupal 7.12 DE neu aufgesetzt und folgende Module deaktiviert:
Dashboard, Overlay, Toolbar
Dafür folgende aktiviert:
Administration menu, Administration menu Toolbar style, Entity API, Entity tokens, Localization Update, Masquerade, MenuBlock, Module filter, Rules, Rules UI, Rules Scheduler, Token, Views, Views UI

Als erstes füge ich unter Configuration>People>Account settings>Manage fields ein neues Benutzerfeld "Standort" hinzu. Dann wir ein TestUser angelegt, Standort ist München.
Danach füge ich einen neuen content type "Eingabe" hinzu. Die Felder sind Titel, Hersteller, Produktname, Seriennummer und Standort als Field-Alias.
Link "Eingabe" im Hauptmenü auf node/add/eingabe.
Berechtigungen für neuen content type setzen.

Jetzt wird eine neue Rule erzeugt:

Event: Before saving content

Condition: Content is of type Parameter: Content: [node], Content types: Eingabe

Actions:
1: Create a new entity
Parameter: Entity type: Node, Content type: Eingabe, Title: [node:author:field-standort], Author: [site:current-user]
Provides variables: Eingabe (eingabe)
2: Save entity
Parameter: Entity: [eingabe], Force saving immediately: true
3: Page redirect
Parameter: URL: [eingabe:edit-url]

Wenn ich jetzt über Masquerade auf den TestUser switche und auf den Menüpunkt Eingabe gehe, wir mir die Eingabemaske ganz normal leer angezeigt. Erst wenn ich diese abspeicher erscheint eine neue Eingabemaske mit "München" als vorausgefüllter Titel. Irgendwie nah dran und doch meilenweit von dem gewünschten Ergebnis entfernt. Eigentlich soll er ja direkt beim Aufruf von node/add/eingabe die Aktionen der Rule durchlaufen und "München" bei Standort und nicht als Titel eintragen. Was mache ich falsch?

LG, Sven

  • Anmelden oder Registrieren um Kommentare zu schreiben

sskibba schrieb...Was mache

Eingetragen von Achim Wagenknecht (39)
am 25.02.2012 - 20:13 Uhr
sskibba schrieb

...Was mache ich falsch?

Falscher Trigger. Ich habe dafür eine Lösung gebaut, die zwar nicht elegant ist, aber funktioniert:

Event: Content is viewed

Condition: Title=neue_standort_info

Actions: Entity erzeugen, mit vorgegebenen Infos befüllen, speichern, User zur Edit-Seite des neuen Contents weiterleiten.

Dazu habe ich eine Einfache Seite mit dem Titel "neue_standort_info" angelegt und im Menü als "Neue Standort-Info" verlinkt. Diese Seite soll nie angezeigt werden, sie dient nur als Trigger.

Ich fände einen eleganteren Trigger nett, aber wie gesagt: so geht's.

Wie du die Info "Standort" jetzt an die richtige Stelle kriegst, dazu fällt mir grad nix ein...

Falls noch was hakt, frag nach.
Achim

  • Anmelden oder Registrieren um Kommentare zu schreiben

Lösung

Eingetragen von sskibba (20)
am 25.02.2012 - 23:21 Uhr

Manchmal hilft doch immer wieder etwas Abstand nehmen und einen neuen Blickwinkel einnehmen.

Der Tipp mit Rules war wirklich Gold wert. Hier die saubere Lösung. Eigentlich ganz einfach. Erst einmal wie gehabt:

Zitat:

Als erstes füge ich unter Configuration>People>Account settings>Manage fields ein neues Benutzerfeld "Standort" hinzu. Dann wir ein TestUser angelegt, Standort ist München.
Danach füge ich einen neuen content type "Eingabe" hinzu. Die Felder sind Titel, Hersteller, Produktname, Seriennummer und Standort als Field-Alias.
Link "Eingabe" im Hauptmenü auf node/add/eingabe.
Berechtigungen für neuen content type setzen.

Jetzt wird eine neue Rule erzeugt:

Event: Before saving content

Condition: Content is of type Parameter: Content: [node], Content types: Eingabe

Doch dann war es einfach zu kompliziert gedacht. Denn unter

Actions: Set a data value
Parameter: Data: [node:field-standort], Value: [node:author:field-standort]

gesetzt.

Das wars schon. Der User kann ganz normal seine Eingaben machen und das Feld Standort wird automatisch ausgefüllt. Damit der User nicht trotzdem einen eigenen Wert einträgt für das Feld über das Modul "Field Extra Widgets" das Widget auf Hidden gesetzt. Fertig!

Beteiligte Module: Rules, Field Extra Widget, Tokens (nicht wirklich notwendig, vereinfacht aber das Auffinden der richtigen Paramater)

Damit habe ich jetzt die von mir gewünschte "saubere" Lösung zu dem Problem. Vielen Dank für die Schubser auf den rechten Pfad.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ergänzung

Eingetragen von Achim Wagenknecht (39)
am 27.02.2012 - 19:05 Uhr

Eine Ergänzung noch:
Wir haben jetzt 2 Lösungen für 2 verschiedene Use Cases:

  1. So wie du es jetzt machst, bekommt der Benutzer das Feld nicht zu sehen und kann es auch nicht ändern.
  2. So wie ich es mache, kann der User das Feld abändern.
  • 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 3 Tagen 5 Stunden
  • Hey danke
    vor 3 Tagen 23 Stunden
  • Update: jetzt gibt's ein
    vor 4 Tagen 17 Stunden
  • Hallo, im Prinzip habe ich
    vor 1 Woche 2 Tagen
  • Da scheint die Terminologie
    vor 1 Woche 2 Tagen
  • Kannst doch auch alles direkt
    vor 1 Woche 6 Tagen
  • In der entsprechenden View
    vor 1 Woche 6 Tagen
  • Dazu müsstest Du vermutlich
    vor 1 Woche 6 Tagen
  • gelöst
    vor 4 Wochen 3 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 4 Wochen 4 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» 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 15 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