Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
#1 13. März 2012 16:45
- Andiministrator
- Kabeljungwerker
- Ort: Plauen / Vogtland
- Registriert: 09. November 2010
- Beiträge: 264
- Webseite
Modul-Parameter im Modul auslesen
Bei meinem Modul "Articles" möchte ich von einer Kategorie-Listenansicht in die Detail-Ansicht der Kategorie springen und dabei sprechende URL's verwenden. Die URL soll dabei so aufgebaut sein:
http://domain.de/<ModulName>/<returnid> … o-quatsch/
also z.B.:
http://domain.de/Articles/298/4/Weine/
Die Route habe ich so registriert:
$this->RegisterRoute('/[aA]rticles\/(?P<returnid>[0-9]+)\/(?P<category>[0-9]+)\/(?P<junk>.*?)$/',array('action'=>'default','mode'=>'auto','inline'=>1));
Die Parameter kommen auch soweit in meinem Modul an.
Was nicht funktioniert, ist das Auslesen der Parameter aus dem Modul-Aufruf. Dieser sieht so aus:
{Articles template='categories' showcategories=true lang='de_DE'}
Also beim normalen Aufruf des Moduls funktionieren die Parameter, aber sobald ich aber eine Kategorie anklicke, ist der z.B. Parameter "template" nicht mehr gesetzt. Ich verweise (über die Return ID) dabei auf die selbe Seite.
Wenn ich mir mittels print_r das Array "params" ausgeben lasse, kommt folgendes:
Array ( [assign] => thecontent [category] => 4 [action] => default [inline] => 1 [returnid] => 298 [module] => Articles )
Ich weiß nicht - entweder funktioniert der Parameter "inline" nicht? Mit dem Parameter "assign" kann ich nichts anfangen.
Hat jemand eine Idee?
Arbeitet bei conversearch GmbH: http://conversearch.de (Webseiten-Analyse und -Monitoring)
Bloggt bei Andiministrator.de: http://andiministrator.de
Offline
#2 13. März 2012 17:35
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: Modul-Parameter im Modul auslesen
Da Du den Parameter 'template' nicht mit im Link übergibst, ist er beim Klick auf den Link auch nicht mehr da. Denn was da beim Modulaufruf steht, gilt auch nur für diesen Modulaufruf. Dieser Modulaufruf wird beim Klick auf den Link nicht nochmal ausgeführt. Stattdessen wird Dein Modul über den Link ausgeführt. Und nur über diesen Link. Entweder Du baust die Template ID mit in den Link ein, oder Du speicherst die Parameter des Modulaufrufs in einer Session.
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 13. März 2012 18:05
- Andiministrator
- Kabeljungwerker
- Ort: Plauen / Vogtland
- Registriert: 09. November 2010
- Beiträge: 264
- Webseite
Re: Modul-Parameter im Modul auslesen
Ok, das hilft mir schon mal weiter. Das mit der Session ist eine gute Idee, allerdings gibt das Probleme, wenn man einen Deeplink weitergibt, schätze ich.
Das heißt also, dass in meinem Fall die Smarty-Aufrufe auf der Zielseite nicht ausgeführt werden, sondern der komplette Inhalt ersetzt wird. Was für eine Bedeutung haben dann aber die Parameter inline und assign?
Wie wird das denn eigentlich beim News-Modul gemacht? Irgendwie steig ich da noch nicht ganz durch
Arbeitet bei conversearch GmbH: http://conversearch.de (Webseiten-Analyse und -Monitoring)
Bloggt bei Andiministrator.de: http://andiministrator.de
Offline
#4 13. März 2012 18:20
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: Modul-Parameter im Modul auslesen
Schau Dir doch einfach mal die Route vom News-Modul an:
$this->RegisterRoute('/[nN]ews\/(?P<articleid>[0-9]+)\/(?P<returnid>[0-9]+)\/(?P<junk>.*?)\/d,(?P<detailtemplate>.*?)$/');
Da wird das Template mit in der URL übergeben.
Wie ich sagte, entweder Du übergibst das Template mit in der URL oder Du nutzt Sessions.
Was es mit inline auf sich hat, habe ich hier sehr ausführlich erklärt:
http://www.cmsmadesimple.de/forum/viewtopic.php?id=916
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
#5 13. März 2012 18:44
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: Modul-Parameter im Modul auslesen
Hm. Komisch. Ich habe es gerade mal am News-Modul ausprobiert. Eigentlich müsste er die URL Parameter mit den Smarty-Parametern zusammenführen, wenn das Modul inline verlinkt. D.h. der Template-Parameter müsste erhalten bleiben.
Edit:
Ah ... Pretty URLs. Da liegt das Problem.
Dem CMS fehlen in den Pretty URLs einige Informationen, um den Modul-Link dem Modulaufruf zuordnen zu können. Genaugenommen fehlt die Modul ID. Dadurch können die Parameter aus dem Smarty-Tag nicht mit den URL Parametern zusammengeführt werden. D.h. das inline => 1 bleibt ohne Wirkung und die Smarty-Parameter sind futsch.
Ein Grund mehr der gegen Pretty URLs spricht bzw. dafür, dass das ganze Pretty URL Konzept bei CMSms überdacht werden muss.
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
#6 13. März 2012 18:49
- Andiministrator
- Kabeljungwerker
- Ort: Plauen / Vogtland
- Registriert: 09. November 2010
- Beiträge: 264
- Webseite
Re: Modul-Parameter im Modul auslesen
Ich übergebe die Sachen halt jetzt erst einmal in der URL.
Das News-Modul bietet ja auch benutzerdefinierte URL's - dort werden gar keine Parameter übergeben. Das muss ich mir mal in Ruhe anschauen, denk ich.
Arbeitet bei conversearch GmbH: http://conversearch.de (Webseiten-Analyse und -Monitoring)
Bloggt bei Andiministrator.de: http://andiministrator.de
Offline
#7 13. März 2012 18:50
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: Modul-Parameter im Modul auslesen
Schau mal mein Edit
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 13. März 2012 18:51
- Andiministrator
- Kabeljungwerker
- Ort: Plauen / Vogtland
- Registriert: 09. November 2010
- Beiträge: 264
- Webseite
Re: Modul-Parameter im Modul auslesen
Ja, da muss nachgebessert werden. Das einfachste wäre ja, wenn der Modul-Aufruf (die Smarty-Parameter) beachtet werden würden ...
Arbeitet bei conversearch GmbH: http://conversearch.de (Webseiten-Analyse und -Monitoring)
Bloggt bei Andiministrator.de: http://andiministrator.de
Offline
#9 13. März 2012 18:53
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: Modul-Parameter im Modul auslesen
Dazu brauchst Du in der URL die Modul-ID. Aber was da am Ende dann entsteht, ist doch fast die gleiche Modul-URL nochmal nur als statische URL. Pretty ist daran dann absolut nichts mehr. Weder für Mensch noch für Suchmaschinen.
Die Route müsste dann in etwa so aussehen:
$this->RegisterRoute('/[aA]rticles\/(?P<id>[^\/]+)\/(?P<returnid>[0-9]+)\/(?P<category>[0-9]+)\/(?P<junk>.*?)$/',array('action'=>'default','mode'=>'auto','inline'=>1));
Und der Link wäre dann so: .../Articles/mf0ec/15/8/blablubb
Dann könnte das CMS eventuell die Smarty-Parameter mit berücksichtigen.
(Hab's nicht getestet)
Ich persönlich würde aber bei (News)Artikeln eher solche URLs bevorzugen:
.../Articles/categorie_name/artikel_titel
bzw.
.../Articles/modul_id/categorie_name/artikel_titel
oder
.../Articles/categorie_name/artikel_titel_modul_id
o.ä.
Return-ID, Templates etc. könnte man dann anhand der Modul-ID aus den Smarty-Parametern entnehmen.
Dabei müsste man nur dafür sorgen, dass der Artikeltitel wie ein Alias behandelt wird und für jeden Artikel einmalig ist.
Das würde ich dann tatsächlich eine Pretty URL nennen.
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
#10 13. März 2012 19:19
- Andiministrator
- Kabeljungwerker
- Ort: Plauen / Vogtland
- Registriert: 09. November 2010
- Beiträge: 264
- Webseite
Re: Modul-Parameter im Modul auslesen
Ja, full ack - oder: sehe ich genauso. Die Modul ID kann man doch ermitteln - die wird doch einfach durchgezählt, wenn ich das richtig beobachtet habe. Die Funktion für den eindeutigen Titel bau ich aber schonmal mit ein
Arbeitet bei conversearch GmbH: http://conversearch.de (Webseiten-Analyse und -Monitoring)
Bloggt bei Andiministrator.de: http://andiministrator.de
Offline
#11 13. März 2012 19:27
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: Modul-Parameter im Modul auslesen
Die Modul ID kann man doch ermitteln
Nee eben nicht. Die wird generiert. Und zwar wird beim Modulaufruf zwar durchgezählt, aber zusätzlich noch ein md5 Hash aus den Parametern erstellt:
for( $i = 0; $i < 10; $i++ )
{
$tmp = $i;
foreach($params as $key=>$value)
$tmp .= $key.'='.$value;
$id = 'm'.substr(md5($tmp),0,5);
if( !isset($mid_cache[$id]) )
{
$mid_cache[$id] = $id;
break;
}
}
So kommen diese komischen IDs zustande, die aber eineindeutig auf den jeweiligen Modulaufruf passen.
Innerhalb einer Modulaktion hast Du diese ID aber immer mit der Variable $id abrufbar. Deshalb ist das auch eine reservierte Variable (ebenso wie der GET / POST Parameter 'id'). Diese $id kannst Du ganz einfach mit in Deine Pretty URL einauen. (so wie sie ja auch bei den normalen URLs automatisch mit übergeben wird)
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 14. März 2012 09:22
- Andiministrator
- Kabeljungwerker
- Ort: Plauen / Vogtland
- Registriert: 09. November 2010
- Beiträge: 264
- Webseite
Re: Modul-Parameter im Modul auslesen
Verstehe. Trotzdem - wenn ich alle Modulaufrufe auf der Seite durchgehe, die Smarty-Platzhalter für das Articles-Modul mit der von Dir beschriebenen Funktion durchzähle, müsste ich ja wieder die "mact" erhalten. Aber wahrscheinlich stell ich mir das immernoch zu einfach vor.
Jedenfalls habe ich den Link vorübergehend auf "nicht sprechend" gesetzt - sieht nun so aus:
http://domain.de/index.php?mact=Article … turnid=298
Und selbst dann können die Parameter aus dem Smarty-Platzhalter in der Seite nicht ausgelesen werden
Arbeitet bei conversearch GmbH: http://conversearch.de (Webseiten-Analyse und -Monitoring)
Bloggt bei Andiministrator.de: http://andiministrator.de
Offline
#13 14. März 2012 12:16
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: Modul-Parameter im Modul auslesen
wenn ich alle Modulaufrufe auf der Seite durchgehe
Ich verstehe zwar nicht, warum Du das tun solltest, wenn Du die $id schon in einer Variable serviert bekommst, aber ja, wenn Du die Funktion nachbaust, kommst Du wieder auf die ID. (Ich mache das z.B. im Plugin AjaxTools auch so)
Und selbst dann können die Parameter aus dem Smarty-Platzhalter in der Seite nicht ausgelesen werden
Das ist kein inline-Link.
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
#14 14. März 2012 15:25
- Andiministrator
- Kabeljungwerker
- Ort: Plauen / Vogtland
- Registriert: 09. November 2010
- Beiträge: 264
- Webseite
Re: Modul-Parameter im Modul auslesen
Ich verstehe zwar nicht, warum Du das tun solltest, wenn Du die $id schon in einer Variable serviert bekommst, aber ja, wenn Du die Funktion nachbaust, kommst Du wieder auf die ID. (Ich mache das z.B. im Plugin AjaxTools auch so)
Hm, vielleicht sollten wir doch mal ein CMSms Usertreffen machen. Ich kann das hier im Forum wahrscheinlich etwas schlecht erklären.
domain.de/index.php?mact=Articles,cntnt01,default,1&cntnt01category=4&cntnt01returnid=298
Das ist kein inline-Link.
Nicht? Ich dachte, die oben rot markierte Zahl kennzeichnet den inline-Parameter (inline=1)?
Arbeitet bei conversearch GmbH: http://conversearch.de (Webseiten-Analyse und -Monitoring)
Bloggt bei Andiministrator.de: http://andiministrator.de
Offline
#15 14. März 2012 18:48
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: Modul-Parameter im Modul auslesen
Wenn die ID aber cntnt01 ist, dann ist es kein inline-Link mehr, egal ob da eine 1 steht oder nicht.
Wie generierst Du denn diesen Link?
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
#16 15. März 2012 10:58
- Andiministrator
- Kabeljungwerker
- Ort: Plauen / Vogtland
- Registriert: 09. November 2010
- Beiträge: 264
- Webseite
Re: Modul-Parameter im Modul auslesen
Das war die richtige Frage
Tatsächlich hatte ich bei der CreateLink-Funktion den inline-Parameter nicht beachtet:
$row->categorylink = $this->CreateLink($id, 'default', $returnid, '', array('category'=>$row->category,'mode'=>'category'), '', true, true, '', false);
(Stand vorher auf false)
Danke
Arbeitet bei conversearch GmbH: http://conversearch.de (Webseiten-Analyse und -Monitoring)
Bloggt bei Andiministrator.de: http://andiministrator.de
Offline
#17 15. März 2012 12:12
- Andiministrator
- Kabeljungwerker
- Ort: Plauen / Vogtland
- Registriert: 09. November 2010
- Beiträge: 264
- Webseite
Re: Modul-Parameter im Modul auslesen
Da nun das mit dem inline-Link klappt, ergeben sich 2 weitere Fragen für mich:
1.) Kann man irgendwie unterscheiden, ob ein Parameter über den inline-Link übergeben wurde oder im Smarty-Modulaufruf steht?
Also außer, die _GET Variablen auszulesen?
2.) Wenn ich 2 Modulaufrufe per Smarty in einer Seite habe, kann ich "inline" von dem ersten in den zweiten Modul-Aufruf (Smarty-Platzhalter) verweisen?
Also außer die Funktion für die Modul-IDs nachzubauen?
Arbeitet bei conversearch GmbH: http://conversearch.de (Webseiten-Analyse und -Monitoring)
Bloggt bei Andiministrator.de: http://andiministrator.de
Offline
#18 15. März 2012 12:22
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: Modul-Parameter im Modul auslesen
Hm... mich würde echt mal interessieren was genau Du vorhast
Also zu 1.:
Jain. Die Variable $params beinhaltet leider schon alle Parameter. Also sowohl die Smarty-Parameter als auch die URL Parameter. Die werden mit array_merge() zusammengeführt. Aber es gibt eine globale CMSms Core-Funktion namens GetModuleParameters(). Dieser übergibst Du die $id. Was die Funktion macht, ist allerdings auch nichts weiter, als die Parameter mit Hilfe der $id aus der URL auszulesen und als array zurückzugeben. Mit array_diff() o.ä. kannst Du dann herausfinden, welche Parameter im Smarty-Aufruf verwendet wurden.
Wäre im Prinzip also die Umkehrung der Core-Funktion zum Zusammenführen der Parameter
zu 2.:
Eine ähnliche Frage wurde vor Jahren schonmal im .org Forum gestellt. Die Frage lautete sinngemäß, ob man Parameter zwischen Modulen/Modulinstanzen austauschen könnte. Damals hieß es 'Geht leider nicht'. Die Module können leider nicht wirklich miteinander kommunizieren. Das scheint heute leider noch nicht anders zu sein.
Du bräuchtest dazu die ID des anderen Moduls. Dann könntest Du einfach die Parameter in die $_REQUEST Variable einfügen. (Daher holt sich die Core-Funktion die URL Parameter)
Geht aber nur in eine Richtung. D.h., da die Module ja der Reihe nach abgearbeitet werden, kann man die Parameter auf diese Weise nur für nachfolgende Module übergeben. Nicht umgekehrt (weil die ja dann schon abgearbeitet wurden).
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
#19 15. März 2012 13:49
- Andiministrator
- Kabeljungwerker
- Ort: Plauen / Vogtland
- Registriert: 09. November 2010
- Beiträge: 264
- Webseite
Re: Modul-Parameter im Modul auslesen
Hm... mich würde echt mal interessieren was genau Du vorhast
Nagut
Also zuerst mal ein Screenshot:
In Modulaufruf 2 soll ein kleiner Shop angezeigt werden, beginnend mit der Auflistung der Kategorien, danach die Liste der Artikel, dann die Artikel-Detail-Ansicht und schließlich der Warenkorb. Dabei soll es möglich sein, z.B. die Artikel-Detail-Ansicht oder den Warenkorb auf einer anderen Content-Seite anzuzeigen.
In Modulaufruf 1 sollen einfach immer die Kategorien aufgelistet werden und die markiert werden, welche gerade aktuell ist.
In Modulaufruf 3 soll ein Warenkorb-Snippet gezeigt werden.
Alles in einem Modul...
Arbeitet bei conversearch GmbH: http://conversearch.de (Webseiten-Analyse und -Monitoring)
Bloggt bei Andiministrator.de: http://andiministrator.de
Offline
#20 15. März 2012 14:03
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: Modul-Parameter im Modul auslesen
Ich glaube da wirst Du um Sessions nicht herumkommen. Ist bei solchen Konstrukten eigentlich auch eher üblich, als alles andere.
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
#21 15. März 2012 14:13
- Andiministrator
- Kabeljungwerker
- Ort: Plauen / Vogtland
- Registriert: 09. November 2010
- Beiträge: 264
- Webseite
Re: Modul-Parameter im Modul auslesen
Ich glaube da wirst Du um Sessions nicht herumkommen.
Na wenn Du das sagst, mach ich das lieber gleich so.
Gibt es von CMSms da vorgefertigte Sachen oder nutze ich dann einfach die PHP-Session-Funktionen?
Arbeitet bei conversearch GmbH: http://conversearch.de (Webseiten-Analyse und -Monitoring)
Bloggt bei Andiministrator.de: http://andiministrator.de
Offline
#22 15. März 2012 14:27
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: Modul-Parameter im Modul auslesen
Also die Session wird i.d.R. schon vom CMS gestartet. Du solltest also problemlos mit $_SESSION[...] arbeiten können. Ich glaube das CGExtensions Modul bzw. CGEcommerceBase hat da auch noch einige Funktionen.
Was auch noch gehen würde, wäre die Funktion cms_utils::set_app_data() und get_app_data().
Damit können Daten zwischen einzelnen Modulen ausgetauscht werden. D.h. Modulaufruf 1 packt z.B. einfach alle Parameter in set_app_data() und die anderen holen sich die Daten von dort.
Für Warenkorb & Co. gibt es aber schon fertige Module. Such im Downloadbereich einfach mal nach Shop. Vielleicht machen die ja schon das, was du brauchst.
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
#23 15. März 2012 14:45
- Andiministrator
- Kabeljungwerker
- Ort: Plauen / Vogtland
- Registriert: 09. November 2010
- Beiträge: 264
- Webseite
Re: Modul-Parameter im Modul auslesen
Was auch noch gehen würde, wäre die Funktion cms_utils::set_app_data() und get_app_data().
Damit können Daten zwischen einzelnen Modulen ausgetauscht werden. D.h. Modulaufruf 1 packt z.B. einfach alle Parameter in set_app_data() und die anderen holen sich die Daten von dort.
Das klingt gut - probier ich gleich mal aus.
Für Warenkorb & Co. gibt es aber schon fertige Module. Such im Downloadbereich einfach mal nach Shop. Vielleicht machen die ja schon das, was du brauchst.
Hab ich alle schon getestet. Die setzen neben FEU noch alle möglichen anderen Module voraus. Ich will aber eine ganz flache Lösung, die sich einfach warten lässt.
Ich hab sogar schon mal einen Shop aufgesetzt mit fertigen Modulen (CG-Module):
http://www.babys-onlinewelt.de
Das war erstmal ganz schön viel Arbeit, die einzelnen Module für den deutschen Markt anzupassen, dann kam es ständig zu Fehlern und wenn Du da was anpassen willst, brauchst Du Jahre dafür ...
Mit Articles installierst Du ein einziges Modul, was keine Abhängigkeiten hat und den ganzen Overkill der anderen Shop-Module nicht mitbringt. Ich erhoffe mir davon weniger Aufwand, das Modul für den deutschen Markt zu warten.
Arbeitet bei conversearch GmbH: http://conversearch.de (Webseiten-Analyse und -Monitoring)
Bloggt bei Andiministrator.de: http://andiministrator.de
Offline
#24 15. März 2012 22:22
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Modul-Parameter im Modul auslesen
Du solltest also problemlos mit $_SESSION[...] arbeiten können. Ich glaube das CGExtensions Modul bzw. CGEcommerceBase hat da auch noch einige Funktionen.
CGSimpleSmarty hat dafür die function.session_put.php onboard ...
Offline
#25 16. März 2012 08:52
- Andiministrator
- Kabeljungwerker
- Ort: Plauen / Vogtland
- Registriert: 09. November 2010
- Beiträge: 264
- Webseite
Re: Modul-Parameter im Modul auslesen
CGSimpleSmarty hat dafür die function.session_put.php onboard ...
Danke, habs mittlerweile auch so hinbekommen. Wie gesagt, ich will eigentlich keine Modulabhängigkeit - dies hat in der Vergangenheit bei mir immer zu Problemen geführt.
Das größte Problem war eigentlich, Daten zwischen den (inline) Modulinstanzen auszutauschen. Sessions sind dafür zu spät (die hat man ja immer erst beim nächsten Aufruf), die cms_utils::set_app_data Funktion funktioniert nicht richtig und auch die anderen Möglichkeiten waren nicht so das Richtige.
Ich hol mir die Parameter zwischen den Modulinstanzen nun direkt aus dem Request, hier am Beispiel mode-Parameter:
// Parameter to set the output mode
$mode = '';
$mparams = GetModuleParameters($id);
if (!isset($mparams['mode'])) {
$mmact = isset($_REQUEST['mact']) ? explode(',',$_REQUEST['mact']) : array();
$mid = isset($mmact[1]) ? $mmact[1] : '';
$mode = isset($_REQUEST[$mid.'mode']) ? $_REQUEST[$mid.'mode'] : '';
}
if (!$mode && isset($params['mode'])) {
$mode = strtolower(preg_replace('/[^0-9a-zA-Z_-]/','',$params['mode'])); // Available modes: cart,cartsnippet,categories,articles,article - default: articles
} else {
$mode = 'articles';
}
$mode = isset($params['forcemode']) ? strtolower(preg_replace('/[^0-9a-zA-Z_-]/','',$params['forcemode'])) : $mode; // Available modes: cart,cartsnippet,categories,articles,article - default: articles
Könnte man sicherlich noch etwas optimieren, den Code, aber für "unter Zeitdruck entstanden" funktionierts ganz gut.
Arbeitet bei conversearch GmbH: http://conversearch.de (Webseiten-Analyse und -Monitoring)
Bloggt bei Andiministrator.de: http://andiministrator.de
Offline