Gast soll Namen angeben können bei neuem Forenbeitrag
Eingetragen von vistree (238)
am 25.03.2010 - 18:14 Uhr in
am 25.03.2010 - 18:14 Uhr in
Hallo,
ich finde einfach keine Lösung:
Ich möchte ein Forum einrichten, in dem auch Gäste Beiträge erstellen können.
Ich habe das mit dem Core-Forum realisiert. Zum Schutz habe ich noch Captcha eingerichtet.
Alles läuft, bis auf das Problem mit dem Namen:
besteht ein Thema, kann ich für die Kommentarfunktion ja einstellen, dass der Absender seine Kontaktdaten hinterlassen muss (über die Kommentareinstellungen des Inhaltstyps).
Das selbe hätte ich wahnsinnig gerne auch für den ersten Beitrag. Dieser ist aber kein Kommentar und wir bei Gästen immer als "Benutzer" Gast angelegt.
Gibt es hier eine Möglichkeit?
- Anmelden oder Registrieren um Kommentare zu schreiben
Leg doch einfach für den
am 28.03.2010 - 19:15 Uhr
Leg doch einfach für den Inhaltstyp Forum ein neues CCK-Feld 'Benutzername' an. Dann gibts du in der Theme Konfiguration noch an, dass der Name des Autors, in diesem Fall GAST, nicht angezeigt wird.
Hallo md, hört sich gut an.
am 29.03.2010 - 09:56 Uhr
Hallo md,
hört sich gut an. Aber wo kann ich explizit einen Benutzer ausblenden? Unter der Themekonfiguration finde ich da nichts. Oder meinst du über einen Eintrag in der template.php?
Ich hatte mcih gefragt, ob man nicht einfach global den Wert von "author" mit dem Wert aus einem CCK-Feld überschreiben kann.
Also, wenn Benutzer = Gast dann Benutzer = cck-field-value
Hast du da eine Idee?
Hier -
am 29.03.2010 - 10:05 Uhr
Hier - admin/build/themes/settings - kann man doch pro Inhaltstyp angeben, ob der Autor und das Datum angezeigt werden.
Ah so, nee, dann werden ja
am 29.03.2010 - 11:15 Uhr
Ah so, nee, dann werden ja auch die gewünschten Autoren nicht angezeigt.
Ich habe das gerade mal ausprobiert - bei meinem Forum mit advanced_forum aktiviert werden die Daten dann trotzdem angezeigt.
Probier mal, in deine
am 29.03.2010 - 11:46 Uhr
Probier mal, in deine template.php folgenden Code einzutragen:
// Submitted-Anweisung ändern
function themename_node_submitted($node) {
//Benutzer und Profil laden
$uid = $node->uid;
$myuser = user_load(array('uid' => $uid));
//Datum ermitteln
$datum = format_date($node->created);
//prüfen, ob der Node von einem Gast erstellt wurde und Ausgabe entsprechend anpassen
if ($uid == 0)
{
$ausgabe = "Eingetragen von $node_field_cckfeld am $datum";
}
else
{
$ausgabe = "Eingetragen von $myuser->name am $datum";
}
//Submitted-Ausgabe zusammenstellen
return $ausgabe;
}
Da sind evtl. auch ein paar Anpassungen nötig (z.B. musst du "themename" durch den Namen deines Themes ersetzen). Aber im Grunde dürfte das funktionieren. Musst glaube ich danach die Theme-Registry löschen.
OK, probiere ich aus. Sag
am 29.03.2010 - 12:06 Uhr
OK, probiere ich aus. Sag mal, wie komme ich auf $node_field_cckfield?
Mein feld heißt field_benutzername.
Muss das dann heißen:
$ausgabe = "Eingetragen von $node->field_benutzername ??
Jap, genau so müsste es dann
am 29.03.2010 - 12:22 Uhr
Jap, genau so müsste es dann heißen.
Und eben den Themenamen ganz oben beim Funktion-Name angeben. Wenn du zum Beispiel Garland benutzt, müsste die Funktion "function garland_node_submitted($node)" heißen. Dort muss man immer den "Maschinennamen" nehmen. Ich verwende zum Beispiel das Theme "Pixture Reloaded", also heißt die Funktion "function pixture_reloaded_node_submitted($node)". Nimm für den Themenamen einfach die Bezeichnung des Ordners vom entsprechenden Theme (unter sites\all\themes findest du ja einen Ordner für jedes installierte Theme, außer Core-Themes die sind im theme-Ordner im Root-Verzeichnis; einfach den Ordner deines Themes raussuchen, Bezeichnung kopieren und vor "_node_submitted($node)" einfügen).