2013-01-04 97 views
2

我试图让我的可移动类型的博客的条目摘要显示图像的标题格式化在图像上的某种方式(图像被标记,如果它将用于此目的),并在没有图像的情况下以另一种方式显示标题。但是,我无法得到else语句来处理MTEntryAsset。如果没有EntryAssets标记的“主页”与类型“图像”,它什么也不做。Movable Type MTEntryAsset其他语句不起作用

<mt:entryassets tag="homepage" type="image" limit="1"> 
    <div class="image_entrie_header"><img src="<mt:assetthumbnailurl>"></div> 
    <h3 class="blog_entry_headingimg"><a href="<mtentrypermalink>"><mt:entryTitle></a></h3> 
<mt:else> 
    <h3 class="blog_entry_heading"><a href="<mtentrypermalink>"><mt:entryTitle></a></h3> 
</mt:entryassets> 

回答

3

我不相信EntryAssets标签支持<mt:Else>,但你可以用一点Movable Type的逻辑实现这一目标。

通过一些简单的标记,你将能够做这样的事情:

<mt:If tag="EntryCategory"> 
    <p>Filed under <$mt:EntryCategory$></p> 
<mt:Else> 
    <p>Uncategorized</p> 
</mt:If> 

但你的块标记,EntryAssets,是一个复杂的标签采取一些template tag modifiers,其中之一也被称为tag,这是行不通的。我们可以假了使用Movable Type的variables这样的:

<$mt:Var name="asset_found" value="0"$> 
<mt:EntryAssets tag="homepage" type="image" limit="1"> 
    <$mt:Var name="asset_found" value="1"$> 
    Your code here 
</mt:EntryAssets> 
<mt:Unless name="asset_found"> 
    Show this if none found 
</mt:Unless> 

记下我们设置变量asset_found0不严格Movable Type所需要的第一线,但它是很好的复位情况下,你使用这个变量在同一个模板中的多个地方阻止。

+0

这工作!非常感谢你! –

2

查理的解决方案是一个很好的解决方案;但让我提出一个替代方案:Extra Tags plugin有一个名为EntryHasAssets的标签。这个标签比查理的解决方案的好处是模板有点精简,也许更容易阅读。

<mt:EntryHasAssets> 
    <mt:entryassets tag="homepage" type="image" limit="1"> 
     <div class="image_entrie_header"><img src="<mt:assetthumbnailurl>"></div> 
     <h3 class="blog_entry_headingimg"><a href="<mtentrypermalink>"><mt:entryTitle></a></h3> 
    </mt:entryassets> 
<mt:Else> 
    <h3 class="blog_entry_heading"><a href="<mtentrypermalink>"><mt:entryTitle></a></h3> 
</mt:EntryHasAssets> 

我没有做任何性能测试:我不知道查理的本地解决方案比这个插件的标签更快或更慢。添加一个插件确实增加了开销,但是对于像ExtraTags这样写得很好的小插件来说,它是最小的。我可能只是使用本地解决方案,除非我也在这个插件中使用了另一个标签,只是为了保持干净。

0

mt:Elsemt:Ifmt:Unless一起使用。它没有被定义为封闭标签的条件,例如mt:Entries,mt:Comments,mt:Categories没有结果。

Charlie提出的解决方案是我们如何在支持SuperAssets系列插件的模板中编写缺少入口资产的代码。

0

您的解决方案无法正常工作的原因是您使用的mt:Else标签不能用作'mt:entryassets'标签的否定。

查理上面概述的解决方案工作得很好。

Dan的插件对于他给你的模板样本非常适用。你可能想知道的是,丹的插件更聪明,可以让你做更多的演变工作。