forked from extern/egroupware
136 lines
2.9 KiB
PHP
Executable File
136 lines
2.9 KiB
PHP
Executable File
<?php
|
|
|
|
/**
|
|
* Base plugin class.
|
|
*/
|
|
require_once 'Savant2/Plugin.php';
|
|
|
|
/**
|
|
*
|
|
* Outputs a formatted date using strftime() conventions.
|
|
*
|
|
* $Id$
|
|
*
|
|
* @author Paul M. Jones <pmjones@ciaweb.net>
|
|
*
|
|
* @package Savant2
|
|
*
|
|
* @license http://www.gnu.org/copyleft/lesser.html LGPL
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License as
|
|
* published by the Free Software Foundation; either version 2.1 of the
|
|
* License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
*/
|
|
|
|
class Savant2_Plugin_dateformat extends Savant2_Plugin {
|
|
|
|
/**
|
|
*
|
|
* The default strftime() format string to use for dates.
|
|
*
|
|
* You can preset the default format string via Savant::loadPlugin().
|
|
*
|
|
* $conf = array(
|
|
* 'format' => '%Y-%m-%d %H:%M:%S'
|
|
* );
|
|
*
|
|
* $Savant->loadPlugin('dateformat', $conf);
|
|
*
|
|
* ... and in your template, to use the default format string:
|
|
*
|
|
* $this->plugin('date', $datestring);
|
|
*
|
|
* ... or, to use a custom string at call-time:
|
|
*
|
|
* $this->plugin('date', $datestring, '%b');
|
|
*
|
|
* @access public
|
|
*
|
|
* @var string
|
|
*
|
|
*/
|
|
|
|
var $format = '%c';
|
|
|
|
|
|
/**
|
|
*
|
|
* The default strftime() format string to use for dates.
|
|
*
|
|
* You can preset the custom format strings via Savant::loadPlugin().
|
|
*
|
|
* $conf = array(
|
|
* 'custom' => array(
|
|
* 'mydate' => '%Y-%m-%d',
|
|
* 'mytime' => '%R'
|
|
* )
|
|
* );
|
|
*
|
|
* $Savant->loadPlugin('dateformat', $conf);
|
|
*
|
|
* ... and in your template, to use a preset custom string by name:
|
|
*
|
|
* $this->plugin('date', $datestring, 'mydate');
|
|
*
|
|
* @access public
|
|
*
|
|
* @var array
|
|
*
|
|
*/
|
|
|
|
var $custom = array(
|
|
'date' => '%Y-%m-%d',
|
|
'time' => '%H:%M:%S'
|
|
);
|
|
|
|
|
|
/**
|
|
*
|
|
* Outputs a formatted date using strftime() conventions.
|
|
*
|
|
* @access public
|
|
*
|
|
* @param string $datestring Any date-time string suitable for
|
|
* strtotime().
|
|
*
|
|
* @param string $format The strftime() formatting string, or a named
|
|
* custom string key from $this->custom.
|
|
*
|
|
* @return string
|
|
*
|
|
*/
|
|
|
|
function plugin($datestring, $format = null)
|
|
{
|
|
settype($format, 'string');
|
|
|
|
// does the format string have a % sign in it?
|
|
if (strpos($format, '%') === false) {
|
|
// no, look for a custom format string
|
|
if (isset($this->custom[$format])) {
|
|
// found a custom format string
|
|
$format = $this->custom[$format];
|
|
} else {
|
|
// did not find the custom format, revert to default
|
|
$format = $this->format;
|
|
}
|
|
}
|
|
|
|
// convert the date string to the specified format
|
|
if (trim($datestring != '')) {
|
|
return strftime($format, strtotime($datestring));
|
|
} else {
|
|
// no datestring, return VOID
|
|
return;
|
|
}
|
|
}
|
|
|
|
}
|
|
?>
|