yyc*_*man 0 css printing layout zend-framework
我使用'皮肤'方法将css加载到我的Zend Framework站点.
来自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>
Run Code Online (Sandbox Code Playgroud)
其中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);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
一切都在浏览器(任何图形浏览器)中显示,包括jQueryUI元素,如:http://i.stack.imgur.com/70PVl.png .
但是当我打印时,css完全被忽略了,就像这里:http: //i.stack.imgur.com/NGC25.png.
我完全难过了 - 在这里或ZF论坛上找不到任何关于为打印提供单独的css参数的内容.任何指针将不胜感激!
在此先感谢,罗曼
我不确定,但我认为你必须为CSS文件设置MediaType:
//Display + Print
->appendStylesheet($skin.'/css/'.$stylesheet, 'screen,print');
//Only for Printers
->appendStylesheet($skin.'/css/'.$stylesheet, 'print');
Run Code Online (Sandbox Code Playgroud)
有关View-Helper for Stylesheets的更多信息,请查看以下链接http://framework.zend.com/manual/de/zend.view.helpers.html#zend.view.helpers.initial.headlink