MT 的"导入/导出"功能不包含Tags 这给很多朋友代理不便,还要路杨优化了这个HACK,依照下列方法进行修改即可。
1、先修改导出:
打开lib/MT/ImportExport.pm 模块,找到
AUTHOR: <$MTEntryAuthor strip_linefeeds="1"$>
TITLE: <$MTEntryTitle strip_linefeeds="1"$>
STATUS: <$MTEntryStatus strip_linefeeds="1"$>
ALLOW COMMENTS: <$MTEntryFlag flag="allow_comments"$>
CONVERT BREAKS: <$MTEntryFlag flag="convert_breaks"$>
ALLOW PINGS: <$MTEntryFlag flag="allow_pings"$>
在其下添加:
<MTEntryIfTagged>
Tags: <MTEntryTags><$MTTagName$>,</MTEntryTags>
</MTEntryIfTagged>
这样导出的时候就会有Tags导出了,其中分割符号是","。
2、修改导出,
同样是lib/MT/ImportExport.pm 模块,找到
elsif ($key eq 'TITLE') { $entry->title($val); }
在其下添加:
elsif ($key eq 'Tags') {
if ($val)
{
$cb->(MT->translate("Find tags ('[_1]')...\n", $val));
my @tagnames = split(',',$val);
$entry->add_tags(@tagnames);
}
}
大功完成。
说明:$cb->(MT->translate("Find tags ('[_1]')...\n", $val)); 这句是输出的提示,可以删除之,如果你是完美主义者,你还应该在MT::L10N::zh_cn模块(语言包)中添加
"Find tags ('[_1]')...\n" => "在导入文件中发现Tags ( '[_1]')...\n",
注意 : 同样,函数 $entry->add_tags ,标签 MTEntryIfTagged,MTEntryTags,MTTagName,什么的相关资料你可以从 lib/MT/Tag.pm ,lib/MT/Template.pm ,lib/MT/Template/ContextHandlers.pm 等模块中获取映射函数。
文章引自:http://easun.org/archives/mt_hack_importexport_tags.html

Add a Reply