2016-01-06 78 views
0

我試圖用「ifempty」和「notempty」爲使用電視(* pageBanner)創建的橫幅樣式圖像。當沒有圖像添加時,我需要爲頁面內容的其餘部分添加一個52像素的間隔。這是我到目前爲止有:在Modx革命中使用「ifempty」和「notempty」

[[*pageBanner:notempty=`[[$pageImage]]`]] 
[[*pageBanner:ifempty=`<div id="no-image-spacer"></div>`]] 

<div id="content-wrapper"> 

    [[Breadcrumb? &exclude=`2,3,4,5,6,7,8,15`]] 
    [[$pageBody]] 

</div> 

的CSS#無圖像間隔:

#no-image-spacer { 
    padding-top: 52px; 
} 

及程序塊pageImage:

<img src="[[*pageBanner]]" alt="" class="img-responsive" style="display: block; max-height: 270px; width: 100%; object-fit: cover; padding-top: 52px;" /> 

它的工作時,有在沒有圖像電視(創建間隔div),但當電視中插入圖像時,它會顯示圖像並在圖像下方添加文件名稱(但不會創建間隔div)。任何想法爲什麼它添加文件名?看起來很奇怪,但我可能錯過了一些非常明顯的東西。

如果你想查看chrome檢查器的輸出,那麼你的網站是http://104.193.173.104/modx/index.php。在左側導航欄中,地圖有一個圖像,其餘的則沒有。

乾杯!

+0

是所有在你的頁面的代碼? –

+0

@ haakon319忽略最後一條評論,原始文章已更新爲整個頁面。謝謝! –

+1

對於文件名,檢查圖像電視的輸出選項,如果它不是「默認」。 –

回答

0

感謝@ZaighamR我想出了一個解決方案!

的塊pageContent現規定:

[[*pageBanner:notempty=``]] 
[[*pageBanner:ifempty=`<div id="no-image-spacer"></div>`]] 

...它調用pageBanner電視本身(而不是我的調用pageImage塊調用電視的舊系統)。然後,我改變了電視的輸出從「默認」爲「圖像」,並增加所有屬性從我pageImage大塊各自的領域:

<img src="[[*pageBanner]]" alt="" class="img-responsive" style="display: block; max-height: 270px; width: 100%; object-fit: cover; padding-top: 52px;" /> 

和它的作品!

0

可以串輸出修飾過,所以你可以有:

[[*pageBanner:notempty=` 
    <img src="[[*pageBanner]]" alt="" class="img-responsive" style="display: block; max-height: 270px; width: 100%; object-fit: cover; padding-top: 52px;" /> 
`:default=` 
    <div id="no-image-spacer"></div>` 
]]