2014-06-12 53 views
0

主要問題: 交換機內部的回聲輸出與自身輸出不同嗎?簡單的PHP開關案例改變輸出...我做錯了什麼?

-

我不認爲這是什麼太參與,但它肯定是引起頭痛的一點點對我來說!

首先簡單的東西,我能夠顯示這樣的的Joomla完整的文章圖片:

<img src="<?php echo htmlspecialchars($images->image_fulltext); ?>" /> 

我當時就想擴大這種和收藏夾添加到圖像,從而變成這樣:

<a href="<?php echo htmlspecialchars($images->image_fulltext); ?>" data-lightbox="image"> 
    <img src="<?php echo htmlspecialchars($images->image_fulltext); ?>" /> 
</a> 

燈箱工作正常。

但是,我只希望這個燈箱適用於某些菜單ID(我有多種語言的新聞部分,所以只想在查看某些頁面ID時應用超鏈接)。

我決定做一個開關(很簡單的!)

<?php 
$app = JFactory::getApplication(); 
$menuID = $app->getMenu()->getActive()->id; 

switch ($menuID) { 
    case '168': 
    case '231': 
     echo 
     "<a href='".htmlspecialchars($images->image_fulltext)."' data-lightbox='image'> 
     <img src='".htmlspecialchars($images->image_fulltext)."' /> 
     </a>"; 
    break; 

    default: 
     echo 
     "<img src='".htmlspecialchars($images->image_fulltext)."' />"; 
    break; 
} 
?> 

的問題是,開關正在改變SRC的輸出。

外部開關: /armouredshielding/images/news-events/website-screenshot.jpg

內部開關:圖像/新聞事件/網站screenshot.jpg

這肯定開關的工作方式不是這樣嗎?它仍然使用echo命令,所以輸出應該完全相同?

任何幫助,非常感謝!

+0

我不知道這個,但通常是'break'應與'case'語句中的一行代碼。 – Hawk

+0

這種佈局是如何崇高的文本輸出它,它絕對有效。就我所知,換行符對案件沒有任何影響。但是,謝謝你的建議! – Lee

+0

http://stackoverflow.com/questions/1383677/php-two-values-in-the-case-of-switch 我的開關佈局是正確的。休息前可以有幾種情況。 – Lee

回答

0

我喜歡的東西更是這樣的:

$pagesToLight = array (168,231); 

if(in_array($menuID, $pagesToLight)){ 
     echo "<a href='".htmlspecialchars($images->image_fulltext)."' data-lightbox='image'> 
     <img src='".htmlspecialchars($images->image_fulltext)."' /> 
     </a>"; 
} else { 
     echo "<img src='".htmlspecialchars($images->image_fulltext)."' />"; 
} 
+0

非常感謝,儘管您的回覆中有幾處語法錯誤。但是我修復了它們。但問題是,確切的行爲仍在發生。輸出結果不同於我在img標籤中做了一個簡單的<?php回聲。任何想法,爲什麼它不同? – Lee

+0

是的,我錯過了一個parens或2 lol。 當你在這裏被調用時,你的對象可能不會看到你的網站的根? – VikingBlooded

+0

但是不管它的內部還是外部的開關都不重要?我可以在開關前後做簡單的回聲,並顯示圖像沒問題。似乎只要它在交換機或IF語句中。 – Lee

相關問題