Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 13. Februar 2012 22:36

elcomportal
probiert CMS/ms aus
Registriert: 14. Mai 2011
Beiträge: 51

Formbuilder von UDT aus aufrufen.

Hi,
ich habe ein UDT. Nun möchte ich innerhalb des UDT den Formbuilder aufrufen.
Wie geht das?
Mfg
Torsten

Offline

#2 14. Februar 2012 00:04

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: Formbuilder von UDT aus aufrufen.

Kommt drauf an welche Aktion der Formbuilder ausführen soll.
Im Prinzip geht es so:

$fb = &cms_utils::get_module('FormBuilder');
$fb->DoAction('Name der Aktion', isset($params['id']) ? $params['id'] : 'cntnt01', array('Parameter Name' => 'Parameter Wert', ...), isset($params['returnid']) ? $params['returnid'] : cms_utils::get_current_alias());

Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#3 14. Februar 2012 09:25

elcomportal
probiert CMS/ms aus
Registriert: 14. Mai 2011
Beiträge: 51

Re: Formbuilder von UDT aus aufrufen.

Hi,
danke erstmal für die Antwort.
Wird die Aktion, die FB ausführen soll nicht schon im FB festgelegt? Oder werden diese Daten überschrieben...?
Ich will die Daten einfach an eine andere Unterseite senden, in der ein UDT aufgerufen wird, welches die Daten in eine SQL-Tabelle schreibt. Dann werden die Daten von einemPHP Script per mail versendet oder eine PDF-Datei erzeugt etc.
Die Mails werden dann u.U. an alle Mitglieder unseres Vereins geschickt, deshalb läuft das über ne PHP Datei, die vom Cron alle 5 Minuten aufgerufen wird.
Mfg
Torsten

Offline

#4 14. Februar 2012 09:48

nockenfell
Moderator
Ort: Lenzburg, Schweiz
Registriert: 09. November 2010
Beiträge: 2.927
Webseite

Re: Formbuilder von UDT aus aufrufen.

Das geht sicher auch einfacher:

- Formbuilder kann beim verarbeiten auch auf UDTs zugreifen. Dabei stehen jeweils alle Daten zur Verfügung.
- FormBuilder kann Daten in die DB schreiben

Nun könntest du einen UDT schreiben welcher dir die benötigten Daten für den Cron als XML Datei ablegt. Der Cron liest dann die XML Dateien aus und verarbeitet diese. Dann bist du für den Cronjob unabhängig von CMSMS. Die restlichen Dinge laufen alle über Standardfunktionen des FormBuilder.


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#5 14. Februar 2012 10:14

elcomportal
probiert CMS/ms aus
Registriert: 14. Mai 2011
Beiträge: 51

Re: Formbuilder von UDT aus aufrufen.

Hmm, der FB muss ja von meinem UDT aufgerufen werden. Aber was muss bei DoAction stehen? Ein UDT-Name?

Oder den FB einfach die Daten in die DB-Tabelle schreiben lassen... Aber was muss dann da stehen?
Mfg
Torsten

Offline

#6 14. Februar 2012 11:03

elcomportal
probiert CMS/ms aus
Registriert: 14. Mai 2011
Beiträge: 51

Re: Formbuilder von UDT aus aufrufen.

Jetzt habe ich das so gemacht:

$fb = &cms_utils::get_module('FormBuilder'); 
$fb->DoAction('einzelmail', isset($params['id']) ? $params['id'] : 'cntnt01', isset($params['returnid']) ? $params['returnid'] : cms_utils::get_current_alias());

einzelmail ist der Name des Formulars. Ich habe dort auch schon den Namen des UDT eingetragen, welches dann aufgerufen werden soll.
Aber das Formular wird nicht angezeigt.
Mfg
Torsten

Beitrag geändert von elcomportal (14. Februar 2012 11:03)

Offline

#7 14. Februar 2012 14:09

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: Formbuilder von UDT aus aufrufen.

elcomportal schrieb:

Hmm, der FB muss ja von meinem UDT aufgerufen werden. Aber was muss bei DoAction stehen? Ein UDT-Name?

Nein. Eine Modulaktion. Dazu muss man sich aber ein wenig mit der Funktionsweise von CMSms und Modulen auskennen. Eine Aktion wäre z.B. 'default'. Das wäre die Standard-Aktion des FB, wenn er einfach nur mit {FormBuilder} aufgerufen wird. (eine andere wirst Du hier vermutlich garnicht brauchen)
Aber wieso muss der FB vom UDT aufgerufen werden, wenn Du Daten vom FB an den UDT übergeben willst?
Das müsste doch dann genau umgekehrt sein. Dein UDT muss von FB ausgeführt werden. Und dazu bietet der FB bereits alles was Du brauchst.

elcomportal schrieb:

Oder den FB einfach die Daten in die DB-Tabelle schreiben lassen... Aber was muss dann da stehen?

Sorry, ich verstehe nicht ganz was genau Du vorhast und welche Rolle Dein UDT dabei spielen soll.
Was muss wo stehen? Welche Daten? Welche Datenbank und in welche Tabelle sollen sie geschrieben werden etc.?
Und wie willst Du an diese Daten wieder rankommen?


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#8 14. Februar 2012 16:13

elcomportal
probiert CMS/ms aus
Registriert: 14. Mai 2011
Beiträge: 51

Re: Formbuilder von UDT aus aufrufen.

Hi,
aaaalso, Danke nochmal, dass Du mich hier unterstützt.

Zu den UDTs. Ich habe ein UDT welches mir die Mitgliedsliste aus der Datenbank heraus nach verschiedenen Kriterien zusammenstellt und dann anzeigt. Nun hatte ich vor, wenn auf den Button "ausführen" geklickt wird, dass dann nicht mehr die Liste angezeigt wird, sondern das Formular zur Text-Eingabe. Also vereinfacht so:

if(isset($_POST['ausfuehren'])){
   FormBuilder aufrufen;}
else {
   ... Code zum erstellen und anzeigen der Liste ...
}

Irgendwie könnte man die Geschichte sicher auch mit Smarty-Variablen machen, aber dafür fehlt mir (noch) die Erfahrung und das Grundwissen. Deshalb wollte ich den FB direkt aufrufen und den FB dann das nächste UDT aufrufen lassen, was die Daten dann in die DB schreibt.

Jetzt habe ich noch was anderes probiert. Ich rufe nicht den FB auf, sondern mache eine Header - Weiterleitung auf eine Unterseite wo der FB ganz normal aufgerufen wird. Vielleicht ist diese Lösung sauberer...(?)

if(isset($_POST['ausfuehren'])){
   header("Location:http://www.domain.de/index.php?page=msend");
   exit;
}

Wie siehst Du das?
Mfg
Torsten

Offline

#9 14. Februar 2012 17:01

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: Formbuilder von UDT aus aufrufen.

Die Frage ist, welche Parameter Du an den FormBuilder übergeben willst.
Woher soll der FB wissen, welches Formular angezeigt werden soll etc.
Kommen diese Parameter aus dem UDT?
Kannst Du die nicht auch schon direkt an den FormBuilder übergeben?
Also ich würde es z.B. mit Smarty direkt im Template machen:

{if isset($smarty.get.process_form)}

    {FormBuilder ...}

{else}

    {Dein UDT}

    <a href="{content_obj->GetURL()}&process_form">Ausführen</a>

{/if}

Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline