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! 

  • 相关阅读:
    使用npm安装一些包失败了的看过来(npm国内镜像介绍)
    利用JMX统计远程JAVA进程的CPU和Memory
    Spring Boot学习笔记
    django数据库时间存储格式问题
    解决 Ubuntu 无法调节屏幕亮度的问题(转)
    django models auto_now和auto_now_add的区别
    django redis操作
    接口测试的工具
    django中migration文件是干啥的
    mysql简单操作(实时更新)
  • 原文地址:https://www.cnblogs.com/davidhhuan/p/2316851.html
Copyright © 2011-2022 走看看