2014-02-19 7 views
1

오랫동안 MT가 MT 항목에 삽입 할 때 [이미지] 애셋을 래핑하는 기본 마크 업을 쉽게/액세스 할 수 있도록 만들지는 못했습니다. (이상하게도 다른 모든 것과 같은 시스템 모듈로 만들어지지 않았다.)MovableType 5.2.6 - 항목에 추가 된 자산의 기본 html 마크 업을 수정합니까?

MT 4 * 용으로 작성되었지만 사용하지 않은 것으로 보이는이 플러그인을 한 개 있습니다 : https://github.com/endevver/mt-plugin-custom-asset-markup 어쨌든 설치했는데 작동 방법이나 트리거/관리 방법이 명확하지 않습니다 (잘못된 설정 일 수도 있지만 설정이 없습니다).

이미지가 항목에 삽입 될 때마다 마크 업에 태그의 몇 가지 속성을 포함시키고 싶습니다.

<IMG ID="ar_<mt:AssetId>" … /> 
  • 이 문제는 MT (6)에서 해결되었습니다이 항목 본체에 삽입 때 예를 들어, 나는 각 이미지의 ID 값을 지정하려면? (내가 지금까지 불안정하게하고 싶지는 않지만, 가치가 있을지 모르기 때문에 시스템을 업그레이드 할 때까지 기다려야합니다.)
  • 위의 플러그인 작동 방법에 대한 팁?
  • Perl 모듈을 직접 편집하거나 내 플러그인을 작성하는 것 외에 제안/해킹이 있습니까?

답변

2

내가했습니다 이 작업을 여러 번 수행하기 위해 Assetylene 플러그인을 사용했습니다. 예상대로 작동합니다. "Asset Insertion"이라는 템플릿 모듈을 만들고 HTML을 편집하여 침을 뱉어냅니다. 필자는 MT4와 5로 테스트했습니다 - 5.2.6에서 작동 할 것이라고 확신합니다 - MT6에서도 작동 할 것입니다.

+0

달콤한, 고마워! 몇 년 동안 버려 졌던 플러그인의 이전 버전/발견되지 않은 버전을 발견했는데 작동하지 못했습니다. 업데이트 된 버전을 찾을 수 없습니다. – ElBel

+0

예, Github를 사용하는 데있어 가장 큰 문제점은 최신 Repo를 "잃어 버리기"쉽습니다. –

0

나는 단지 Perl 파일을 편집하는 것으로 끝났다. 관련 부분은 여기에 있습니다 :

lib/MT/Asset/Image.pm 

새로운 코드는 다음과 같습니다. 본질적으로 엔트리에 애셋을 삽입 할 때 사용자가 선택한 옵션에 따라 HTML 모양을 출력하는 몇 가지 조건이 있습니다. 나는 Perl에 대해 아무것도 모르지만 - 기본적으로 각각의 관련 사례에서 MT::Util::encode_html($asset->id)을 sprintf 호출에 삽입하고 % s을 사용하여 ID 값을 적절한 시점에 내 HTML에 삽입했습니다.

(나는 또한 1999 코드 '팝업을 열고 "온 클릭 한 CA의 지웠어 - A-기록에 - JQuery와 전화로 읽을 수있는 속성으로 대체.)

 my $link 
      = $thumb 
      ? sprintf(
      '<img src="%s" %s alt="%s" %s id="aid_%s" />', 
      MT::Util::encode_html($thumb->url), $dimensions, 
      MT::Util::encode_html($asset->label), $wrap_style, 
      MT::Util::encode_html($asset->id) 
      ) 
      : MT->translate('View image'); 
     $text = sprintf(
      q|<a href="%s" class="popup" data-img-url="%s" data-img-width="%s" data-img-width="%s">%s</a>|, 
      MT::Util::encode_html($popup->url), 
      MT::Util::encode_html($popup->url), 
      $asset->image_width, 
      $asset->image_height, 
      $link, 
     ); 
    } 
    else { 
     if ($param->{thumb}) { 
      $text = sprintf(
       '<a href="%s"><img alt="%s" src="%s" %s %s id="aid_%s" /></a>', 
       MT::Util::encode_html($asset->url), 
       MT::Util::encode_html($asset->label), 
       MT::Util::encode_html($thumb->url), 
       $dimensions, 
      : MT->translate('View image'); 
     $text = sprintf(
      q|<a href="%s" class="popup" data-img-url="%s" data-img-width="%s" data-img-width="%s">%s</a>|, 
      MT::Util::encode_html($popup->url), 
      MT::Util::encode_html($popup->url), 
      $asset->image_width, 
      $asset->image_height, 
      $link, 
     ); 
    } 
    else { 
     if ($param->{thumb}) { 
      $text = sprintf(
       '<a href="%s"><img alt="%s" src="%s" %s %s id="aid_%s" /></a>', 
       MT::Util::encode_html($asset->url), 
       MT::Util::encode_html($asset->label), 
       MT::Util::encode_html($thumb->url), 
       $dimensions, 
       $wrap_style, 
       MT::Util::encode_html($asset->id) 
      ); 
     } 
     else { 
      $text = sprintf(
       '<img alt="%s" src="%s" %s %s id="aid_%s" />', 
       MT::Util::encode_html($asset->label), 
       MT::Util::encode_html($asset->url), 
       $dimensions, $wrap_style, 
       MT::Util::encode_html($asset->id), 
      ); 
     } 
    } 
+1

항상 코어 편집을 권장하지 않습니다. 업그레이드 할 때마다 변경 사항을 다시 적용하는 방법을 찾아야합니다. –

+0

농담이 아닙니다. :) 나는 그 코드가 2001 년 이래서 그 코드의 외관에 기반하여 다루어지지 않았다는 것을 확신하지만. – ElBel

+1

Dan이 맞다. 릴리즈 사이에 코어 파일의 코드가 변경되지 않았다는 사실은 중요하지 않다. 그 파일은 다음 업데이트에서 덮어 쓸 것이다. 자신이하는 일을 실제로 알고 자신의 수정 사항을 추적하지 않는 한 핵심 코드를 만지지 마십시오. –