1. рдкрд░рд┐рдЪрдп
рдпрд╣ рдХреНрдпрд╛ рд╣реИ
рдЯреНрд░реИрдк рд╕рд┐рд╕реНрдЯрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдореЙрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ phpBB рдХреЛрдб рдореЗрдВ рдЬрд╛рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдпрд╛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
PhpBB рдлрд╝рдВрдХреНрд╢рди рдЖрдк рдХреЗ рд╕рд╛рде рдЬрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
PhpBB рдореЗрдВ 4 рдХрд╛рд░реНрдп рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЕрдкрдиреЗ рдЬрд╛рд▓ рд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
phpbb_user_session_handler () - рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕рддреНрд░ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ :: рд╕реЗрдЯрдЕрдк рдХреЗ рдЕрдВрджрд░;
append_sid ($ url, $ params = false, $ is_amp = true, $ session_id = false) - рд▓рд┐рдВрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдПрдХ рд╕рддреНрд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЬреЛрдбрд╝реЗрдВ);
$ рдЯреЗрдореНрдкреНрд▓реЗрдЯ-> рдкреНрд░рджрд░реНрд╢рди ($ рд╕рдВрднрд╛рд▓, $ рд╢рд╛рдорд┐рд▓_рд╕рд╛рдВрд╕ = рд╕рддреНрдп) - рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЕрднреА рддрдХ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ) рдЯреЗрдореНрдкрд▓реЗрдЯ;
exit_handler () - phpBB3 рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╣реБрдд рдЕрдВрдд рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ: $ рдЯреЗрдореНрдкрд▓реЗрдЯ-> рдбрд┐рд╕реНрдкреНрд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЬрд╛рд▓ $ рдЯреЗрдореНрдкрд▓реЗрдЯ ($ рдЯреЗрдореНрдкрд▓реЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рд╕рдВрджрд░реНрдн) рдХрд╛ рддреАрд╕рд░рд╛ рддрд░реНрдХ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡реИрд╢реНрд╡рд┐рдХ рдХреЗ рдмрдЬрд╛рдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдпрджрд┐ рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде phpBB3 рдХреЛ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ:
PHPBB_MSG_HANDLER (рд╕рдВрджреЗрд╢ рд╕рдВрдЪрд╛рд▓рдХ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░реЗрдВ);
PHPBB_DB_NEW_LINK (
sql_connect рдХреЗ рд▓рд┐рдП new_link рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░реЗрдВ);
PHPBB_ROOT_PATH ($ phpbb_root_path рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░реЗрдВ);
PHPBB_ADMIN_PATH ($ phpbb_admin_path рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░реЗрдВ);
PHPBB_USE_BOARD_URL_PATH ($ phpbb_root_path рдХреЗ рдмрдЬрд╛рдп рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП
Gener_board_url рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ)ред
рдпрджрд┐ рдирд┐рд░рдВрддрд░
PHPBB_USE_BOARD_URL_PATH рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рд╣реИ, рддреЛ phpBB рд╕рднреА рдЕрдкрд▓реЛрдб рдХреА рдЧрдИ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП (рдЬреЛ рд╢рд╛рдорд┐рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрде рдХреЗ рд╕рд╛рде рдордВрдЪ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рджреЗрддрд╛ рд╣реИ)
рдЙрддреНрдкрдиреНрди_рдмреЛрд░реНрдб_url () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕реНрдерд┐рд░рд╛рдВрдХ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╣реИ:
/includes/session.php - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ :: img ()
/includes/functions_content.php - smiley_text ()
рдпрд╣ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЪрд░ рдореЗрдВ рдкрде рднреА рдмрджрд▓ рджреЗрдЧрд╛:
{T_THEME_PATH} - рд╢реИрд▓рд┐рдпрд╛рдБ / xxx / рд╡рд┐рд╖рдп
{T_TEMPLATE_PATH} - рд╢реИрд▓рд┐рдпрд╛рдБ / xxx / рдЯреЗрдореНрдкреНрд▓реЗрдЯ
{T_SUPER_TEMPLATE_PATH} - рд╢реИрд▓рд┐рдпрд╛рдБ / xxx / рдЯреЗрдореНрдкрд▓реЗрдЯ
{T_IMAGESET_PATH} - рд╢реИрд▓рд┐рдпрд╛рдБ / xxx / рдкреНрд░рддрд┐рдорд╛
{T_IMAGESET_LANG_PATH} - рд╢реИрд▓рд┐рдпрд╛рдБ / xxx / imageset / yy
{T_IMAGES_PATH} - рдЪрд┐рддреНрд░ /
{T_SMILIES_PATH} - $ config ['smilies_path'] /
{T_AVATAR_PATH} - $ config ['рдЕрд╡рддрд╛рд░_рдкрде'] /
{T_AVATAR_GALLERY_PATH} - $ config ['avatar_gallery_path'] /
{T_ICONS_PATH} - $ config ['icons_path'] /
{T_RANKS_PATH} - $ config ['рд░реИрдВрдХ_рдкрде'] /]
{T_UPLOAD_PATH} - $ config ['upload_path'] /
{T_STYLESHEET_LINK} - рд╢реИрд▓рд┐рдпрд╛рдБ / xxx / рд╡рд┐рд╖рдп / styleheet.css (рдпрд╛ рд╕реНрдЯрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХред рдЕрдЧрд░ рд╕реАрдПрд╕рдПрд╕ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ)
рдирдпрд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЪрд░ {BOARD_URL} рдореЗрдВ рдмреЛрд░реНрдб url + рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрде рд╣реИред
2. рд╣рдо рд╡рд░реНрдЧ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдЬрд╛рд▓ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ
рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ phpBB3 рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЬрд╛рд▓ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЬрд╛рд▓ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд░реБрдЪрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдХреЛрдб рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдЬрд╛рд▓ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА ...
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдХреЛрдб рдХреЛ рдХреИрд╕реЗ рдПрдореНрдмреЗрдб рдХрд░рдирд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЬрд╛рд▓ рдХреЛ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:
function my_own_function ( $my_first_parameter , $my_second_parameter ) { global $phpbb_hook ; if ( $phpbb_hook -> call_hook ( __FUNCTION__ , $my_first_parameter , $my_second_parameter ) ) { if ( $phpbb_hook -> hook_return ( __FUNCTION__ ) ) { return $phpbb_hook -> hook_return_result ( __FUNCTION__ ) ; } } [ ] }
function my_own_function ( $my_first_parameter , $my_second_parameter ) { global $phpbb_hook ; if ( $phpbb_hook -> call_hook ( __FUNCTION__ , $my_first_parameter , $my_second_parameter ) ) { if ( $phpbb_hook -> hook_return ( __FUNCTION__ ) ) { return $phpbb_hook -> hook_return_result ( __FUNCTION__ ) ; } } [ ] }
function my_own_function ( $my_first_parameter , $my_second_parameter ) { global $phpbb_hook ; if ( $phpbb_hook -> call_hook ( __FUNCTION__ , $my_first_parameter , $my_second_parameter ) ) { if ( $phpbb_hook -> hook_return ( __FUNCTION__ ) ) { return $phpbb_hook -> hook_return_result ( __FUNCTION__ ) ; } } [ ] }
function my_own_function ( $my_first_parameter , $my_second_parameter ) { global $phpbb_hook ; if ( $phpbb_hook -> call_hook ( __FUNCTION__ , $my_first_parameter , $my_second_parameter ) ) { if ( $phpbb_hook -> hook_return ( __FUNCTION__ ) ) { return $phpbb_hook -> hook_return_result ( __FUNCTION__ ) ; } } [ ] }
function my_own_function ( $my_first_parameter , $my_second_parameter ) { global $phpbb_hook ; if ( $phpbb_hook -> call_hook ( __FUNCTION__ , $my_first_parameter , $my_second_parameter ) ) { if ( $phpbb_hook -> hook_return ( __FUNCTION__ ) ) { return $phpbb_hook -> hook_return_result ( __FUNCTION__ ) ; } } [ ] }
function my_own_function ( $my_first_parameter , $my_second_parameter ) { global $phpbb_hook ; if ( $phpbb_hook -> call_hook ( __FUNCTION__ , $my_first_parameter , $my_second_parameter ) ) { if ( $phpbb_hook -> hook_return ( __FUNCTION__ ) ) { return $phpbb_hook -> hook_return_result ( __FUNCTION__ ) ; } } [ ] }
function my_own_function ( $my_first_parameter , $my_second_parameter ) { global $phpbb_hook ; if ( $phpbb_hook -> call_hook ( __FUNCTION__ , $my_first_parameter , $my_second_parameter ) ) { if ( $phpbb_hook -> hook_return ( __FUNCTION__ ) ) { return $phpbb_hook -> hook_return_result ( __FUNCTION__ ) ; } } [ ] }
function my_own_function ( $my_first_parameter , $my_second_parameter ) { global $phpbb_hook ; if ( $phpbb_hook -> call_hook ( __FUNCTION__ , $my_first_parameter , $my_second_parameter ) ) { if ( $phpbb_hook -> hook_return ( __FUNCTION__ ) ) { return $phpbb_hook -> hook_return_result ( __FUNCTION__ ) ; } } [ ] }
function my_own_function ( $my_first_parameter , $my_second_parameter ) { global $phpbb_hook ; if ( $phpbb_hook -> call_hook ( __FUNCTION__ , $my_first_parameter , $my_second_parameter ) ) { if ( $phpbb_hook -> hook_return ( __FUNCTION__ ) ) { return $phpbb_hook -> hook_return_result ( __FUNCTION__ ) ; } } [ ] }
function my_own_function ( $my_first_parameter , $my_second_parameter ) { global $phpbb_hook ; if ( $phpbb_hook -> call_hook ( __FUNCTION__ , $my_first_parameter , $my_second_parameter ) ) { if ( $phpbb_hook -> hook_return ( __FUNCTION__ ) ) { return $phpbb_hook -> hook_return_result ( __FUNCTION__ ) ; } } [ ] }
function my_own_function ( $my_first_parameter , $my_second_parameter ) { global $phpbb_hook ; if ( $phpbb_hook -> call_hook ( __FUNCTION__ , $my_first_parameter , $my_second_parameter ) ) { if ( $phpbb_hook -> hook_return ( __FUNCTION__ ) ) { return $phpbb_hook -> hook_return_result ( __FUNCTION__ ) ; } } [ ] }
function my_own_function ( $my_first_parameter , $my_second_parameter ) { global $phpbb_hook ; if ( $phpbb_hook -> call_hook ( __FUNCTION__ , $my_first_parameter , $my_second_parameter ) ) { if ( $phpbb_hook -> hook_return ( __FUNCTION__ ) ) { return $phpbb_hook -> hook_return_result ( __FUNCTION__ ) ; } } [ ] }
рдКрдкрд░, call_hook рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╣рдореЗрд╢рд╛ рдЖрдкрдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдФрд░ рдпрд╣ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рд╡рд░реНрдЧ рд╡рд┐рдзрд┐ рдЕрд╡рд░реЛрдзрди рдЬрд╛рд▓ рдХреИрд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ ...
- рд╡рд░реНрдЧ my_hookable_object
- {
- рдлрд╝рдВрдХреНрд╢рди рд╣реБрдХ_рдореЗ ( $ my_first_parameter , $ my_second_parameter )
- {
- рд╡реИрд╢реНрд╡рд┐рдХ $ phpbb_hook ;
- рдЕрдЧрд░ ( $ phpbb_hook -> call_hook ( рд╕рд░рдгреА ( __CLASS__ , __FUNCTION__ ) , $ my_first_parameter , $ my_second_parameter )
- {
- рдЕрдЧрд░ ( $ phpbb_hook -> hook_return ( рд╕рд░рдгреА ( __CLASS__ , __FUNCTION__ ) ) )
- {
- $ $ phpbb_hook -> hook_return_result ( рд╕рд░рдгреА ( __CLASS__ , __FUNCTION__ ) ) ;
- }
- }
- [ рдпрд╣рд╛рдБ рдЖрдкрдХрд╛ рдХреЛрдб рд╣реИ ]
- }
- }
рдпрд╣рд╛рдВ рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдХреИрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреЗрд╡рд▓ __FUNCTION__ рд╕реНрдерд┐рд░ рд╣реИ, рдФрд░ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП, рд╕рд░рдгреА рд╕рд░рдгреА (__ CLASS__, __FUNCTION__)ред PHP4 рдореЗрдВ, __CLASS__ рд╕реНрдерд┐рд░рд╛рдВрдХ рд╣рдореЗрд╢рд╛ рд▓реЛрдЕрд░рдХреЗрд╕ рдореЗрдВ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рджреЗрддрд╛ рд╣реИред
рдЕрдм, phpBB рдореЗрдВ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╣реИрдВ рдЬреЛ рдЬрд╛рд▓ рдХреЛ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдЙрдкрд▓рдмреНрдз рдХрд░реЗрдВ (рдФрд░ рдЗрд╕рд▓рд┐рдП рджреВрд╕рд░реЛрдВ рдХреЛ рдЙрдиреНрд╣реЗрдВ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ)? рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ
add_hook () рд╡рд┐рдзрд┐ рд╣реИ:
- // рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝реЗрдВ, рдЬреЛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
- // рдЬрд╛рд▓ рдХреЛ рдкрдХрдбрд╝рдирд╛
- $ phpbb_hook -> add_hook ( 'my_own_function' ) ;
- // рдЕрдкрдиреА рдЦреБрдж рдХреА рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ, рдЬреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
- // рдЬрд╛рд▓ рдХреЛ рдкрдХрдбрд╝рдирд╛
- $ phpbb_hook -> add_hook ( рд╕рд░рдгреА ( 'my_hookable_object' , 'hook_me' ) ) ;
рдЖрдк
$ phpbb_hook-> remove_hook () рдХреЛ рдПрдХ рд╣реА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде add_hook () рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓ рдХрд░рдХреЗ рдлрд╝рдВрдХреНрд╢рди / рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдЬрд╛рд▓ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рднреА рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреБрдЫ рдЬрд╛рд▓ рдХреЛ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПред
3. рдЯреНрд░реИрдк рд▓реЙрдЧрд┐рдВрдЧ
рдЕрдм рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ append_sid () рдлрд╝рдВрдХреНрд╢рди рд▓реЗрддреЗ рд╣реИрдВ (рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЬрд╛рд▓ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ) рдФрд░ рджреЛ рдХрдХреНрд╖рд╛рдПрдВ рдФрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдПрдВ:
- рд╡рд░реНрдЧ my_append_sid_class {
- // рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп
- рдлрд╝рдВрдХреНрд╢рди my_append_sid ( рдФрд░ $ рд╣реБрдХ , $ url , $ params = false , $ is_amp = true , $ session_id = false ) {
- // рдкрд┐рдЫрд▓реЗ рдЬрд╛рд▓ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
- $ рдкрд░рд┐рдгрд╛рдо = $ рд╣реБрдХ -> рдкрд┐рдЫрд▓рд╛_рд╣реВрдХ_рд▓реНрдЯрд▓ ( 'рдПрдкреЗрдВрдб_рд╕рд┐рдб' ) ;
- $ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рдПрдБ [ 'рдкрд░рд┐рдгрд╛рдо' ] ред '<br /> рдФрд░ рдореИрдВ рджреВрд╕рд░рд╛ рдерд╛ред' ;
- }
- }
- // рдПрдХ рдФрд░ рд╡рд░реНрдЧ
- рд╡рд░реНрдЧ my_second_append_sid_class {
- рдлрд╝рдВрдХреНрд╢рди my_append_sid ( рдФрд░ $ рд╣реБрдХ , $ url , $ params = false , $ is_amp = true , $ session_id = false ) {
- // рдкрд┐рдЫрд▓реЗ рдЬрд╛рд▓ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
- $ рдкрд░рд┐рдгрд╛рдо = $ рд╣реБрдХ -> рдкрд┐рдЫрд▓рд╛_рд╣реВрдХ_рд▓реНрдЯрд▓ ( 'рдПрдкреЗрдВрдб_рд╕рд┐рдб' ) ;
- рдЧреВрдВрдЬ $ рдкрд░рд┐рдгрд╛рдо [ 'рдкрд░рд┐рдгрд╛рдо' ] ред '<br /> рдФрд░ рдореИрдВ рддреАрд╕рд░рд╛ рд╣реВрдВред' ;
- }
- }
- // рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп
- рдлрд╝рдВрдХреНрд╢рди my_append_sid ( рдФрд░ $ рд╣реБрдХ , $ url , $ params = false , $ is_amp = true , $ session_id = false ) {
- // рдкрд┐рдЫрд▓реЗ рдЬрд╛рд▓ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
- $ рдкрд░рд┐рдгрд╛рдо = $ рд╣реБрдХ -> рдкрд┐рдЫрд▓рд╛_рд╣реВрдХ_рд▓реНрдЯрд▓ ( 'рдПрдкреЗрдВрдб_рд╕рд┐рдб' ) ;
- рд╡рд╛рдкрд╕реА 'рдореБрдЭреЗ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛' ;
- }
- // рджреНрд╡рд┐рддреАрдп рд╢реНрд░реЗрдгреА рдХрд╛ рдкреНрд░рд╛рд░рдВрдн
- $ my_second_append_sid_class = new my_second_append_sid_class ( ) ;
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╡рд╣реА рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдЬрд╛рд▓ рдХреЛ рд╣реБрдХ рдХрд░рддрд╛ рд╣реИ: рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╣рдореЗрд╢рд╛ рдФрд░ $ рд╣реБрдХ рд╣реЛрддрд╛ рд╣реИ, рд╣реБрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдВрджрд░реНрдн рдЬреЛ рдЖрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдм рд╣рдо
$ phpbb_hook-> рд░рдЬрд┐рд╕реНрдЯрд░ () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рдЯреНрд░реИрдк рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВрдЧреЗ:
- // рдЕрдм рд╣рдо рдХреНрд░рдо рдореЗрдВ append_sid рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╣рдорд╛рд░реЗ "рд╡рд┐рдХрд▓реНрдк" рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВрдЧреЗ ...
- // рд░рдЬрд┐рд╕реНрдЯрд░ (рдкрд╣рд▓реЗ рдмреБрд▓рд╛рдпрд╛)
- $ phpbb_hook -> рд░рдЬрд┐рд╕реНрдЯрд░ ( 'append_sid' , 'my_append_sid' ) ;
- // рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ
- $ phpbb_hook -> рд░рдЬрд┐рд╕реНрдЯрд░ ( 'append_sid' , array ( 'my_append_sid_class' , 'my_append_sid' ) ) ;
- // .. рдФрд░ рджреНрд╡рд┐рддреАрдп рд╢реНрд░реЗрдгреА
- $ phpbb_hook -> рд░рдЬрд┐рд╕реНрдЯрд░ ( 'append_sid' , array ( & $ my_second_append_sid_class , 'my_append_sid' ) ) ;
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде, рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- // рдЙрд╕ рдЬрд╛рд▓ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ рдЬреЛ phpbb рджреНрд╡рд╛рд░рд╛ рдкрдХрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛
- $ phpbb_hook -> рд░рдЬрд┐рд╕реНрдЯрд░ ( 'append_sid' , 'my_own_append_sid' ) ;
- // рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рдЬрд╛рд▓ рдХреЛ рд░реЛрдХ рджреЗрдЧрд╛
- $ phpbb_hook -> add_hook ( 'my_own_append_sid' ) ;
- // рдПрдХ рдЯреНрд░реИрдк рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
- $ phpbb_hook -> рд░рдЬрд┐рд╕реНрдЯрд░ ( 'my_own_append_sid' , 'also_my_own_append_sid' ) ;
рд╡рд┐рд╢реЗрд╖ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг / рдЪреЗрди
рд╣реБрдХ рдкрдВрдЬреАрдХрд░рдг рд╡рд┐рдзрд┐ рд╡рд┐рд╢реЗрд╖ рдЪрд╛рдЗрдирд┐рдВрдЧ рдореЛрдб рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреАрд╕рд░реЗ рддрд░реНрдХ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рдпрд╣ рдорд╛рди рд▓реЗ рд╕рдХрддрд╛ рд╣реИ:
рдкрд╣рд▓рд╛ ,
рдЕрдВрддрд┐рдо рдФрд░
рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди ред
$ phpbb_hook-> рд░рдЬрд┐рд╕реНрдЯрд░ ('append_sid', 'my_own_append_sid', 'first') рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ -
FIFO рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
$ phpbb_hook-> рд░рдЬрд┐рд╕реНрдЯрд░ ('append_sid', 'my_own_append_sid', 'last') рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИред рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдХреЗ рднреАрддрд░ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХреЙрд▓ рд╕рдВрднрд╡ рд╣реИрдВ - рдлреАрдлреЛ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
$ phpbb_hook-> рд░рдЬрд┐рд╕реНрдЯрд░ ('append_sid', 'my_own_append_sid', 'standalone') рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдиреНрдп рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЗрд╕рдХреЗ рдмрд╛рдж рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рджреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдореЛрдб рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ PHP рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рдПрдЧреА, рдФрд░ рджреВрд╕рд░реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рд▓ рдХрд╛ рд╕рдВрдХрд▓реНрдк
рдХреНрдпреЛрдВрдХрд┐ рдЬрд╛рд▓ рдкреНрд░рдгрд╛рд▓реА рдЖрд░рдВрднрд┐рдХ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рд╣реА рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддреА рд╣реИ, рдЖрдкрдХреЛ рдЗрд╕реЗ рдХреЛрдб рд╕реНрддрд░ рдкрд░ рд╣рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рддрд░реАрдХрд╛ рд╣реИ:
- рд╡рд░реНрдЧ my_hookable_object {
- рдлрдВрдХреНрд╢рди рдмреНрд▓рд╛рдмреНрд▓рд╛ ( )
- {
- }
- }
- рд╡рд░реНрдЧ my_hookable_object2 my_hookable_object рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ
- {
- var $ call_hook = true ;
- рдлрд╝рдВрдХреНрд╢рди рд╣реБрдХ_рдореЗ ( $ my_first_parameter , $ my_second_parameter )
- {
- рдЕрдЧрд░ ( $ рдпрд╣ -> call_hook )
- {
- рд╡реИрд╢реНрд╡рд┐рдХ $ phpbb_hook ;
- рдЕрдЧрд░ ( $ phpbb_hook -> call_hook ( рд╕рд░рдгреА ( __CLASS__ , __FUNCTION__ ) , $ my_first_parameter , $ my_second_parameter )
- {
- рдЕрдЧрд░ ( $ phpbb_hook -> hook_return ( рд╕рд░рдгреА ( __CLASS__ , __FUNCTION__ ) ) )
- {
- $ $ phpbb_hook -> hook_return_result ( рд╕рд░рдгреА ( __CLASS__ , __FUNCTION__ ) ) ;
- }
- }
- }
- рд╡рд╛рдкрд╕реА 'рдЭреБрдХрд╛ рдирд╣реАрдВ' ;
- }
- }
- рдлрдВрдХреНрд╢рди рд╣реБрдХрд┐рдВрдЧ ( рдФрд░ $ рд╣реБрдХ , $ рдкреНрд░рдердо , $ рд╕реЗрдХрдВрдб )
- {
- рд╡рд╛рдкрд╕реА 'рдЭреБрдХрд╛' ;
- }
- $ first_object = new my_hookable_object2 ( ) ;
- $ second_object = new my_hookable_object2 ( ) ;
- $ phpbb_hook -> add_hook ( рд╕рд░рдгреА ( 'my_hookable_object2' , 'hook_me' ) ) ;
- $ phpbb_hook -> рд░рдЬрд┐рд╕реНрдЯрд░ ( рд╕рд░рдгреА ( 'my_hookable_object2' , 'hook_me' ) , 'hooking' ) ;
- // $ First_object рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреНрд░реИрдк рдХреЛ рдХреЙрд▓ рди рдХрд░реЗрдВ
- $ first_object -> call_hook = false ;
- рдЗрдХреЛ $ first_object -> hook_me ( 'рдкрд╣рд▓рд╛' , 'рджреВрд╕рд░рд╛' ) ред '<br />' ;
- рдЗрдХреЛ $ рд╕реЗрдХрдВрдб_рдмреЙрдЬреЗрдХреНрдЯ -> рд╣реБрдХ_рдореЗ ( 'рдкрд╣рд▓рд╛' , 'рджреВрд╕рд░рд╛' ) ред '<br />' ;
- // рдЖрдЙрдЯрдкреБрдЯ:
- рдЭреБрдХрд╛ рдирд╣реАрдВ
- рд╢реМрдХреАрди
рдПрдХ рдЕрдиреНрдп рд╕рдВрднрд╛рд╡рдирд╛ рдПрдХ рдлрдВрдХреНрд╢рди рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ (рдЬреЛ рдХрд┐ рдЯреНрд░реИрдк рдХреЗ рд▓рд┐рдП рдЪрд░ рдХреЛ рдкрд╛рд░ рдХрд░рддреЗ рд╕рдордп рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)
- рд╡рд░реНрдЧ my_hookable_object {
- рдлрдВрдХреНрд╢рди рдмреНрд▓рд╛рдмреНрд▓рд╛ ( )
- {
- }
- }
- рд╡рд░реНрдЧ my_hookable_object2 my_hookable_object рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ
- {
- рдлрд╝рдВрдХреНрд╢рди рд╣реБрдХ_рдореЗ ( $ my_first_parameter , $ my_second_parameter , $ hook_me = true )
- {
- рдЕрдЧрд░ ( $ рд╣реБрдХ_рдореЗ )
- {
- рд╡реИрд╢реНрд╡рд┐рдХ $ phpbb_hook ;
- рдЕрдЧрд░ ( $ phpbb_hook -> call_hook ( рд╕рд░рдгреА ( __CLASS__ , __FUNCTION__ ) , $ my_first_parameter , $ my_second_parameter )
- {
- рдЕрдЧрд░ ( $ phpbb_hook -> hook_return ( рд╕рд░рдгреА ( __CLASS__ , __FUNCTION__ ) ) )
- {
- $ $ phpbb_hook -> hook_return_result ( рд╕рд░рдгреА ( __CLASS__ , __FUNCTION__ ) ) ;
- }
- }
- }
- рд╡рд╛рдкрд╕реА 'рдЭреБрдХрд╛ рдирд╣реАрдВ' ;
- }
- }
- рдлрдВрдХреНрд╢рди рд╣реБрдХрд┐рдВрдЧ ( рдФрд░ $ рд╣реБрдХ , $ рдкреНрд░рдердо , $ рд╕реЗрдХрдВрдб )
- {
- рд╡рд╛рдкрд╕реА 'рдЭреБрдХрд╛' ;
- }
- $ first_object = new my_hookable_object2 ( ) ;
- $ second_object = new my_hookable_object2 ( ) ;
- $ phpbb_hook -> add_hook ( рд╕рд░рдгреА ( 'my_hookable_object2' , 'hook_me' ) ) ;
- $ phpbb_hook -> рд░рдЬрд┐рд╕реНрдЯрд░ ( рд╕рд░рдгреА ( 'my_hookable_object2' , 'hook_me' ) , 'hooking' ) ;
- рдЗрдХреЛ $ first_object -> hook_me ( 'рдкрд╣рд▓рд╛' , 'рджреВрд╕рд░рд╛' , рдЧрд▓рдд ) ред '<br />' ;
- рдЗрдХреЛ $ рд╕реЗрдХрдВрдб_рдмреЙрдЬреЗрдХреНрдЯ -> рд╣реБрдХ_рдореЗ ( 'рдкрд╣рд▓рд╛' , 'рджреВрд╕рд░рд╛' ) ред '<br />' ;
- // рдЖрдЙрдЯрдкреБрдЯ:
- рдЭреБрдХрд╛ рдирд╣реАрдВ
- рд╢реМрдХреАрди
4. рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрдирд╛
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯреЗрдб рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ, рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред рдпрд╣ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рдгрд╛рдо рдХреЛ рдХреЗрд╡рд▓ рддрднреА рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬрдм рдлрдВрд╕реЗ рджреНрд╡рд╛рд░рд╛ рдмрд╛рдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рдХреЗрд╕ рдирдВрдмрд░ 1 - рдлрд╝рдВрдХреНрд╢рди рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрдирд╛
рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдЬрд╛рд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:
- рд╕рдорд╛рд░реЛрд╣ append_sid ( $ url , $ params = false , $ is_amp = true , $ session_id = false )
- рд╡реИрд╢реНрд╡рд┐рдХ $ _SID , $ _EXTRA_URL , $ phpbb_hook ;
- // рдЬрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
- // рд╡реИрд╢реНрд╡рд┐рдХ $ _SID рдФрд░ $ _EXTRA_URL рдЕрдкрдиреЗ рдореЗрдВ
- // рдлрд╝рдВрдХреНрд╢рдВрд╕ рдФрд░ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВред
- // рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЛрдб рдХреЛ рдпрд╣рд╛рдВ рд╕реЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
- рдЕрдЧрд░ ( $ phpbb_hook -> call_hook ( __FUNCTION__ , $ url , $ params , $ is_amp , $ session_id ) {
- рдЕрдЧрд░ ( $ phpbb_hook -> hook_return ( __FUNCTION__ ) )
- {
- рд╡рд╛рдкрд╕реА $ phpbb_hook -> hook_return_result ( __FUNCTION__ ) ;
- }
- }
- [ ... ]
- }
рдЕрдм рдЖрдкрдХрд╛ рдХрд╛рд░реНрдп рдкрд░рд┐рдгрд╛рдо рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж,
append_sid () рдлрд╝рдВрдХреНрд╢рди рдЖрдкрдХрд╛ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛
рджреЗрдЧрд╛ :
- // рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯреЗрдб рдлрдВрдХреНрд╢рди
- рдлрд╝рдВрдХреНрд╢рди my_append_sid ( рдФрд░ $ рд╣реБрдХ , $ url , $ params = false , $ is_amp = true , $ session_id = false )
- {
- // рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
- $ рдкрд░рд┐рдгрд╛рдо = $ рд╣реБрдХ -> рдкрд┐рдЫрд▓рд╛_рд╣реВрдХ_рд▓реНрдЯрд▓ ( 'рдПрдкреЗрдВрдб_рд╕рд┐рдб' ) ;
- 'рдореИрдВ рдХреБрдЫ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж,' рдкрд░рд┐рд╢рд┐рд╖реНрдЯ () рдлрд╝рдВрдХреНрд╢рди рдореЗрд░реЗ рдкрд░рд┐рдгрд╛рдо рд╡рд╛рдкрд╕ рдХрд░реВрдБрдЧрд╛ ;
- }
рдЖрдкрдХреЛ
рдкрд┐рдЫрд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдореЗрд╢рд╛
рдкрд┐рдЫрд▓реЗ_рд╣реБрдХ_рд░реЗрд▓реНрдЯ () рд╡рд┐рдзрд┐ рдореЗрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдкреНрд░рдкрддреНрд░ рд╕рд░рдгреА ('рдкрд░рд┐рдгрд╛рдо' => [рдЖрдкрдХрд╛ рдкрд░рд┐рдгрд╛рдо]) рдХрд╛ рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рдХреЗрд╕ рдирдВрдмрд░ 2 - рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдо рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ
рдХрднреА-рдХрднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдХреБрдЫ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд░рд╣реЗрдВрдЧреЗ:
- рд╕рдорд╛рд░реЛрд╣ append_sid ( $ url , $ params = false , $ is_amp = true , $ session_id = false )
- {
- рд╡реИрд╢реНрд╡рд┐рдХ $ _SID , $ _EXTRA_URL , $ phpbb_hook ;
- рдЕрдЧрд░ ( $ phpbb_hook -> call_hook ( __FUNCTION__ , $ url , $ params , $ is_amp , $ session_id ) )
- {
- рдЕрдЧрд░ ( $ phpbb_hook -> hook_return ( __FUNCTION__ ) )
- {
- рд╡рд╛рдкрд╕реА $ phpbb_hook -> hook_return_result ( __FUNCTION__ ) ;
- }
- }
- [ ... ]
- }
- // рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯреЗрдб рдлрдВрдХреНрд╢рди
- рдлрд╝рдВрдХреНрд╢рди my_append_sid ( рдФрд░ $ рд╣реБрдХ , $ url , $ params = false , $ is_amp = true , $ session_id = false )
- {
- // рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
- $ рдкрд░рд┐рдгрд╛рдо = $ рд╣реБрдХ -> рдкрд┐рдЫрд▓рд╛_рд╣реВрдХ_рд▓реНрдЯрд▓ ( 'рдПрдкреЗрдВрдб_рд╕рд┐рдб' ) ;
- [ ... ]
- // рдореИрдВ рдмрд╕ рдХреБрдЫ рдЪрд░ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдХреБрдЫ рднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП append_sid () рдлрд╝рдВрдХреНрд╢рди рдХреБрдЫ рднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
- }
рдиреЛрдЯ: рд╡рд╛рдкрд╕ рд▓реМрдЯрдиреЗ рдпрд╛ рди рд▓реМрдЯрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рдХреЗрд╡рд▓ рдХреЙрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬрд╛рд▓ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
- // рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯреЗрдб рдлрдВрдХреНрд╢рди
- рдлрд╝рдВрдХреНрд╢рди my_append_sid ( рдФрд░ $ рд╣реБрдХ , $ url , $ params = false , $ is_amp = true , $ session_id = false )
- {
- // рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
- $ рдкрд░рд┐рдгрд╛рдо = $ рд╣реБрдХ -> рдкрд┐рдЫрд▓рд╛_рд╣реВрдХ_рд▓реНрдЯрд▓ ( 'рдПрдкреЗрдВрдб_рд╕рд┐рдб' ) ;
- // рдЪрд░ $ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдПрдХ рдореВрд▓реНрдп рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ
- рд╡рд╛рдкрд╕реА 'рднрд░рд╛' ;
- }
- // рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ my_append_sid () рдХреЗ рдмрд╛рдж рднреА рдкрдВрдЬреАрдХреГрдд рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
- рдлрд╝рдВрдХреНрд╢рди my_own_append_sid ( рдФрд░ $ рд╣реБрдХ , $ url , $ params = false , $ is_amp = true , $ session_id = false )
- {
- $ рдкрд░рд┐рдгрд╛рдо = $ рд╣реБрдХ -> рдкрд┐рдЫрд▓рд╛_рд╣реВрдХ_рд▓реНрдЯрд▓ ( 'рдПрдкреЗрдВрдб_рд╕рд┐рдб' ) ;
- // рдЪрд░ $ рдкрд░рд┐рдгрд╛рдо 'рднрд░рд╛' рдХреЗ рд╕рд╛рде рднрд░рд╛ рдЬрд╛рдПрдЧрд╛
- // рд▓реЗрдХрд┐рди, рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдореИрдВ рдХреБрдЫ рднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ append_sid () рдлрд╝рдВрдХреНрд╢рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛
- }
- // рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐
- $ phpbb_hook -> рд░рдЬрд┐рд╕реНрдЯрд░ ( 'append_sid' , 'my_append_sid' ) ;
- $ phpbb_hook -> рд░рдЬрд┐рд╕реНрдЯрд░ ( 'append_sid' , 'my_own_append_sid' ) ;
6. рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓реЛрдВ / рдХрдХреНрд╖рд╛рдУрдВ / рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдирд╛
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдмреАрдЪ рдЖрдк рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ:
1) рдлрд╝рд╛рдЗрд▓ рдХреЛ
рд╢рд╛рдорд┐рд▓ / рд╣реБрдХ / рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рдлрд╝рд╛рдЗрд▓ рдореЗрдВ
рд╣реБрдХ_ рдЙрдкрд╕рд░реНрдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдлрд╝рд╛рдЗрд▓ common.php рдХреЗ рдЕрдВрджрд░ рдХрдиреЗрдХреНрдЯ рд╣реЛ рдЬрд╛рдПрдЧреА, рдЖрдк рдЕрдкрдирд╛ рдЯреНрд░реИрдк рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрджрд┐ред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рдЕрдВрджрд░)ред
рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдХреИрд╢ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХреА рдирдИ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдлрд╝рд╛рдЗрд▓реЗрдВ phpBB3 рджреНрд╡рд╛рд░рд╛ рд╕реБрд▓рдн рд╣реЛрдВред
2) рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рдЬрд╛рд▓ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдлрд╝рд╛рдЗрд▓ рд░рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп, phpBB3 рдХреЛрдб рдХреЛ рд▓рдкреЗрдЯрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ phpBB рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдкрдиреЗ рдЬрд╛рд▓ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- // рдореЗрд░рд╛ рдлрд╝рдВрдХреНрд╢рди, рдЬрд┐рд╕реЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдЕрдВрджрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
- рд╕рдорд╛рд░реЛрд╣ phpbb_hook_register ( рдФрд░ $ рд╣реБрдХ )
- {
- $ рд╣реБрдХ -> рд░рдЬрд┐рд╕реНрдЯрд░ ( 'append_sid' , 'my_append_sid' ) ;
- }
- [ ... ]
рдореВрд▓ рдкрд╛рда ред