Page 1 of 1

CP-Titel in Formular übernehmen

Posted: Thu 11. Feb 2021, 11:29
by update
Hey all, ich habe auf einer Seite mehrere Content-Parts mit verschiedenen Veranstaltungen im jeweiligen CP-Titel, immer mit Datum, wann die Veranstaltung stattfinden wird.
Am Ende der Content-Parts ist jeweils ein Button, der ein Formular aufruft, damit sich die interessierte Person anmelden kann.

Nun wäre es chick, wenn zB der entsprechende Conten-Part-Titel sich im aufgerufenen bzw versendeten Formular zB im Betreff wiederfände.

Wie das mit Artikeltiteln geht, habe ich im WIKI gefunden, aber es übersteigt mein know-how, wie das mit CP-Titeln gehen könnte.
Kann jemand einsteigen und mir zu Hilfe eilen? Das wäre ganz großes Kino :D

Re: CP-Titel in Formular übernehmen

Posted: Thu 11. Feb 2021, 18:59
by Uwe367
update wrote: Thu 11. Feb 2021, 11:29 Wie das mit Artikeltiteln geht, habe ich im WIKI gefunden, aber es übersteigt mein know-how, wie das mit CP-Titeln gehen könnte.
Wo hast du das denn im Wiki gefunden? Poste mal bitte den Link dort hin. Vielleicht kann man das so verbiegen daß es mit CP Titeln funktioniert.
Wobei mir aber auch gerade einfällt daß du im CP Formular jedem Feld auch einen festen Wert zuteilen kannst. Wäre dann nur etwas mehr "Handarbeit".
Du hast aber auch die Möglichkeit einen Zwischentext einzubauen, aber ich denke das soll automatisiert erfolgen.

Re: CP-Titel in Formular übernehmen

Posted: Thu 11. Feb 2021, 20:07
by update
Im wiki für Artikeltitel und hier im Forum für Newstitel:
https://wiki.phpwcms.org/doku.php/deuts ... m-formular
viewtopic.php?f=16&t=25098&p=149916&hil ... ar#p149916
Wie das Formular wissen kann, welchen CP-Titel es jetzt nehmen muss, wenn da mehrere auf einer Seite sind, weiß ich echt nicht. Wenn das zu schwierig sein sollte, baue ich das Newstemplate um und mache das mit den News. Da weiß ich, dass es geht ;)
EDIT: Ich baue gerade eine Website nach dem Entwurf eines Grafikers. Mach ich nie wieder!!! :twisted:
Vor allem nicht, weil ich so raus bin aus dem Thema. Ich baue lieber ne Gitarre oder ein ganzes Haus stattdessen :lol:
EDIT II: Ich mach den Sch... seit 1995. Das muss jetzt echt mal reichen. Bin bald 70. Echt jetzt :oops:

Re: CP-Titel in Formular übernehmen

Posted: Fri 12. Feb 2021, 05:45
by Oliver Georgi
Also, ohne jetzt das konkrete Design etc. zu kennen.

Der einfachste Weg an der Stelle ist JavaScript. Gib einfach jedem der ContentPart-Titel, den Du im Formular übernehmen möchtest, eine Klasse im Template mit, also z.B. <h3 class="form-subject">Titel</h3>. Ich habe jetzt nicht herauslesen können, ob Du das nur 1x oder mehrfach haben möchtest. Bei Mehrfach dann im Formular z.B. als Auswahlmenü.

Für den Button ist es natürlich noch simpler. Den Klickt man ja, dann hängt man dort den Titel dran.

Code: Select all

<button class="btn btn-primary form-click" data-subject="{TITLE}">Zum Formular</button>
Irgendwo auf der Seite ist dann das Formular mit dem Input-Feld (z.B. auch hidden möglich), welches eine ID haben sollte. Dort hinein schickt man das dann…

Code: Select all

