Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Мини-оптимизация Birthday Mod

Ответы на вопросы, связанные с модами для phpBB 2.0.x, кроме относящихся к форуму Для авторов (phpBB 2.0.x).
Splurov
phpBB 1.4.4
Сообщения: 138
Стаж: 19 лет 4 месяца
Откуда: Россия, Москва
Контактная информация:

Мини-оптимизация Birthday Mod

Сообщение Splurov »

У себя использую нижеприведённую оптимизацию Birthday Mod.
Принцип и суть ясна из кода.
Буду рад любым предложениям/исправлениям.

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

// Актуально только для тех, у кого установлен Birthday Mod!
OPEN index.php
FIND
$sql = ($board_config['birthday_check_day'])
BEFORE, ADD
$fname= date('d-m-y').'.dat';
if (!file_exists($fname)) {
FIND
		if ($birthday_today_list) $birthday_today_list[ strlen( $birthday_today_list)-1] = ' ';
		if ($birthday_week_list) $birthday_week_list[ strlen( $birthday_week_list)-1] = ' ';
	}
AFTER, ADD
	$oldfname= date('d-m-y', mktime(0, 0, 0, date("m"), date("d")-1, date("Y"))).'.dat';
	if (file_exists($oldfname)) unlink($oldfname);
	$fp= @fopen($fname,'w');
	$data= serialize(array($birthday_today_list,$birthday_week_list));
	fwrite ($fp, $data);
	fclose ($fp);
FIND
	$db->sql_freeresult($result);
}
AFTER, ADD
}
else {
	$data= unserialize(file_get_contents($fname));
	$birthday_today_list=$data[0];
	$birthday_week_list=$data[1];
}

OPEN profile.php
FIND
	else if ( $mode == 'editprofile' || $mode == 'register' )
	{
AFTER, ADD
		unlink(date('d-m-y').'.dat');

OPEN admin/admin_users.php
FIND
	//
	// Ok, the profile has been modified and submitted, let's update
	//
	if ( ( $mode == 'save' && isset( $HTTP_POST_VARS['submit'] ) ) || isset( $HTTP_POST_VARS['avatargallery'] ) || isset( $HTTP_POST_VARS['submitavatar'] ) || isset( $HTTP_POST_VARS['cancelavatar'] ) )
	{
AFTER, ADD
		unlink('../'.date('d-m-y').'.dat');
Мог, ессно, где-то описаться, или что-то не учесть - поправляйте ;-)

Скачать с phpbbGuru

Drupal refresh
Аватара пользователя
macar
phpBB 1.2.1
Сообщения: 22
Стаж: 19 лет
Откуда: Красногорск М.О
Контактная информация:

Сообщение macar »

Поставил мод дней рождения, работает, но почему то в профиле и при регистрации выводит два блока подряд, как это поправить?
Хочу на пенсию :)
http://mondeoclub.ru
Аватара пользователя
Romiyo
Неадекватен
Сообщения: 603
Стаж: 19 лет 3 месяца
Откуда: tln.ee
Контактная информация:

Сообщение Romiyo »

Вы продублировали этот кусок. Уберите

<td class="row2"><span class="gen">{S_BIRTHDAY}</span></td>

из
templates/subSilver/profile_add_body.tpl
templates/subSilver/profile_view_body.tpl
Неадекватен
Аватара пользователя
macar
phpBB 1.2.1
Сообщения: 22
Стаж: 19 лет
Откуда: Красногорск М.О
Контактная информация:

Сообщение macar »

Нет, если я убираю то пустая ячейка. :(
Хочу на пенсию :)
http://mondeoclub.ru
Аватара пользователя
Romiyo
Неадекватен
Сообщения: 603
Стаж: 19 лет 3 месяца
Откуда: tln.ee
Контактная информация:

Сообщение Romiyo »

в вышеуказанной строке у вас сколько вот таких вот {S_BIRTHDAY}? Думаю, две. ... Одну убираем.
Неадекватен
Аватара пользователя
macar
phpBB 1.2.1
Сообщения: 22
Стаж: 19 лет
Откуда: Красногорск М.О
Контактная информация:

Сообщение macar »

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

<tr>
<td class="row1"><span class="gen">{L_BIRTHDAY}:{BIRTHDAY_REQUIRED}</span></td>
<td class="row2"><span class="gen">{S_BIRTHDAY}</span></td>
</tr>
Хочу на пенсию :)
http://mondeoclub.ru
Аватара пользователя
macar
phpBB 1.2.1
Сообщения: 22
Стаж: 19 лет
Откуда: Красногорск М.О
Контактная информация:

Сообщение macar »

