{"id":405,"date":"2016-06-14T13:08:59","date_gmt":"2016-06-14T04:08:59","guid":{"rendered":"http:\/\/seedslight.com\/wp\/?p=405"},"modified":"2016-06-14T13:08:59","modified_gmt":"2016-06-14T04:08:59","slug":"mantis%e3%81%ae%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e3%82%92%e4%bd%9c%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b%e3%80%82%ef%bc%88%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%81%b8%e3%81%ae%e7%94%bb-5","status":"publish","type":"post","link":"https:\/\/seedslight.com\/wp\/archives\/405","title":{"rendered":"Mantis\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4f5c\u3063\u3066\u307f\u308b\u3002\uff08\u30b3\u30e1\u30f3\u30c8\u3078\u306e\u753b\u50cf\u8cbc\u308a\u4ed8\u3051\u6a5f\u80fd\uff09 \u305d\u306e5 \u30c6\u30ad\u30b9\u30c8\u30a8\u30ea\u30a2\u3078\u306e\u30af\u30ea\u30c3\u30af\u633f\u5165"},"content":{"rendered":"<p>\u6539\u9020\u3067\u306f\u30d7\u30ec\u30d3\u30e5\u30fc\u753b\u50cf\u3092\u30af\u30ea\u30c3\u30af\u3057\u305f\u3089\u30c6\u30ad\u30b9\u30c8\u30dc\u30c3\u30af\u30b9\u3078\u300c%[file_id],rate100\u300d\u3068\u3044\u3046\u6587\u8a00\u3092\u633f\u5165\u3057\u3066\u3044\u305f\u306e\u3060\u3051\u308c\u3069\u3001<br \/>\n\u3053\u308c\u3092\u30d7\u30e9\u30b0\u30a4\u30f3\u3067\u8868\u73fe\u3059\u308b\u306e\u306f\u3069\u3046\u3059\u308b\u3093\u3060\u308d\u3046\u2026\uff1f<br \/>\n\u3068\u3044\u3046\u3053\u3068\u3067\u3001\u5927\u5909\u82e6\u52b4\u3057\u305f\u306e\u3067\u3059\u304c\u3001\u30c6\u30ad\u30b9\u30c8\u30a8\u30ea\u30a2\u3078\u633f\u5165\u3059\u308b\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f\u3002<\/p>\n<h3>\u25a0\u30a4\u30d9\u30f3\u30c8\u306ehook\u3092\u8ffd\u52a0\u3068\u601d\u3063\u305f\u3089\u3001\u30e1\u30b8\u30e3\u30fc\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u5909\u66f4<\/h3>\n<pre lang=\"php\">\r\n      'EVENT_VIEW_BUG_ATTACHMENT'     => 'display_click_field',       # Display Insert Tags\r\n<\/pre>\n<p>\u3053\u308c\u3092\u4e0b\u8a18\u306eURL\u3067\u767a\u898b\u3002<br \/>\nhttps:\/\/www.mantisbt.org\/docs\/master-1.2.x\/en\/developers.html#DEV.EVENTREF<\/p>\n<p>\u3067\u3082\u30011.2.x\u3063\u3066\u66f8\u3044\u3066\u3042\u308a\u307e\u3057\u305f\u304c\u30011.2.15\u3067\u306f\u5b58\u5728\u3057\u307e\u305b\u3093\u3067\u3057\u305f\u3002(1.2\u7cfb\u6700\u65b0\u306e1.2.19\u3067\u3082\u78ba\u8a8d\u3067\u304d\u305a\u3002\uff09<br \/>\n\u304a\u305d\u3089\u304f\u30011.3\u7cfb\u306e\u6587\u66f8\u306b\u79fb\u884c\u4e2d\u306a\u306e\u30921.2\u7cfb\u3068\u8aa4\u89e3\u3057\u305f\u3093\u3060\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>\u3068\u3082\u3042\u308c\u30011.3.0-rc2\u304c2016\/6\/12\u306b\u516c\u958b\u3055\u308c\u3066\u3044\u305f\u306e\u3067\u3001\u3082\u3046\u3053\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u306f1.3.x\u7cfb\u3067\u52d5\u304b\u305d\u3046\uff01\u3068\u5909\u66f4\u3057\u3066\u3057\u307e\u3044\u307e\u3057\u305f\u3002<\/p>\n<h3>\u25a0\u30a4\u30d9\u30f3\u30c8\u3092\u30d5\u30c3\u30af\u3057\u305f\u5834\u6240<\/h3>\n<p>.\/core\/print_api.php\u3067\u767a\u898b\u3002<\/p>\n<pre lang=\"php\">\r\nfunction print_bug_attachment_header( array $p_attachment ) {\r\n        echo \"\\n\";\r\n        if( $p_attachment['exists'] ) {\r\n                if( $p_attachment['can_download'] ) {\r\n                        echo '<a href=\"' . string_attribute( $p_attachment['download_url'] ) . '\">';\r\n                }\r\n                print_file_icon( $p_attachment['display_name'] );\r\n                if( $p_attachment['can_download'] ) {\r\n                        echo '<\/a>';\r\n                }\r\n                echo lang_get( 'word_separator' );\r\n                if( $p_attachment['can_download'] ) {\r\n                        echo '<a href=\"' . string_attribute( $p_attachment['download_url'] ) . '\">';\r\n                }\r\n                echo string_display_line( $p_attachment['display_name'] );\r\n                if( $p_attachment['can_download'] ) {\r\n                        echo '<\/a>';\r\n                }\r\n                echo lang_get( 'word_separator' ) . '(' . number_format( $p_attachment['size'] ) . lang_get( 'word_separator' ) . lang_get( 'bytes' ) . ')';\r\n                echo lang_get( 'word_separator' ) . '<span class=\"italic\">' . date( config_get( 'normal_date_format' ), $p_attachment['date_added'] ) . '<\/span>';\r\n                event_signal( 'EVENT_VIEW_BUG_ATTACHMENT', array( $p_attachment ) );\r\n        } else {\r\n                print_file_icon( $p_attachment['display_name'] );\r\n                echo lang_get( 'word_separator' ) . '<span class=\"strike\">' . string_display_line( $p_attachment['display_name'] ) . '<\/span>' . lang_get( 'word_separator' ) . '(' . lang_get( 'attachment_missing' ) . ')';\r\n        }\r\n\r\n        if( $p_attachment['can_delete'] ) {\r\n                echo lang_get( 'word_separator' ) . '[';\r\n                print_link( 'bug_file_delete.php?file_id=' . $p_attachment['id'] . form_security_param( 'bug_file_delete' ), lang_get( 'delete_link' ), false, 'small' );\r\n                echo ']';\r\n        }\r\n}\r\n<\/pre>\n<h3>\u25a0\u8efd\u304f\u306f\u307e\u3063\u305f\u70b9<\/h3>\n<pre lang=\"php\">\r\n                event_signal( 'EVENT_VIEW_BUG_ATTACHMENT', array( $p_attachment ) );\r\n<\/pre>\n<p>\u4e0a\u8a18\u306e\u3088\u3046\u306b\u3001\u5f15\u6570\u306e1\u756a\u76ee\u306f\u30a4\u30d9\u30f3\u30c8\u540d\u30012\u756a\u76ee\u306b\u6dfb\u4ed8\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u306e\u60c5\u5831\u304c\u5165\u3063\u305f\u914d\u5217\u304c\u308f\u305f\u3063\u3066\u3044\u307e\u3057\u305f\u3002<br \/>\n\u4ed6\u306e\u95a2\u6570\u3068\u540c\u3058\u3088\u3046\u306b\u30011\u3064\u306e\u5f15\u6570\u3092\u3068\u308b\u3088\u3046\u306b\u3057\u3066\u3044\u305f\u306e\u3067\u3001\u601d\u3063\u305f\u5024\u304c\u51fa\u305a\u306b\u56f0\u3063\u3066\u3044\u307e\u3057\u305f\u3002<\/p>\n<p>\u307e\u305f\u3001\u6700\u521d\u306f\u65e2\u5b58\u306e\uff08Core\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\uff09\u95a2\u6570\u540d\u3068\u540c\u3058\u3082\u306e\u3092\u3064\u3051\u3066\u3001override\u3057\u3066\u304f\u308c\u308b\u306f\u305a\u2026\u3068\u601d\u3063\u3066\u3044\u305f\u306e\u3067\u3059\u304c\u3001<br \/>\n\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30e1\u30bd\u30c3\u30c9\u3058\u3083\u306a\u3044\u306e\u3067\u30c0\u30e1\u3067\u3057\u305f\u3002\uff08\u5f53\u305f\u308a\u524d\u3067\u3059\u304c\u3001\u540c\u3058\u540d\u524d\u306e\u95a2\u6570\u3067\u3082\u540d\u524d\u7a7a\u9593\u3067\u533a\u5225\u3055\u308c\u3066\u3044\u308b\u306f\u305a\u3067\u3059\u306d)<\/p>\n<h3>\u25a0Javascript\u3067\u6a5f\u80fd\u8ffd\u52a0<\/h3>\n<p>\u6539\u9020\u6642\u306f\u8aad\u307f\u8fbc\u307e\u308c\u308bbody\u306b\u76f4\u63a5Javascript\u3092\u8a18\u8f09\u3057\u3066\u3044\u305f\u306e\u3067\u3059\u304c\u3001\u5916\u90e8\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3080\u5f62\u3067<br \/>\n\u5b9f\u88c5\u3057\u305f\u3068\u3053\u308d\u3001\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u30fc\u3092\u8a2d\u5b9a\u3057\u306a\u3044\u3068Onclick\u306a\u3069\u3067\u5b9f\u884c\u3055\u305b\u306a\u3044\u3088\u3068Chrome\u306e\u958b\u767a\u30c4\u30fc\u30eb\u3067<br \/>\n\u6012\u3089\u308c\u3066\u307e\u3057\u3066\u3002\u4e0b\u8a18\u306e\u3088\u3046\u306bwindow.onload\u3067\u8a2d\u5b9a\u3057\u307e\u3057\u305f\u3002<\/p>\n<pre lang=javascript\">\r\n  window.onload = function(){\r\n\r\n    [].forEach.call( document.getElementsByClassName(\"Mantis_ImagePasteOnComment_Insert\"),function(x){\r\n      x.addEventListener(\"click\",mantis_imagepasteoncomment_insert_textarea);\r\n    });\r\n\r\n  } \/\/ window onload\r\n\r\n<\/pre>\n<p><a href=\"http:\/\/unohanat.hatenablog.com\/entry\/2014\/09\/28\/212348\">\u4ffa\u30bf\u30ef\u30fc\u30a6\u30a3\u30b8\u30a7\u30c3\u30c8\uff08\u3082\u3069\u304d\uff09\u3092\u4f5c\u308b &#8211; \u305b\u3089\u3074\u3093\u30d6\u30ed\u30b0<\/a><br \/>\n\u3053\u3061\u3089\u3092\u53c2\u8003\u306b\u539f\u56e0\u7279\u5b9a\u3092\u3057\u3066\u3001Onclick\u304b\u3089addEventListener\u306b\u5909\u66f4\u3057\u3001<\/p>\n<p><a href=\"http:\/\/qiita.com\/rbtnn\/items\/30e66438bbff3c359f57\">getElementsByClassName(&#8220;&#8230;&#8221;)\u306b\u5bfe\u3057\u3066forEach\u3092\u884c\u3046\u65b9\u6cd5<\/a><br \/>\n\u3053\u3061\u3089\u3092\u53c2\u8003\u306bClassName\u306e\u3059\u3079\u3066\u306b\u8ffd\u52a0\u3059\u308b\u3068\u3044\u3046\u5f62\u3067\u884c\u3044\u307e\u3057\u305f\u3002<\/p>\n<h3>\u25a0CSS\u3060\u3051\u3058\u3083\u306a\u304f\u3066JS\u3082\u8aad\u307f\u8fbc\u3080\u3088\u3046\u306b\u5909\u66f4<\/h3>\n<pre lang=\"php\">\r\n  \/**\r\n   * Include css ,js\r\n   * @param int $p_event\r\n   * @return string\r\n   *\/\r\n  function resources( $p_event){\r\n    $resource  = '<link href=\"' . plugin_file( 'Mantis_ImagePasteOnComment.css' ) . '\" media=\"all\" rel=\"stylesheet\" type=\"text\/css\"\/>';\r\n    $resource .= '<script type=\"text\/javascript\" src=\"' . plugin_file( 'Mantis_ImagePasteOnComment.js' ) . '\"><\/script>';\r\n    return $resource;\r\n  } \/\/ f resources\r\n<\/pre>\n<p>\u7d50\u5c40BBCode\u306e\u304a\u624b\u672c\u3068\u540c\u3058\u3088\u3046\u306a\u95a2\u6570\u540d\u306b\u3057\u3066\u3057\u307e\u3044\u307e\u3057\u305f\u3002<\/p>\n<h3>\u25a0\u30c6\u30ad\u30b9\u30c8\u30a8\u30ea\u30a2\u306b\u633f\u5165\u3059\u308bJavascript<\/h3>\n<pre lang=\"javascript\">\r\n  function mantis_imagepasteoncomment_insert_textarea(mouseevent){\r\n    var return_flg = false;\r\n    var text_area_obj = document.getElementsByName(\"bugnote_text\");\r\n    text_area_obj[0].focus();\r\n\r\n    var selected_obj  = document.activeElement;\r\n    if(selected_obj.selectionStart <= selected_obj.selectionEnd ){\r\n      string_start = selected_obj.selectionStart;\r\n      string_end   = selected_obj.selectionEnd;\r\n    } else {\r\n      string_start = selected_obj.selectionEnd;\r\n      string_end   = selected_obj.selectionStart;\r\n    } \/\/ if \r\n\r\n    before_range  = selected_obj.value.substring(\r\n                    0, string_start);\r\n    range         = selected_obj.value.substring(\r\n                    string_start , string_end);\r\n    after_range   = selected_obj.value.substring(\r\n                    string_end );\r\n\r\n  \/*   debug\r\n      console.log(mouseevent);\r\n \r\n      console.log(e);\r\n      console.log(\"string_start:\" + string_start);\r\n      console.log(\"string_end:\" + string_end);\r\n      console.log(\"before_range:\" + before_range);\r\n      console.log(\"range:\" + range);\r\n      console.log(\"after_range:\" + after_range);\r\n      console.log(\"text_num:\" + (range.match(\/\\r\\n|\\n\/g)||[]).length);\r\n      console.log(mouseevent.srcElement.id);\r\n      console.log(image_id);\r\n    *\/\r\n\r\n    \/\/ \u6539\u884c\u6570\u306e\u78ba\u8a8d\r\n    \r\n    if( 1 < (range.match(\/\\r\\n|\\n\/g)||[]).length ){\r\n      return_flg = true;\r\n    } \/\/ if match\r\n\r\n    id_str   = mouseevent.srcElement.id;\r\n    image_id = id_str.substring(id_str.indexOf(\"_\")+1,id_str.length);\r\n\r\n    if(image_id === \"undefined\"){ \r\n      before_insert_tag = '\\n%[],rate100';\r\n    }else{\r\n      before_insert_tag = '\\n%[' + image_id + '],rate100';\r\n    }\r\n    after_insert_tag  = '';\r\n\r\n    if(return_flg){\r\n      text_area_obj[0].value = before_range + before_insert_tag + '\\n' + range + after_insert_tag + '\\n' + after_range ; \r\n      var CaretPosition = string_start + before_insert_tag.length + range.length + after_insert_tag.length + 1;\r\n    }else{\r\n      text_area_obj[0].value = before_range + before_insert_tag + range + after_insert_tag + after_range ; \r\n      var CaretPosition = string_start + before_insert_tag.length + range.length + after_insert_tag.length ;\r\n    } \/\/ if return_flg something\r\n\r\n    if(!range){\r\n      text_area_obj[0].value = before_range + before_insert_tag + '\\n' + after_insert_tag + '\\n' + after_range ; \r\n      var CaretPosition = string_start + before_insert_tag.length + 1;\r\n    } \/\/ if range noting\r\n\r\n    text_area_obj[0].setSelectionRange( CaretPosition , CaretPosition);\r\n\r\n  } \/\/ f insert_textarea\r\n<\/pre>\n<p>\u6614\u4f5c\u3063\u305f\u3082\u306e\u304c\u307b\u307c\u305d\u306e\u307e\u307e\u5165\u3063\u305f\u306e\u3067\u554f\u984c\u306a\u3055\u305d\u3046\u3067\u3059\u3002<br \/>\n\u82e5\u5e72\u6c17\u306b\u306a\u308b\u3068\u3053\u308d\u3068\u3044\u3048\u3070\u3001<\/p>\n<pre lang=\"javascript\">\r\n    var text_area_obj = document.getElementsByName(\"bugnote_text\");\r\n    text_area_obj[0].focus();\r\n<\/pre>\n<p>\u3053\u306e\u90e8\u5206\u306e\u3088\u3046\u306b\u3001getElementsByName\u306f\u914d\u5217\u3067\u5165\u3063\u3066\u304f\u308b\u306e\u3067\u30010\u756a\u76ee\u3068\u3044\u3046\u5f62\u3067\u6307\u5b9a\u3057\u3066\u3044\u308b\u70b9\u3067\u3059\u304b\u306d\u3002<br \/>\n1\u500b\u3060\u3051\u3060\u3063\u305f\u3089\u3046\u307e\u304f\u52d5\u304f\u3093\u3067\u3057\u3087\u3046\u3051\u3069\u2026\u4fdd\u8a3c\u3055\u308c\u306a\u3055\u305d\u3046\u3063\u3066\u3044\u3046\u70b9\u3067\u5fc3\u914d\u306f\u6b8b\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<h3>\u25a0HTML\u306ewidth\u8a2d\u5b9a<\/h3>\n<pre lang=\"php\">\r\n  \/**\r\n   * return an href anchor that links to a bug COMMENT page for the given images uploaded\r\n   * @param int $p_image_id\r\n   * @return string\r\n   *\/\r\n  function string_get_bug_image_link( $match = null ) {\r\n    $p_image_id = empty($match[2]) === false ? $match[2] : null;\r\n    \/\/error_log('$match'.print_r($match,true),3,'\/tmp\/test.log');\r\n    preg_match('\/^,rate(\\d+).*\/',$match[3],$match_rate);\r\n    $p_image_rate      = empty($match_rate[1]) === false ? 'width:'.($match_rate[1] * 0.7).'%;'  : null;\r\n    $p_image_rate_html = empty($match_rate[1]) === false ? ($match_rate[1] * 0.7).'%;'  : null;\r\n    \/\/error_log('$match_rate:'.print_r($match_rate,true),3,'\/tmp\/test.log');\r\n  \r\n    $security_param  = form_security_param( 'file_show_inline' );\r\n    $image_link      = <<< _HTML_\r\n    <img decoding=\"async\" class=\"Mantis_ImagePasteOnComment\" style=\"{$p_image_rate}\" width=\"{$p_image_rate_html}\"\r\n         src=\"file_download.php?file_id=${p_image_id}&#038;type=bug&#038;show_inline=1{$security_param}\" >\r\n  <br \r\n_HTML_;\r\n<\/pre>\n<p>\u3082\u3068\u3082\u3068\u306f\u3001style=\"width:70%\"\u306e\u3088\u3046\u306bimg\u30bf\u30b0\u306e\u30b9\u30bf\u30a4\u30eb\u30b7\u30fc\u30c8\u3067\u6307\u5b9a\u3057\u3066\u305f\u306e\u3067\u3059\u304c\u3001<br \/>\n\u9069\u7528\u3055\u308c\u306a\u304b\u3063\u305f\u306e\u3067\u3001HTML\u8981\u7d20\u306ewidth\u3067\u3082\u6307\u5b9a\u3059\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6539\u9020\u3067\u306f\u30d7\u30ec\u30d3\u30e5\u30fc\u753b\u50cf\u3092\u30af\u30ea\u30c3\u30af\u3057\u305f\u3089\u30c6\u30ad\u30b9\u30c8\u30dc\u30c3\u30af\u30b9\u3078\u300c%[file_id],rate100\u300d\u3068\u3044\u3046\u6587\u8a00\u3092\u633f\u5165\u3057\u3066\u3044\u305f\u306e\u3060\u3051\u308c\u3069\u3001 \u3053\u308c\u3092\u30d7\u30e9\u30b0\u30a4\u30f3\u3067\u8868\u73fe\u3059\u308b\u306e\u306f\u3069\u3046\u3059\u308b\u3093\u3060\u308d\u3046\u2026\uff1f \u3068\u3044\u3046\u3053\u3068\u3067\u3001\u5927\u5909\u82e6\u52b4\u3057\u305f\u306e\u3067\u3059\u304c [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[104],"tags":[105],"class_list":["post-405","post","type-post","status-publish","format-standard","hentry","category-mantis","tag-mantis"],"_links":{"self":[{"href":"https:\/\/seedslight.com\/wp\/wp-json\/wp\/v2\/posts\/405","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/seedslight.com\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/seedslight.com\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/seedslight.com\/wp\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/seedslight.com\/wp\/wp-json\/wp\/v2\/comments?post=405"}],"version-history":[{"count":0,"href":"https:\/\/seedslight.com\/wp\/wp-json\/wp\/v2\/posts\/405\/revisions"}],"wp:attachment":[{"href":"https:\/\/seedslight.com\/wp\/wp-json\/wp\/v2\/media?parent=405"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/seedslight.com\/wp\/wp-json\/wp\/v2\/categories?post=405"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/seedslight.com\/wp\/wp-json\/wp\/v2\/tags?post=405"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}