2014-02-19 3 views
1

Я знаю, что в течение долгого времени MT не упростил/облегчил редактирование разметки по умолчанию, которая обертывает ресурс [image], когда он вставлен в запись MT. (Настолько странно, что это не было создано как системный модуль, как и все остальное.)MovableType 5.2.6 - изменить разметку html по умолчанию, добавленную к записи?

Существует один плагин, который, казалось, решил эту проблему, хотя он был написан для MT 4 * и кажется несуществующим: https://github.com/endevver/mt-plugin-custom-asset-markup Я все равно его установил, и неясно, как он должен работать или запускаться/управляться (никаких настроек нет, хотя я могу ошибаться).

Каждый раз, когда изображение вставлено в запись, я хочу, чтобы его разметка включала в себя несколько своих свойств в теге. Например, я хочу, чтобы присвоить значение идентификатора каждого изображения, когда он вставлен в корпус входа:

<IMG ID="ar_<mt:AssetId>" … /> 
  • ли эта проблема была решена в МТ 6? (Я удерживаю обновление системы до тех пор, пока мы не начнем, поскольку я не хочу дестабилизировать сейчас, но, возможно, это того стоит.)
  • Советы по работе с плагином выше?
  • Любые предложения/хаки, кроме редактирования модулей Perl напрямую или написания моего собственного плагина?

ответ

2

Я использовал плагин Assetylene, чтобы сделать это много раз. Он работает так, как вы ожидаете, - создайте шаблонный модуль с именем «Asset Insertion» и отредактируйте HTML-код, который будет выплюнуть. Я тестировал его с MT4 и 5 - я уверен, что он работает с 5.2.6 - и он также должен работать с MT6.

+0

Сладкий, спасибо! Я нашел более раннюю/несуществующую версию этого плагина, который был оставлен на несколько лет, и я не мог заставить его работать. Не удалось найти обновленную версию. – ElBel

+0

Да, самая большая проблема с использованием Github в том, что легко «потерять» самое современное репо. –

0

В итоге я просто редактировал файлы Perl. FTR соответствующие порции находятся здесь:

lib/MT/Asset/Image.pm 

Новый код приведен ниже. По сути, существует несколько условий, которые выводят капли HTML, в зависимости от параметров, выбранных пользователем при вставке актива в запись. Я ничего не знаю о Perl, но в основном в каждом соответствующем случае вставил MT::Util::encode_html($asset->id) в вызов sprintf и использовал% s thingy для вставки значения ID в мой HTML в соответствующей точке.

(я избавилась от са 1999 OnClick «открыть всплывающее окно» код - заменить его свойствами, которые могут быть считаны с чтобы быть написанным 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

Дэн прав, что код основного файла не изменился между версиями, не имеет значения, этот файл будет перезаписан при следующем обновлении. Никогда не касайтесь основного кода, если вы действительно не знаете, что делаете, и отслеживайте свои изменения. –