$(function(){
    let $defaultSubject = 'Standardbetreff',
        $formSubjectInput = $('#form-subject-id'),
        $goToFormButtons = $('button.form-click');

    if($goToFormButtons.length) {
        $goToFormButtons.on('click', function() {
            $formSubjectInput.val($(this).data('subject') || $defaultSubject);
            $([document.documentElement, document.body]).animate({
                scrollTop: $formSubjectInput.offset().top
            }, 500);
        });
    }
});
Da führen viele Wege nach Rom.

Re: CP-Titel in Formular übernehmen

Posted: Fri 19. Feb 2021, 13:18
by update
Irgendwie bin ich zu doof, jetzt sendet das formular gar nix mehr, sogar die Daten für den Download sind völlig unvollständig. Ich geh jetzt Tulpenzwiebeln einbuddeln ;)

Re: CP-Titel in Formular übernehmen

Posted: Fri 19. Feb 2021, 13:25
by update
So, sendet wieder. Aber übernimmt keinen Titel, weder in ein einfaches Feld noch in ein Dropdownmenü... Weiter probieren.

Re: CP-Titel in Formular übernehmen

Posted: Fri 19. Feb 2021, 13:56
by Oliver Georgi
Ich habe Dir nur eine ungefähren Ansatz geliefert ;-) Da sind halt viele Unbekannte, die man wissen müsste, um der Lösung näher zu kommen.

Re: CP-Titel in Formular übernehmen

Posted: Fri 19. Feb 2021, 17:01
by update
Hihi, hab's gemerkt. Jetzt ein paar Stündchen experimentiert, aber da füllt sich leider nirgends nix :?
Vielleicht sollte ich doch das Newsmodul anpassen, da habe ich das ja schon mal hinbekommen. Ich dachte halt, das mit so ein paar wysiwyg-Dingern ginge erstmal schneller, um nachher in Ruhe an den News zu schrauben... :roll:

Re: CP-Titel in Formular übernehmen

Posted: Fri 19. Feb 2021, 17:13
by Oliver Georgi
Schick einen Link per E-Mail und ich sehe vielleicht, wo Du dir auf den Füßen stehst.

Re: CP-Titel in Formular übernehmen

Posted: Sat 20. Feb 2021, 10:27
by Uwe367
Hmm... Habe mir da auch mal gerade ein paar Gedanken drüber gemacht und daraus käme nun folgender Vorschlag.
Es gibt doch den RT { SHOW_CONTENT: CPid }. Wäre es nicht möglich etwas ähnliches, z.B. { SHOW_TITLE: CPid } zu bauen und das Formularfeld dann lediglich mit dem RT zu füllen? Gerade bei mehreren Formularen mit Feldern, die automatisch ausgefüllt werden sollen wäre das doch dann die praktischste Lösung oder?
Ist nur eine Idee. Ob das Sinn macht oder technisch zu aufwendig ist... keine Ahnung.

Re: CP-Titel in Formular übernehmen

Posted: Thu 25. Feb 2021, 10:30
by nameless1
Technisch aufwändig? Schau Dir mal die Script Möglichkeiten hier an.

Re: CP-Titel in Formular übernehmen

Posted: Thu 25. Feb 2021, 11:02
by Oliver Georgi
Ich habe es per JavaScript gelöst – auf Basis meines geposteten Vorschlags. Template leicht angepasst und noch das angesprochene Formular glatt gezogen und fertig.

Re: CP-Titel in Formular übernehmen

Posted: Thu 25. Feb 2021, 12:36
by update
Und es funktioniert ganz einfach. Ganz super :)
Mit einer vordefinierten Klasse in einer Box und einer definierten Klasse für zB H3 sammelt das Ganze alle Titel in einem Dropdownmenü (Formular ist als Modal gemacht). Ein Klick auf einen Button mit einer definierten Klasse ploppt das gefüllte Formular hoch. Usw usf... Ideen?
Sag ich doch : ganz einfach super-uper-easy (wenn man weiß, wie man so was machen muss :lol: )

Re: CP-Titel in Formular übernehmen

