WordPress.org

Make WordPress Core

Ticket #9730: 9730-plugin.php

File 9730-plugin.php, 1.9 KB (added by hakre, 6 years ago)

Test plugin. Have fun with the new mooddate standard

Line 
1<?php
2/**
3 * Plugin Name: #9730 Test Plugin
4 * Plugin URI: http://core.trac.wordpress.org/ticket/9730
5 * Description: Test Plugin to test the <a href="http://core.trac.wordpress.org/changeset/10897">date_i18n hook</a>.
6 * Author: hakre
7 * Version: 0.1
8 * Author URI: http://codex.wordpress.org/User:Hakre
9 */
10class plugin9730Test {
11 
12    public function __construct() {
13        add_filter('date_i18n', array($this, 'date_i18n'), 10, 4);
14    }
15   
16    /** date_i18n sample callback
17     *
18     * format timestamps according to the moodate standard. that is persian number in the year
19     * I felt like a timeless beauty.
20     *
21     * @param string $date          input date. unfiltered value provided by WP
22     * @param string $req_format    required format string. @see http://php.net/manual/en/function.date.php
23     * @param int    $unixtimestamp input timestamp (UTC value).
24         * @param bool   $gmt           Whether to convert to GMT for time. Optional, default is false.
25     * @return unknown_type
26     */
27    public function date_i18n($date, $req_format, $unixtimestamp, $gmt) {
28               
29        $mood_year = 'in the year I felt like a timeless beauty.';
30       
31        $datefunc = $gmt? 'gmdate' : 'date';
32               
33        $format = $req_format;
34        $format = preg_replace( "/([^\\\])[yY]/", "\\1" . backslashit( $mood_year ), $format );             
35        $date = $datefunc($format, $unixtimestamp);
36        $date = $this->do_latin_to_persian($date);
37                               
38        return $date;   
39    }
40   
41        /** Converts Latin digits to Persian ones
42         *
43         * some functions to play with.
44         *
45         * @see #7753
46         * @param  string $number
47         * @return string
48         */
49        function do_latin_to_persian($number) {
50                $latin = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); 
51                $persian = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');
52                return str_replace($latin, $persian, $number);
53        }
54}
55$plugin9730Test = new plugin9730Test();
56?>