Welcome, Guest. Please login or register.
Did you miss your activation email?
February 12, 2012, 11:57:19 AM

Login with username, password and session length
Search:     Advanced search
Wollen Sie dem WebsiteBaker Team beitreten?
Nähere Informationen finden Sie unter hier und auf unserer neuen Webseite.
149635 Posts in 21099 Topics by 7537 Members
Latest Member: lotte2
* Home Help Search Login Register
Pages: [1]   Go Down
Print
Author Topic: News-Modul und Datum  (Read 1208 times)
thorn

Offline Offline

Posts: 980


WWW
« on: March 31, 2007, 09:01:54 PM »

Hallo,

mich stört immer wieder, daß sich das Datum von News-Einträgen ändert, wenn man irgendeine Änderung an einem bestehenden News-Eintrag vornimmt (zu einer Gruppe hinzufügen, Tippfehler beheben, ...).
Ich weiß, daß es ein aufgebohrtes Modul gibt, aber weder brauche ich dessen Funktionalität, noch will ich mir mit einem Austausch des Moduls ggf. später Probleme einhandeln. - Ich wäre mit dem Core-Module ja vollauf zufrieden, würde es nicht immer das Datum aktualisieren... angry

Darum habe ich eine Änderung am Core-Modul vorgenommen, die ich hier zur Übernahme Vorschlagen möchte:
- Das Datum wird beim ersten Anlegen eines News-Eintrags festgelegt.
- beim Ändern des Eintrags hat man eine Auswahlmöglichkeit ob man das Datum aktualisieren lassen will oder nicht (Voreinstellung: Nein). Dazu sind in der modify_post.php zwei radio-buttons hinzugefügt; hier ist der 'Titel' 'Update date' noch 'hard-coded' -- daß müßte man noch in alle Language-Files mit aufnehmen...

Im Anhang die geänderten Dateien.

MfG, thorn

Code:
diff -Naur news_old/add_post.php news/add_post.php
--- news_old/add_post.php 2007-03-25 14:39:47.000000000 +0200
+++ news/add_post.php 2007-03-31 22:12:34.000000000 +0200
@@ -40,7 +40,7 @@
 $commenting = $fetch_settings['commenting'];
 
 // Insert new row into database
-$database->query("INSERT INTO ".TABLE_PREFIX."mod_news_posts (section_id,page_id,position,commenting,active) VALUES ('$section_id','$page_id','$position','$commenting','1')");
+$database->query("INSERT INTO ".TABLE_PREFIX."mod_news_posts (section_id,page_id,position,commenting,active,posted_when) VALUES ('$section_id','$page_id','$position','$commenting','1','".mktime()."')");
 
 // Get the id
 $post_id = $database->get_one("SELECT LAST_INSERT_ID()");
@@ -55,4 +55,4 @@
 // Print admin footer
 $admin->print_footer();
 
-?>
\ No newline at end of file
+?>
diff -Naur news_old/modify_post.php news/modify_post.php
--- news_old/modify_post.php 2007-03-25 14:39:47.000000000 +0200
+++ news/modify_post.php 2007-03-31 22:32:40.000000000 +0200
@@ -108,6 +108,20 @@
  </td>
 </tr>
 <tr>
+ <td><?php echo 'Update date'?>:</td>
+ <td>
+ <input type="radio" name="update_date" id="update_date_true" value="1" />
+ <a href="#" onclick="javascript: document.getElementById('update_date_true').checked = true;">
+ <?php echo $TEXT['YES']; ?>
+ </a>
+ &nbsp;
+ <input type="radio" name="update_date" id="update_date_false" value="0" checked />
+ <a href="#" onclick="javascript: document.getElementById('update_date_false').checked = true;">
+ <?php echo $TEXT['NO']; ?>
+ </a>
+ </td>
+</tr>
+<tr>
  <td valign="top"><?php echo $TEXT['SHORT']; ?>:</td>
  <td>
  <?php
@@ -195,+209,@@
 
// Print admin footer
 
$admin->print_footer();

-
?>

\ No newline at end of file
+?>
diff -Naur news_old/save_post.php news/save_post.php
--- news_old/save_post.php 2007-03-25 14:39:47.000000000 +0200
+++ news/save_post.php 2007-03-31 22:28:57.000000000 +0200
@@ -47,6 +47,7 @@
  $long = $admin->add_slashes($admin->get_post('long'));
  $commenting = $admin->get_post('commenting');
  $active = $admin->get_post('active');
+ $update_date = $admin->get_post('update_date');
  $old_link = $admin->get_post('link');
  $group_id = $admin->get_post('group');
 }
@@ -101,7 +102,12 @@
 }
 
 // Update row
