а можно поконкретние?VVVas писал(а):не внесли изменения в языковые файлы
Мини-оптимизация Birthday Mod
-
- phpBB 1.4.2
- Сообщения: 74
- Стаж: 19 лет 3 месяца
-
- phpBB 1.4.2
- Сообщения: 74
- Стаж: 19 лет 3 месяца
Разобрался, просто нужно было еще в русский пакет внести изменения.
Для тех у кого ошибка с цифрой 26 была...
в файле viefprofile.php там где

Для тех у кого ошибка с цифрой 26 была...
в файле viefprofile.php там где
нужно добавлять после строчки#-----[ OPEN ]------------------------------------------
#
viewtopic.php
#
#-----[ FIND ]------------------------------------------
#
$poster_birthdate=realdate
#
#-----[ AFTER, ADD ]------------------------------------------
#
$n=0;
while ($n<26)
{
if ($poster_birthdate>=$zodiacdates[$n] && $poster_birthdate<=$zodiacdates[$n+1])
{
$zodiac = $lang[$zodiacs[($n/2)]];
$u_zodiac = $images[$zodiacs[($n/2)]];
$zodiac_img = '<img src="' . $u_zodiac . '" alt="' . $zodiac . '" title="' . $zodiac . '" align="top" border="0" />';
$n=26;
} else
{
$n=$n+2;
}
}
У меня тоже с этим маленькая проблемка была$poster_birthdate=realdate('md', $postrow[$i]['user_birthday']);

-
- phpBB 1.2.0
- Сообщения: 11
- Стаж: 20 лет 1 месяц
-
- phpBB 2.0.2
- Сообщения: 317
- Стаж: 19 лет 6 месяцев
- Откуда: Москва
-
- phpBB 1.2.0
- Сообщения: 11
- Стаж: 20 лет 1 месяц
-
- Former team member
- Сообщения: 4463
- Стаж: 20 лет 5 месяцев
- Поблагодарили: 1 раз
-
- Former team member
- Сообщения: 3942
- Стаж: 19 лет 11 месяцев
- Откуда: Оренбург (Южный Урал)
- Благодарил (а): 3 раза
Посмотрите birthdays by TerraFrost, там есть такая возможность.anobios писал(а):мне надо убрать лишь год из списка обязательных для заполнения.
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции
наш форум http://forum.aeroion.ru/cat1.html
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции
наш форум http://forum.aeroion.ru/cat1.html
-
- phpBB Guru
- Сообщения: 5484
- Стаж: 21 год 1 месяц
- Поблагодарили: 2 раза
Код: Выделить всё
## 2006-01-12 - Version 1.5.8
## - phpBB template & EasyMOD compliance enhancement
## - Modify 2 FIND instructions to be phpBB 2.0.18+ compliant
## - Include the sql queries in the MOD and remove the
## birthday_db_update.php file
## - Add DIY instructions to install other languages than English
## - Use the INCREMENT instruction to increment the
## whosonline.gif rowspan
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
-
- Поддержка
- Сообщения: 5426
- Стаж: 20 лет 3 месяца
- Откуда: Питер
- Благодарил (а): 177 раз
- Поблагодарили: 749 раз
Кеширование списка именинников на index.php:
1. Создать в каталоге cache подкаталог index и установить там chmod 777
2. Заменить кусок кода Birthday мода этим:
(здесь уже включены изменения, чтобы список будущих именинников был выстроен в порядке убывания)
Добавлено спустя 5 минут 36 секунд:
P.S.
это изменение мне ускорило генерацию главной страницы с 0.5с до 0.2с!!
Ещё одно дополнение, которое снижает нагрузку на сервер, правда работать оно будет только, если ваш сервер на основе *NIX систем:
в includes/functions.php
найти:
Заменить на:
1. Создать в каталоге cache подкаталог index и установить там chmod 777
2. Заменить кусок кода Birthday мода этим:
(здесь уже включены изменения, чтобы список будущих именинников был выстроен в порядке убывания)
Код: Выделить всё
// Birthday Mod, Show users with birthday
$cache_data_file = $phpbb_root_path."cache/index/birthday_". $board_config['board_timezone'] . ".dat";
if (@is_file($cache_data_file) && empty($SID))
{
$valid = (date('YzH',time(),0) - date('YzH',@filemtime($cache_data_file),0)<1) ? true : false;
} else
{
$valid = false;
}
if ($valid )
{
include ($cache_data_file);
$birthday_today_list = stripslashes($birthday_today_list);
$birthday_week_list = stripslashes($birthday_week_list);
} else
{
$sql = ($board_config['birthday_check_day']) ? "SELECT user_id, username, user_birthday,user_level FROM " . USERS_TABLE. " WHERE user_birthday!=999999 ORDER BY username" :"";
if($result = $db->sql_query($sql))
{
if (!empty($result))
{
$time_now = time();
$this_year = create_date('Y', $time_now, $board_config['board_timezone']);
$date_today = create_date('Ymd', $time_now, $board_config['board_timezone']);
$date_forward = create_date('Ymd', $time_now+($board_config['birthday_check_day']*86400), $board_config['board_timezone']);
while ($birthdayrow = $db->sql_fetchrow($result))
{
$user_birthday2 = $this_year.($user_birthday = realdate("md",$birthdayrow['user_birthday'] ));
if ( $user_birthday2 < $date_today ) $user_birthday2 += 10000;
if ( $user_birthday2 > $date_today && $user_birthday2 <= $date_forward )
{
// user are having birthday within the next days
$user_age = ( $this_year.$user_birthday < $date_today ) ? $this_year - realdate ('Y',$birthdayrow['user_birthday'])+1 : $this_year- realdate ('Y',$birthdayrow['user_birthday']);
switch ($birthdayrow['user_level'])
{
case ADMIN :
$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';break;
case MOD :
$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';break;
default: $style_color = '';
}
// $birthday_week_list .= ' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $birthdayrow['user_id']) . '"' . $style_color .'>' . $birthdayrow['username'] . ' ('.$user_age.')</a>,';
$birthday_week_list [$user_birthday2.uniqid("")]= ' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $birthdayrow['user_id']) . '"' . $style_color .'>' . $birthdayrow['username'] . ' ('.$user_age.')</a>,';
} else if ( $user_birthday2 == $date_today )
{
//user have birthday today
$user_age = $this_year - realdate ( 'Y',$birthdayrow['user_birthday'] );
switch ($birthdayrow['user_level'])
{
case ADMIN :
$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';break;
case MOD :
$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';break;
default: $style_color = '';
}
$birthday_today_list .= ' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $birthdayrow['user_id']) . '"' . $style_color .'>' . $birthdayrow['username'] . ' ('.$user_age.')</a>,';
}
}
@ksort($birthday_week_list);
$birthday_week_list = @implode ('', $birthday_week_list);
if ($birthday_today_list) $birthday_today_list[ strlen( $birthday_today_list)-1] = ' ';
if ($birthday_week_list) $birthday_week_list[ strlen( $birthday_week_list)-1] = ' ';
}
$db->sql_freeresult($result);
if (empty($SID))
{
// stores the data set in a cache file
$data = "<?php\n";
$data .='$birthday_today_list = \'' . addslashes($birthday_today_list) . ".';\n";
$data .='$birthday_week_list = \''.addslashes($birthday_week_list) . ".';\n?>";
$fp = fopen( $cache_data_file, "w" );
fwrite($fp, $data);
fclose($fp);
}
}
}
P.S.
это изменение мне ускорило генерацию главной страницы с 0.5с до 0.2с!!
Ещё одно дополнение, которое снижает нагрузку на сервер, правда работать оно будет только, если ваш сервер на основе *NIX систем:
в includes/functions.php
найти:
Код: Выделить всё
function realdate($date_syntax="Ymd",$date=0)
{
.....
}
Код: Выделить всё
function realdate($date_syntax="Ymd",$date=0)
{ return create_date($date_syntax,$date*86400+1,0); }
Последний раз редактировалось Siava 02.02.2006 23:46, всего редактировалось 1 раз.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb2.0.x 3.5.x)
Ты очистил кеш? © Sheer
https://siava.ru (phpbb
-
- Former team member
- Сообщения: 4463
- Стаж: 20 лет 5 месяцев
- Поблагодарили: 1 раз
нужноSiava писал(а):$birthday_week_list [$user_birthday.uniqid("")]
Код: Выделить всё
$birthday_week_list [$user_birthday2.uniqid("")]
-
- Поддержка
- Сообщения: 5426
- Стаж: 20 лет 3 месяца
- Откуда: Питер
- Благодарил (а): 177 раз
- Поблагодарили: 749 раз
VVVas
Исправил код
Спасиб.
Добавлено спустя 22 минуты 59 секунд:
Хотя обнаружился ошибка в работе
Новый день наступил, а список не обновился.. ушёл копать.
Исправил код

