微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 使用JavaScript库的Zend Framework

我已经和Zend Framework合作了几个月了.到目前为止,我已经成功地使用了一些视图助手,动作帮助器和局部视图.现在我遇到了一些我想在我的项目中使用的javascript库,比如TinyMCE和其他.

我的问题是,在Zend项目中实现这些的最佳方法是什么?我希望能够在视图级别添加或启用这些JavaScript库.因此,例如当我转到包含zend_form的addSomething.phtml时,我的一个文本区域变成了TinyMCE编辑器字段.但是我不想在我的所有表单甚至所有文本区域元素上使用它.

那么在ZF 1.11.11下实现并接近这些库的最佳方法是什么?

提前感谢任何给出的建议:)

解决方法:

您可以使用视图助手在每个控制器/视图的基础上加载javascript和css文件.这是我已经尝试过的东西,我发现它非常有用,虽然我还没有把它放到一个实时项目中,我还在评估它.

Here is the devzone article I got the idea from. Andy Baird的所有功劳都归功于发布技术.

基本上你设置了两个视图助手,一个用于javascript: –

class Zend_View_Helper_JavascriptHelper extends Zend_View_Helper_Abstract
{   
    function javascriptHelper() {
        $request = Zend_Controller_Front::getInstance()->getRequest();
        $file_uri = 'media/js/' . $request->getControllerName() . '/' . $request->getActionName() . '.js';

        if (file_exists($file_uri)) {
            $this->view->headScript()->appendFile('/' . $file_uri);
        }
    }
}

一个用于CSS: –

class Zend_View_Helper_CssHelper extends Zend_View_Helper_Abstract 
{ 
    function cssHelper() { 
        $request = Zend_Controller_Front::getInstance()->getRequest(); 
        $file_uri = 'media/css/' . $request->getControllerName() . '/' . $request->getActionName() . '.css'; 

        if (file_exists($file_uri)) { 
            $this->view->headLink()->appendStylesheet('/' . $file_uri); 
        } 

        return $this->view->headLink(); 

    } 
}

然后从布局脚本中调用它们: –

<head> 
    <Meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
    <title>My app title</title> 
    <? $this->headLink()->appendStylesheet('/media/css/global.css') ?> 
    <? $this->headLink()->appendStylesheet('/media/css/iefix.css','screen','lt IE 7') ?>     
    <?= $this->cssHelper() ?>    
    <? $this->headScript()->appendFile('/media/js/jquery-1.3.2.min.js') ?> 
    <? $this->headScript()->appendFile('/media/js/global.js') ?> 

    <? $this->javascriptHelper() ?> 
    <?= $this->headScript() ?> 
</head>

然后,将javascript和css文件存储在反映它们所用操作名称文件夹中,例如: –

media/js/index/index.js
media/css/index/index.css

为您的索引操作加载css和javascript.

在实践中我发现最好将javascript和css放在同一个文件夹中,所以我错过了js& css上面路径的一部分,并相应调整两个助手中的$file_url变量.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