2012-01-05 66 views
0

屏幕布局我使用的是「皮膚」的方法來加載CSS到我的Zend框架的網站。打印VS Zend框架

從layout.phtml:

<head> 
    <?php 
    print $this->headTitle(); 
    print $this->headScript(); 
    $this->loadSkin($this->skin); 
    print $this->headLink(); 
    print $this->jQuery(); 
    print $this->layout()->customJS; 
    ?> 
</head> 

其中loadSkin()是一個視圖助手,看起來像這樣:

class Zend_View_Helper_LoadSkin extends Zend_View_Helper_Abstract { 
    public function loadSkin ($skin) { 
    $skinData = new Zend_Config_Xml('./skins/' . $skin . '/skin.xml'); 
    $stylesheets = $skinData->stylesheets->stylesheet->toArray(); 
    if (is_array($stylesheets)) { 
     foreach ($stylesheets as $stylesheet) { 
     $this->view->headLink()->appendStylesheet('$skin.'/css/'.$stylesheet); 
     } 
    } 
    } 
} 

一切顯示了在瀏覽器中細(任何圖形瀏覽器),包括jQueryUI的元素,喜歡這裏:http://i.stack.imgur.com/70PVl.png

但是當我打印時,css被完全忽略,像這樣: http://i.stack.imgur.com/NGC25.png

我徹底難倒了 - 這裏或ZF論壇上關於給予單獨的CSS打印參數無法找到任何東西。任何指針將不勝感激!

由於提前, -Roman

回答

5

蔭不知道,但我認爲你必須設置爲的MediaType CSS文件:

//Display + Print 
->appendStylesheet($skin.'/css/'.$stylesheet, 'screen,print'); 

//Only for Printers 
->appendStylesheet($skin.'/css/'.$stylesheet, 'print'); 

查看以下鏈接關於查看更多信息-Helper的樣式表http://framework.zend.com/manual/de/zend.view.helpers.html#zend.view.helpers.initial.headlink

+0

這是正確的。如果最後的參數沒有設置生成的代碼將默認爲媒體=「屏幕」,因而會出現打印無CSS。 – Lobo 2012-01-05 10:27:53

+0

謝謝!現在打印按預期工作。 – yycroman 2012-01-05 13:06:23

0

嘗試setStylesheet()方法來添加樣式表。