-$database->query("UPDATE ".TABLE_PREFIX."mod_news_posts SET group_id = '$group_id', title = '$title', link = '$post_link', content_short = '$short', content_long = '$long', commenting = '$commenting', active = '$active', posted_when = '".mktime()."', posted_by = '".$admin->get_user_id()."' WHERE post_id = '$post_id'");
+if($update_date==1) {
+ $database->query("UPDATE ".TABLE_PREFIX."mod_news_posts SET group_id = '$group_id', title = '$title', link = '$post_link', content_short = '$short', content_long = '$long', commenting = '$commenting', active = '$active', posted_when = '".mktime()."', posted_by = '".$admin->get_user_id()."' WHERE post_id = '$post_id'");
+}
+else {
+ $database->query("UPDATE ".TABLE_PREFIX."mod_news_posts SET group_id = '$group_id', title = '$title', link = '$post_link', content_short = '$short', content_long = '$long', commenting = '$commenting', active = '$active', posted_by = '".$admin->get_user_id()."' WHERE post_id = '$post_id'");
+}
 
 // Check if there is a db error, otherwise say successful
 if($database->is_error()) {
@@ -113,4 +119,4 @@
 // Print admin footer
 $admin->print_footer();
 
-?>
\ No newline at end of file
+?>

Logged

doc
Guest
« Reply #1 on: March 31, 2007, 09:05:02 PM »

Cool,

das updaten des Timestamps bei der Korrektur von Tippfehlern hat mich auch schon gestört. Hört sich auf jeden Fall nach einer sinnvollen Ergänzung des Moduls an, werde das gleich mal austesten.

Gruss Christian
Logged
thorn

Offline Offline

Posts: 980


WWW
« Reply #2 on: March 31, 2007, 10:54:55 PM »

Naja, man sollte natürlich auch posted_by berücksichtigen...

Nun wird neben posted_when auch posted_by nur aktualisiert, wenn man es explizit wünscht.

MfG, thorn
Logged

ruebenwurzel
WebsiteBaker Org e.V.

Offline Offline

Posts: 7661



WWW
« Reply #3 on: April 01, 2007, 07:13:58 AM »

Hallo,

ich gehe mal davon aus, dass das erweiterte Modul in 2.7 als standard integriert sein wird. Es ist nur deswegen noch nicht drin, weil die notwendigen Datenbankänderungen in updates inerhalb der 2.6.x line nicht gemacht werden.

Matthias
Logged
thorn

Offline Offline

Posts: 980


WWW
« Reply #4 on: April 01, 2007, 04:04:08 PM »

Hallo,

nun habe ich mir das neue Modul doch noch angesehen...
...und wollte gleich losmeckern, weil das ebenfalls das Datum in der Übersicht aktualisiert.  sad

Aber mit ein bisschen im Quellcode stöbern  wink hab ich doch noch eine Lösung gefunden die mit dem neuen Modul gut funktioniert (und das, ohne den Quelltext zu ändern):
Unter "Optionen" der News-Seite, im Feld "Beitrag Schleife:", kann man folgendes ändern
Code:
<td class="post_date">[MODI_TIME], [MODI_DATE]</td>
in
Code:
<td class="post_date">[PUBLISHED_DATE]</td>
ändern.
Dann wird in der News-Übersicht immer das feste Datum angezeigt, auch wenn man den News-Beitrag nachträglich noch ändert.

MfG, thorn.

PS: im Feld "Nachricht Kopfzeile:" steht fälschlich
Code:
<td valign="top"><b>Posted by [DISPLAY_NAME] ([USERNAME]) on [PUBL_DATE]</b></td>
das muß aber
Code:
<td valign="top"><b>Posted by [DISPLAY_NAME] ([USERNAME]) on [PUBLISHED_DATE]</b></td>
heißen. (Der Fehler fällt nur nicht auf, weil im Quelltext für diesen Eintrag das unbekannte [PUBL_DATE] mit dem default-Eintrag [PUBLISHED_DATE] ersetzt wird. - Sollte aber trotzdem korrigiert werden.)
Logged

ruebenwurzel
WebsiteBaker Org e.V.

Offline Offline

Posts: 7661



WWW
« Reply #5 on: April 02, 2007, 04:10:24 AM »

Hallo thorn,

Das erweiterte Modul bietet beide Möglichkeiten. Es kann entweder ein festeingestelltes Datum (PUBLISHED_DATE), das man in den Optionen entsprechende ändern kann benutzten oder wie bisher das Datum der letzten Änderung (MODI_TIME, MODI_DATE). wie du richtig beschrieben hast kann der User das in den Optionen - Beitrag Schleife entsprechend ändern.

Das mit dem austauschen von PUBL_DATE gegen PUBLISHED_DATE funktioniert allerdings nicht unbedingt überall, da dies nicht in allen Moduldateien entsprechend angelegt ist. Das ist noch ein Bug des Moduls der behoben werden sollte.  grin

Matthias
Logged
tcm

Offline Offline

Posts: 14


« Reply #6 on: May 12, 2007, 10:16:54 AM »

Gibt es denn eine Möglichkeit, die Daten zurückzusetzen, wenn das Core Modul dies neu gesetzt hat? Ich habe schon in der DB geschaut. Dort gibt es zwar das posted_when Feld, allerdings mit Nummerneinträgen, mit denen ich nichts anfangen kann. Ist es das richtige Feld? Und wenn ja, wie muss ich das Datum kodieren, damit ich hier das Datum korrigieren kann?
Logged
kweitzel
Forum administrator
*****
Offline Offline

Posts: 6819


WWW
« Reply #7 on: May 12, 2007, 08:01:47 PM »

Die Numern, die Du da siehst sind das Unix Zeitformat. Schau einfach mal im Netz nach Konvertierung von Unix Zeit in Datum/Zeit.

Gruß

Klaus
Logged

WebsiteBaker Org e.V. - for WebsiteBaker

tcm

Offline Offline

Posts: 14


« Reply #8 on: May 13, 2007, 09:23:34 AM »

Die Numern, die Du da siehst sind das Unix Zeitformat. Schau einfach mal im Netz nach Konvertierung von Unix Zeit in Datum/Zeit.

Gruß

Klaus

Ah, danke für den Hinweis. Dann werde ich das bestimmt hinbekommen.

Edit: Für all diejenigen die es noch nicht kennen: http://www.onlineconversion.com/unix_time.htm

Hervorragende Möglichkeit die Umwandlung in die eine sowie die andere Richtung zu tun. Smiley
« Last Edit: May 13, 2007, 09:35:46 AM by tcm » Logged
Pages: [1]   Go Up
Print
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!