BorMan
Я привел код из шаблонов, он только выводит тот что ему сказано остального кода много, там редактируется с десяток файлов,
по конкретней можно какой, я тоже предполагаю что генерится дважды, где это происходит? я пробовал вчера искать, но то ли уже сил не было, то ли с головой был не порядок, не нашел.
Хочу на пенсию :)
http://mondeoclub.ru
Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Стаж: 18 лет 10 месяцев
Откуда: Оренбург (Южный Урал)
Благодарил (а): 24 раза
Поблагодарили: 54 раза
Контактная информация:

Сообщение Поручик »

вот этот кусок все портит (выдрал из мода)

$s_birthday = '';
for ($i=0; $i<=strlen($lang['Submit_date_format']); $i++)
{
switch ($lang['Submit_date_format'][$i])
{
case d: $s_birthday .= $s_b_day;break;
case m: $s_birthday .= $s_b_md;break;
case Y: $s_birthday .= $s_b_year;break;
}
}

заменить его, если по тупому, этим
$s_birthday =$s_b_day.$s_b_md.$s_b_year;

и все будет хоккей
так и у себя сделал

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

зы файлы
includes/usercp_register.php
admin/admin_users.php
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html
Аватара пользователя
Гога
phpBB 2.0.0
Сообщения: 220
Стаж: 18 лет 10 месяцев
Откуда: Архангельск
Контактная информация:

Сообщение Гога »

Правда, что
} //Sorry user shall not have a greeting this year
Т. е. в год установки мода фиг, а не поздравления? :roll: Как исправить?
Или я чего не понял?
Гугл рулит. Я люблю ЛОР.
Интересно, они пришли с миром или им таки нужен наш моск?
Знания принадлежат всему человечеству.
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 19 лет 4 месяца
Поблагодарили: 13 раз
Контактная информация:

Сообщение VVVas »

У меня вот всё нормально вылетело, только ругнулось
sprintf(): Too few arguments in
на 23 строку файла birthday_popup.php

Может кто подскажет где я дурак?
я люблю daft punk | новый sugoi.ru
Anonymous

Сообщение Anonymous »

При регистрации на мыло высылается письмо о подтверждении регистрации, но аккаунт становится сразу активным.

Один из последних поставленных модов - Birthday. Где я мог ошибиться?
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 19 лет 2 месяца
Откуда: Novosibirsk,RU
Контактная информация:

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

trace
позволь угадать?
есть две строки в includes/usercp_register.php начинающиеся так...

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

			$sql = "INSERT INTO " . USERS_TABLE . "	(user_id, username
				VALUES ($user_id, '" . str_replace("\'", "''", $username) . "', 
конец после установки birthday должен быть вроде такого...

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

, user_birthday, user_next_birthday_greeting, user_active, user_actkey)
, '$birthday', '$next_birthday_greeting', ";
но ни как не иначе... а ведь Niels перед установкой этого мода предупредил, что здесь чаще всего ошибки делают... ведь глядя на то, что код получается вида

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

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

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

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

Сообщение Anonymous »

Подскажите, что-же мне делать конкретно дальше?
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 19 лет 2 месяца
Откуда: Novosibirsk,RU
Контактная информация:

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

trace
например....
есть две строки в includes/usercp_register.php начинающиеся так...

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

         $sql = "INSERT INTO " . USERS_TABLE . "   (user_id, username 
            VALUES ($user_id, '" . str_replace("\'", "''", $username) . "',
выложи сюда...
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

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

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Аватара пользователя
MiTrI
phpBB 1.4.2
Сообщения: 67
Стаж: 19 лет 3 месяца
Откуда: Spb
Контактная информация:

Сообщение MiTrI »

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

#
#-----[ FIND ]------------------------------------------------
#
'OCCUPATION' =>
'INTERESTS' =>

#
#-----[ AFTER, ADD ]------------------------------------------
#

// Start add - Birthday MOD
		'S_BIRTHDAY' => $s_birthday,
		'BIRTHDAY_REQUIRED' => ($board_config['birthday_required']) ? '*' : '',
// End add - Birthday MOD
Так все таки после чего ставить

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

// Start add - Birthday MOD
		'S_BIRTHDAY' => $s_birthday,
		'BIRTHDAY_REQUIRED' => ($board_config['birthday_required']) ? '*' : '',
// End add - Birthday MOD
после 'OCCUPATION' => или 'INTERESTS' =>
Или все таки нужно ставить после
'LOCATION' => $location,

я прост не пойму после => или после $location, ???

Форцм плюется ошибками =/
Cold silence has a tendency to atrophy any sense of compassion...
Закрыто

Вернуться в «Поддержка модов для phpBB 2.0.x»