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

In Gruppen eine User-Struktur abbilden

Eingetragen von Scentyoo (60)
am 22.06.2009 - 13:38 Uhr in
  • Modulsuche
  • Drupal 6.x

Hallo,

ich möchte, dass Gruppen-Ersteller (Organic Groups) die Möglichkeit haben eine User-Struktur zu erstellen, wo alle User die der Gruppe anghören, eingeordnet werden können. Dabei soll der Name und die Anzahl der Untergruppen frei definierbar sein.

Beispiel:

Test-Gruppe:
|-> User
|-> User
|-> Untergruppe 1
       |-> User
       |-> User
       |-> User
|-> Untergruppe 2
       |-> User
       |-> User

Ich habe recherchiert, und dabei mehrere Ansätze gefunden:
- Node-Hierarchy (Die Untergruppen brauchen nicht unbedingt eine eigene Node)
- Book (zu komplex, da max. eine Ebene reicht.)
- og_subgroups (auf dem Buch-Modul aufgebaut. Leider unausgereift)
- Taxonomy (weiß nicht, ob sowas sinnvoll ist?!?)
- ??? (irgendein anderes Modul, dass diese Aufgabe lösen kann?)

Welches ist das richtige Modul für die Aufgabe? Und wie wäre dabei die Vorgehensweise?

‹ Erklärung von Fachbegriffen in einem (jQuery-) Tooltip Suche leistungsfaehige Inhaltsverwaltung ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

ich mache sowas ähnliches

Eingetragen von aschiwi (1113)
am 22.06.2009 - 14:19 Uhr

ich mache sowas ähnliches mit organic groups und darin dann mit node und user reference feldern. dann kannst du mit views die untergruppen listen und darin deren user. ist nicht so ganz dasselbe, sieht aber von oben genauso aus. was aber nicht so einfach geht, ist in den untergruppen beliebig untergruppen erstellen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Der Ansatz hat mir sehr

Eingetragen von Scentyoo (60)
am 23.06.2009 - 20:56 Uhr

Der Ansatz hat mir sehr geholfen! Danke!

Nun habe ich jedoch noch ein Problem: Das Benutzerreferenz-Feld möchte ich über Views steuern. Da man nur Benutzer auswählen können soll die der Hauptgruppe angehören, habe ich mir überlegt ein Argument zu übergeben. Wenn ich eine Gruppen-ID (z.B. 5) eingebe klappt es. Jedoch soll das ja dynamisch funktionieren. Je nachdem in welcher Gruppe man sich grad befindet. %1 oder so funktioniert da nicht. PHP-Code leider auch nicht.

Das Bild zeigt, wo ich versucht habe das Argument einzutragen (drupal/admin/content/node-type/gruppe/fields/field_benutzer):

  • Anmelden oder Registrieren um Kommentare zu schreiben

Versuch es mal ohne Argument

Eingetragen von aschiwi (1113)
am 24.06.2009 - 07:55 Uhr

Versuch es mal ohne Argument (bzw. brauchst du eigentlich nur das Argument aus "Inhalt - dein Node Reference Feld") und stattdessen mit Filter (auch wieder "Inhalt: dein User Referenz Feld)

:-)

***edit
Ach so, ich glaub du willst was anderes - das wollte ich auch machen und habe dabei herausgefunden, dass man dort in dem Feld keine dynamischen Argumente benutzen kann, man kann nur eine feste Gruppe auswählen :-(

  • Anmelden oder Registrieren um Kommentare zu schreiben

warum erzeugst Du nicht

Eingetragen von sklausing (288)
am 24.06.2009 - 12:37 Uhr

warum erzeugst Du nicht einfach einen View wo Du alle Benutzer und die Gruppen anzeigen lässt. Dort wählst Du dann als Gruppierungsoption die Gruppen aus. Schon hast Du was Du willst.

  • Anmelden oder Registrieren um Kommentare zu schreiben

sklausing, es geht ihm um

Eingetragen von aschiwi (1113)
am 24.06.2009 - 13:00 Uhr

sklausing, es geht ihm um das CCK-Feld User Reference. Dort können die auswählbaren User aus einem View kommen. Allerdings geht als "Argument" nur eine feste Gruppen-ID, d.h. es kann nur aus einer Gruppe gewählt werden, jedoch nicht dynamisch aus der, in der man sich gerade befindet.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich glaube ich habe einen

Eingetragen von Scentyoo (60)
am 24.06.2009 - 15:10 Uhr

Ich glaube ich habe einen Ansatz gefunden: http://www.drupalcenter.de/node/15364#comment-53899

die letzte Zeile wird wahrscheinlich der Schlüssel sein:

Zitat:

- den View in der template.tpl.php themen und darin je nach Rolle des aktuellen Users nur Usernodes von Usern mit derselben Rolle zurückgeben lassen

Statt das über 'Rollen' zu machen, nur die User zurückgeben die der Gruppe angehören.

Leider weiß ich nicht wie das funktioniert. Ich kann zwar PHP sehr gut, aber im Umgang mit Drupal noch ein bisschen wenig. Welche hooks muss ich da benutzen? Ich weiß leider auch nicht unter was ich nachschauen müsste um zum Ziel zu gelangen. Kann mir da jemand einen Ansatz liefern?

  • Anmelden oder Registrieren um Kommentare zu schreiben

gelöst!

Eingetragen von Scentyoo (60)
am 27.06.2009 - 01:17 Uhr

Endlich!! Ich habe eine Lösung gefunden ;-)

