Php Snippet zur automatischen Titelangabe aus Taxonomy Term

am 14.07.2010 - 17:06 Uhr in
Aloah liebe Leute,
folgendes Problem liegt vor:
ein registrierter User soll sein Profil eintragen. In diesem Profil kann er via Taxonomy einen Club bestimmen, dem er angehört. Ich habe zur erweiterten Bearbeitung das Content-Profile Modul genommen. Ebenso möchte ich, dass er eine Gruppe anlegen kann, über das OG-Modul. Dabei möchte ich, dass die Gruppe, die er anlegt, den Namen des vorher ausgesuchten Clubs erhält. Weiter möchte ich, dass erst überprüft wird, ob diese Gruppe schon existiert. Falls ja, darf er keine Gruppe mehr anlegen.
Die Tabellen, die hierfür benutzt werden, sind in folgender Abblidung enthalten:
Jetzt meine Frage:
Da es möglich ist, dem Inhaltstyp in "Automatc title generation" php code mitzugeben, würde ich dort gerne ein php snippet einfügen. Jetzt lese ich da aber schon seit Stunden drin rum, und werde nicht schlauer. Kann mir da jemand auf die Sprünge helfen, wie ich die Tabellen oben so verbinde, dass der Titel ausgegeben wird, und wo bzw. wie ich die Bedingung hinzufüge, dass der Titel nicht schon benutzt wurde???
Mir wäre es nur recht, wenn ich da ein paar Tips zur Vorgehensweise erhalten würde.
Hoffe Euch herausgefordert zu haben ; )
LG,
Maen
- Anmelden oder Registrieren um Kommentare zu schreiben
Mein Ansatz wäre ein Modul
am 15.07.2010 - 08:26 Uhr
Mein Ansatz wäre ein Modul hierfür ( wie geht das? ).
Wenn ein Node vom Typ Gruppe angelegt wird ( hook_nodeapi )
Gibt es schon einen vom gleichen User? ( node_load )
Nein: Titel = Taxonomy Term vom Profil ( taxonomy_node_get_terms_by_vocabulary )
Ja: Titel = Taxonomy Term vom Profil? Falls ja: Fehler ( form_set_error )
-----------
Luca Curella
Kooperative Netze - Berlin
Hallo Luzer, erst mal Danke
am 15.07.2010 - 09:56 Uhr
Hallo Luzer,
erst mal Danke schön für den Tip.
Aber:
Gibt es schon einen vom gleichen User? ( node_load )
Wäre das dann nicht die Frage: Gibt es schon eine Gruppe mit dem gleichen Titel? Wenn zwei registrierte user einem Club angehören, dann würde es doch bedeuten, dass beide (parallel?) eine Gruppe anlegen könnten, die jeweils den Clubnamen tragen würde. Ich möchte aber generell für einen Club gleich eine Gruppe haben.
Ist das damit machbar?
Danke im voraus,
maen
Das ist ja wieder was
am 16.07.2010 - 07:55 Uhr
Das ist ja wieder was anderes...
Dann stellt sich die Frage ob du nicht vielleicht sowieso automatisch eine Gruppe anlegst pro Term und deine User können nur beitreten/Gruppenadmin werden.
Wie kommt denn die Taxonomy zustande, gibst du die vor?
-----------
Luca Curella
Kooperative Netze - Berlin
Nö
am 16.07.2010 - 08:38 Uhr
Die kommt über freetagging und autocomlete zustande. aber dann müsste ja noch eine Konvention her, dass der erste, der den Club einschreibt, automatisch Admin ist, wohingegen alle anderen erst mal nur Member wären.
Also dann... Wenn du kein
am 16.07.2010 - 08:52 Uhr
Also dann...
Wenn du kein Modul findest welches dir automatisch eine Gruppe anlegt sobald ein Term erstellt wird muss noch eine 2. Abfrage her ob es schon eine Gruppe gleichen Namens gibt - dann kann der User nur beitreten, sonst sie erstellen.
Bzw. jetzt wo ich nochmal drüberlese:
Soll es denn automatisch eine Gruppe geben für jeden Term? Oder Gibt es auch Terms ohne Gruppen? Falls ersteres liesse sich das vielleicht mit Rules oder Action/Trigger lösen. Dann wäre derjenige der den Term anlegt Manager der Gruppe, sofern es den Term schon gibt kann man nur beitreten.
-----------
Luca Curella
Kooperative Netze - Berlin
Token + Pathauto
am 16.07.2010 - 09:08 Uhr
Ich würde mal in dieser Richtung recherchieren: Token-Module und Pathauto
Gruß

