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

#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:

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