2013-01-04 80 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的插件對於他給你的模板樣本非常適用。你可能想知道的是,丹的插件更聰明,可以讓你做更多的演變工作。