Page 1 of 1

last edited date

Posted: Thu Mar 24, 2005 10:33 am
by obakemono
Hi guys!

I need to show the date each entry was last edited on the frontpage and on each entrys page.

Is there an option, a tag or a plugin that makes this possible?

Thanks
obakemono

Re: last edited date

Posted: Thu Mar 24, 2005 1:06 pm
by garvinhicking
There are two ways to get this to work.

The first and easiest way is to use our great Smarty templating for this.

Just create a directory 'templates/obakemono'. Copy the files 'entries.tpl' and 'info.txt' of the 'templates/default/' folder into that new folder. Edit the 'info.txt' and insert your own custom name for the template. Then edit the 'entries.tpl' file and near the place where {$entry.timestamp} is put, you can just add {$entry.last_modified} in a similar fashion. You can place it with any surrounding HTML code there easily. This is the most flexible solution.

An easier way is to use this plugin:

Code: Select all

<?php # $Id: serendipity_event_bbcode.php,v 1.19 2005/03/10 14:02:06 garvinhicking Exp $

@define('PLUGIN_EVENT_ENTRYLASTMODIFIED_NAME',     'Show last modification date');
@define('PLUGIN_EVENT_ENTRYLASTMODIFIED_DESC',     'Shows the last modification date of an entry on the blogs frontpage');
@define('PLUGIN_EVENT_ENTRYLASTMODIFIED_HTML',     '<br /><div style="text-align: right">Last modified on %s</div>');

class serendipity_event_entrylastmodified extends serendipity_event {
    var $title = PLUGIN_EVENT_ENTRYLASTMODIFIED_NAME;

    function introspect(&$propbag) {
        global $serendipity;

        $propbag->add('name',          PLUGIN_EVENT_ENTRYLASTMODIFIED_NAME);
        $propbag->add('description',   PLUGIN_EVENT_ENTRYLASTMODIFIED_DESC);
        $propbag->add('stackable',     false);
        $propbag->add('author',        'Garvin Hicking');
        $propbag->add('version',       '1.0');
        $propbag->add('requirements',  array(
            'serendipity' => '0.8',
            'smarty'      => '2.6.7',
            'php'         => '4.1.0'
        ));
        $propbag->add('event_hooks',   array('entry_display' => true));
    }

    function generate_content(&$title) {
        $title = $this->title;
    }

    function event_hook($event, &$bag, &$eventData, $addData = null) {
        global $serendipity;

        $hooks = &$bag->get('event_hooks');

        if (isset($hooks[$event])) {
            switch($event) {
                case 'entry_display':
                    $extended_key = &$this->getFieldReference('extended', $eventData);
                    if ($addData['extended'] || $addData['preview']) {
                        $eventData[0]['exflag'] = 1;
                        $extended_key .= sprintf(PLUGIN_EVENT_ENTRYLASTMODIFIED_HTML, serendipity_formatTime(DATE_FORMAT_SHORT, $eventData[0]['last_modified']));
                    } else {
                        $elements = count($eventData);
                        for ($i = 0; $i < $elements; $i++) {
                            if (!isset($eventData[$i]['add_footer'])) {
                                $eventData[$i]['add_footer'] = '';
                            }
    
                            $eventData[$i]['add_footer'] .= sprintf(PLUGIN_EVENT_ENTRYLASTMODIFIED_HTML, serendipity_formatTime(DATE_FORMAT_SHORT, $eventData[$i]['last_modified']));
                        }
                    }

                    return true;
                    break;
            }
        }
        
        return false;
    }
}

/* vim: set sts=4 ts=4 expandtab : */
?>
Save that as 'plugins/serendipity_event_entrylastmodified/serendipity_event_entrylastmodified.php' and install it via Admin Interface > Configure Plugins in the Event plugin section. As soon as you installed it, you will see the "Last modified" date inserted in your entries. But you are not as flexible in positioning it than with the first solution.

Regards,
Garvin

thx

Posted: Thu Mar 24, 2005 8:58 pm
by obakemono
thank you!!


I guess we're talking about version 0.8?
I used 0.7x and couldn't find a file "entries.tpl"...

obakemono

Re: thx

Posted: Fri Mar 25, 2005 11:39 pm
by garvinhicking
Yes, that's right - you need to use version 0.8

Upgrading is easy, and the final release will be out next week; you can use beta4, it's quite stable.

Regards,
Garvin