ООО ЭкоЮнит
FAQSearchMemberlistUsergroupsFilesLog inRegisterГлавная
printer-friendly view
 
AuthorMessage
Siava Gender:Male

Партнер


Joined: 25 Dec 2005
Show/Hide

Поручик, привет! Smile
Пытаюсь сейчас модифицировать Birthday от Neils'а, чтобы дату рождения можно было выбрать только при регистрации либо после регистрации, но только один раз, а после этого модифицировать нельзя бы было.. но что-то наткнулся на проблему, не пойму как к этому подобраться Embarassed
Я понимаю, что надо копать в usercp_register.php, но каким образом сделать условие не пойму Rolling Eyes

_________________
Siava.Ru
Back to topOffline View user's profile Visit poster's website
Sergey Gender:Male


Местный босс - администратор


Joined: 06 Jan 2005
Show/Hide

Siava, к сожалению не могу оказать помощь в полном объеме, но по-моему в моде от Terrafrost'a есть аналогичная фишка.
Ну уж с твоим опытом ты без труда разберешься.

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, скайп, слать емайлы, пытаться писать в приват. Спасибо за понимание. Please do not PM, ICQ, Skype or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
Back to topOffline View user's profile Visit poster's website Skype Name
Siava Gender:Male

Партнер


Joined: 25 Dec 2005
Show/Hide

Sergey, ладно, сам попробую, если получится, то код выложу Smile

(я не флужу, просто сообщение в форум отправилось раза с пятнадцатого, а как выяснилось потом их отправилось аж 2) Sad
Back to topOffline View user's profile Visit poster's website
Sergey Gender:Male


Местный босс - администратор


Joined: 06 Jan 2005
Show/Hide

Siava и другие, держите код. Как выяснилось при ближайщем рассмотрении, у мода от TerraFrost 'a есть такая фича. Я и решил не изобретать велосипед, а позаимствовать код у него, о чем честно написал в разделе Author Notes.

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

Code:

############################################################## 
## MOD Title: Birthday MOD by Niels - Disallow Date of Birth Changes add-on 
## MOD Author: Porutchik < garnitur356 [at] mail15.com > (Sergey) http://forum.aeroion.ru 
## MOD Description: Once entered, the date of birth cannot be changed, again.  Atleast when this option is selected.
##
## MOD Version: 1.0.1
## 
## Installation Level: Easy 
## Installation Time: ~10 Minutes 
## Files To Edit: (4)
##        admin/admin_board.php
##        includes/usercp_register.php
##        language/lang_english/lang_admin.php
##        templates/subSilver/admin/board_config_body.tpl
##
## Included Files: N/A
##
## License: http://opensource.org/licenses/gpl-license.php GNU General Public License v2 
############################################################## 
## For security purposes, please check: http://www.phpbb.com/mods/ 
## for the latest version of this MOD. Although MODs are checked 
## before being allowed in the MODs Database there is no guarantee 
## that there are no security problems within the MOD. No support 
## will be given for MODs not found within the MODs Database which 
## can be found at http://www.phpbb.com/mods/ 
############################################################## 
## Author Notes: 
## 
##    Install this one if you have the Birthday Mod by Niels
##    http://www.phpbbhacks.com/download/187
##
##     This add-on is based on the Birthdays mod by TerraFrost 
##     http://www.phpbb.com/phpBB/viewtopic.php?t=342028
##
##     I'd like to thank Siava for idea this ADD-ON
############################################################## 
## MOD History: 
##    
##    2006-11-21     - Version 1.0.1
##            - fixed: check date. Thanks to Siava.
##    2006-07-17     - Version 1.0.0
##            - Initial Release
## 
############################################################## 
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD 
############################################################## 

#
#-----[ SQL ]-------------------------------------------
#
INSERT INTO phpbb_config (config_name, config_value) VALUES ('birthday_lock',0);

#
#-----[ OPEN ]------------------------------------------------
#
admin/admin_board.php

#
#-----[ FIND ]------------------------------------------------
#
$birthday_required_no = ( !$new['birthday_required'] ) ? "checked=\"checked\"" : "";

#
#-----[ AFTER, ADD ]-----------------------------------
#
$birthday_lock_yes = ( $new['birthday_lock'] ) ? "checked=\"checked\"" : "";
$birthday_lock_no = ( !$new['birthday_lock'] ) ? "checked=\"checked\"" : "";

#
#-----[ FIND ]------------------------------------------------
#
    "L_BIRTHDAY_LOOKFORWARD_EXPLAIN" => $lang['Birthday_lookforward_explain'],

#
#-----[ AFTER, ADD ]-----------------------------------
#
    "L_BIRTHDAY_LOCK" => $lang['Birthday_lock'],
    "L_BIRTHDAY_LOCK_EXPLAIN" => $lang['Birthday_lock_explain'],

#
#-----[ FIND ]------------------------------------------------
#
    "BIRTHDAY_LOOKFORWARD" => $new['birthday_check_day'],

