前回の続きです。
■改造で作った変換や画像の拡大縮小についての部分
/**
* return an href anchor that links to a bug COMMENT page for the given images uploaded
* @param int $p_image_id
* @return string
*/
function string_get_bug_image_link( $match = null ) {
$p_image_id = empty($match[2]) === false ? $match[2] : null;
//error_log('$match'.print_r($match,true),3,'/tmp/test.log');
preg_match('/^,rate(\d+).*/',$match[3],$match_rate);
$p_image_rate = empty($match_rate[1]) === false ? 'width:'.($match_rate[1] * 0.7).'%;' : null;
//error_log('$match_rate:'.print_r($match_rate,true),3,'/tmp/test.log');
$security_param = form_security_param( 'file_show_inline' );
$image_link = <<< _HTML_
_HTML_;
return $image_link;
} // f string_get_bug_image_link
/**
* return an href anchor that links to a bug COMMENT page for the given images uploaded
* @param int $p_image_id
* @return string
*/
function string_process_image_link( $p_string){
$p_string = preg_replace_callback( '/(^|[^\w])' . preg_quote( '%[', '/' ) . '(\d+)'.preg_quote( ']', '/' ).'(.*)\b/','string_get_bug_image_link',$p_string );
return $p_string ;
} // f string_process_image_link
これを追加したときに下記のエラーが出ました。
SYSTEM WARNING: 'preg_replace_callback(): Requires argument 2, 'string_get_bug_image_link', to be a valid callback' in '(略)/mantis/plugins/ImagePasteOnComment/ImagePasteOnComment.php' line 57 |
どうやらCallbackはクラス内で使うときに書き方があるみたいです。
function string_process_image_link( $p_string){
$p_string = preg_replace_callback( '/(^|[^\w])' . preg_quote( '%[', '/' ) . '(\d+)'.preg_quote( ']', '/' ).'(.*)\b/',array($this,'string_get_bug_image_link'),$p_string );
return $p_string ;
} // f string_process_image_link
呼び出したい関数名を配列に入れるっていう事らしいです。
参考にしたのは下記のページです。