cmCalendar Eintrag im Formular

Hier bekommst Du deutschsprachigen Support bezüglich offizieller Module für phpwcms. Keine Fehlermeldungen oder Erweiterungswünsche bitte!
Post Reply
kmstario
Posts: 381
Joined: Thu 27. Jul 2006, 11:34
Location: Berlin
Contact:

cmCalendar Eintrag im Formular

Post by kmstario » Sun 27. Oct 2013, 15:52

Hallöchen,

ich bastel gerade am Kalender rum und hab mal eine Frage, vieleicht kennt ja jemand eine kleine Lösung.

Die Kalendereinträge sind Veranstaltungen mit Anmeldung.
Nun würde ich gern ein Formular einbinden/aufrufen, mit dem eine Anmeldung erfolgt. Funktioniert via SHOW_CONTENT.

Das Formular müssteallerdings irgendeinen Parameter zusätzlich übergeben, damit die Anmeldung zugeordnet werden kann.

Fast immer reicht die URL, aber da diese in der Übersicht stets gleich bleibt, weiss ich nicht so recht wie ich z.B. Titel und Datum der VA in das Form bekomme.
Habe schon mit der "Datenübergabe an Formular" aus der WIKI probiert aber da kommt nur die URL mit, die nicht hilft.

Leider bekomme ich es auch nicht hin, das etwas anderes, wie z.B.
[CALENDAR_TITLE]{CALENDAR_TITLE}[/CALENDAR_TITLE] und [CALENDAR_DATE]{CALENDAR_DATE}[/CALENDAR_DATE]
übergeben wird.

Gibt es da vieleicht eine Lösung, die recht einfach umzusetzen wäre?
Es muss nur irgendwas eindeutiges zum Eintrag mitgesendet werden.

VG Andreas
--------------------------------------------

Alles Gelingen hat sein Geheimnis, alles Mißlingen seine Gründe.
PHPWCMS ist einfach nur großartig!

kmstario
Posts: 381
Joined: Thu 27. Jul 2006, 11:34
Location: Berlin
Contact:

Re: cmCalendar Eintrag im Formular

Post by kmstario » Sun 27. Oct 2013, 16:34

Also ich bin vieleicht schon etwas weiter:

ich habe einfach mal in der Datei frontend.render.php vom Kalender, also in: /include/inc_module/mod_cm_calendar/ das hier eingesetzt:

Code: Select all