#
#-----[ AFTER, ADD ]-----------------------------------
#
    "BIRTHDAY_LOCK_YES" => $birthday_lock_yes,
    "BIRTHDAY_LOCK_NO" => $birthday_lock_no, 

#
#-----[ OPEN ]------------------------------------------
#
includes/usercp_register.php

#
#-----[ FIND ]------------------------------------------
#
        if (!checkdate($b_md,$b_day,$b_year))

#
#-----[ REPLACE WITH ]------------------------------------------
# Its ported from Birthdays by TerraFrost
#
        if (!checkdate($b_md,$b_day,$b_year) && (!$board_config['birthday_lock'] || $userdata['user_birthday'] == 999999))

#
#-----[ FIND ]------------------------------------------
# this is a partial match
#
            $sql = "UPDATE " . USERS_TABLE . "
                SET " . $username_sql . $passwd_sql

#
#-----[ BEFORE, ADD ]-----------------------------------
#
            $birthday = ( !$board_config['birthday_lock'] || $userdata['user_birthday'] == 999999 ) ? $birthday : $userdata['user_birthday'];

#
#-----[ FIND ]------------------------------------------------
#
    $s_b_year = '<span class="genmed">' . $lang['Year'] . ' </span><input type="text" class="post" style="width: 50px" name="b_year" size="4" maxlength="4" value="' . $b_year . '" />  '; 

#
#-----[ BEFORE, ADD ]-----------------------------------
#
    $s_birthday_lock = ($board_config['birthday_lock'] && $userdata['user_birthday'] != 999999) ? ' readonly' : '';

#
#-----[ IN-LINE FIND ]------------------------------------------------
#
name="b_year"

#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------------
#
' . $s_birthday_lock . ' 

#
#-----[ OPEN ]------------------------------------------
#
language/lang_english/lang_admin.php

#
#-----[ FIND ]------------------------------------------
# this is a partial match
#
$lang['Birthday_lookforward_explain'] = 

#
#-----[ AFTER, ADD ]-----------------------------------
#
$lang['Birthday_lock'] = 'Disallow Date of Birth Changes';
$lang['Birthday_lock_explain'] = 'Once entered, the date of birth cannot be changed, again.  Atleast when this option is selected.';

#
#-----[ OPEN ]------------------------------------------------
# Make sure to edit this file for every theme you use!
#
templates/subSilver/admin/board_config_body.tpl

#
#-----[ FIND ]------------------------------------------------
#
        <td class="row2"><input class="post" type="text" size="3" maxlength="3" name="birthday_check_day" value="{BIRTHDAY_LOOKFORWARD}" /></td>
    </tr>

#
#-----[ AFTER, ADD ]-----------------------------------
#
    <tr>
        <td class="row1">{L_BIRTHDAY_LOCK}<br /><span class="gensmall">{L_BIRTHDAY_LOCK_EXPLAIN}</span></td>
        <td class="row2"><input type="radio" name="birthday_lock" value="1" {BIRTHDAY_LOCK_YES} />{L_YES}   <input type="radio" name="birthday_lock" value="0" {BIRTHDAY_LOCK_NO} />{L_NO}</td>
    </tr>

#
#-----[ SAVE/CLOSE ALL FILES ]--------------------------
#
# EoM



Siava @ Sun 16 Jul, 2006 21:28 wrote: (View Post)
Show

Ну лан, извиняюсь, погорячился.

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, скайп, слать емайлы, пытаться писать в приват. Спасибо за понимание. Please do not PM, ICQ, Skype or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
Back to topOffline View user's profile Visit poster's website Skype Name
Siava Gender:Male

Партнер


Joined: 25 Dec 2005
Show/Hide

Sergey, Отлично работает! Smile

_________________
Siava.Ru
Back to topOffline View user's profile Visit poster's website
Siava Gender:Male

Партнер


Joined: 25 Dec 2005
Show/Hide

Нашлась ошибочка - для зареганных мод работает нормально, а для тех, кто регистрируется мод игнорировал проверку полей даты и месяца (их даже можно было не заполнять).

usercp_register.php

Фикс для инструкции:
Code:
# 
#-----[ FIND ]------------------------------------------ 
# 
        if (!checkdate($b_md,$b_day,$b_year)) 

# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 
        if ((!checkdate($b_md,$b_day,$b_year) && !$userdata['session_logged_in']) || (!checkdate($b_md,$b_day,$b_year) && !$board_config['birthday_lock'] && $userdata['session_logged_in']))



Фикс для установленного аддона:
Code:
# 
#-----[ FIND ]------------------------------------------ 
# 
        if (!checkdate($b_md,$b_day,$b_year) && !$board_config['birthday_lock']) 

# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 
        if ((!checkdate($b_md,$b_day,$b_year) && !$userdata['session_logged_in']) || (!checkdate($b_md,$b_day,$b_year) && !$board_config['birthday_lock'] && $userdata['session_logged_in']))

_________________
Siava.Ru
Back to topOffline View user's profile Visit poster's website
Sergey Gender:Male


