Seite 1 von 2

bbcode hinzufügen: aktuelles Datum einfügen

Verfasst: 03.11.2008 13:18
von SIL_EL_MOT
hi.
ich wollte in den bbcode eine option einfügen, dass ich per klick das aktuelle datum + uhrzeit habe. wie kann ich das mit dem code am besten lösen?
die php-befehle {post_date} und ähnliche aus der posting-body.html nimmt er nicht an...
welchen befehl müsst ich als html-code angeben?

danke

Verfasst: 03.11.2008 13:44
von 4seven
bbcode

Code: Alles auswählen

[date_time][/date_time]

html ersetzung

Code: Alles auswählen

<script type="text/javascript">
  var date=new Date(); 
  var dd=date.getDate(); 
  var mm=date.getMonth() + 1; 
  var yy=date.getUTCFullYear(); 
  var HH=date.getUTCHours() + 1;
  var MM=date.getUTCMinutes(); 
  document.write("Heute ist der "+dd+"."+mm+"."+yy+" -  Es ist "+HH+":"+MM+" Uhr"); 
</script>
Ergebnis

Code: Alles auswählen

Heute ist der 3.11.2008 - Es ist 14:7 Uhr. 
Was zum lesen noch dabei
http://www.zdnet.de/builder/program/0,3 ... 006,00.htm

Verfasst: 03.11.2008 14:32
von SIL_EL_MOT
das ist schonmal gut, das problem an der sache ist nur, das soll sich nicht verändern.

ich editiere einfach öfters an diversen threats und würde gern per buttonklick eben das aktuelle datum einfügen, damit ersichtlich ist, wann was geändert wurde...

Verfasst: 03.11.2008 15:20
von gn#36
Das dürfte mit Boardmitteln nicht mehr gehen. Hierfür müsstest du den Code PHP Seitig in die bbcode.php einbauen um ihn zum Laufen zu bringen. Vorteil daran ist, dass du auch so einen Code wie [timestamp] benutzen kannst um das zu tun.
Suche in der includes/message_parser.php

Code: Alles auswählen

'flash'        => array('bbcode_id' => 11,   'regexp' => array('#\[flash=([0-9]+),([0-9]+)\](.*?)\[/flash\]#ie' => "\$this->bbcode_flash('\$1',      '\$2', '\$3')"))
und ersetze das durch:

Code: Alles auswählen

'flash'        => array('bbcode_id' => 11,   'regexp' => array('#\[flash=([0-9]+),([0-9]+)\](.*?)\[/flash\]#ie' => "\$this->bbcode_flash('\$1',      '\$2', '\$3')")),
'timestamp' => array('bbcode_id' => 13, 'regexp' => array('#\[timestamp\]#ie' => date('d.m.Y, H:i'))),
Hinweis: Das ist völlig ungetestet und es könnte sein dass das so nicht funktioniert. Bitte also vorher ein Backup machen und anschließend ausgiebig testen. Wenn es klappt solltest du per [timestamp] in deinem Beitrag den Eintrag des Datums im Format "03.11.2008, 09:26" erhalten.

Verfasst: 03.11.2008 18:04
von SIL_EL_MOT

Code: Alles auswählen

			
''flash'			=> array('bbcode_id' => 11,	'regexp' => array('#\[flash=([0-9]+),([0-9]+)\](.*?)\[/flash\]#ie' => "\$this->bbcode_flash('\$1', '\$2', '\$3')")),
'timestamp'          => array('bbcode_id' => 13, 'regexp' => array('#\[timestamp\]#ie' => "date('d.m.Y, H:i')")),
so gehts jetzt...
ne frage hab ich noch... wie bekomm ich da noch das Wörtchen "Uhr" dazu und das ganze in einer festen Farbe vergeben?
wenn ich das selbst probier macht der mir jedesmal den code kaputt

Verfasst: 03.11.2008 20:49
von gn#36
Das geht dann so:

Code: Alles auswählen

'flash'        => array('bbcode_id' => 11,   'regexp' => array('#\[flash=([0-9]+),([0-9]+)\](.*?)\[/flash\]#ie' => "\$this->bbcode_flash('\$1',      '\$2', '\$3')")),
'timestamp' => array('bbcode_id' => 13, 'regexp' => array('#\[timestamp\]#ie' => "Beliebiger Text vor dem Datum " . date('d.m.Y, H:i') . " Beliebiger Text nach dem Datum (Leerzeichen nicht vergessen!)")),
Um das ganze Farbig zu machen muss man entweder mehr tun oder das ganze mit einem Trick machen: Alle Einträge die du an dieser Stelle in der Datei findest werden genau in der Reihenfolge verarbeitetet in der sie darin stehen. Wenn du die Verarbeitung des [timestamp] bbcodes also vor die Verarbeitung des [ color ] bbcodes verschiebst, dann kannst du ganz normale [ color=red ] Tags benutzen um den Text den du vor und nach dem Datum angibst zu formatieren (oder auch das Datum selber). Nimm also das neu eingefügte und verschiebe es in der Liste einfach ein paar Zeilen weiter nach oben und verwende dann [ color=red ]Dein beliebiger Text[ /color ] (natürlich ohne die Leerzeichen im color Tag).

Verfasst: 04.11.2008 10:21
von SIL_EL_MOT
vielen dank...
habs jetzt soweit drin, auch in die tags verlinkt wenn man postet... helpline editiert... bin soweit zufrieden, nur mit der farbe gibts noch probleme.
wenn ich das so mache, wie du sagst, dann bekomme ich nur den hinzugeschriebenen text farbig. jeglicher versuch das datum farbig zu bekommen gipfelt in einer sql-error-nachricht
kannst mir da noch nen anstoss geben wie ich das umsetz?

Verfasst: 04.11.2008 14:10
von gn#36
Schreib doch mal kurz wie du das umsetzt. Eigentlich dürfte das keinen Unterschied machen.

Mein Versuch würde da so aussehen:

Code: Alles auswählen

'timestamp' => array('bbcode_id' => 13, 'regexp' => array('#\[timestamp\]#ie' => "[color=red]Beliebiger Text vor dem Datum " . date('d.m.Y, H:i') . " Beliebiger Text nach dem Datum (Leerzeichen nicht vergessen!)[/color]")),

Verfasst: 04.11.2008 22:28
von SIL_EL_MOT
wenn ich das so mache wie du schreibst bringt der mir folgenden fehler:

Code: Alles auswählen

Parse error: syntax error, unexpected '[' in /users/silelmot/www/includes/message_parser.php(71) : regexp code on line 1

Fatal error: preg_replace() [<a href='http://php.net/function.preg-replace'>function.preg-replace</a>]: Failed evaluating code: [color=red] 04.11.2008, 22:33 Uhr[/color] in /users/silelmot/www/includes/message_parser.php on line 71
mein ursprünglicher code ohne die spielereien sieht so aus:

Code: Alles auswählen

            'timestamp'     => array('bbcode_id' => 13, 'regexp' => array('#\[timestamp]#ie' => "date('d.m.Y, H:i').' Uhr'")),
also mit " vor dem Befehl "date"

Verfasst: 05.11.2008 01:26
von gn#36
Hm der scheint das irgendwie anders zu behandeln als erwartet.

Ok dann vielleicht so:

Code: Alles auswählen

'timestamp' => array('bbcode_id' => 13, 'regexp' => array('#\[timestamp\]#ie' => "\[color=red\]Beliebiger Text vor dem Datum " . date('d.m.Y, H:i') . " Beliebiger Text nach dem Datum (Leerzeichen nicht vergessen!)\[/color\]")),