Man muss in den Views anstatt ein Argument eine Beziehung definieren:

Beziehungen:
------------------
Organische Gruppen: Gruppenbeitrag (Mitglied)
[X] Beziehung ist erforderlich

Dadurch werden immer die richtigen User im Untergruppen-Formular aufgelistet.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hey, cool dass du noch ne

Eingetragen von aschiwi (1113)
am 27.06.2009 - 09:48 Uhr

Hey, cool dass du noch ne Lösung gefunden hast! Kannst du das noch genauer beschreiben? Also ich würde nun den og_members_faces View duplizieren, die meisten Felder entfernen. Dann die Beziehung hinzufügen und bei Argumenten ist jetzt nichts mehr? Hast du noch was unter Filter?

Und im Benutzerreferenz-Feld wählst du nur den Namen des Views aus und das Argument-Feld bleibt leer?
Könntest du vielleicht auch mal deinen View exportieren, dann könnte ich genauer sehen warum es bei mir nicht geht...

Danke
Anja

http://www.twitter.com/aschiwi

  • Anmelden oder Registrieren um Kommentare zu schreiben

Na klar. Hier der Code des

Eingetragen von Scentyoo (60)
am 27.06.2009 - 16:42 Uhr

Na klar. Hier der Code des Views:

$view = new view;
$view->name = 'og_members';
$view->description = 'Anzeige der Benutzer einer Gruppe';
$view->tag = 'neu';
$view->view_php = '';
$view->base_table = 'users';
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
$handler = $view->new_display('default', 'Standards', 'default');
$handler->override_option('relationships', array(
  'nid' => array(
    'label' => 'Gruppenbeitrag (Mitglied)',
    'required' => 1,
    'id' => 'nid',
    'table' => 'og_uid',
    'field' => 'nid',
    'relationship' => 'none',
  ),
));
$handler->override_option('fields', array(
  'name' => array(
    'label' => '',
    'alter' => array(
      'alter_text' => 0,
      'text' => '',
      'make_link' => 0,
      'path' => '',
      'link_class' => '',
      'alt' => '',
      'prefix' => '',
      'suffix' => '',
      'help' => '',
      'trim' => 0,
      'max_length' => '',
      'word_boundary' => 1,
      'ellipsis' => 1,
      'strip_tags' => 0,
      'html' => 0,
    ),
    'link_to_user' => 1,
    'overwrite_anonymous' => 0,
    'anonymous_text' => '',
    'exclude' => 0,
    'id' => 'name',
    'table' => 'users',
    'field' => 'name',
    'relationship' => 'none',
  ),
));
$handler->override_option('access', array(
  'type' => 'perm',
  'perm' => 'access content',
));
$handler->override_option('cache', array(
  'type' => 'none',
));
$handler->override_option('items_per_page', 0);
$handler->override_option('style_options', array(
  'grouping' => '',
));
$handler = $view->new_display('page', 'Seite', 'page_1');
$handler->override_option('path', 'gruppe/members');
$handler->override_option('menu', array(
  'type' => 'none',
  'title' => '',
  'description' => '',
  'weight' => 0,
  'name' => 'navigation',
));
$handler->override_option('tab_options', array(
  'type' => 'none',
  'title' => '',
  'description' => '',
  'weight' => 0,
));

Viel Erfolg damit ;-)

Achja, in der Benutzer-Referenz nur den richtigen View auswählen und das Argument leer lassen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hm, danke erstmal. Aber bei

Eingetragen von aschiwi (1113)
am 27.06.2009 - 17:08 Uhr

Hm, danke erstmal. Aber bei mir tut das nicht das gewünschte. Es zeigt nur User an, die überhaupt in einer Gruppe sind, nicht aber nur User, die nur in dieser Gruppe sind. Ist bei mir aber nicht so schlimm, wäre nur schön gewesen ;)

  • Anmelden oder Registrieren um Kommentare zu schreiben

In der Views-Ansicht zeigt

Eingetragen von Scentyoo (60)
am 27.06.2009 - 17:18 Uhr

In der Views-Ansicht zeigt der bei mir auch alle User an. Aber sobald man beim anlegen einer Untergruppe ist, werden bei mir nur die richtigen User (die der Gruppe angehören) aufgelistet.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das ist ja seltsam - was

