zoukankan      html  css  js  c++  java
  • [Yii Framework] How to develop an extension with image, css and js

    Here is an example of how to develop a widget (yes, widget is also an extension in Yii) in Yii.

    Let say you want to display something with widget in the page, of course you can place your widget

    in protected/components when there are one or two classes inside. But when there is a lot of them, 

    it is hard for you to manage them. Therefore we will place them in protected/extensions. Here we

    will build the testWidget, the path will be protected/extensions/testWidget.

    Structure:

    | | | `~testWidget/
    | | |   |~assets/
    | | |   | |~css/
    | | |   | | `-testWidget.css
    | | |   | |~images/
    | | |   | | `-loading.gif
    | | |   | `~js/
    | | |   |   `-testWidget.js
    | | |   |~views/
    | | |   | `-testWidget.php
    | | |   `-testWidget.php

      

    1. Develop a widget class file: testWidget.php

    <?php
    class testWidget extends CWidget
    {
        private $loadingImageUrl;

        public function init()
        {
            $assetsDir = dirname(__FILE__).'/assets';
            $cs = Yii::app()->getClientScript();
            $cs->registerCoreScript("jquery");
            
            // Publishing and registering JavaScript file
            $cs->registerScriptFile(
                Yii::app()->assetManager->publish(
                    $assetsDir.'/js/testWidget.js'
                ),
                CClientScript::POS_END
            );
                    
            // Publishing and registering CSS file
            $cs->registerCssFile(
                Yii::app()->assetManager->publish(
                    $assetsDir.'/css/testWidget.css'
                )
            );
            
            // Publishing image
            $this->loadingImageUrl = Yii::app()->assetManager->publish(
                $assetsDir.'/images/loading.gif'
            );
        }


        public function run()
        {
            $this->render(
                'testWidget', 
                array(
                    'loadingImageUrl' => $this->loadingImageUrl,
                )
            );
        }
    }

    2. Develop the view file:

    <?php echo 'Hello, world!';?>

    3. You can develop you testWidget.css and testWidget.js file. 

    4. Use the new widget.

    <?php $this->widget("ext.testWidget.testWidget")?>

    Yes, that is a very simple widget extension, just a tutorial to show how to build one.

    Have fun with Yii! 

  • 相关阅读:
    MyEclipse 中无法直接使用BaseEncoder问题
    一个随机数发生器 用于在服务器和客户机直接进行安全性验证的类
    JS中如何防止表单重复提交问题
    Centos 7 配置tomcat服务器
    tomcat 报错出现 jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
    Tomcat 报错 The APR based Apache Tomcat Native library which allows optimal performance in production environmen
    阿里云服务器Centos 7安装PHP
    网站开发过程中的URL写法
    Servlet防止盗链
    2018年蓝桥杯java b组第八题
  • 原文地址:https://www.cnblogs.com/davidhhuan/p/2316851.html
Copyright © 2011-2022 走看看