Browse Source

- Merge with nodpounod

pull/16/head
Jaussoin Timothée 11 years ago
parent
commit
21ac8a6a78
  1. 10
      app/helpers/DateHelper.php
  2. 79
      app/helpers/TimezoneHelper.php
  3. 7
      app/widgets/AdminMain/AdminMain.php
  4. 65
      app/widgets/AdminMain/admin.js
  5. 4
      app/widgets/AdminMain/adminmain.tpl
  6. 5
      bootstrap.php

10
app/helpers/DateHelper.php

@ -57,18 +57,18 @@ function prepareDate($time, $hours = true) {
$reldays = ($time - $today)/86400;
if ($reldays >= 0 && $reldays < 1) {
if ($reldays >= 0 && $reldays < 1) { //$reldays == 0 ?
$date = __('date.today');
} else if ($reldays >= 1 && $reldays < 2) {
} else if ($reldays >= 1 && $reldays < 2) { //$reldays == 1 ?
$date = __('date.tomorrow');
} else if ($reldays >= -1 && $reldays < 0) {
} else if ($reldays >= -1 && $reldays < 0) { //$reldays == -1 ?
$date = __('date.yesterday');
} else {
if (abs($reldays) < 7) {
if ($reldays > 0) {
if ($reldays > 0) { //=> $reldays > 1
$reldays = floor($reldays);
$date = 'In ' . $reldays . ' '.__('date.day') . ($reldays != 1 ? 's' : '');
$date = 'In ' . $reldays . ' '.__('date.day') . ($reldays != 1 ? 's' : ''); //you always have s
} else {
$reldays = abs(floor($reldays));
$date = __('date.ago', $reldays);

79
app/helpers/TimezoneHelper.php

@ -5,42 +5,51 @@
*/
function getTimezoneList()
{
return array(
'Etc/GMT+12' => -12.00,
'Etc/GMT+11' => -11.00,
'Etc/GMT+10' => -10.00,
'Etc/GMT+9' => -9.00,
'Etc/GMT+8' => -8.00,
'Etc/GMT+7' => -7.00,
'Etc/GMT+6' => -6.00,
'Etc/GMT+5' => -5.00,
'America/Caracas' => -4.30,
'Etc/GMT+4' => -4.00,
'America/St_Johns' => -3.30,
'Etc/GMT+3' => -3.00,
'Etc/GMT+2' => -2.00,
'Etc/GMT+1' => -1.00,
'Etc/GMT' => 0,
'Etc/GMT-1' => 1.00,
'Etc/GMT-2' => 2.00,
'Etc/GMT-3' => 3.00,
'Asia/Tehran' => 3.30,
'Etc/GMT-4' => 4.00,
'Etc/GMT-5' => 5.00,
'Asia/Kolkata' => 5.30,
'Asia/Katmandu' => 5.45,
'Etc/GMT-6' => 6.00,
'Asia/Rangoon' => 6.30,
'Etc/GMT-7' => 7.00,
'Etc/GMT-8' => 8.00,
'Etc/GMT-9' => 9.00,
'Australia/Darwin' => 9.30,
'Etc/GMT-10' => 10.00,
'Etc/GMT-11' => 11.00,
'Etc/GMT-12' => 12.00,
'Etc/GMT-13' => 13.00);
static $regions = array(
DateTimeZone::AFRICA,
DateTimeZone::AMERICA,
DateTimeZone::ANTARCTICA,
DateTimeZone::ASIA,
DateTimeZone::ATLANTIC,
DateTimeZone::AUSTRALIA,
DateTimeZone::EUROPE,
DateTimeZone::INDIAN,
DateTimeZone::PACIFIC,
);
$timezones = array();
foreach( $regions as $region )
{
$timezones = array_merge( $timezones, DateTimeZone::listIdentifiers( $region ) );
}
$timezone_offsets = array();
foreach( $timezones as $timezone )
{
$tz = new DateTimeZone($timezone);
$timezone_offsets[$timezone] = $tz->getOffset(new DateTime);
}
// sort timezone by timezone name
ksort($timezone_offsets);
$timezone_list = array();
foreach( $timezone_offsets as $timezone => $offset )
{
$offset_prefix = $offset < 0 ? '-' : '+';
$offset_formatted = gmdate( 'H:i', abs($offset) );
$pretty_offset = "UTC${offset_prefix}${offset_formatted}";
$split = explode("/", $timezone);
$timezone_list[$timezone] = "$split[1]/$split[0] (${pretty_offset})";
}
asort($timezone_list);
return $timezone_list;
}
/*
* Get the user local timezone

7
app/widgets/AdminMain/AdminMain.php

@ -47,9 +47,12 @@ class AdminMain extends WidgetBase
return requestURL($url, 1);
}
public function date()
public function date($timezone)
{
return date('l jS \of F Y h:i:s A');
$t = new DateTimeZone($timezone);
$c = new DateTime(null, $t);
$current_time = $c->format('D M j Y G:i:s');
return $current_time;
}
function display()

65
app/widgets/AdminMain/admin.js

@ -1,42 +1,43 @@
var tz_list;
var original = true;
var operators = {
'+': function(a, b) { return a + b },
'-': function(a, b) { return a - b },
};
function update(elt){
original = false;
if (elt.selectedIndex == -1)
return null;
text = elt.options[elt.selectedIndex].text;
h_m = text.split("(")[1].split(")")[0].split(".");
var today = new Date();
if(h_m[0]<0){
h_m[0] = h_m[0].substr(1);
today.setHours(today.getHours() - parseInt(h_m[0]));
today.setMinutes(today.getMinutes() - parseInt(h_m[1]));
}
else{
today.setHours(today.getHours() + parseInt(h_m[0]));
today.setMinutes(today.getMinutes() + parseInt(h_m[1]));
}
return today;
//Get the offset from the selected option
text = elt.options[elt.selectedIndex].text;
//Determine if it is a positive or negative offset
sign = text.indexOf("+") > -1 ? "+" : "-";
//Seperate hours and minutes and get the offset in ms
h_m = text.split(sign)[1].split(")")[0].split(":");
tzOffset = parseInt(h_m[0]) * 3600000 + parseInt(h_m[1]) * 60000;
//Get the offset between your computer and UTC
pcOffset = new Date().getTimezoneOffset() * 60000;
return new Date(operators[sign]((new Date().getTime() + pcOffset), tzOffset));
}
movim_add_onload(function()
{
tz_list = document.querySelector("#timezone");
tz_list.onchange = function(e){
document.querySelector(".dTimezone").innerHTML = update(tz_list).toUTCString();
}
setInterval(
function(){
if(original){
date = new Date();
document.querySelector(".dTimezone").innerHTML = date.toUTCString();
}
else{
date = new Date(document.querySelector(".dTimezone").innerHTML);
date.setSeconds(date.getSeconds() + 1);
document.querySelector(".dTimezone").innerHTML = date.toUTCString();
}
}
,1000);
tz_list = document.querySelector("#timezone");
tz_list.onchange = function(e){
newTime = update(tz_list);
formatDate(newTime);
}
setInterval(
function(){ //increment time each second
date = new Date(document.querySelector(".dTimezone").innerHTML).getTime() + 1000;
date = formatDate(new Date(date));
}
,1000);
formatDate = function (newTime){
h = newTime.getHours()<10 ? "0" + newTime.getHours() : newTime.getHours();
m = newTime.getMinutes()<10 ? "0" + newTime.getMinutes() : newTime.getMinutes();
s = newTime.getSeconds()<10 ? "0" + newTime.getSeconds() : newTime.getSeconds();
document.querySelector(".dTimezone").innerHTML = newTime.toDateString() + " " + h+ ":" + m + ":" + s;
}
});

4
app/widgets/AdminMain/adminmain.tpl

@ -67,13 +67,13 @@
{if="$conf->timezone == $key"}
selected="selected"
{/if}>
{$key} ({$value|number_format:2})
{$value}
</option>
{/loop}
</select>
</div>
<br /><br />
<span class="dTimezone">{$c->date()}</span>
<span class="dTimezone">{$c->date($conf->timezone)}</span>
</div>
</fieldset>

5
bootstrap.php

@ -238,8 +238,9 @@ class Bootstrap {
// We set the default timezone to the server timezone
$cd = new \Modl\ConfigDAO();
$config = $cd->get();
date_default_timezone_set($config->timezone);
//date_default_timezone_set($config->timezone);
date_default_timezone_set(date_default_timezone_get());
}
private function setLogLevel() {

Loading…
Cancel
Save