Местный босс - администратор


Joined: 06 Jan 2005
Show/Hide

Siava, спасибо за фикс.
Siava @ Sat 18 Nov, 2006 04:11 wrote: (View Post)
Show


Но мод от Niels'a вроде как выдает ошибку, если дата рождения не указана, а указывать ее обязательно.

Code:

    if ($b_day || $b_md || $b_year) //if a birthday is submited, then validate it
    {
        ....................................
        // Check date, maximum / minimum user age
        if (!checkdate($b_md,$b_day,$b_year))
        {
        ....................................
        } else
        ....................................
    } else
    {
        if ($board_config['birthday_required'])
        {
            $error = TRUE;
            if( isset($error_msg) )$error_msg .= "<br />";
            $error_msg .= sprintf($lang['Birthday_require']);
        }
        $birthday = 999999;
    }

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, скайп, слать емайлы, пытаться писать в приват. Спасибо за понимание. Please do not PM, ICQ, Skype or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
Back to topOffline View user's profile Visit poster's website Skype Name
Siava Gender:Male

Партнер


Joined: 25 Dec 2005
Show/Hide

Sergey, странно, у меня всё работает нормально Rolling Eyes
Quote: Show

_________________
Siava.Ru
Back to topOffline View user's profile Visit poster's website
Sergey Gender:Male


Местный босс - администратор


Joined: 06 Jan 2005
Show/Hide

И все-таки условие проверки можно сделать проще, аналогично моду от TerraFrost'a.
Code:

#
#-----[ OPEN ]------------------
#
includes/usercp_register.php

#
#-----[ FIND ]------------------
# This fix is ported from Birthdays by TerraFrost
#
        if (!checkdate($b_md,$b_day,$b_year) && !$board_config['birthday_lock'])

#
#-----[ REPLACE WITH ]------------------------
#
        if (!checkdate($b_md,$b_day,$b_year) && (!$board_config['birthday_lock'] || $userdata['user_birthday'] == 999999))


Код адд-она пофиксен.

Offtopic:
Siava, сорри, ступил вчера после напряженного трудового дня. Embarassed Нашу разработку под 1C в одной конторе внедряли, весь день на одних сигаретах, сам понимаешь.

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, скайп, слать емайлы, пытаться писать в приват. Спасибо за понимание. Please do not PM, ICQ, Skype or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
Back to topOffline View user's profile Visit poster's website Skype Name
Display posts from previous:   

Summary Rating For >> Мод Birthday - запрет изменения даты
Average Rating: 0.00 :: Min Rating: 0 :: Max Rating: 0 :: Number of Ratings: 0
Choose Rating: 1   2   3   4   5  

Similar Topics
Topic Author Forum Replies Last Post
No new posts Адд-он Birthday list caching
кэширование списка именинников для мода Birthday MOD by Niels
Описание мода: Предназначен для ускорения генерации главной страницы форума при использовании Birthday MOD by Niels. Версия мода: 1.0.2 Сложность установки: Легко Время установки: ~5 минут Примечание автора: ВАЖНО! Перед
Sergey Поддержка и моды для phpBB2 35 Thu 24 Jan, 2019 19:58 View latest post
vlad77
No new posts Проблема с отправкой сообщений после изменения локали
Наконец-то дошли руки до неработающего автоцензора. Погуглила, нашла решение проблемы. Выставила правильную локаль, но возникла друга проблема. при отправке поста возникает ошибка: Code Error in updating the reputations
zizinana Поддержка и моды для phpBB2 12 Fri 11 Jul, 2014 09:57 View latest post
zizinana
No new posts [phpBB 3.0.8] Изменения в версии, связанные с веб-запросами к папке includes
Update regarding requests to includes/ directory http://www.phpbb.com/community/viewtopic.php?f=71&t=2111630 ---------------------------------------------- С выходом phpBB 3.0.8 появилась важная информация для
Sergey Поддержка и моды для phpBB3 0 Wed 24 Nov, 2010 18:41 View latest post
Sergey
No new posts Как в моде Birthdays by TerraFrost в профиле вместо даты вывести возраст.
Подскажите как в моде Birthdays by TerraFrost, в профиле вместо даты дня рождения вывести возраст или дату и возраст. Спасибо.
paha Поддержка и моды для phpBB2 1 Mon 16 Jun, 2008 07:12 View latest post
Sergey
This topic is locked: you cannot edit posts or make replies. Настройка формата времени и даты.
Привет! Я опять обращаюсь за помощью! У меня не работает формат даты и времени. DMd, YG:i - я задаю 30 Авг 2005 03:40 pm - он выводит. Почему?
romlex Поддержка и моды для phpBB2 2 Wed 31 Aug, 2005 11:42 View latest post
romlex






All times are UTC + 3 hours
Users browsing this topic:
Registered Users: None

Jump to:   
printer-friendly view
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum
/a
Username:

Password:

Log me on automatically each visit
  Яндекс.Метрика
CrackerTracker © 2004 - 2019 CBACK.de