Willkommen, Gast ( Anmelden | Registrierung )     [ Hilfe | Mitglieder | Suche ]

 
Reply to this topicStart new topic
> Countdown
pawel
Beitrag 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)
Angehängte Datei  Countdown.cmsmod ( 3.9KB ) Anzahl der Downloads: 16
 


--------------------
Go to the top of the page
 
+Quote Post
bjoern
Beitrag 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...
Go to the top of the page
 
+Quote Post
mvsxyz
Beitrag 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.
Go to the top of the page
 
+Quote Post
pawel
Beitrag 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.


--------------------
Go to the top of the page
 
+Quote Post
alexander
Beitrag 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!
Go to the top of the page
 
+Quote Post
pawel
Beitrag 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?


--------------------
Go to the top of the page
 
+Quote Post
pawel
Beitrag 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.


--------------------
Go to the top of the page
 
+Quote Post
mistral
Beitrag 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)
Go to the top of the page
 
+Quote Post
MaZderMind
Beitrag 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
Go to the top of the page
 
+Quote Post
pawel
Beitrag 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?


--------------------
Go to the top of the page
 
+Quote Post
mistral
Beitrag 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)
Go to the top of the page
 
+Quote Post
pawel
Beitrag 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 rolleyes.gif .
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)
Angehängte Datei  Countdown.cmsmod ( 4KB ) Anzahl der Downloads: 18
 


--------------------
Go to the top of the page
 
+Quote Post
Olaf
Beitrag 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.


--------------------
Gruß Olaf aus Ohorn

Lieber spät und richtig als nie und falsch.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 Besucher lesen dieses Thema (Gäste: 1 | Anonyme Besucher: 0)
0 Mitglieder:

 



RSS Vereinfachte Darstellung Aktuelles Datum: 26.4.24 - 19:41

Sefrengo ist ein eingetragenes Markenzeichen und urheberrechtlich geschützt.
Copyright 2009 Design & Daten, Alle Rechte vorbehalten.