PhpBB3 рдЯреНрд░реИрдк рд╕рд┐рд╕реНрдЯрдо

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 рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЬрд╛рд▓ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЬрд╛рд▓ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд░реБрдЪрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдХреЛрдб рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдЬрд╛рд▓ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА ...

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдХреЛрдб рдХреЛ рдХреИрд╕реЗ рдПрдореНрдмреЗрдб рдХрд░рдирд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЬрд╛рд▓ рдХреЛ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:

  1. 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__ ) ; } } [ ] }
  2. 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__ ) ; } } [ ] }
  3. 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__ ) ; } } [ ] }
  4. 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__ ) ; } } [ ] }
  5. 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__ ) ; } } [ ] }
  6. 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__ ) ; } } [ ] }
  7. 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__ ) ; } } [ ] }
  8. 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__ ) ; } } [ ] }
  9. 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__ ) ; } } [ ] }
  10. 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__ ) ; } } [ ] }
  11. 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__ ) ; } } [ ] }
  12. 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 рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╣рдореЗрд╢рд╛ рдЖрдкрдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдФрд░ рдпрд╣ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рд╡рд░реНрдЧ рд╡рд┐рдзрд┐ рдЕрд╡рд░реЛрдзрди рдЬрд╛рд▓ рдХреИрд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ ...
  1. рд╡рд░реНрдЧ my_hookable_object
  2. {
  3. рдлрд╝рдВрдХреНрд╢рди рд╣реБрдХ_рдореЗ ( $ my_first_parameter , $ my_second_parameter )
  4. {
  5. рд╡реИрд╢реНрд╡рд┐рдХ $ phpbb_hook ;
  6. рдЕрдЧрд░ ( $ phpbb_hook -> call_hook ( рд╕рд░рдгреА ( __CLASS__ , __FUNCTION__ ) , $ my_first_parameter , $ my_second_parameter )
  7. {
  8. рдЕрдЧрд░ ( $ phpbb_hook -> hook_return ( рд╕рд░рдгреА ( __CLASS__ , __FUNCTION__ ) ) )
  9. {
  10. $ $ phpbb_hook -> hook_return_result ( рд╕рд░рдгреА ( __CLASS__ , __FUNCTION__ ) ) ;
  11. }
  12. }
  13. [ рдпрд╣рд╛рдБ рдЖрдкрдХрд╛ рдХреЛрдб рд╣реИ ]
  14. }
  15. }


рдпрд╣рд╛рдВ рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдХреИрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреЗрд╡рд▓ __FUNCTION__ рд╕реНрдерд┐рд░ рд╣реИ, рдФрд░ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП, рд╕рд░рдгреА рд╕рд░рдгреА (__ CLASS__, __FUNCTION__)ред PHP4 рдореЗрдВ, __CLASS__ рд╕реНрдерд┐рд░рд╛рдВрдХ рд╣рдореЗрд╢рд╛ рд▓реЛрдЕрд░рдХреЗрд╕ рдореЗрдВ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рджреЗрддрд╛ рд╣реИред

рдЕрдм, phpBB рдореЗрдВ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╣реИрдВ рдЬреЛ рдЬрд╛рд▓ рдХреЛ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдЙрдкрд▓рдмреНрдз рдХрд░реЗрдВ (рдФрд░ рдЗрд╕рд▓рд┐рдП рджреВрд╕рд░реЛрдВ рдХреЛ рдЙрдиреНрд╣реЗрдВ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ)? рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ add_hook () рд╡рд┐рдзрд┐ рд╣реИ:
  1. // рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝реЗрдВ, рдЬреЛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
  2. // рдЬрд╛рд▓ рдХреЛ рдкрдХрдбрд╝рдирд╛
  3. $ phpbb_hook -> add_hook ( 'my_own_function' ) ;
  4. // рдЕрдкрдиреА рдЦреБрдж рдХреА рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ, рдЬреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
  5. // рдЬрд╛рд▓ рдХреЛ рдкрдХрдбрд╝рдирд╛
  6. $ phpbb_hook -> add_hook ( рд╕рд░рдгреА ( 'my_hookable_object' , 'hook_me' ) ) ;

рдЖрдк $ phpbb_hook-> remove_hook () рдХреЛ рдПрдХ рд╣реА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде add_hook () рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓ рдХрд░рдХреЗ рдлрд╝рдВрдХреНрд╢рди / рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдЬрд╛рд▓ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рднреА рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреБрдЫ рдЬрд╛рд▓ рдХреЛ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПред

3. рдЯреНрд░реИрдк рд▓реЙрдЧрд┐рдВрдЧ

рдЕрдм рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ append_sid () рдлрд╝рдВрдХреНрд╢рди рд▓реЗрддреЗ рд╣реИрдВ (рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЬрд╛рд▓ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ) рдФрд░ рджреЛ рдХрдХреНрд╖рд╛рдПрдВ рдФрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдПрдВ:
  1. рд╡рд░реНрдЧ my_append_sid_class {
  2. // рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп
  3. рдлрд╝рдВрдХреНрд╢рди my_append_sid ( рдФрд░ $ рд╣реБрдХ , $ url , $ params = false , $ is_amp = true , $ session_id = false ) {
  4. // рдкрд┐рдЫрд▓реЗ рдЬрд╛рд▓ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
  5. $ рдкрд░рд┐рдгрд╛рдо = $ рд╣реБрдХ -> рдкрд┐рдЫрд▓рд╛_рд╣реВрдХ_рд▓реНрдЯрд▓ ( 'рдПрдкреЗрдВрдб_рд╕рд┐рдб' ) ;
  6. $ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рдПрдБ [ 'рдкрд░рд┐рдгрд╛рдо' ] ред '<br /> рдФрд░ рдореИрдВ рджреВрд╕рд░рд╛ рдерд╛ред' ;
  7. }
  8. }
  9. // рдПрдХ рдФрд░ рд╡рд░реНрдЧ
  10. рд╡рд░реНрдЧ my_second_append_sid_class {
  11. рдлрд╝рдВрдХреНрд╢рди my_append_sid ( рдФрд░ $ рд╣реБрдХ , $ url , $ params = false , $ is_amp = true , $ session_id = false ) {
  12. // рдкрд┐рдЫрд▓реЗ рдЬрд╛рд▓ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
  13. $ рдкрд░рд┐рдгрд╛рдо = $ рд╣реБрдХ -> рдкрд┐рдЫрд▓рд╛_рд╣реВрдХ_рд▓реНрдЯрд▓ ( 'рдПрдкреЗрдВрдб_рд╕рд┐рдб' ) ;
  14. рдЧреВрдВрдЬ $ рдкрд░рд┐рдгрд╛рдо [ 'рдкрд░рд┐рдгрд╛рдо' ] ред '<br /> рдФрд░ рдореИрдВ рддреАрд╕рд░рд╛ рд╣реВрдВред' ;
  15. }
  16. }
  17. // рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп
  18. рдлрд╝рдВрдХреНрд╢рди my_append_sid ( рдФрд░ $ рд╣реБрдХ , $ url , $ params = false , $ is_amp = true , $ session_id = false ) {
  19. // рдкрд┐рдЫрд▓реЗ рдЬрд╛рд▓ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
  20. $ рдкрд░рд┐рдгрд╛рдо = $ рд╣реБрдХ -> рдкрд┐рдЫрд▓рд╛_рд╣реВрдХ_рд▓реНрдЯрд▓ ( 'рдПрдкреЗрдВрдб_рд╕рд┐рдб' ) ;
  21. рд╡рд╛рдкрд╕реА 'рдореБрдЭреЗ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛' ;
  22. }
  23. // рджреНрд╡рд┐рддреАрдп рд╢реНрд░реЗрдгреА рдХрд╛ рдкреНрд░рд╛рд░рдВрдн
  24. $ my_second_append_sid_class = new my_second_append_sid_class ( ) ;


рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╡рд╣реА рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдЬрд╛рд▓ рдХреЛ рд╣реБрдХ рдХрд░рддрд╛ рд╣реИ: рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╣рдореЗрд╢рд╛ рдФрд░ $ рд╣реБрдХ рд╣реЛрддрд╛ рд╣реИ, рд╣реБрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдВрджрд░реНрдн рдЬреЛ рдЖрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдм рд╣рдо $ phpbb_hook-> рд░рдЬрд┐рд╕реНрдЯрд░ () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рдЯреНрд░реИрдк рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВрдЧреЗ:
  1. // рдЕрдм рд╣рдо рдХреНрд░рдо рдореЗрдВ append_sid рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╣рдорд╛рд░реЗ "рд╡рд┐рдХрд▓реНрдк" рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВрдЧреЗ ...
  2. // рд░рдЬрд┐рд╕реНрдЯрд░ (рдкрд╣рд▓реЗ рдмреБрд▓рд╛рдпрд╛)
  3. $ phpbb_hook -> рд░рдЬрд┐рд╕реНрдЯрд░ ( 'append_sid' , 'my_append_sid' ) ;
  4. // рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ
  5. $ phpbb_hook -> рд░рдЬрд┐рд╕реНрдЯрд░ ( 'append_sid' , array ( 'my_append_sid_class' , 'my_append_sid' ) ) ;
  6. // .. рдФрд░ рджреНрд╡рд┐рддреАрдп рд╢реНрд░реЗрдгреА
  7. $ phpbb_hook -> рд░рдЬрд┐рд╕реНрдЯрд░ ( 'append_sid' , array ( & $ my_second_append_sid_class , 'my_append_sid' ) ) ;


рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде, рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  1. // рдЙрд╕ рдЬрд╛рд▓ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ рдЬреЛ phpbb рджреНрд╡рд╛рд░рд╛ рдкрдХрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛
  2. $ phpbb_hook -> рд░рдЬрд┐рд╕реНрдЯрд░ ( 'append_sid' , 'my_own_append_sid' ) ;
  3. // рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рдЬрд╛рд▓ рдХреЛ рд░реЛрдХ рджреЗрдЧрд╛
  4. $ phpbb_hook -> add_hook ( 'my_own_append_sid' ) ;
  5. // рдПрдХ рдЯреНрд░реИрдк рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
  6. $ 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 рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рдПрдЧреА, рдФрд░ рджреВрд╕рд░реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рд▓ рдХрд╛ рд╕рдВрдХрд▓реНрдк

рдХреНрдпреЛрдВрдХрд┐ рдЬрд╛рд▓ рдкреНрд░рдгрд╛рд▓реА рдЖрд░рдВрднрд┐рдХ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рд╣реА рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддреА рд╣реИ, рдЖрдкрдХреЛ рдЗрд╕реЗ рдХреЛрдб рд╕реНрддрд░ рдкрд░ рд╣рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рддрд░реАрдХрд╛ рд╣реИ:
  1. рд╡рд░реНрдЧ my_hookable_object {
  2. рдлрдВрдХреНрд╢рди рдмреНрд▓рд╛рдмреНрд▓рд╛ ( )
  3. {
  4. }
  5. }
  6. рд╡рд░реНрдЧ my_hookable_object2 my_hookable_object рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ
  7. {
  8. var $ call_hook = true ;
  9. рдлрд╝рдВрдХреНрд╢рди рд╣реБрдХ_рдореЗ ( $ my_first_parameter , $ my_second_parameter )
  10. {
  11. рдЕрдЧрд░ ( $ рдпрд╣ -> call_hook )
  12. {
  13. рд╡реИрд╢реНрд╡рд┐рдХ $ phpbb_hook ;
  14. рдЕрдЧрд░ ( $ phpbb_hook -> call_hook ( рд╕рд░рдгреА ( __CLASS__ , __FUNCTION__ ) , $ my_first_parameter , $ my_second_parameter )
  15. {
  16. рдЕрдЧрд░ ( $ phpbb_hook -> hook_return ( рд╕рд░рдгреА ( __CLASS__ , __FUNCTION__ ) ) )
  17. {
  18. $ $ phpbb_hook -> hook_return_result ( рд╕рд░рдгреА ( __CLASS__ , __FUNCTION__ ) ) ;
  19. }
  20. }
  21. }
  22. рд╡рд╛рдкрд╕реА 'рдЭреБрдХрд╛ рдирд╣реАрдВ' ;
  23. }
  24. }
  25. рдлрдВрдХреНрд╢рди рд╣реБрдХрд┐рдВрдЧ ( рдФрд░ $ рд╣реБрдХ , $ рдкреНрд░рдердо , $ рд╕реЗрдХрдВрдб )
  26. {
  27. рд╡рд╛рдкрд╕реА 'рдЭреБрдХрд╛' ;
  28. }
  29. $ first_object = new my_hookable_object2 ( ) ;
  30. $ second_object = new my_hookable_object2 ( ) ;
  31. $ phpbb_hook -> add_hook ( рд╕рд░рдгреА ( 'my_hookable_object2' , 'hook_me' ) ) ;
  32. $ phpbb_hook -> рд░рдЬрд┐рд╕реНрдЯрд░ ( рд╕рд░рдгреА ( 'my_hookable_object2' , 'hook_me' ) , 'hooking' ) ;
  33. // $ First_object рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреНрд░реИрдк рдХреЛ рдХреЙрд▓ рди рдХрд░реЗрдВ
  34. $ first_object -> call_hook = false ;
  35. рдЗрдХреЛ $ first_object -> hook_me ( 'рдкрд╣рд▓рд╛' , 'рджреВрд╕рд░рд╛' ) ред '<br />' ;
  36. рдЗрдХреЛ $ рд╕реЗрдХрдВрдб_рдмреЙрдЬреЗрдХреНрдЯ -> рд╣реБрдХ_рдореЗ ( 'рдкрд╣рд▓рд╛' , 'рджреВрд╕рд░рд╛' ) ред '<br />' ;
  37. // рдЖрдЙрдЯрдкреБрдЯ:
  38. рдЭреБрдХрд╛ рдирд╣реАрдВ
  39. рд╢реМрдХреАрди


рдПрдХ рдЕрдиреНрдп рд╕рдВрднрд╛рд╡рдирд╛ рдПрдХ рдлрдВрдХреНрд╢рди рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ (рдЬреЛ рдХрд┐ рдЯреНрд░реИрдк рдХреЗ рд▓рд┐рдП рдЪрд░ рдХреЛ рдкрд╛рд░ рдХрд░рддреЗ рд╕рдордп рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)
  1. рд╡рд░реНрдЧ my_hookable_object {
  2. рдлрдВрдХреНрд╢рди рдмреНрд▓рд╛рдмреНрд▓рд╛ ( )
  3. {
  4. }
  5. }
  6. рд╡рд░реНрдЧ my_hookable_object2 my_hookable_object рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ
  7. {
  8. рдлрд╝рдВрдХреНрд╢рди рд╣реБрдХ_рдореЗ ( $ my_first_parameter , $ my_second_parameter , $ hook_me = true )
  9. {
  10. рдЕрдЧрд░ ( $ рд╣реБрдХ_рдореЗ )
  11. {
  12. рд╡реИрд╢реНрд╡рд┐рдХ $ phpbb_hook ;
  13. рдЕрдЧрд░ ( $ phpbb_hook -> call_hook ( рд╕рд░рдгреА ( __CLASS__ , __FUNCTION__ ) , $ my_first_parameter , $ my_second_parameter )
  14. {
  15. рдЕрдЧрд░ ( $ phpbb_hook -> hook_return ( рд╕рд░рдгреА ( __CLASS__ , __FUNCTION__ ) ) )
  16. {
  17. $ $ phpbb_hook -> hook_return_result ( рд╕рд░рдгреА ( __CLASS__ , __FUNCTION__ ) ) ;
  18. }
  19. }
  20. }
  21. рд╡рд╛рдкрд╕реА 'рдЭреБрдХрд╛ рдирд╣реАрдВ' ;
  22. }
  23. }
  24. рдлрдВрдХреНрд╢рди рд╣реБрдХрд┐рдВрдЧ ( рдФрд░ $ рд╣реБрдХ , $ рдкреНрд░рдердо , $ рд╕реЗрдХрдВрдб )
  25. {
  26. рд╡рд╛рдкрд╕реА 'рдЭреБрдХрд╛' ;
  27. }
  28. $ first_object = new my_hookable_object2 ( ) ;
  29. $ second_object = new my_hookable_object2 ( ) ;
  30. $ phpbb_hook -> add_hook ( рд╕рд░рдгреА ( 'my_hookable_object2' , 'hook_me' ) ) ;
  31. $ phpbb_hook -> рд░рдЬрд┐рд╕реНрдЯрд░ ( рд╕рд░рдгреА ( 'my_hookable_object2' , 'hook_me' ) , 'hooking' ) ;
  32. рдЗрдХреЛ $ first_object -> hook_me ( 'рдкрд╣рд▓рд╛' , 'рджреВрд╕рд░рд╛' , рдЧрд▓рдд ) ред '<br />' ;
  33. рдЗрдХреЛ $ рд╕реЗрдХрдВрдб_рдмреЙрдЬреЗрдХреНрдЯ -> рд╣реБрдХ_рдореЗ ( 'рдкрд╣рд▓рд╛' , 'рджреВрд╕рд░рд╛' ) ред '<br />' ;
  34. // рдЖрдЙрдЯрдкреБрдЯ:
  35. рдЭреБрдХрд╛ рдирд╣реАрдВ
  36. рд╢реМрдХреАрди


4. рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрдирд╛

рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯреЗрдб рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ, рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред рдпрд╣ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рдгрд╛рдо рдХреЛ рдХреЗрд╡рд▓ рддрднреА рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬрдм рдлрдВрд╕реЗ рджреНрд╡рд╛рд░рд╛ рдмрд╛рдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдХреЗрд╕ рдирдВрдмрд░ 1 - рдлрд╝рдВрдХреНрд╢рди рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрдирд╛

рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдЬрд╛рд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:
  1. рд╕рдорд╛рд░реЛрд╣ append_sid ( $ url , $ params = false , $ is_amp = true , $ session_id = false )
  2. рд╡реИрд╢реНрд╡рд┐рдХ $ _SID , $ _EXTRA_URL , $ phpbb_hook ;
  3. // рдЬрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
  4. // рд╡реИрд╢реНрд╡рд┐рдХ $ _SID рдФрд░ $ _EXTRA_URL рдЕрдкрдиреЗ рдореЗрдВ
  5. // рдлрд╝рдВрдХреНрд╢рдВрд╕ рдФрд░ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВред
  6. // рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЛрдб рдХреЛ рдпрд╣рд╛рдВ рд╕реЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
  7. рдЕрдЧрд░ ( $ phpbb_hook -> call_hook ( __FUNCTION__ , $ url , $ params , $ is_amp , $ session_id ) {
  8. рдЕрдЧрд░ ( $ phpbb_hook -> hook_return ( __FUNCTION__ ) )
  9. {
  10. рд╡рд╛рдкрд╕реА $ phpbb_hook -> hook_return_result ( __FUNCTION__ ) ;
  11. }
  12. }
  13. [ ... ]
  14. }


рдЕрдм рдЖрдкрдХрд╛ рдХрд╛рд░реНрдп рдкрд░рд┐рдгрд╛рдо рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, append_sid () рдлрд╝рдВрдХреНрд╢рди рдЖрдкрдХрд╛ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛ рджреЗрдЧрд╛ :
  1. // рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯреЗрдб рдлрдВрдХреНрд╢рди
  2. рдлрд╝рдВрдХреНрд╢рди my_append_sid ( рдФрд░ $ рд╣реБрдХ , $ url , $ params = false , $ is_amp = true , $ session_id = false )
  3. {
  4. // рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
  5. $ рдкрд░рд┐рдгрд╛рдо = $ рд╣реБрдХ -> рдкрд┐рдЫрд▓рд╛_рд╣реВрдХ_рд▓реНрдЯрд▓ ( 'рдПрдкреЗрдВрдб_рд╕рд┐рдб' ) ;
  6. 'рдореИрдВ рдХреБрдЫ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж,' рдкрд░рд┐рд╢рд┐рд╖реНрдЯ () рдлрд╝рдВрдХреНрд╢рди рдореЗрд░реЗ рдкрд░рд┐рдгрд╛рдо рд╡рд╛рдкрд╕ рдХрд░реВрдБрдЧрд╛ ;
  7. }


рдЖрдкрдХреЛ рдкрд┐рдЫрд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдореЗрд╢рд╛ рдкрд┐рдЫрд▓реЗ_рд╣реБрдХ_рд░реЗрд▓реНрдЯ () рд╡рд┐рдзрд┐ рдореЗрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдкреНрд░рдкрддреНрд░ рд╕рд░рдгреА ('рдкрд░рд┐рдгрд╛рдо' => [рдЖрдкрдХрд╛ рдкрд░рд┐рдгрд╛рдо]) рдХрд╛ рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдХреЗрд╕ рдирдВрдмрд░ 2 - рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдо рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ

рдХрднреА-рдХрднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдХреБрдЫ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд░рд╣реЗрдВрдЧреЗ:
  1. рд╕рдорд╛рд░реЛрд╣ append_sid ( $ url , $ params = false , $ is_amp = true , $ session_id = false )
  2. {
  3. рд╡реИрд╢реНрд╡рд┐рдХ $ _SID , $ _EXTRA_URL , $ phpbb_hook ;
  4. рдЕрдЧрд░ ( $ phpbb_hook -> call_hook ( __FUNCTION__ , $ url , $ params , $ is_amp , $ session_id ) )
  5. {
  6. рдЕрдЧрд░ ( $ phpbb_hook -> hook_return ( __FUNCTION__ ) )
  7. {
  8. рд╡рд╛рдкрд╕реА $ phpbb_hook -> hook_return_result ( __FUNCTION__ ) ;
  9. }
  10. }
  11. [ ... ]
  12. }
  13. // рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯреЗрдб рдлрдВрдХреНрд╢рди
  14. рдлрд╝рдВрдХреНрд╢рди my_append_sid ( рдФрд░ $ рд╣реБрдХ , $ url , $ params = false , $ is_amp = true , $ session_id = false )
  15. {
  16. // рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
  17. $ рдкрд░рд┐рдгрд╛рдо = $ рд╣реБрдХ -> рдкрд┐рдЫрд▓рд╛_рд╣реВрдХ_рд▓реНрдЯрд▓ ( 'рдПрдкреЗрдВрдб_рд╕рд┐рдб' ) ;
  18. [ ... ]
  19. // рдореИрдВ рдмрд╕ рдХреБрдЫ рдЪрд░ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдХреБрдЫ рднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП append_sid () рдлрд╝рдВрдХреНрд╢рди рдХреБрдЫ рднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
  20. }


рдиреЛрдЯ: рд╡рд╛рдкрд╕ рд▓реМрдЯрдиреЗ рдпрд╛ рди рд▓реМрдЯрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рдХреЗрд╡рд▓ рдХреЙрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬрд╛рд▓ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
  1. // рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯреЗрдб рдлрдВрдХреНрд╢рди
  2. рдлрд╝рдВрдХреНрд╢рди my_append_sid ( рдФрд░ $ рд╣реБрдХ , $ url , $ params = false , $ is_amp = true , $ session_id = false )
  3. {
  4. // рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
  5. $ рдкрд░рд┐рдгрд╛рдо = $ рд╣реБрдХ -> рдкрд┐рдЫрд▓рд╛_рд╣реВрдХ_рд▓реНрдЯрд▓ ( 'рдПрдкреЗрдВрдб_рд╕рд┐рдб' ) ;
  6. // рдЪрд░ $ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдПрдХ рдореВрд▓реНрдп рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ
  7. рд╡рд╛рдкрд╕реА 'рднрд░рд╛' ;
  8. }
  9. // рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ my_append_sid () рдХреЗ рдмрд╛рдж рднреА рдкрдВрдЬреАрдХреГрдд рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
  10. рдлрд╝рдВрдХреНрд╢рди my_own_append_sid ( рдФрд░ $ рд╣реБрдХ , $ url , $ params = false , $ is_amp = true , $ session_id = false )
  11. {
  12. $ рдкрд░рд┐рдгрд╛рдо = $ рд╣реБрдХ -> рдкрд┐рдЫрд▓рд╛_рд╣реВрдХ_рд▓реНрдЯрд▓ ( 'рдПрдкреЗрдВрдб_рд╕рд┐рдб' ) ;
  13. // рдЪрд░ $ рдкрд░рд┐рдгрд╛рдо 'рднрд░рд╛' рдХреЗ рд╕рд╛рде рднрд░рд╛ рдЬрд╛рдПрдЧрд╛
  14. // рд▓реЗрдХрд┐рди, рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдореИрдВ рдХреБрдЫ рднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ append_sid () рдлрд╝рдВрдХреНрд╢рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛
  15. }
  16. // рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐
  17. $ phpbb_hook -> рд░рдЬрд┐рд╕реНрдЯрд░ ( 'append_sid' , 'my_append_sid' ) ;
  18. $ phpbb_hook -> рд░рдЬрд┐рд╕реНрдЯрд░ ( 'append_sid' , 'my_own_append_sid' ) ;


6. рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓реЛрдВ / рдХрдХреНрд╖рд╛рдУрдВ / рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдирд╛

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдмреАрдЪ рдЖрдк рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ:

1) рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╢рд╛рдорд┐рд▓ / рд╣реБрдХ / рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реБрдХ_ рдЙрдкрд╕рд░реНрдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдлрд╝рд╛рдЗрд▓ common.php рдХреЗ рдЕрдВрджрд░ рдХрдиреЗрдХреНрдЯ рд╣реЛ рдЬрд╛рдПрдЧреА, рдЖрдк рдЕрдкрдирд╛ рдЯреНрд░реИрдк рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрджрд┐ред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рдЕрдВрджрд░)ред

рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдХреИрд╢ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХреА рдирдИ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдлрд╝рд╛рдЗрд▓реЗрдВ phpBB3 рджреНрд╡рд╛рд░рд╛ рд╕реБрд▓рдн рд╣реЛрдВред

2) рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рдЬрд╛рд▓ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдлрд╝рд╛рдЗрд▓ рд░рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп, phpBB3 рдХреЛрдб рдХреЛ рд▓рдкреЗрдЯрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ phpBB рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдкрдиреЗ рдЬрд╛рд▓ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
  1. // рдореЗрд░рд╛ рдлрд╝рдВрдХреНрд╢рди, рдЬрд┐рд╕реЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдЕрдВрджрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
  2. рд╕рдорд╛рд░реЛрд╣ phpbb_hook_register ( рдФрд░ $ рд╣реБрдХ )
  3. {
  4. $ рд╣реБрдХ -> рд░рдЬрд┐рд╕реНрдЯрд░ ( 'append_sid' , 'my_append_sid' ) ;
  5. }
  6. [ ... ]


рдореВрд▓ рдкрд╛рда ред

Source: https://habr.com/ru/post/In131074/


All Articles