Today At/Yesterday At
-
- phpBB 1.4.3
- Сообщения: 97
- Стаж: 20 лет 3 месяца
-
- phpBB 2.0.2
- Сообщения: 306
- Стаж: 20 лет 1 месяц
-
- phpBB Maniac
- Сообщения: 1464
- Стаж: 20 лет 3 месяца
- Откуда: Novosibirsk,RU
baldahin
это совмещаемо... =) имхо, если посмотреть чуть внимательней... проблем не будет...
это совмещаемо... =) имхо, если посмотреть чуть внимательней... проблем не будет...
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)
Оставь благодарность, подтверди работоспособность совета.
ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)
Оставь благодарность, подтверди работоспособность совета.
ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
-
- Former team member
- Сообщения: 4463
- Стаж: 20 лет 5 месяцев
- Поблагодарили: 1 раз
Живет сия вещь замечательно.quazi писал(а):##############################################################
## MOD Title: Today / Yesterday
## MOD Author: Rumata < http://forum.dklab.ru/users/Rumata >
## MOD Description: This MOD allows to see 'Today at' or 'Yesterday at' in the any location of the phpBB forum
## MOD Version: 1.0.0 Beta
Во-первых, чтоб не парить людей у которых стоит Keep Unread Flag (по крайней мере версия 2, потому что у меня 2) стоит написать
Код: Выделить всё
#----[ OPEN ]-------
#
includes/page_header.php
#
#----[ FIND ]-------
#
$s_last_visit =
#
#----[ IN-LINE, FIND ]-------
#
$board_config['board_timezone']
#
#----[ IN-LINE, AFTER ADD ]-------
#
, true
Как это понять, перевести на русский, и для чего используеться?quazi писал(а):$lang['datetime']['Hidden_time'] = 'Obscured by darkness';
-
- phpBB 2.0.2
- Сообщения: 306
- Стаж: 20 лет 1 месяц
1. не принципиально, хотя более аккуратно
2. Obscured by darkness == Покрыто мраком.
но лучше более нейтрально - Unknown.
единственный случай, когда это может появиться, при выводе времени последнего визита загеристрированного, но неактивированного пользователя (его последний визит равен нулю)
2. Obscured by darkness == Покрыто мраком.
но лучше более нейтрально - Unknown.
на случай, если время, передаваемое в функцию - пустое. редкий, практически невозможный случай, но если подобное произойдет - на форуме будет показано некорректное время, что-то в районе 1 янв 1970 года. что не есть хорошо, поэтому - лучше показать некую фразу.VVVas писал(а):для чего используеться
единственный случай, когда это может появиться, при выводе времени последнего визита загеристрированного, но неактивированного пользователя (его последний визит равен нулю)
-
- Former team member
- Сообщения: 4463
- Стаж: 20 лет 5 месяцев
- Поблагодарили: 1 раз
Только вот не живет с BirthDayHack - теперь при просмотре темы в качестве возраста показывает год рождения со знаком минус и на главной не отображаються именинники. Прочел тему и сделал.
Поправить надо следующее.
После этого у меня заработало отображение нормально. Но в файле
includes/functions.php
к этому моду относиться ещё вот эта строка
Нужно ли её правит и на что это влияет?
Если нужно можете оформить как аддон для Birthdayhack как с аддонами (birthday_add_on_zodiac_1.0.5em.zip, birthday_add_on_chinese_zodiac_1.0.1em.zip и birthday_add_on_chinese_viewtopic_1.0.0em.zip) так и без них, аддоны эти вещи не затрагивают.
Но предварительно скажите про строку в includes/functions.php
Поправить надо следующее.
Код: Выделить всё
#----[ OPEN ]-------
#
index.php
#
#----[ FIND ]-------
#
if (!empty($result))
{
$time_now = time();
$this_year = create_date('Y', $time_now, $board_config['board_timezone'], false);
#
#----[ IN-LINE, FIND ]-------
#
$board_config['board_timezone']
#
#----[ IN-LINE, AFTER ADD ]-------
#
, false
#
#----[ FIND ]-------
#
$date_today = create_date('Ymd', $time_now, $board_config['board_timezone']);
#
#----[ IN-LINE, FIND ]-------
#
$board_config['board_timezone']
#
#----[ IN-LINE, AFTER ADD ]-------
#
, false
#
#----[ FIND ]-------
#
$date_forward = create_date('Ymd', $time_now+($board_config['birthday_check_day']*86400), $board_config['board_timezone']);
#
#----[ IN-LINE, FIND ]-------
#
$board_config['board_timezone']
#
#----[ IN-LINE, AFTER ADD ]-------
#
, false
#----[ OPEN ]-------
#
viewtopic.php
#
#----[ FIND ]-------
#
// Start add - Birthday MOD
$this_year = create_date('Y', time(), $board_config['board_timezone']);
#
#----[ IN-LINE, FIND ]-------
#
$board_config['board_timezone']
#
#----[ IN-LINE, AFTER ADD ]-------
#
, false
#
#----[ FIND ]-------
#
$this_date = create_date('md', time(), $board_config['board_timezone']);
#
#----[ IN-LINE, FIND ]-------
#
$board_config['board_timezone']
#
#----[ IN-LINE, AFTER ADD ]-------
#
, false
includes/functions.php
к этому моду относиться ещё вот эта строка
Код: Выделить всё
return create_date($date_syntax,$date*86400+1,0);
Если нужно можете оформить как аддон для Birthdayhack как с аддонами (birthday_add_on_zodiac_1.0.5em.zip, birthday_add_on_chinese_zodiac_1.0.1em.zip и birthday_add_on_chinese_viewtopic_1.0.0em.zip) так и без них, аддоны эти вещи не затрагивают.
Но предварительно скажите про строку в includes/functions.php
-
- phpBB 2.0.2
- Сообщения: 306
- Стаж: 20 лет 1 месяц
-
- Former team member
- Сообщения: 4463
- Стаж: 20 лет 5 месяцев
- Поблагодарили: 1 раз
Что не надо.quazi писал(а):а что на это говорит эксперимент?
Вот та часть про которую я говорюquazi писал(а):я тут уже просил показать сомнительные строки из мода, но желателен также контекст в котором эти строки вызывают сомнение
Код: Выделить всё
// Add function realdate for Birthday MOD
// the originate php "date()", does not work proberly on all OS, especially when going back in time
// before year 1970 (year 0), this function "realdate()", has a mutch larger valid date range,
// from 1901 - 2099. it returns a "like" UNIX date format (only date, related letters may be used, due to the fact that
// the given date value should already be divided by 86400 - leaving no time information left)
// a input like a UNIX timestamp divided by 86400 is expected, so
// calculation from the originate php date and mktime is easy.
// e.g. realdate ("m d Y", 3) returns the string "1 3 1970"
// UNIX users should replace this function with the below code, since this should be faster
//
//function realdate($date_syntax="Ymd",$date=0)
//{ return create_date($date_syntax,$date*86400+1,0); }
function realdate($date_syntax="Ymd",$date=0)
{
global $lang;
$i=2;
if ($date>=0)
{
return create_date($date_syntax,$date*86400+1,0);
} else
{
$year= -(date%1461);
$days = $date + $year*1461;
while ($days<0)
{
$year--;
$days+=365;
if ($i++==3)
{
$i=0;
$days++;
}
}
}
$leap_year = ($i==0) ? TRUE : FALSE;
$months_array = ($i==0) ?
array (0,31,60,91,121,152,182,213,244,274,305,335,366) :
array (0,31,59,90,120,151,181,212,243,273,304,334,365);
for ($month=1;$month<12;$month++)
{
if ($days<$months_array[$month]) break;
}
$day=$days-$months_array[$month-1]+1;
//you may gain speed performance by remove som of the below entry's if they are not needed/used
return strtr ($date_syntax, array(
'a' => '',
'A' => '',
'\\d' => 'd',
'd' => ($day>9) ? $day : '0'.$day,
'\\D' => 'D',
'D' => $lang['day_short'][($date-3)%7],
'\\F' => 'F',
'F' => $lang['month_long'][$month-1],
'g' => '',
'G' => '',
'H' => '',
'h' => '',
'i' => '',
'I' => '',
'\\j' => 'j',
'j' => $day,
'\\l' => 'l',
'l' => $lang['day_long'][($date-3)%7],
'\\L' => 'L',
'L' => $leap_year,
'\\m' => 'm',
'm' => ($month>9) ? $month : '0'.$month,
'\\M' => 'M',
'M' => $lang['month_short'][$month-1],
'\\n' => 'n',
'n' => $month,
'O' => '',
's' => '',
'S' => '',
'\\t' => 't',
't' => $months_array[$month]-$months_array[$month-1],
'w' => '',
'\\y' => 'y',
'y' => ($year>29) ? $year-30 : $year+70,
'\\Y' => 'Y',
'Y' => $year+1970,
'\\z' => 'z',
'z' => $days,
'\\W' => '',
'W' => '') );
}
// End add - Birthday MOD
Добавлено спустя 1 минуту 7 секунд:
А вообще спасибо за мод.
-
- phpBB 2.0.2
- Сообщения: 306
- Стаж: 20 лет 1 месяц
вообще это кривая функция realdate. она не решает проблему отрицательных дат (до 1 янв 1970) и переполнения (после 2000 какого-то). поэтому можно последовать совету автора (как на юникс так и виндоус машинах)
Код: Выделить всё
function realdate($date_syntax="Ymd",$date=0)
{
return create_date($date_syntax,$date*86400+1,0);
}
-
- Former team member
- Сообщения: 4463
- Стаж: 20 лет 5 месяцев
- Поблагодарили: 1 раз
-
- phpBB 2.0.2
- Сообщения: 306
- Стаж: 20 лет 1 месяц
UNIX users should replace this function with the below code, since this should be faster
не совсем точно, но корректно
пользователям UNIX желательно заменить эту функцию на следующий код, так как он гораздо быстрее
вообще странный автор того мода - написал монстрообразную функцию, которая дублирует стандартную встроенную. выйгрыша от нее никакого. даже если у вас винда смело следуйте совету. по крайней мере закомментируйте монстра и раскомментируйте те две строчки
не совсем точно, но корректно
пользователям UNIX желательно заменить эту функцию на следующий код, так как он гораздо быстрее
вообще странный автор того мода - написал монстрообразную функцию, которая дублирует стандартную встроенную. выйгрыша от нее никакого. даже если у вас винда смело следуйте совету. по крайней мере закомментируйте монстра и раскомментируйте те две строчки
-
- Former team member
- Сообщения: 4463
- Стаж: 20 лет 5 месяцев
- Поблагодарили: 1 раз
-
- phpBB 1.4.3
- Сообщения: 97
- Стаж: 20 лет 3 месяца
http://www.golfexpert.net/link.php?from=01&to=6quazi писал(а):create_date
функция которую я изменил в моде. она же (по-видимому) изменена вашим модом
то есть при наложении изменений перестают работать или один или оба. аналогия из жизни на один стул вдвоем не садятся. дайте ссылку на мод. я посмотрю и что-нибудь скажу
-
- Former team member
- Сообщения: 4463
- Стаж: 20 лет 5 месяцев
- Поблагодарили: 1 раз
quazi
Вчера не обратил на это внимания. Есть маленькая-маленькая проблема проблема: мод определяет вчера/сегодня не делая поправку на заданное в конфигурации (для гостей) и в профиле (для зарегистрированных пользователей). Он каким то образом сам выбирает летнее сейчас время или нет для GMT+3 не обращая внимания на то что задано в профиле и в конфигурации. Сие не есть хорошо.
Добавлено спустя 1 минуту 19 секунд:
Из-за этого наверное и возникла проблема с Users of the day по поводу
Это основываеться на том что аналогичная проблема всплыла с датой поста и вот регнул пользователя - тоже самое, сразу после отправки пишет что пост отправлен вчера. То есть если б он писал на главной странице текущее время используя мод, то у него бы получилось "Текущее время Вчера 23:30". Сия бага выплывает только летом в случае если GMT не переведено на летнее время и бажет это только с 00 часов 00 минут до 01 часов 00 минут по Москве летнее (для форума без перевода на летнее по москве это с 23:00 до 00:00).
Вчера не обратил на это внимания. Есть маленькая-маленькая проблема проблема: мод определяет вчера/сегодня не делая поправку на заданное в конфигурации (для гостей) и в профиле (для зарегистрированных пользователей). Он каким то образом сам выбирает летнее сейчас время или нет для GMT+3 не обращая внимания на то что задано в профиле и в конфигурации. Сие не есть хорошо.
Добавлено спустя 1 минуту 19 секунд:
Из-за этого наверное и возникла проблема с Users of the day по поводу
Добавлено спустя 9 минут 34 секунды:Просто какое-то странное сегодня (хоть оно и пытаеться быть сегодня): у одного пользователя, мод Today / Yesterday by Rumata пишет "Вчера".
Это основываеться на том что аналогичная проблема всплыла с датой поста и вот регнул пользователя - тоже самое, сразу после отправки пишет что пост отправлен вчера. То есть если б он писал на главной странице текущее время используя мод, то у него бы получилось "Текущее время Вчера 23:30". Сия бага выплывает только летом в случае если GMT не переведено на летнее время и бажет это только с 00 часов 00 минут до 01 часов 00 минут по Москве летнее (для форума без перевода на летнее по москве это с 23:00 до 00:00).