Countdown |
Willkommen, Gast ( Anmelden | Registrierung ) [ Hilfe | Mitglieder | Suche ]
Countdown |
Fri. 22. September 2006, 21:52
Beitrag
#1
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 442 Mitglied seit: 02.07.2006 Wohnort: Halle Mitglieds-Nr.: 71 |
Hallo zusammen,
hier mal ein kleines Modul von mir. Ich brauchte in einem aktuellen Projekt ein Kalenderblatt, das eine Tagesdifferenz bis zum einem Datum anzeigt. (Noch x Tage). Das habe ich direkt im Layout realisiert. Dann wollte ich schon längst mal wissen, wie man eigentlich ein Modul schreibt und zum Lernen sind viele Modulvorbilder sehr komplex und nicht sehr anschaulich.Ich habe es also umgesetzt und es minimal gehalten. Es ist nur ein Textfeld und ein Templatefeld enthalten.Ich schreib demnächst mal ein kleines Tut vom Code zum Modul, was meine Schritte nachvollzieht. (Code in Output, mip_forms, input) Ursprünglich wollte ich die Zeitumrechnung in eine Funktion packen: QUELLTEXT function return_timestamp($date){ $pieces = split("\.",$date); $stamp = mktime(0, 0, 0, $pieces[1],$pieces[0],$pieces[2]); return($stamp); } Irgendwie scheint SF aber die Zeile mit dem Split nicht zu mögen. Der Beitrag wurde von pawel bearbeitet: Fri. 22. September 2006, 21:56
Angehängte Datei(en)
-------------------- |
|
|
Fri. 22. September 2006, 22:53
Beitrag
#2
|
|
Administrator Gruppe: Members Beiträge: 1.092 Mitglied seit: 16.06.2006 Wohnort: Köln Mitglieds-Nr.: 1 |
Versuch mal split('\.',$date); Die doppelten gegen einfache Anführungszeichen tauschen. Ein \ innerhalb doppelter ANführungszeichen, leitet immer ein besonderes Zeitchen ein.
-------------------- Es wird, es wird...
|
|
|
Sat. 23. September 2006, 11:00
Beitrag
#3
|
|
Advanced Member Gruppe: Admins Beiträge: 507 Mitglied seit: 27.06.2006 Mitglieds-Nr.: 11 |
Warum eigentlich split? Explode tut es doch auch.
|
|
|
Sat. 23. September 2006, 12:22
Beitrag
#4
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 442 Mitglied seit: 02.07.2006 Wohnort: Halle Mitglieds-Nr.: 71 |
Ich habe keinen Unterschied zwischen explode und split gesehen. Funktioniert aber beides nicht im Modul.
Ich habe die Anführungsstriche mal vereinfacht und explode verwendet, ohne Ergebnis. Ich habe beide alle Varianten mal als Standalone (also Variable gefüllt udn tpl entfermt und in ein Einzeldokument) ausprobiert und sie funktionieren alle. -------------------- |
|
|
Sat. 23. September 2006, 12:42
Beitrag
#5
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 853 Mitglied seit: 16.06.2006 Wohnort: Wien / Österreich Mitglieds-Nr.: 2 |
wie wärs mit ... geht denn das?
QUELLTEXT if (!function_exists('return_timestamp')){
function return_timestamp($date){ $pieces = split("\.",$date); $stamp = mktime(0, 0, 0, $pieces[1],$pieces[0],$pieces[2]); return($stamp); } } -------------------- SEFRENGO | a free choice ... again!
|
|
|
Sat. 23. September 2006, 20:03
Beitrag
#6
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 442 Mitglied seit: 02.07.2006 Wohnort: Halle Mitglieds-Nr.: 71 |
Nein, aber gibt es denn so eine Funktion schon? Dachtest du es kollidiert mit <cms:mod type ="date" ?
Na ja mit substr hat es ja geklappt, es gibt ja bei php mehr als einen Weg zum Ziel. Wie wäre jetzt die Schrittfolge, damit man als Redakteur für das Modul auf der Seite per select-Felder das Datum auswählen kann? -------------------- |
|
|
Wed. 27. September 2006, 19:46
Beitrag
#7
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 442 Mitglied seit: 02.07.2006 Wohnort: Halle Mitglieds-Nr.: 71 |
Ich habe mal versucht das Modul auszubauen.
Die Idee war statt QUELLTEXT $myDatum = "MOD_VALUE[0]"; aus der Templatekonfiguration zu holen, dem Redakteur mit QUELLTEXT $myDatum = <cms:mod type = "date" id = "1" />; die Einstellmöglichkeit zu geben. Irgendwo habe ich aber einen Denkfehler, denn ich bekomme ein QUELLTEXT Parse error: syntax error, unexpected '<' in Das Modul läßt sich aber ohne Fehlermeldung speichern. -------------------- |
|
|
Thu. 28. September 2006, 10:58
Beitrag
#8
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 343 Mitglied seit: 26.06.2006 Wohnort: CH Mitglieds-Nr.: 5 |
Probier es so:
QUELLTEXT $myDatum = <cms:mod type = "date" id = "1" addslashes="true" />; Gruss Mistral -------------------- So einfach wie möglich, aber nicht einfacher!
(Albert Einstein) |
|
|
Thu. 28. September 2006, 16:28
Beitrag
#9
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 680 Mitglied seit: 09.08.2006 Wohnort: nähe Mainz Mitglieds-Nr.: 182 |
Hi
Entweder $myDatum = '<cms:mod type = "date" id = "1" />'; oder $myDatum = <cms:mod type = "date" id = "1" addslashes="true" />; Und könnte man vllt endlich mal auf einen Namensraum für Variablen in Modulen definieren? Weil irgendein modul kollidiert dann wieder mit SF oder einem anderen Modul weil Variablen nicht zurückgesetzt werden etc... Am besten am Anfang des Moduls ein leeres Array erzeugen: $mod = array(); Variablen innerhalb des Arrays ablegen: $mod['myDate'] = ... und am ende das Array wieder löschen unset($mod); Nur dann ist sichergestellt dass kein anderes Modul oder SF in den eigenen Variablen rumpfuscht oder dass das eigene Modul SF-Eigene Variablen überschreibt. Natürlich wäre eine Klassenbasierte Lösung (Ein Modul = eine Klasse) besser aber für den Anfang.... Gruß, Peter |
|
|
Thu. 28. September 2006, 20:16
Beitrag
#10
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 442 Mitglied seit: 02.07.2006 Wohnort: Halle Mitglieds-Nr.: 71 |
Es klappt, ich habe nur noch mode="default-cms-date-format" hinzugefügt.
Allerdings erscheint kein Auswahlfeld, um das Datum einzugeben. Wenn ich das Datum direkt ausgebe, kann ich es editieren. Brauch ich noch ein extra Feld? -------------------- |
|
|
Thu. 28. September 2006, 21:14
Beitrag
#11
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 343 Mitglied seit: 26.06.2006 Wohnort: CH Mitglieds-Nr.: 5 |
ich kenne dein Modul jetzt nicht, aber das kann schon sein, das du noch ein separets Feld für die Eingabe brauchst. Dazu kannst du am besten den Tag "<cms:mod type="typegroup" />" verwenden
-------------------- So einfach wie möglich, aber nicht einfacher!
(Albert Einstein) |
|
|
Fri. 29. September 2006, 10:21
Beitrag
#12
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 442 Mitglied seit: 02.07.2006 Wohnort: Halle Mitglieds-Nr.: 71 |
Langsam beginne ich durchzublicken...
Über die typegroup kann jetzt das Datum vom Redakteur verändert werden. Ich habe dann auch gleich date mit mode="timestamp" ausgeben lassen und mir die Umrechnung gespart. Jetzt fehlt mir nur noch eins zum Glück . Ich hätte gern im Template eine Variable {style}. Wenn kein Style ausgewählt ist bleibt diese leer, ansonsten wird beispielsweise class="meineKlasse" eingesetzt (im Output). Ich habe mir einige Module angesehen aber meistens wird nur um die Variable herum ein <span class="meineKlasse" gesetzt. Hat jemand einen Tipp? Anbei noch mal das überarbeitete Modul.
Angehängte Datei(en)
-------------------- |
|
|
Fri. 29. September 2006, 11:29
Beitrag
#13
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 613 Mitglied seit: 30.06.2006 Mitglieds-Nr.: 30 |
Das mit den Styles war in den letzten Tagen in einem Thread zum Bildmodul aktuell, such mal danach, da ist es gut beschrieben wie das zu machen wäre.
-------------------- |
|
|
Vereinfachte Darstellung | Aktuelles Datum: 26.9.24 - 04:30 |