Eingetragen von aschiwi (1113)
am 28.06.2009 - 09:37 Uhr

Das ist ja seltsam - was anderes mache ich eigentlich auch nicht. Die Untergruppe ist ja lediglich ein Node in der OG, bei dir ja auch ne?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Oh, komisch. Also ich habe

Eingetragen von Scentyoo (60)
am 28.06.2009 - 11:37 Uhr

Oh, komisch. Also ich habe jetzt mit Node Hierarchy gearbeitet (Hauptgruppe als Parent und Untergruppe als Child). Jedoch hab ich dazu in den Views ja nix eingestellt. Deshalb hatte ich gedacht das sei unwichtig. Weiß nicht ob es daran liegt...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ok, mit Node Hierarchy habe

Eingetragen von aschiwi (1113)
am 29.06.2009 - 10:25 Uhr

Ok, mit Node Hierarchy habe ich nicht gearbeitet.
Habe nun eben noch Node Hierarchy installiert. Der Inhaltstyp, der bei mir die OG Gruppe ist, ist Parent, die "Untergruppe" ist Child. Dennoch ändert sich nichts im Feld Benutzerreferenz. Evtl. fällt dir noch ein, was du vielleicht anders eingestellt hast. Ansonsten werde ich das wohl aufgeben :-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hey Scentyoo, kannst du mal

Eingetragen von aschiwi (1113)
am 01.07.2009 - 15:54 Uhr

Hey Scentyoo, kannst du mal deinen Inhaltstypen exportieren? Ich würde das so gern auch hinkriegen, aber ich hab immer nur alle Leute drin, die zu irgendeiner Organic Group gehören, nicht zu der aktuellen. Dabei sag ich dem Projekt über Node Hierarchy, wer sein Parent ist.

***edit
Was mir noch einfällt: ich benutze OG 6.x-2.0-rc3, weil Version 6.x-1.3 ab und an den Kontext verliert, z.B. auf der /faces Seite. Du benutzt sicher Version 6.x-1.3?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hey! So ein Mist!! In meiner

Eingetragen von Scentyoo (60)
am 01.07.2009 - 16:27 Uhr

Hey! So ein Mist!! In meiner Test-Gruppe wurden nur zufällig die richtigen Leute angezeigt. Durch deine Fragen hatte ich nochmal alles überprüft und gemerkt, dass es doch nicht klappt!
Ich denke wir kommen nicht drum herum dafür ein Modul zu programmieren... Ich habe in den kommenden Tagen sehr wenig Zeit, jedoch brauche ich die Funktion auch unbedingt. Deshalb werde ich mich bei Gelegenheit nochmal dran setzen und mir etwas überlegen. Vielleicht fällt dir auch etwas ein.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Mir ist tatsächlich etwas

Eingetragen von aschiwi (1113)
am 01.07.2009 - 17:08 Uhr

Mir ist tatsächlich etwas eingefallen.

Da ich nicht besonders schlau mit PHP bin, weiß ich nicht wie ich als Argument aus dem Node die Organic Group kriege. Ich werde für meinen Inhaltstyp Untergruppe deshalb (etwas umständlich vielleicht) ein neues Feld anlegen, welches ich per prepopulate mit der Organic Group ID ausfüllen lasse. Den Inhalt dieses Feldes rufe ich dann später wieder ab (siehe folgende Schritte).

1. Den View og_members_faces mal duplizieren, den braucht man ja anderswo auch mit unveränderten Einstellungen.
2. Keine Beziehungen
3. Argumente: Organische Gruppen: Gruppe. Darin dann ankreuzen "Standardargument zu Verfügung stellen" - "Standardtyp für Argumente:" PHP-Code:

if (arg(0) == 'node' && is_numeric(arg(1))) {
  $node = node_load(arg(1));
  return $node->field_ognumber[0][value];
} else {
  return FALSE;
}

4. Felder: Benutzer: Name

field_ognumber[0][value] ist das Feld, was ich zuvor hinzugefügt hatte. Ich habe bisher manuell die ID der Group hinzugefügt und sofort waren nur die korrekten Teilnehmer zu sehen. Da für meine User später sowieso immer die OG per prepopulate vorausgewählt wird, damit sie nichts zusätzlich wählen müssen, ändert sich für mich nicht viel. Vielleicht hilft dir das auch, oder du bist schlau genug im Argument die OG des Nodes abzufragen, die muss ja irgendwo sein...

  • 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?
Weiter

Neue Kommentare

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

Statistik

Beiträge im Forum: 250234
Registrierte User: 20453

Neue User:

  • Spravkicic
  • ByteScrapers
  • Mroppoofpaync

» 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 1 Benutzer und 27 Gäste online.

Benutzer online

  • Spravkicic

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