Please or Register to create posts and topics.

How to add custom fields in new topic?

Page 1 of 2Next

Hallo zusammen, ich habe einiges zum Thema Hooks gelesen und ausprobiert, komme da aber nicht weiter und brauche Hilfe.

Ich plane (also noch nicht online) ein Forum, wo bei der Registrierung die Felder Team, Straße, PLZ und Ort abgefragt werden. Den Inhalt/der Text dieser Felder soll automatisch mit/beim senden eines neuen Thema‘s eingebunden werden. Ziel ist, mit der Suche beispielsweise den Ort oder die PLZ einzugeben um alle Einträge dazu zu filtern.

Wie macht man so was? Wenn mit php, dann bitte idealerweise mit einem Beispiel.

Wichtig, mit einem shortcode geht das leider nicht, der Text wird zwar angezeigt steht aber nicht als realer Text in der Textbox!

Vorab besten Dank

Andreas

Hi, I’ve read a lot about Hooks and tried by my self, but it does not work for me and I needs help.

I’m planning (not yet online) a forum where the fields team, street, postcode and city are queried during registration. The content / text of these fields should automatically be included with / when sending a new topic. The goal is to use the search field, for example, to filter for all location or zip code entries.

How you do that? If you use php, may I have an example please.

Important, It does not work with a shortcode, the text is displayed, but it is not a real text in the text box!

Thanks
Andreas

.

Hallo @andreas

Dafür benötigst du eine ganze Menge an eigenen Modifikationen:

  • Hook asgarosforum_editor_custom_content_bottom: Diesen Hook musst du erst einmal benutzen, um den Editor mit deinen zusätzlichen Eingabemasken zu erweitern.
  • Hook asgarosforum_after_add_topic_submit: Dieser Hook speichert dann nach dem Anlegen eines neuen Themas die Inhalte deiner zusätzlichen Felder in der Datenbank. Das bedeutet, du musst dementsprechend die Datenbank vorher anlegen, nach dem Absenden eines Themas die übermittelten Daten über die globale $_POST-Variable auslesen, gegebenenfalls validieren und dann in der Datenbank speichern.
  • Hook asgarosforum_after_post_message: Diesen Hook könntest du dann zum Beispiel verwenden, die gespeicherten Daten unterhalb eines Beitrags anzuzeigen.

Da du in dem Fall aber mit eigenen Tabellen arbeitest, lässt sich das nicht so einfach in die Suche einbauen. Das heisst, du müsstest dann noch eine eigene Suche implementieren, die über deine neue Datenbank entsprechend drüberschaut.

Du siehst, das ist mehr oder weniger alles miteinander verknüpft, deshalb ist es auch nicht möglich, dass mit einem kurzen Beispiel zu demonstrieren. Ich hoffe allerdings, dass dir diese Anhaltspunkte etwas weiterhelfen konnten.

If you want to support the development of Asgaros Forum, you can leave a good review or donate. Thank you very much!

Hallo @asgaros,

erst einmal besten Dank für deine Antwort. Ich konnte mir schon denken, dass es recht Aufwendig werden wird.

VG

Andreas

Hallo @asgaros,

ich muss nochmal nachfragen. Ich möchte ja gar nicht mit dem Hook asgarosforum_editor_custom_content_bottom zusätzliche Eingabemasken/Felder hinzufügen.

Mal ein anderes Beispiel: Im WP Benutzer Profil gibt es ein Feld „Biografische Angaben“. In diesem Feld trage ich bspw. eine Adresse (Strasse, PLZ und Ort) ein. Jetzt möchte ich, den Inhalt des Feldes„Biografische Angaben“ mit Klick auf den Senden Button im Forum auslesen und dann mit einem Hook (wenn möglich) in das Textfeld??? (ich weiß nicht wie es heißt, bei mir id=“tinymce“ und bei dir id=”post-quote-container-nnnn“) automatisch eintragen (sowas wie copy and paste). Diese Adresse steht dann in dem Textfeld als realer Text und es werden keine zusätzlichen Felder etc durchsucht.

Hallo @andreas

Hier mal ein kleines Beispiel, wie du das angehen könntest. Nach dem Speichern des Themas kannst du den Hook asgarosforum_after_add_topic_submit verwenden. Innerhalb diesem liest du die entsprechenden Daten aus dem Benutzerprofil aus (in dem Beispiel die Mail), fügst sie ans Ende des Inhalts hinzu und speicherst diesen dann in der Datenbank. Danach sollte dieser Unterhalb des Inhaltes angezeigt werden.

function add_text_to_topic($post_id, $topic_id, $subject, $content, $link, $author_id) {
    $user_data = get_userdata($author_id);

    // Variable which holds some data you want to add.
    $value = '<br>'.$user_data->user_email;

    $content = $content.$value;

    global $asgarosforum;
    $asgarosforum->db->update($asgarosforum->tables->posts, array('text' => $content), array('id' => $post_id), array('%s'), array('%d'));
}
add_action('asgarosforum_after_add_topic_submit', 'add_text_to_topic', 10, 6);

 

If you want to support the development of Asgaros Forum, you can leave a good review or donate. Thank you very much!

Hallo @asgaros,

nochmals Danke für deine Hilfe.

Ich habe den Code in die function.php eingefügt, dann ein neues Thema aufgemacht und leider passiert da mit Klick auf den Senden Button gar nichts. Nur der von mir eingegebene Text ist in dem neuen Thema sichtbar, die eMail Adresse leider nicht.

Hast du eine Idee?

Hallo @andreas

Da war ein kleiner Fehler im Code. Ich habe ihn nochmal aktualisiert und jetzt sollte es funktionieren.

If you want to support the development of Asgaros Forum, you can leave a good review or donate. Thank you very much!

PERFEKT!

Danke, es funktioniert.

Asgaros has reacted to this post.
Asgaros
Page 1 of 2Next