Posted: Thu 25. Feb 2021, 18:50
by top
Hallo allerseits,

da ich gerade mit einem ähnlichen Problem zugange bin, will ich meine (bisherige) Lösung hier auch mal reinstellen.

Bei mir geht es (wie in diesem alten Thread hier: viewtopic.php?f=1&t=15744 ) allerdings um die Newsdetails bei denen das Kontaktformular auch ein paar Informationen der gerade geöffneten "Veranstaltung" übergeben soll. Da die Seite bisher noch ohne JS auskommt, wollte ich das mit PHP lösen.

1. Grundsätzlich ergänze ich im Formular erst mal ein verstecktes Feld wie hier beschrieben:
https://wiki.phpwcms.org/doku.php/deuts ... m-formular

2. Im Template der News ergänze ich bei der Detailansicht die gewünschten Informationen in einem HTML-Kommentar:

Code: Select all

<!-- NEWS_FORMULARDATEN_START[NEWS_TITLE]---------------------------------------------
Termin: {NEWS_TITLE}
[/NEWS_TITLE][NEWS_TOPIC]{NEWS_TOPIC}
[/NEWS_TOPIC][NEWS_SUBTITLE]{NEWS_SUBTITLE}
[/NEWS_SUBTITLE] NEWS_FORMULARDATEN_END //-->
3. Und hier der Teil, an dem ich mir mit meinen bescheidenen PHP-Kenntnissen fast die Zähne ausgebissen hätte. In /template/inc_script/frontend_render/ kommt noch folgende PHP-Datei, um die Daten vom HTML-Kommentar in das vorbereitete Formularfeld zu kopieren:

Code: Select all

<?php
// Aktuelle News-Informationen an Formular uebergeben
//
// Nach Start und Ende der Daten suchen (+24 wegen der Laenge des Start-Tags)
$newsformstart = (strpos($content['all'], 'NEWS_FORMULARDATEN_START')+24);
$newsformend = strpos ($content['all'], 'NEWS_FORMULARDATEN_END', $newsformstart);  
if ($newsformend === false) {
	// keine Daten gefunden -> Leeren des versteckten Formularfeldes
	$content['all'] = str_replace('[%GLOBAL_FORM_SUBJECT%]', '', $content['all']);
} else {
	// Daten gefunden -> Entnahme der Daten und Fuellen des versteckten Formularfeldes
	$newsformulardaten = substr($content['all'], $newsformstart, $newsformend-$newsformstart);
	$content['all'] = str_replace('[%GLOBAL_FORM_SUBJECT%]', $newsformulardaten, $content['all']);
}
Vielleicht hilft es ja jemanden. (Oder mir, falls ich irgendwann wieder vor einem ähnlichem Problem stehe.)

Verbesserungsvorschläge sind natürlich auch willkommen. Gerade bei dem PHP-Teil bin ich mir nicht sicher ob das so vernünftig ist oder nicht einfacher geht.

Grüße
top

Re: CP-Titel in Formular übernehmen

Posted: Fri 26. Feb 2021, 10:23
by update
Das Besondere an Olivers Lösung (für meine Aufgabenstellung) ist, dass die Routine egal wie viele Items sammeln und in ein select-Feld schreiben kann. Das heißt für Deine Aufgbenstellung im Prinzip, dass der Klick auf Newsdetails entfallen kann und schon aus dem Newslisting heraus gearbeitet werden kann. Müsste bei Deinen vielen abzufragenden Informationen sicherlich etwas angepasst werden (nicht von mir :lol: ).
Mir war wichtig, aus beliebigen Einträgen auf der Seite die relevanten Infos in das Formular zu bekommen, unabhängig von der Erscheinungsform. Das geht prima, solange nur alles in dem angesprochenen Container sitzt und alles die entsprechenden Klassen zugewiesen bekommt.
Aber Deine spezielle Lösung mit php scheint (für die Übernahme einer einzelnen Info) auch ein interessanter Ansatz zu sein!