Frank
Bitte Erledigtes im Betreff des ersten Postings als [gelöst] markieren. Danke!
Automatisch
am 16.07.2010 - 09:10 Uhr
Es soll für jeden Term des Vokabulars genau eine Gruppe geben. Nein es gibt innerhalb des Vokabulars keine Terms ohne Gruppe.
Verstehe ich nicht!
am 16.07.2010 - 09:26 Uhr
Meines Wissens ist ein token ein Platzhalter, über den Beziehungen hergestellt werden können??? Wie wird dadurch bei erstellen eines Terms im Vokabular Club automatisch eine Gruppe erzeugt? Bzw. wie dadurch eine Berechtigung des Accounts als Admin, Moderator oder Mitglied erzeugt?
Sei bitte so gut und bring das etwas näher.
Vielen Dank vorab,
maen
Zitat: Es soll für jeden Term
am 16.07.2010 - 09:45 Uhr
Es soll für jeden Term des Vokabulars genau eine Gruppe geben. Nein es gibt innerhalb des Vokabulars keine Terms ohne Gruppe.
Dann würde ich mittels Action/Trigger Rules automatisch eine Gruppe erstellen lassen und wer den Term anlegt ist Manager...
Token und Pathauto hilft dir da höchstens bei der Namensvergabe.
-----------
Luca Curella
Kooperative Netze - Berlin
Action/Trigger Rules
am 16.07.2010 - 10:38 Uhr
Meinst Du damit das Modul Rules? Ok. Trigger ist ein CoreModul. Denke ich habe das geschnallt!
Genau
am 16.07.2010 - 11:41 Uhr
Genau jenes:
http://drupal.org/project/rules
-----------
Luca Curella
Kooperative Netze - Berlin
Damit hatte ich schon vorher rumgespielt.
am 16.07.2010 - 12:11 Uhr
Aber:
Wenn ich den Event auslösen möchte: "User account has been created" und dann die action : add new content mit dem Inhaltstyp Club-Themen, der wiederum bei mir für gruppen da ist, auslösen möchte, passiert aber nichts. Ich habe keine bedingung eingegeben, und als Titel hallo gewählt. Aber es wird einfach keine Gruppe erstellt. In den Berechtigungen der user habe ich für den registrierten jetzt mal alles freigegeben was machbar ist in Bezug auf Groups und habe den Schalter "Create content only if the given author has access permission to do so" nicht aktiviert. Also Feuer frei!
Aber er legt mir keine Gruppe an! Sch ...
Gruppen gleich anlegen?
am 16.07.2010 - 13:39 Uhr
Wenn du die Vokabulare vorgibst, warum dann nicht auch gleich alle Gruppen anlegen?
Ansonsten noch zwei Links, die vielleicht weiterhelfen:
Gruß

Frank
Bitte Erledigtes im Betreff des ersten Postings als [gelöst] markieren. Danke!
Also nochmal zum
am 16.07.2010 - 16:12 Uhr
Also nochmal zum Verständnis:
Ein User registriert sich. Ein Profil-Node wird erstellt. In diesem gibt es ein Freetagging Taxonomy Feld für Clubs.
Er kann irgendwann was eintragen ( ist das ein Pflichtfeld? ). Sofern es den Term noch nicht gibt soll eine gleichnamige Gruppe erstellt werden, die dem User gehört.
Sonst soll er nur beitreten.
Das Event wäre dann also nicht registrieren sondern Feld ausfüllen/Term anlegen. Das gibt es glaube ich so nicht.
Ich dachte mehr an so was
@Frank: das Vokabular wird nicht vorgegeben...
-----------
Luca Curella
Kooperative Netze - Berlin
Also:
am 16.07.2010 - 17:05 Uhr
Bis jetzt bin ich so schlau:
1.) Ein user registriert sich.
2.) Er führt die link Bestätigung aus. -> Es soll nichts passieren.
3.) Er schreibt in sein Profil: da ist das erforderliche Freetagging Taxonomy Club Vokabular drin. Dort nimmt er einen bestehenden Club oder trägt ein. Er trägt den Rest ein. Mittels Content Taxonomy habe ich ein Feld im Content Profile, worin die Term-ID gespeichert wird. Er drückt auf speichern, das Profil wird geupdatet. Das ist genau das Event das ich möchte! Das existiert auch out of the box.
4.) Wenn das Event stattfindet, soll 1. die Aktion ausgeführt werden, lade das Profil, damit ich an die Term-ID rankomme (hier schon mal vielen Dank an Frank wegen der obigen links), und schreibe eine Node (Organic Group) mit der TID, die vorher per php aus dem Content Profile Field genommen wurde.
5.) Condition: Teste vorher, ob die Gruppe schon besteht. Wenn ja, füge den gerade ausführenden zu dieser Gruppe als Mitglied hinzu. Wenn Nein, schreibe Gruppe und mache aus ihm Admin.
"Moving documents from taxonomy terms to OG"
am 19.07.2010 - 13:52 Uhr
Das könnte auch interessant sein, leider ist da irgendwie der PHP-Code verloren gegangen:
"Organic Group Moving documents from taxonomy terms to OG"
Gruß

Frank
Bitte Erledigtes im Betreff des ersten Postings als [gelöst] markieren. Danke!
automatic nodetitle
am 19.07.2010 - 14:06 Uhr
automatic nodetitle
C.A.W. Webdesign

Cool...
am 19.07.2010 - 14:27 Uhr
kannte ich noch nicht.
http://drupalmodules.com/module/automatic-nodetitles
Gruß

Frank
Bitte Erledigtes im Betreff des ersten Postings als [gelöst] markieren. Danke!