Добавлено спустя 22 минуты 59 секунд:
Хотя обнаружился ошибка в работе

Новый день наступил, а список не обновился.. ушёл копать.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb2.0.x 3.5.x)
Ты очистил кеш? © Sheer
https://siava.ru (phpbb
-
- Former team member
- Сообщения: 4463
- Стаж: 20 лет 5 месяцев
- Поблагодарили: 1 раз
-
- Former team member
- Сообщения: 3942
- Стаж: 19 лет 11 месяцев
- Откуда: Оренбург (Южный Урал)
- Благодарил (а): 3 раза
Siava, классно придумал!
ТОлько на это
форум ругнулся bad argument
заменил этим
а это
заменил этим
Иначе выводит
Именинники сегодня: .
Если список именинников пуст.
Пойти, что-ли TerraFrost'u предложить твою идею. Сейчас оформлю для его мода.
ТОлько на это
Код: Выделить всё
$valid = (date('YzH',time(),0) - date('YzH',@filemtime($cache_data_file),0)<1) ? true : false;
заменил этим
Код: Выделить всё
$valid = (date('YzH',time()) - date('YzH',@filemtime($cache_data_file))<1) ? true : false;
а это
Код: Выделить всё
$data .='$birthday_today_list = \'' . addslashes($birthday_today_list) . ".';\n";
$data .='$birthday_week_list = \''.addslashes($birthday_week_list) . ".';\n?>";
Код: Выделить всё
$data .='$birthday_today_list = \'' . addslashes($birthday_today_list) . "';\n";
$data .='$birthday_week_list = \''.addslashes($birthday_week_list) . "';\n?>";
Именинники сегодня: .
Если список именинников пуст.
Пойти, что-ли TerraFrost'u предложить твою идею. Сейчас оформлю для его мода.
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции
наш форум http://forum.aeroion.ru/cat1.html
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции
наш форум http://forum.aeroion.ru/cat1.html