Im Joomla Administrator-Bereich kann beim Editieren eines Beitrags das Erstellungsdatum (Override Created Date) angeben bzw. angepasst werden.

Legt man im Joomla-Frontend einen Beitrag an, kann leider das Erstellungsdatum nicht verändert werden. Dieses wird automatisch auf das aktuell Datum/Uhrzeit gesetzt.

Um dieses Datum auch im Frontend eingeben zu können, sind folgende Änderungen nötig:

Achtung: Dieses Änderungen sind natürlich beim nächsten Versionsupdate von Joomla wieder weg.

1. Sprachdatei erweitern
/language/de_DE/de_DE.com_content.ini (für die deutsche Sprache)

Um diese Zeile erweitern:

CREATED DATE=Erstelldatum ändern

2. HTML Formular kopieren

Diese Datei
/components/com_content/views/article/tmpl/form.php

kopieren nach
/templates/NAME DES TEMPLATES/html/com_content/article/form.php

3. HTML Formular anpassen

Ca. ab Zeile 8 folgende Zeilen neu einfügen:

$created =& JFactory::getDate($this->article->created);
$created->setOffset($config->getValue('config.offset'));
$created = $created->toFormat();

Ungefähr in der Zeile 153 sollte folgender Code stehen:

<td>
<input type="text" id="created_by_alias" name="created_by_alias" size="50" maxlength="100" value="<?php echo $this->article->created_by_alias; ?>" class="inputbox" />
</td>
</tr>

Direkt darunter muss dieser Code eingefügt werden:

<tr>
<td class="key">
<label for="created">
<?php echo JText::_( 'CREATED DATE' ); ?>:
</label>
</td>
<td>
<?php echo JHTML::_('calendar', $created, 'created', 'created', '%Y-%m-%d %H:%M:%S', array('class'=>'inputbox', 'size'=>'25', 'maxlength'=>'19')); ?>
</td>
</tr>

4. Speicherfunktion anpassen

In der Datei /components/com_content/models/article.php

ab ca. Zeile 310 sollte folgender Code stehen:

   $date =& JFactory::getDate($article->publish_down, $mainframe->getCfg('offset'));
   $article->publish_down = $date->toMySQL();
}

Darunter muss folgender Code eingefügt werden

//ADD OVERRIDE CREATED DATE
//Handle empty date
if (trim($article->created) == JText::_('Never') || trim( $article->created ) == ''){
     $article->created = $article->publish_up;
}else{
     //Append time if not added to publish date
     if (strlen(trim($article->created)) <= 10) {
		$article->created .= ' 00:00:00';
     }
    $date =& JFactory::getDate($article->created, $mainframe->getCfg('offset'));
    $article->created = $date->toMySQL();
}

–> Fertig

Eine Anleitung für Joomla 1.x ist hier verfügbar
Override Created Date im Frontend eingeben (Joomla 1.x)

Override Created Date im Frontend eingeben (Joomla 1.5)

6 Gedanken zu „Override Created Date im Frontend eingeben (Joomla 1.5)

  • hi,
    danke für hack. unglaublich, dass so etwas noch nicht in der core-version von joomla drin ist.
    habe alles nach anleitung eingefügt. die ansicht beim erstellen im frontend ist so wie sie sein sollte.
    trotzdem wird nach dem speichern das aktuelle datum und zeit eingefügt.

    an was kann das liegen?
    nutze joomla 1.5.22

  • @efkay: Ich hatte dasselbe Problem.

    Habe dann in der Datei /components/com_content/models/article.php

    in der Zeile 282 folgende Zeile auskommentiert:
    $article->created = gmdate(‚Y-m-d H:i:s‘);

    Dann sollte es funktionieren.

  • I need my authors to be able to change the created date in frontend…
    Is this the solution?

    I cant completly translate to english or french and don’t really understand how and if this is what I need

    Thanks

  • Hello,
    Thank You for this nice tutorial! Will this method work with Joomla! 1.7?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert