Today At/Yesterday At

Здесь авторы постили бета-версии своих модификаций для phpBB 2.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
quazi
phpBB 2.0.2
Сообщения: 306
Зарегистрирован: 15.03.2005 18:49
Контактная информация:

Сообщение quazi » 15.07.2005 16:20

вы ставите новый мод поверх этого. и меняете логику функции create_date, которая уже изменена этим модом

Аватара пользователя
baldahin
phpBB 1.4.3
Сообщения: 97
Зарегистрирован: 13.01.2005 7:26

Сообщение baldahin » 15.07.2005 17:14

quazi, не совсем понял. а как собственно поменять логику функции create_date, если она уже изменена сабжем?

quazi
phpBB 2.0.2
Сообщения: 306
Зарегистрирован: 15.03.2005 18:49
Контактная информация:

Сообщение quazi » 15.07.2005 17:29

create_date
функция которую я изменил в моде. она же (по-видимому) изменена вашим модом

то есть при наложении изменений перестают работать или один или оба. аналогия из жизни на один стул вдвоем не садятся. дайте ссылку на мод. я посмотрю и что-нибудь скажу

Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Зарегистрирован: 16.01.2005 13:04
Откуда: Novosibirsk,RU
Контактная информация:

Сообщение [R: R@m$e$ :U] » 15.07.2005 18:32

baldahin
это совмещаемо... =) имхо, если посмотреть чуть внимательней... проблем не будет...
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y

Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Зарегистрирован: 12.11.2004 0:20
Поблагодарили: 13 раз
Контактная информация:

Сообщение VVVas » 16.07.2005 2:34

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';
Как это понять, перевести на русский, и для чего используеться?
я люблю daft punk | новый sugoi.ru

quazi
phpBB 2.0.2
Сообщения: 306
Зарегистрирован: 15.03.2005 18:49
Контактная информация:

Сообщение quazi » 16.07.2005 2:47

1. не принципиально, хотя более аккуратно
2. Obscured by darkness == Покрыто мраком.
но лучше более нейтрально - Unknown.
VVVas писал(а):для чего используеться
на случай, если время, передаваемое в функцию - пустое. редкий, практически невозможный случай, но если подобное произойдет - на форуме будет показано некорректное время, что-то в районе 1 янв 1970 года. что не есть хорошо, поэтому - лучше показать некую фразу.

единственный случай, когда это может появиться, при выводе времени последнего визита загеристрированного, но неактивированного пользователя (его последний визит равен нулю)

Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Зарегистрирован: 12.11.2004 0:20
Поблагодарили: 13 раз
Контактная информация:

Сообщение VVVas » 16.07.2005 3:15

Только вот не живет с BirthDayHack - теперь при просмотре темы в качестве возраста показывает год рождения со знаком минус и на главной не отображаються именинники. Прочел тему и сделал.
Поправить надо следующее.

Код: Выделить всё

#----[ 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
я люблю daft punk | новый sugoi.ru

quazi
phpBB 2.0.2
Сообщения: 306
Зарегистрирован: 15.03.2005 18:49
Контактная информация:

Сообщение quazi » 16.07.2005 3:41

VVVas писал(а):Нужно ли её правит и на что это влияет?
а что на это говорит эксперимент? если честно, Birthday мод мне не интересен и я его видел один только раз. я тут уже просил показать сомнительные строки из мода, но желателен также контекст в котором эти строки вызывают сомнение

Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Зарегистрирован: 12.11.2004 0:20
Поблагодарили: 13 раз
Контактная информация:

Сообщение VVVas » 16.07.2005 3:47

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 секунд:

А вообще спасибо за мод.
я люблю daft punk | новый sugoi.ru

quazi
phpBB 2.0.2
Сообщения: 306
Зарегистрирован: 15.03.2005 18:49
Контактная информация:

Сообщение quazi » 16.07.2005 4:02

вообще это кривая функция realdate. она не решает проблему отрицательных дат (до 1 янв 1970) и переполнения (после 2000 какого-то). поэтому можно последовать совету автора (как на юникс так и виндоус машинах)

Код: Выделить всё

function realdate($date_syntax="Ymd",$date=0)
{
        return create_date($date_syntax,$date*86400+1,0);
}

Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Зарегистрирован: 12.11.2004 0:20
Поблагодарили: 13 раз
Контактная информация:

Сообщение VVVas » 16.07.2005 4:08

quazi
А можно про совет подробнее и желательно на русском, а то я совсем что-то не понял что написано, извините но учил я только французский.
я люблю daft punk | новый sugoi.ru

quazi
phpBB 2.0.2
Сообщения: 306
Зарегистрирован: 15.03.2005 18:49
Контактная информация:

Сообщение quazi » 16.07.2005 4:13

UNIX users should replace this function with the below code, since this should be faster
не совсем точно, но корректно
пользователям UNIX желательно заменить эту функцию на следующий код, так как он гораздо быстрее

вообще странный автор того мода - написал монстрообразную функцию, которая дублирует стандартную встроенную. выйгрыша от нее никакого. даже если у вас винда смело следуйте совету. по крайней мере закомментируйте монстра и раскомментируйте те две строчки

Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Зарегистрирован: 12.11.2004 0:20
Поблагодарили: 13 раз
Контактная информация:

Сообщение VVVas » 16.07.2005 4:15

quazi писал(а):по крайней мере закомментируйте монстра и раскомментируйте те две строчки
Понятно, спасибо.
я люблю daft punk | новый sugoi.ru

Аватара пользователя
baldahin
phpBB 1.4.3
Сообщения: 97
Зарегистрирован: 13.01.2005 7:26

Сообщение baldahin » 16.07.2005 11:03

quazi писал(а):create_date
функция которую я изменил в моде. она же (по-видимому) изменена вашим модом

то есть при наложении изменений перестают работать или один или оба. аналогия из жизни на один стул вдвоем не садятся. дайте ссылку на мод. я посмотрю и что-нибудь скажу
http://www.golfexpert.net/link.php?from=01&to=6

Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Зарегистрирован: 12.11.2004 0:20
Поблагодарили: 13 раз
Контактная информация:

Сообщение VVVas » 17.07.2005 1:06

quazi
Вчера не обратил на это внимания. Есть маленькая-маленькая проблема проблема: мод определяет вчера/сегодня не делая поправку на заданное в конфигурации (для гостей) и в профиле (для зарегистрированных пользователей). Он каким то образом сам выбирает летнее сейчас время или нет для GMT+3 не обращая внимания на то что задано в профиле и в конфигурации. Сие не есть хорошо.

Добавлено спустя 1 минуту 19 секунд:

Из-за этого наверное и возникла проблема с Users of the day по поводу
Просто какое-то странное сегодня (хоть оно и пытаеться быть сегодня): у одного пользователя, мод Today / Yesterday by Rumata пишет "Вчера".
Добавлено спустя 9 минут 34 секунды:

Это основываеться на том что аналогичная проблема всплыла с датой поста и вот регнул пользователя - тоже самое, сразу после отправки пишет что пост отправлен вчера. То есть если б он писал на главной странице текущее время используя мод, то у него бы получилось "Текущее время Вчера 23:30". Сия бага выплывает только летом в случае если GMT не переведено на летнее время и бажет это только с 00 часов 00 минут до 01 часов 00 минут по Москве летнее (для форума без перевода на летнее по москве это с 23:00 до 00:00).
я люблю daft punk | новый sugoi.ru

Закрыто

Вернуться в «Бета-версии модов для phpBB 2.0.x»