1.ã¯ããã«
ããã¯äœã§ãã
ãã©ããã·ã¹ãã ã䜿çšãããšãã¢ããªã±ãŒã·ã§ã³ããã³MODéçºè
ã¯phpBBã³ãŒãã§ãã©ãããèšå®ããããç¬èªã®æ©èœã§ãããã䜿çšãããã§ããŸãã
ãã©ããã䜿çšã§ããPhpBB颿°
phpBBã«ã¯ããã©ããã§ãã£ããã§ãã4ã€ã®é¢æ°ããããŸãã
phpbb_user_session_handlerïŒïŒ -ãŠãŒã¶ãŒå
ã§åŒã³åºããã::ã»ãã·ã§ã³ããã³ãŠãŒã¶ãŒãªããžã§ã¯ããæ£ããåæåããåŸã«ã»ããã¢ããã
append_sidïŒ$ urlã$ params = falseã$ is_amp = trueã$ session_id = falseïŒ -ãªã³ã¯ã圢æããããã«åŒã³åºãããŸãïŒã»ãã·ã§ã³èå¥åã远å ããŸãïŒ;
$ template-> displayïŒ$ handleã$ include_once = trueïŒ -ïŒãŸã ã³ã³ãã€ã«ãããŠããªãïŒãã³ãã¬ãŒãã®åºåã®çŽåã«åŒã³åºãããŸã;
exit_handlerïŒïŒ -phpBB3ã³ãŒãå®è¡ã®æåŸã«åŒã³åºãããŸãã
æ³šïŒ $ template-> displayã䜿çšãããã©ããã¯ã $ templateã®3çªç®ã®åŒæ°ïŒ$ templateãªããžã§ã¯ããžã®åç
§ïŒãåãããšãã§ããŸããããã¯ãã°ããŒãã«ãªãã³ãã¬ãŒãã®ä»£ããã«äœ¿çšã§ããŸãã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ã®ä»£ããã«åçã«generate_board_urlïŒïŒã䜿çšããŸãïŒã
宿°
PHPBB_USE_BOARD_URL_PATHã trueã«èšå®ãããŠããå ŽåãphpBBã¯ã¢ããããŒãããããã¹ãŠã®ç»åã«å¯ŸããŠgenerate_board_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 / imageset
{T_IMAGESET_LANG_PATH}-ã¹ã¿ã€ã«/ xxx / imageset / yy
{T_IMAGES_PATH}-ç»å/
{T_SMILIES_PATH}-$ config ['smilies_path'] /
{T_AVATAR_PATH}-$ config ['avatar_path'] /
{T_AVATAR_GALLERY_PATH}-$ config ['avatar_gallery_path'] /
{T_ICONS_PATH}-$ config ['icons_path'] /
{T_RANKS_PATH}-$ config ['ranks_path'] /
{T_UPLOAD_PATH}-$ config ['upload_path'] /
{T_STYLESHEET_LINK}-ã¹ã¿ã€ã«/ xxx /ããŒã/ stylesheet.cssïŒCSSãåçã«çæãããå Žåã¯style.phpãžã®ãªã³ã¯ïŒ
æ°ãããã³ãã¬ãŒã倿°{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
- {
- 颿° hook_me ïŒ $ my_first_parameter ã $ my_second_parameter ïŒ
- {
- ã°ããŒãã« $ phpbb_hook ;
- if ïŒ $ phpbb_hook- > call_hook ïŒ array ïŒ __CLASS__ ã __FUNCTION__ ïŒ ã $ my_first_parameter ã $ my_second_parameter ïŒ ïŒïŒ
- {
- if ïŒ $ phpbb_hook- > hook_return ïŒ array ïŒ __CLASS__ ã __FUNCTION__ ïŒ ïŒ ïŒïŒïŒ
- {
- return $ phpbb_hook- > hook_return_result ïŒ array ïŒ __CLASS__ ã __FUNCTION__ ïŒ ïŒ ;
- }
- }
- [ã³ãŒãã¯ãã¡ã]
- }
- }
ããã§ã®å¯äžã®éãã¯ãæåã®ãã©ã¡ãŒã¿ãŒã®å®çŸ©æ¹æ³ã§ãã 颿°ã®å Žåãããã¯__FUNCTION__宿°ã®ã¿ã§ãããã¡ãœããã®å Žåãé
åé
åïŒ__ CLASS __ã__ FUNCTION__ïŒã§ãã PHP4ã§ã¯ã__ CLASS__宿°ã¯åžžã«å°æåã§ã¯ã©ã¹åãè¿ããŸãã
ããŠãphpBBã«ã¯ããã©ãããã€ã³ã¿ãŒã»ããã§ããäºåå®çŸ©é¢æ°ããããŸããããããã䜿çšå¯èœã«ããæ¹æ³ïŒãããã£ãŠãä»ã®ãŠãŒã¶ãŒããã©ãããã€ã³ã¿ãŒã»ããã§ããããã«ããæ¹æ³ïŒã¯ïŒ ããã«ã¯
add_hookïŒïŒã¡ãœããããããŸãïŒ
- //ç¬èªã®é¢æ°ã远å ããŸã
- //ãã©ããããã£ãã
- $ phpbb_hook- > add_hook ïŒ 'my_own_function' ïŒ ;
- //ç¬èªã®ã¡ãœããã远å ããŸãã
- //ãã©ããããã£ãã
- $ phpbb_hook- > add_hook ïŒ array ïŒ 'my_hookable_object' ã 'hook_me' ïŒ ïŒ ;
add_hookïŒïŒãšåããã©ã¡ãŒã¿ãŒã§
$ phpbb_hook-> remove_hookïŒïŒãåŒã³åºãããšã§ã颿°/ã¡ãœããã§ãã©ãããã€ã³ã¿ãŒã»ããããæ©èœãåé€ããããšãã§ããŸãã ããã¯ããã©ãããåŒã³åºããªãããã«ããå Žåã«äŸ¿å©ã§ãã
3.ãã©ãããã®ã³ã°
次ã«ãåŒã³åºããã颿°ã®å®çŸ©ã«ç§»ããŸãããã ãããè¡ãã«ã¯ãappend_sidïŒïŒé¢æ°ãäŸãšããŠïŒãã®é¢æ°ã¯ããã©ã«ãã®ãã©ããã§äœ¿çšã§ããŸãïŒã2ã€ã®ã¯ã©ã¹ãšé¢æ°ãäœæããŸãïŒ
- class my_append_sid_class {
- //颿°
- function my_append_sid ïŒ ïŒ $ hook ã $ url ã $ params = false ã $ is_amp = true ã $ session_id = false ïŒ {
- //åã®ãã©ããã®å¯èœãªçµæãââååŸããŸã
- $ result = $ hook- > previous_hook_result ïŒ 'append_sid' ïŒ ;
- return $ result [ 'result' ] ã ã<br />ãããŠç§ã¯2çªç®ã§ãããã ;
- }
- }
- //å¥ã®ã¯ã©ã¹
- class my_second_append_sid_class {
- function my_append_sid ïŒ ïŒ $ hook ã $ url ã $ params = false ã $ is_amp = true ã $ session_id = false ïŒ {
- //åã®ãã©ããã®å¯èœãªçµæãââååŸããŸã
- $ result = $ hook- > previous_hook_result ïŒ 'append_sid' ïŒ ;
- echo $ result [ 'result' ] ã ã<br />ãããŠç§ã¯3çªç®ã§ããã ;
- }
- }
- //éåžžã®é¢æ°
- function my_append_sid ïŒ ïŒ $ hook ã $ url ã $ params = false ã $ is_amp = true ã $ session_id = false ïŒ {
- //åã®ãã©ããã®å¯èœãªçµæãââååŸããŸã
- $ result = $ hook- > previous_hook_result ïŒ 'append_sid' ïŒ ;
- return 'ç§ã¯æåã«åŒã°ãã' ;
- }
- // 2çªç®ã®ã¯ã©ã¹ã®åæå
- $ my_second_append_sid_class = new my_second_append_sid_class ïŒ ïŒ ;
å¿
ã1ã€ã®äŸå€ãé€ããŠãã©ãããããã¯ãã颿°ã«å¯ŸããŠå®çŸ©ãããŠãã颿°ã«åããã©ã¡ãŒã¿ãŒã远å ããŠãã ãããæåã®ãã©ã¡ãŒã¿ãŒã¯åžžã«ïŒ$ hookã§ãããæäœå¯èœãªããã¯ãªããžã§ã¯ããžã®åç
§ã§ãã
ããã§ã
$ phpbb_hook-> registerïŒïŒã¡ãœããã䜿çšããŠããã©ããã1ã€ãã€ç»é²ããŸãã
- //ããã§ãappend_sid颿°ã®ã代æ¿ããé çªã«ç»é²ããŸã...
- //颿°ãç»é²ããŸãïŒæåã«åŒã³åºãããŸãïŒ
- $ phpbb_hook- > register ïŒ 'append_sid' ã 'my_append_sid' ïŒ ;
- //æåã®ã¯ã©ã¹ãç»é²ããŸã
- $ phpbb_hook- > register ïŒ 'append_sid' ã array ïŒ 'my_append_sid_class' ã 'my_append_sid' ïŒ ïŒ ;
- // ..ããã³2çªç®ã®ã¯ã©ã¹
- $ phpbb_hook- > register ïŒ 'append_sid' ã array ïŒ ïŒ $ my_second_append_sid_class ã 'my_append_sid' ïŒ ïŒ ;
ãã®äŸã§ã¯ãç¬èªã®é¢æ°ã匷å¶çã«ã€ã³ã¿ãŒã»ããããããšãã§ããŸãã
- // phpbbã§ãã£ããããããã©ãããç»é²ããŸã
- $ phpbb_hook- > register ïŒ 'append_sid' ã 'my_own_append_sid' ïŒ ;
- //ãã©ãããååãã颿°ã远å ããŸã
- $ phpbb_hook- > add_hook ïŒ 'my_own_append_sid' ïŒ ;
- //颿°ã«ãã£ãŠã€ã³ã¿ãŒã»ããããããã©ãããç»é²ããŸã
- $ phpbb_hook- > register ïŒ 'my_own_append_sid' ã 'also_my_own_append_sid' ïŒ ;
ç¹æ®å å·¥/ãã§ãŒã³
ããã¯ç»é²ã¡ãœããã¯ãç¹å¥ãªé£éã¢ãŒããæ±ºå®ããããã«3çªç®ã®åŒæ°ãåãå
¥ããããšãã§ããŸãã å€ã¯ã
first ã
last ã
standaloneãåãããšãã§ããŸãã
$ phpbb_hook-> registerïŒ 'append_sid'ã 'my_own_append_sid'ã 'first'ïŒã¯ããã§ãŒã³ã®å
é ã§ã®é¢æ°åŒã³åºããä¿èšŒããŸãã æåã®ãããã¯å
ã§è€æ°ã®é¢æ°ãåŒã³åºãããšãã§ããŸã-ããã§ã¯
FIFOã®åçã䜿çšãããŠããŸãã
$ phpbb_hook-> registerïŒ 'append_sid'ã 'my_own_append_sid'ã 'last'ïŒã¯ããã§ãŒã³ã®æåŸã§ã®é¢æ°åŒã³åºããä¿èšŒããŸãã åŸè
å
ã®è€æ°ã®é¢æ°ã®åŒã³åºããå¯èœã§ã-ããã§ã¯FIFOã®åçã䜿çšãããŠããŸãã
$ phpbb_hook-> registerïŒ 'append_sid'ã 'my_own_append_sid'ã 'standalone'ïŒã¯ãç¹å®ã®é¢æ°ã®ã¿ãåŒã³åºãããããã«ããŸãã ä»ã®ãã¹ãŠã®æ©èœã¯ãã§ãŒã³ããåé€ãããä»ã®æ©èœã¯ãã®åŸãã§ãŒã³ã«è¿œå ãããŸããã 2ã€ã®ã¢ããªã±ãŒã·ã§ã³ãã¹ã¿ã³ãã¢ãã³ã¢ãŒããåãæ¿ããããšãããšãPHPéç¥ã衚瀺ããã2çªç®ã®é¢æ°ã¯ç¡èŠãããŸãã
ãªããžã§ã¯ãã®ãã©ããã®è§£æ±º
ãªããªã ãã©ããã·ã¹ãã ã¯åæåããããªããžã§ã¯ããåºå¥ã§ããŸããããã¯ã©ã¹èªäœã§ã®ã¿åäœãããããã³ãŒãã¬ãã«ã§ããã解決ããå¿
èŠããããŸãã
å¯èœãªæ¹æ³ã®1ã€ã¯ãããããã£ã䜿çšããããšã§ãã
- ã¯ã©ã¹ my_hookable_object {
- 颿° blabla ïŒ ïŒ
- {
- }
- }
- ã¯ã©ã¹ my_hookable_object2 㯠my_hookable_objectãæ¡åŒµããŸã
- {
- var $ call_hook = true ;
- 颿° hook_me ïŒ $ my_first_parameter ã $ my_second_parameter ïŒ
- {
- if ïŒ $ this- > call_hook ïŒ
- {
- ã°ããŒãã« $ phpbb_hook ;
- if ïŒ $ phpbb_hook- > call_hook ïŒ array ïŒ __CLASS__ ã __FUNCTION__ ïŒ ã $ my_first_parameter ã $ my_second_parameter ïŒ ïŒïŒ
- {
- if ïŒ $ phpbb_hook- > hook_return ïŒ array ïŒ __CLASS__ ã __FUNCTION__ ïŒ ïŒ ïŒïŒ
- {
- return $ phpbb_hook- > hook_return_result ïŒ array ïŒ __CLASS__ ã __FUNCTION__ ïŒ ïŒ ;
- }
- }
- }
- ãããã¯ãããŠããªããã è¿ã ;
- }
- }
- 颿°ããã¯ïŒ ïŒ $ hook ã $ first ã $ second ïŒ
- {
- return 'hooked' ;
- }
- $ first_object = new my_hookable_object2 ïŒ ïŒ ;
- $ second_object = new my_hookable_object2 ïŒ ïŒ ;
- $ phpbb_hook- > add_hook ïŒ array ïŒ 'my_hookable_object2' ã 'hook_me' ïŒ ïŒ ;
- $ phpbb_hook- > register ïŒ array ïŒ 'my_hookable_object2' ã 'hook_me' ïŒ ã ' hooking ' ïŒ ;
- // $ first_objectã®ãã©ãããåŒã³åºããªãã§ãã ãã
- $ first_object- > call_hook = false ;
- echo $ first_object- > hook_me ïŒ 'first' ã 'second' ïŒ ã '<br />' ;
- echo $ second_object- > hook_me ïŒ 'first' ã 'second' ïŒ ã '<br />' ;
- //åºåïŒ
- 倢äžã«ãªããªã
- 倢äž
å¥ã®å¯èœæ§ã¯ã颿°å€æ°ã䜿çšããããšã§ãïŒå€æ°ããã©ããã«æž¡ããšãã«çç¥ã§ããŸãïŒã
- ã¯ã©ã¹ my_hookable_object {
- 颿° blabla ïŒ ïŒ
- {
- }
- }
- ã¯ã©ã¹ my_hookable_object2 㯠my_hookable_objectãæ¡åŒµããŸã
- {
- 颿° hook_me ïŒ $ my_first_parameter ã $ my_second_parameter ã $ hook_me = true ïŒ
- {
- if ïŒ $ hook_me ïŒ
- {
- ã°ããŒãã« $ phpbb_hook ;
- if ïŒ $ phpbb_hook- > call_hook ïŒ array ïŒ __CLASS__ ã __FUNCTION__ ïŒ ã $ my_first_parameter ã $ my_second_parameter ïŒ ïŒïŒ
- {
- if ïŒ $ phpbb_hook- > hook_return ïŒ array ïŒ __CLASS__ ã __FUNCTION__ ïŒ ïŒ ïŒïŒ
- {
- return $ phpbb_hook- > hook_return_result ïŒ array ïŒ __CLASS__ ã __FUNCTION__ ïŒ ïŒ ;
- }
- }
- }
- ãããã¯ãããŠããªããã è¿ã ;
- }
- }
- 颿°ããã¯ïŒ ïŒ $ hook ã $ first ã $ second ïŒ
- {
- return 'hooked' ;
- }
- $ first_object = new my_hookable_object2 ïŒ ïŒ ;
- $ second_object = new my_hookable_object2 ïŒ ïŒ ;
- $ phpbb_hook- > add_hook ïŒ array ïŒ 'my_hookable_object2' ã 'hook_me' ïŒ ïŒ ;
- $ phpbb_hook- > register ïŒ array ïŒ 'my_hookable_object2' ã 'hook_me' ïŒ ã ' hooking ' ïŒ ;
- echo $ first_object- > hook_me ïŒ 'first' ã 'second' ã false ïŒ ã '<br />' ;
- echo $ second_object- > hook_me ïŒ 'first' ã 'second' ïŒ ã '<br />' ;
- //åºåïŒ
- 倢äžã«ãªããªã
- 倢äž
4.çµæãè¿ã
颿°ãã€ã³ã¿ãŒã»ããããã颿°ã§çµæãè¿ãããå®è¡ãç¶ç¶ããããæç¢ºã«æ±ºå®ããå¿
èŠããããŸãã ããã¯ã¢ããªã±ãŒã·ã§ã³ã®å¿
èŠæ§ãåå ã§ããå¯èœæ§ããããçµæãšããŠããã©ããã«ãã£ãŠã€ã³ã¿ãŒã»ããããã颿°ãçµæãè¿ãå Žåã«ã®ã¿ã颿°ã¯çµæãè¿ããŸãã
ã±ãŒã¹No. 1-颿°å®è¡ã®çµæãè¿ã
次ã®é¢æ°ããã©ããããµããŒããããšæ³åããŠãã ããã
- 颿° append_sid ïŒ $ url ã $ params = false ã $ is_amp = true ã $ session_id = false ïŒ {
- ã°ããŒãã« $ _SID ã $ _EXTRA_URL ã $ phpbb_hook ;
- //ãã©ããã䜿çšããéçºè
ã¯è¡ãå¿
èŠããããŸã
- //ã°ããŒãã«$ _SIDããã³$ _EXTRA_URLèªäœ
- //æ©èœããããããå·§ã¿ã«ç®¡çããŸãã
- //ã»ãšãã©ã®ã³ãŒãã¯ããããã³ããŒã§ããŸã
- if ïŒ $ phpbb_hook- > call_hook ïŒ __FUNCTION__ ã $ url ã $ params ã $ is_amp ã $ session_id ïŒ ïŒïŒ {
- if ïŒ $ phpbb_hook- > hook_return ïŒ __FUNCTION__ ïŒ ïŒ
- {
- return $ phpbb_hook- > hook_return_result ïŒ __FUNCTION__ ïŒ ;
- }
- }
- [ ... ]
- }
ããã§é¢æ°ã§ãã çµæãè¿ããçŽåŸã«ã
append_sidïŒïŒé¢æ°
ãçµæ
ãè¿ããŸãã
- //ã€ã³ã¿ãŒã»ããããã颿°
- 颿° my_append_sid ïŒ ïŒ $ hook ã $ url ã $ params = false ã $ is_amp = true ã $ session_id = false ïŒ
- {
- //å¯èœãªçµæãââååŸããŸã
- $ result = $ hook- > previous_hook_result ïŒ 'append_sid' ïŒ ;
- return 'äœããè¿ããåŸãappend_sidïŒïŒé¢æ°ã¯ç§ã®çµæãè¿ããŸã' ;
- }
åè¿°ã®é¢æ°ã®çµæãååŸããã«ã¯ã
previous_hook_resultïŒïŒã¡ãœããã§åžžã«äœ¿çšããå¿
èŠããããŸãããã®ã¡ãœããã¯ãé
åarrayïŒ 'result' => [your result]ïŒã®é
åãè¿ããŸãã
ã±ãŒã¹2-äžè¬çã«ãç§ãã¡ã¯äœãè¿ããªã
ã¢ããªã±ãŒã·ã§ã³ãäœããè¿ãå¿
èŠããªãå Žåããããããæ¬¡ã®é¢æ°ã¯åŒãç¶ãå®è¡ãããŸãã
- 颿° append_sid ïŒ $ url ã $ params = false ã $ is_amp = true ã $ session_id = false ïŒ
- {
- ã°ããŒãã« $ _SID ã $ _EXTRA_URL ã $ phpbb_hook ;
- if ïŒ $ phpbb_hook- > call_hook ïŒ __FUNCTION__ ã $ url ã $ params ã $ is_amp ã $ session_id ïŒ ïŒïŒ
- {
- if ïŒ $ phpbb_hook- > hook_return ïŒ __FUNCTION__ ïŒ ïŒ
- {
- return $ phpbb_hook- > hook_return_result ïŒ __FUNCTION__ ïŒ ;
- }
- }
- [ ... ]
- }
- //ã€ã³ã¿ãŒã»ããããã颿°
- 颿° my_append_sid ïŒ ïŒ $ hook ã $ url ã $ params = false ã $ is_amp = true ã $ session_id = false ïŒ
- {
- //å¯èœãªçµæãââååŸããŸã
- $ result = $ hook- > previous_hook_result ïŒ 'append_sid' ïŒ ;
- [ ... ]
- //äžéšã®å€æ°ãäžæžãããã ãã§äœãè¿ããªããããappend_sidïŒïŒé¢æ°ã¯äœãè¿ããŸããã
- }
æ³šïŒæ»ããè¿ããªããã®æ±ºå®ã¯ããã©ããã®ãã§ãŒã³ãžã®åŒã³åºãã®æåŸã«ã®ã¿è¡ãããŸãã äŸïŒ
- //ã€ã³ã¿ãŒã»ããããã颿°
- 颿° my_append_sid ïŒ ïŒ $ hook ã $ url ã $ params = false ã $ is_amp = true ã $ session_id = false ïŒ
- {
- //å¯èœãªçµæãââååŸããŸã
- $ result = $ hook- > previous_hook_result ïŒ 'append_sid' ïŒ ;
- //倿°$ resultã«ã¯å€ãå«ãŸããŠããŸãã
- return 'FILLED' ;
- }
- //ãã®é¢æ°ã¯my_append_sidïŒïŒã®åŸã«ãç»é²ããã³å®è¡ãããŸã
- 颿° my_own_append_sid ïŒ ïŒ $ hook ã $ url ã $ params = false ã $ is_amp = true ã $ session_id = false ïŒ
- {
- $ result = $ hook- > previous_hook_result ïŒ 'append_sid' ïŒ ;
- //倿°$ result㯠'FILLED'ã§åããããŸã
- //ãããããªããªã äœãè¿ããªãå Žåãappend_sidïŒïŒé¢æ°ã¯åŒãç¶ãå®è¡ãããŸã
- }
- //äž¡æ¹ã®é¢æ°ãç»é²ããæ¹æ³
- $ phpbb_hook- > register ïŒ 'append_sid' ã 'my_append_sid' ïŒ ;
- $ phpbb_hook- > register ïŒ 'append_sid' ã 'my_own_append_sid' ïŒ ;
6.ãã¡ã€ã«/ã¯ã©ã¹/ã¡ãœãããåã蟌ã
äžè¬ã«ãéžæã§ããæ¹æ³ã¯2ã€ãããŸãã
1ïŒãã¡ã€ã«ã
include / hooks /ãã©ã«ããŒã«è¿œå ããŸãã ãã¡ã€ã«ã«ã¯
hook_ãã¬ãã£ãã¯ã¹ãå¿
èŠã§ãã ãã®ãã¡ã€ã«ã¯common.phpå
ã§æ¥ç¶ãããã©ãããç»é²ããããä»ã®ãã¡ã€ã«ã颿°ãæ¥ç¶ãããã§ããŸã å¿
èŠãªå Žåã«ã®ã¿ä»ã®ãã¡ã€ã«ãæ¥ç¶ããããšããå§ãããŸãïŒããšãã°ã颿°åŒã³åºãå
ïŒã
æ°ããç§»åãããã¡ã€ã«ã«phpBB3ããã¢ã¯ã»ã¹ã§ããããã«ããã«ã¯ããã£ãã·ã¥ãã¯ãªã¢ããå¿
èŠãããããšã«æ³šæããŠãã ããã
2ïŒ2çªç®ã®æ¹æ³ã¯ããã©ããçšã®ãã©ã«ããŒã«ç¹å¥ãªãã¡ã€ã«ãé
眮ãã代ããã«ãphpBB3ã³ãŒããã©ããããã人åãã§ãã ããã¯éåžžãã¢ããªã±ãŒã·ã§ã³ãã¡ã€ã«å
ã«phpBBãã¡ã€ã«ãå«ããããšã«ãã£ãŠè¡ãããŸãã ãã©ãããç»é²ããã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã§é¢æ°ãäœæããå¿
èŠããããŸãã
- //ã³ã³ã¹ãã©ã¯ã¿ãŒå
ã§å®è¡ãããç§ã®é¢æ°
- 颿° phpbb_hook_register ïŒ ïŒ $ hook ïŒ
- {
- $ hook- > register ïŒ 'append_sid' ã 'my_append_sid' ïŒ ;
- }
- [ ... ]
å
ã®ããã¹ã ã