Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 30. August 2013 11:36
- Vmadmax
- hat von CMS/ms gehört
- Registriert: 30. August 2013
- Beiträge: 8
Modul in UDT aufrufen
Hallo,
ich habe ein Problem.
Und zwar möchte ich gerne das Modul Products in einem UDT aufrufen.
Leider gibt er mir einfach nur die Variable aus "{Products productid="3466" action="details"}" und führt diese nicht aus.
Da ich mir die ID's über einer PHP-Funktion aus der Datenbank geben lasse, wüsste ich nicht wie ich das sonst lösen soll. Hat jemand einen Tipp?
Grüße
Edit: Habe die Version 1.10.3
Beitrag geändert von Vmadmax (30. August 2013 12:26)
Offline
#2 30. August 2013 12:18
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.934
- Webseite
Re: Modul in UDT aufrufen
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#3 30. August 2013 12:26
- Vmadmax
- hat von CMS/ms gehört
- Registriert: 30. August 2013
- Beiträge: 8
Re: Modul in UDT aufrufen
Danke für den Link,
ich war auf dieser Seite auch schon. Aber leider funktioniert das mit meiner Version nicht: 1.10.3
Offline
#4 30. August 2013 16:35
- Janl
- Server-Pate
- Ort: Freistadt, Österreich
- Registriert: 13. Dezember 2010
- Beiträge: 1.231
- Webseite
Re: Modul in UDT aufrufen
Ich nutze die von der Modul genutzte Links, das funktioniert
http://www.domain.tld/index.php?mact=Pr … productid=31&cntnt01returnid=279
Vielleicht hilft es.
mfg
Jan
Kubuntu 22.04 - Win 11 pro / Kubuntu 20.04 - win10 pro
Offline
#5 30. August 2013 17:08
- Vmadmax
- hat von CMS/ms gehört
- Registriert: 30. August 2013
- Beiträge: 8
Re: Modul in UDT aufrufen
Hey,
leider benötige ich nicht die Links sondern den Tag den ich oben gepostet habe. Dieser Tag führt nämlich direkt die Funktion aus. Sprich es wird der Wein in seinem Detailtemplate gezeigt, ohne vorher auf nen Link klicken zu müssen.
Offline
#6 30. August 2013 18:40
- Janl
- Server-Pate
- Ort: Freistadt, Österreich
- Registriert: 13. Dezember 2010
- Beiträge: 1.231
- Webseite
Re: Modul in UDT aufrufen
getestet!
Mit 1.10.3 geht es nicht, mit 1.11.7 funktioniert Rolf's Lösung.
Leider upgraden . . .
mfg
Jan
Kubuntu 22.04 - Win 11 pro / Kubuntu 20.04 - win10 pro
Offline
#7 30. August 2013 18:40
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: Modul in UDT aufrufen
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 30. August 2013 19:25
- Janl
- Server-Pate
- Ort: Freistadt, Österreich
- Registriert: 13. Dezember 2010
- Beiträge: 1.231
- Webseite
Re: Modul in UDT aufrufen
Kann man sich die Frage stellen ob es doch nicht kluger ist upgraden nach 1.11.7 .
Schließlich soll es eine Sicherheitslücke schließen.
mfg
Jan
Kubuntu 22.04 - Win 11 pro / Kubuntu 20.04 - win10 pro
Offline
#9 30. August 2013 21:02
- Vmadmax
- hat von CMS/ms gehört
- Registriert: 30. August 2013
- Beiträge: 8
Re: Modul in UDT aufrufen
Ich finde updaten auf jeden Fall ne bessere Idee.
Ich bin aber leider dafür nicht zuständig und die Kunden möchten nicht updaten. Ganz getreu dem Motto "never change a running system"!
Aber danke für die Antworten, ich werde mir mal NaN's Antwort anschauen.
Ist es hier üblich das Mods keinerlei Worte verlieren?...
Danke Janl fürs testen!
Offline
#10 30. August 2013 21:20
- Janl
- Server-Pate
- Ort: Freistadt, Österreich
- Registriert: 13. Dezember 2010
- Beiträge: 1.231
- Webseite
Re: Modul in UDT aufrufen
Nein Mods können auch lange Texte schreiben.
Als ehemalige Systemmanager muss ich raten regelmäßig Updates einzuspielen.
Wie mit Windows etc. ist man sicherer mit die neueste Version.
Mein "Policy" ist updaten mit Verzögerung, bei x.x.3 sind meistens alle Kleinigkeiten aufgetaucht, nur in Test versuche ich die neueste Version sofort und Melde alles was noch nicht stimmt.
mfg
Jan
Kubuntu 22.04 - Win 11 pro / Kubuntu 20.04 - win10 pro
Offline
#11 02. September 2013 08:37
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: Modul in UDT aufrufen
Ist es hier üblich das Mods keinerlei Worte verlieren?
Hier läuft halt alles im Rahmen der Regeln.
Da muss man eben selten viel sagen.
Nee, im ernst, ich hatte einfach nicht viel Zeit für mehr Text, war mir aber ziemlich sicher, dass wir dieses Thema so ähnlich schonmal hatten. Der verlinkte Beitrag ist aber ohne weitere Erklärungen leider doch nicht sehr aussagekräftig.
Ich weiß nicht, wie fit Du in PHP bist. Hier gibt es API Dokumentationen für die Klasse cms_utils und hier für Module. Das sind die beiden, die Dich am meisten interessieren sollten. Die sind zwar nicht auf dem neuesten Stand, aber so viel hat sich da, was Dein Vorhaben betrifft, nicht geändert.
Du musst Dir zunächst das Products-Modul mit Hilfe der cms_utils Klasse holen:
$products = &cms_utils::get_module('Products');
Und danach kannst Du bequem die Standard-Aktion (default) oder gleich die Detail-Aktion (details) des Products-Moduls ausführen und alle Parameter übergeben, die Du brauchst:
$products->DoAction('default', isset($params['id']) ? $params['id'] : 'cntnt01', array('productid' => '3466', action => 'details'), isset($params['returnid']) ? $params['returnid'] : cms_utils::get_current_alias());
ODER
$products->DoAction('details', isset($params['id']) ? $params['id'] : 'cntnt01', array('productid' => '3466'), isset($params['returnid']) ? $params['returnid'] : cms_utils::get_current_alias());
In das "array('productid' => '3466', action => 'details')" schreibst Du die Parameter für das Products-Modul rein. Wenn Du den UDT mehrmals verwendest, kannst Du die Parameter für jeden UDT Aufruf auch direkt im Template an den UDT übergeben:
{DeinUDT parameter="wert" ...}
Die Parameter sind dann im UDT im Array $params gespeichert. Das kannst Du dann direkt an das Products-Modul übergeben:
$products->DoAction('details', isset($params['id']) ? $params['id'] : 'cntnt01', $params, isset($params['returnid']) ? $params['returnid'] : cms_utils::get_current_alias());
Ich hab die Zeile so formuliert, dass man dem UDT auch sagen kann, auf welcher Seite die Details angezeigt werden sollen. I.d.R. werden die Ergebnisse ja auf der gleichen Seite angezeigt. Das kann man beim UDT über den Parameter "returnid" ändern (Seiten ID oder Alias angeben). Außerdem kann man dem Modul noch eine individuelle Modul-ID mitgeben ($params['id']). Ist aber eher selten nötig. Was es mit dieser Modul-ID auf sich hat, kannst Du bei Interesse hier nachlesen: http://www.cmsmadesimple.de/forum/viewt … 8212#p8212
Rolf's Idee finde ich nicht optimal. Da wird Smarty genutzt um einen UDT auszuführen. Also PHP Code. Und im PHP Code soll dann wieder Smarty ausgeführt werden. Da kann man auch gleich bei PHP bleiben und das Modul direkt aufrufen. Sollte außerdem auch ab CMSms 1.8 funktionieren.
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
#12 02. September 2013 09:13
- Janl
- Server-Pate
- Ort: Freistadt, Österreich
- Registriert: 13. Dezember 2010
- Beiträge: 1.231
- Webseite
Re: Modul in UDT aufrufen
Danke NaN,
eine kurze und sehr deutliche Erklärung.
Bei PHP bleiben ist tatsächlich die bessere Lösung.
mfg
Jan
Kubuntu 22.04 - Win 11 pro / Kubuntu 20.04 - win10 pro
Offline
#13 08. September 2013 10:52
- Vmadmax
- hat von CMS/ms gehört
- Registriert: 30. August 2013
- Beiträge: 8
Re: Modul in UDT aufrufen
Vielen Dank für die ausführliche Anleitung.
Habe den Kunden zum glück zu einem Upgrade überreden können. Hat auch ohne Probleme funktioniert und war nach knapp 30 Minuten durch.
Offline
Seiten: 1