$content['all'] = str_replace('[%GLOBAL_FORM_SUBJECT%]', trim('your own text: ' . html_specialchars($content['[CALENDAR_TIME]{CALENDAR_TIME}[/CALENDAR_TIME] - [CALENDAR_TITLE]{CALENDAR_TITLE}[/CALENDAR_TITLE]'])), $content['all']);
Jetzt müsste doch nur noch irgendwie das Template des Kalenders verfügbar gemacht werden, damit die RT`s auch gerendert werden. Denn "your own text:" zeigt es schon an. :?
--------------------------------------------

Alles Gelingen hat sein Geheimnis, alles Mißlingen seine Gründe.
PHPWCMS ist einfach nur großartig!

breitsch
Posts: 473
Joined: Sun 6. Mar 2005, 23:12
Location: bern switzerland

Re: cmCalendar Eintrag im Formular

Post by breitsch » Mon 28. Oct 2013, 20:12

eine einigermassen 'richtige' Umsetzung dafür:

core-hack in: include\inc_module\mod_cm_calendar\inc\cnt.article.php
Zeile 604 ADD

Code: Select all

         //ID
        $plugin["eventlisting"]["output"]  = render_cnt_template($plugin["eventlisting"]["output"], 'CALENDAR_ID', html_specialchars($value['cm_events_id']));
im Template der Auflistung, statt des einbindens eines Formulars in jeden Eintrag, nur einen Link zum Anmelde-Formular das irgendwo sonst liegt, im href den alias eintragen:

Code: Select all

        <a href="index.php?alias&cal2frm={CALENDAR_ID}">text</a>
im Verz. template\inc_script\frontend_render
eine Datei anlegen, irgendwie benennen, zB. cal2frm.php
mit diesem Inhalt:

Code: Select all

<?php

// ----------------------------------------------------------------
// obligate check for phpwcms constants
if (!defined('PHPWCMS_ROOT')) {
   die("You Cannot Access This Script Directly, Have a Nice Day.");
}
// ----------------------------------------------------------------


$content["all"] = preg_replace('/\{CAL2FRM_REPLACE\}/ie', 'myCalFrm()', $content["all"]);

function myCalFrm() {
    if(isset($_GET['cal2frm']) && is_numeric($_GET['cal2frm'])) {
        $sql  = 'SELECT * FROM '.DB_PREPEND.'phpwcms_cmcalendar_events WHERE ';
        $sql .= 'cm_events_status = 1 AND cm_events_id='.intval($_GET['cal2frm']);
        $data = _dbQuery($sql);
        return html_specialchars($data[0]['cm_events_title']);
    }
	return false;
}
?>
das Script liest den Eintrag aus der DB aus und übergibt hier den Titel (kann geändert oder ausgebaut werden)

im Formular CP im entsprechenden Feld als Defaultvalue eingeben: {CAL2FRM_REPLACE}
http://www.youtube.com/watch?v=jqxENMKaeCU
because it's important!
breitsch

User avatar
update
Moderator
Posts: 6394
Joined: Mon 10. Jan 2005, 17:29
Location: germany / outdoor

Re: cmCalendar Eintrag im Formular

Post by update » Mon 28. Oct 2013, 21:02

Goil!
It's mostly all about webdesign, logo design, new and old pages refresh, print BUT slowly switching to be supporter for the band Mykket Morton. Visit Mykket Morton on FB. Listen Mykket Morton and live videos on youtube.

kmstario
Posts: 381
Joined: Thu 27. Jul 2006, 11:34
Location: Berlin
Contact:

Re: cmCalendar Eintrag im Formular

Post by kmstario » Tue 29. Oct 2013, 11:46

Hallöchen zusammen,
breitsch wrote:eine einigermassen 'richtige' Umsetzung dafür...
Absolut grandios, genauso ist das richtig schicki :D !!

Ich habe nun einen kleinen Link "Anmelden" hinzugefügt und in einer netten Fancybox öffnet sich nun das Formular.

Allerdings merke ich mal wieder, um es noch um einen 2ten Parameter zu erweiter bin ich zu blöde :oops:

Es soll zur Sicherheit, falls es mal 2 Events mit dem gleichen Titel gibt, das Datum dazu angezeigt werden.
Nun habe ich einige Variationen in der cal2frm.php ausprobiert und jedes einzeln anzeigen funktioniert.

Die Parameter sind ja:
cm_events_date,
cm_events_time und
cm_events_title

Code: Select all

return html_specialchars($data[0]['cm_events_date']);
Wie wird das dann erweitert, um die Ausgabe zu präzisieren?

VG Andreas
--------------------------------------------

Alles Gelingen hat sein Geheimnis, alles Mißlingen seine Gründe.
PHPWCMS ist einfach nur großartig!

User avatar
update
Moderator
Posts: 6394
Joined: Mon 10. Jan 2005, 17:29
Location: germany / outdoor

Re: cmCalendar Eintrag im Formular

Post by update » Tue 29. Oct 2013, 12:12

Kommt das dann auch in den Core rein? :oops:
It's mostly all about webdesign, logo design, new and old pages refresh, print BUT slowly switching to be supporter for the band Mykket Morton. Visit Mykket Morton on FB. Listen Mykket Morton and live videos on youtube.

breitsch
Posts: 473
Joined: Sun 6. Mar 2005, 23:12
Location: bern switzerland

Re: cmCalendar Eintrag im Formular

Post by breitsch » Tue 29. Oct 2013, 14:36

Wie wärs zuerst mit nem Link?
(Nicht im Core, nur das frontend render script anpassen.)
http://www.youtube.com/watch?v=jqxENMKaeCU
because it's important!
breitsch

breitsch
Posts: 473
Joined: Sun 6. Mar 2005, 23:12
Location: bern switzerland

Re: cmCalendar Eintrag im Formular

Post by breitsch » Tue 29. Oct 2013, 19:20

ok, kein Link, schade!

für eine Ausgabe in einem Formularfeld wie: Eventtitel 29.10.2013 12:00
im frontend render script:

Code: Select all

$content["all"] = preg_replace('/\{CAL2FRM_REPLACE\}/ie', 'myCalFrm()', $content["all"]);

function myCalFrm() {
    if(isset($_GET['cal2frm']) && is_numeric($_GET['cal2frm'])) {
        $sql  = 'SELECT * FROM '.DB_PREPEND.'phpwcms_cmcalendar_events WHERE ';
        $sql .= 'cm_events_status = 1 AND cm_events_id='.intval($_GET['cal2frm']);
        $data = _dbQuery($sql);
        isset($data[0]['cm_events_date']) ? $date = " ".date("d.m.Y",strtotime($data[0]['cm_events_date'])) : $date = "";
        isset($data[0]['cm_events_time']) ? $time = " ".html_specialchars($data[0]['cm_events_time']) : $time = "";
        return html_specialchars($data[0]['cm_events_title']).$date.$time;
    }
    return false;
}
für eine Ausgabe pro Formularfeld
im Defaultvalue {CAL2FRM_REPLACE_TITLE} oder {CAL2FRM_REPLACE_DATE} oder {CAL2FRM_REPLACE_TIME}
im frontend render script:

Code: Select all

$content["all"] = preg_replace('/\{CAL2FRM_REPLACE_(.*?)\}/ie', 'myCalFrm("$1")', $content["all"]);

function myCalFrm($replace) {
    if(isset($_GET['cal2frm']) && is_numeric($_GET['cal2frm'])) {
        $sql  = 'SELECT * FROM '.DB_PREPEND.'phpwcms_cmcalendar_events WHERE ';
        $sql .= 'cm_events_status = 1 AND cm_events_id='.intval($_GET['cal2frm']);
        $data = _dbQuery($sql);

        if ($replace=="TITLE") {
            return html_specialchars($data[0]['cm_events_title']);
        } else if ($replace=="DATE") {
            isset($data[0]['cm_events_date']) ? $date = " ".date("d.m.Y",strtotime($data[0]['cm_events_date'])) : $date = "";
            return html_specialchars($date);
        } else if ($replace=="TIME") {
            isset($data[0]['cm_events_time']) ? $time = " ".html_specialchars($data[0]['cm_events_time']) : $time = "";
            return html_specialchars($time);
        }
        return false;
    }
    return false;
}
aber diesen Link will ich noch! Oder alternativ eine substantionelle Donation!
http://www.youtube.com/watch?v=jqxENMKaeCU
because it's important!
breitsch

kmstario
Posts: 381
Joined: Thu 27. Jul 2006, 11:34
Location: Berlin
Contact:

Re: cmCalendar Eintrag im Formular

Post by kmstario » Wed 30. Oct 2013, 09:47

Guten morgen zusammen,
aber diesen Link will ich noch! Oder alternativ eine substantionelle Donation!
Sollst du bekommen, gern beides :D .
Ist für unsere Wasserballer aus Potsdam. Leider noch nicht vorzeigbar, da ich erstmal alles
Offline vorbereite. Und da die immer viele Spiele & Veranstaltungen usw. haben, wollte ich gern diese Funktion verfügbar machen,
damit es ganz leicht wird, sich zu Spielen oder anderen Events anmelden kann. Zudem sollen endlich mal
die Spieltermine als Kalender dargestellt werden.

Zudem denke ich mal ist bestimmt eine Interessante Funktion, die viele gebrauchen könnten.

Sonnige Grüße, Andreas
--------------------------------------------

Alles Gelingen hat sein Geheimnis, alles Mißlingen seine Gründe.
PHPWCMS ist einfach nur großartig!

Post Reply