`
tiehao
  • 浏览: 32571 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

一些插件的使用

阅读更多

 

**********************************

fckeditor使用:  

***********************************

复制fckeditor.php 到 app/control目录下

                         复制js文件夹及其内容fckeditor到js目录下

      配置要使用文件

~form:

  _subject: "添加任务"

  _tips: true 

subject:

  _ui: textbox

  _label: "任务主题"

  _req: true

description:

  _ui: fckeditor

  toolbar: Custom

  width: 80%

  height: 150px

  _label: "任务描述"

 

调用配置文件生成表单

class Form_Task extends QForm

{

    function __construct($action)

    {

        // 调用父类的构造函数

        parent::__construct('form_task', $action);

 

        // 从配置文件载入表单

        $config = Helper_YAML::loadCached(dirname(__FILE__) . '/task_form.yaml.php');

$this->loadFromConfig($config);

$this->addValidations(Task::meta());

    }

}

 

**************************************************************

、、、、、、、、、分页显示pagination的使用:

************************************************************

1 复制 pagination.php到control目录下

2 在查询时取得分页信息 controlter下写

// 分页查询

$page = intval($this->_context->page);

if ($page < 1) $page = 1;

 

// 构造查询对象

$select = Post::find()->limitPage($page, 10);

 

// 将分页信息和查询到的数据传递到视图

$this->_view['pagination'] = $select->getPagination();

$this->_view['posts']      = $select->getAll();

 

3 在视图中显示

<?php

$this->_control('pagination', 'my-pagination', array(

    'pagination' => $pagination,

));

?>

***********************************

表单视图的使用,简单表单视图formview_simple_element.php的使用

****************************************************************************

1 复制formview_simple_element.php到_code/app/view/_elements/下

2 在表单输出的地方

<?php $this->_element('formview_simple', array('form' => $form)); ?>

3 表单配置文件的配置

 

# ~form 开头的内容用于指定表单属性

~form:

  _subject: "注册新用户"

  _tips: true

# 指定字段及过滤器等信息

username:

  _ui: textbox

  _filters: ['trim', 'strtolower']

  _label: "用户名"

  _req: true

password:

  _ui: password

  _label: "密码"

  _req: true

4 表单文件调用配置文件

 

class Form_UserLogin extends QForm

{

    function __construct($action)

    {

        parent::__construct('form_userlogin', $action);

 

        $config = Helper_YAML::loadCached(dirname(__FILE__) . '/userlogin_form.yaml.php');

$this->loadFromConfig($config);

        $this->addValidations(User::meta());

    }

}

 

 

******************************************8

自带插件acluser使用

·密码属性的自动加密

·验证用户名和密码的正确性

·验证用户名的唯一性

·查询用户的基本属性和角色信息

****************************

使用acluser插件,1修改_define()方法

(在模型中修改)

// 指定该 ActiveRecord 要使用的行为插件

            'behaviors' => 'acluser',

 

            // 指定行为插件的配置

            'behaviors_settings' => array

            (

                # '插件名' => array('选项' => 设置),

                'acluser' => array(

                    'acl_data_props' => 'username',

                ),

            ),

 

可能有关联

/**

                 * 添加对象间的关联

                 */

                # 'other' => array('has_one' => 'Class'),

 

                'tasks' => array(QDB::HAS_MANY => 'Task', 'target_key' => 'owner_id'),

 

**************************************************************************88

访问控制:

 

# 访问规则示例

#

 

users:

  allow: ACL_HAS_ROLE

  actions:

    register:

      allow: ACL_NO_ROLE

    login:

      allow: ACL_NO_ROLE

 

tasks:

  allow: ACL_HAS_ROLE

 

default:

  allow: ACL_EVERYONE

 

ALL_CONTROLLERS:

  deny: ACL_EVERYONE


在文件 acl.yaml 中修改设置  快速入门72页

 

*****************************************

****************************************8

添加ckeditor使用

1.下载ckeditor ckfinder,ckeditor复制到根目录下,然后我这里把ckfinder放到ckeditor目录里面

2.在control里面添加ckeditor.php代码如下、class Control_CKEditor extends QUI_Control_Abstr

class Control_CKEditor extends QUI_Control_Abstract
{
    function render()
    {
        $base_dir = $this->get('base_dir', $this->_context->baseDir() . 'ckeditor/');
        $base_dir = h(rtrim($base_dir, '/\\') . '/');
        $width = $this->get('width', "100%");
            $height = $this->get('height', "250px");
            $toolbar = $this->get('toolbar', "Default");
        $id = $this->id();
        $value = $this->get('value', '');
        $config = $this->get('config');
        if (!is_array($config))
        {
            $config = array();
        }

            $out = Q::control('memo', $this->id(), array('value'=>$value))->render();

        $out .= <<<EOT
<script type="text/javascript" src="{$base_dir}ckeditor.js"></script>
<script type="text/javascript">
//<![CDATA[
                                        var editor=CKEDITOR.replace( '{$id}',
                                                {
                                                        skin : 'v2',
                            filebrowserBrowseUrl : '{$base_dir}ckfinder/ckfinder.html',
                            filebrowserImageBrowseUrl : '{$base_dir}ckfinder/ckfinder.html?Type=Images',
                            filebrowserFlashBrowseUrl : '{$base_dir}ckfinder/ckfinder.html?Type=Flash',
                            filebrowserUploadUrl : '{$base_dir}ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files',
                            filebrowserImageUploadUrl : '{$base_dir}ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images',
                            filebrowserFlashUploadUrl : '{$base_dir}ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash',
                                              });

                                //]]>

</script>
EOT;
        return $out;
    }
}

 3.修改editor下config.js   可以添加以下代码,具体还有很多设置可以另外再找

 

CKEDITOR.config.width = 800;
	CKEDITOR.config.height = 360;
	
	config.toolbar=

		[

		['Source','-','Save','NewPage','Preview','-','Templates'],

		['Cut','Copy','Paste','PasteText'],

		['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],

		['Form','Checkbox','Radio','TextField','Textarea','Select','Button',

		'ImageButton','HiddenField'],

		'/',

		['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],

		['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],

		['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],

		['Link','Unlink','Anchor'],

		['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar',

		'PageBreak'],

		'/',

		['Styles','Format','Font','FontSize'],

		['TextColor','BGColor'],

		['Maximize','ShowBlocks','-','About']

		];
	config.protectedSource.push( /<\s*iframe[\s\S]*?>/gi ) ; // <iframe> tags. 
	config.protectedSource.push( /<\s*frameset[\s\S]*?>/gi ) ; // <frameset> tags. 
	config.protectedSource.push( /<\s*frame[\s\S]*?>/gi ) ; // <frame> tags. 
	config.protectedSource.push( /<\s*script[\s\S]*?\/script\s*>/gi ) ; // <SCRIPT> tags. 
	config.protectedSource.push( /<%[\s\S]*?%>/g ) ; // ASP style server side code 
	config.protectedSource.push( /<\?[\s\S]*?\?>/g ) ; // PHP style server side code 
	config.protectedSource.push( /(<asp:[^\>] >[\s|\S]*?<\/asp:[^\>] >)|(<asp:[^\>] \/>)/gi ) ; 

 4.ckfinder 里修改config。php   其中主要修改上传文件的路径 $baseUrl = '/uniteone/public/upload';

这样目录就是项目uniteone下/public/upload

还可以设置在打开插入图片、链接、图片域、flash时浏览服务器文件的权限 代码如下:

 

$config['AccessControl'][] = Array(
		'role' => '*',
		'resourceType' => '*',
		'folder' => '/',

		'folderView' => true,
		'folderCreate' => true,
		'folderRename' => false,
		'folderDelete' => false,

		'fileView' => true,
		'fileUpload' => true,
		'fileRename' => false,
		'fileDelete' => false);

4.1修改链接上传附件(如果不行还要修改ckfinder.js里面的代码修改成和image一样格式)

$config['AccessControl'][] = Array(
		'role' => '*',
		'resourceType' => 'Files',
		'folder' => '/Logos',

		'fileUpload' => true,
		'fileRename' => false,
		'fileDelete' => false);

config.js:

editorObj.Config['LinkBrowserURL'] = url + qs + 'type=' + ( filesType || 'Files' ) ;
	editorObj.Config['ImageBrowserURL'] = url + qs + 'type=' + ( imageType || 'Images' ) ;
	editorObj.Config['FlashBrowserURL'] = url + qs + 'type=' + ( flashType || 'Flash' ) ;

	var dir = url.substring(0, 1 + url.lastIndexOf("/"));
	editorObj.Config['LinkUploadURL'] = dir + "core/connector/" + ckfinder.ConnectorLanguage + "/connector."
		+ ckfinder.ConnectorLanguage + "?command=QuickUpload&type=" + ( filesType || 'Files' ) ;
	editorObj.Config['ImageUploadURL'] = dir + "core/connector/" + ckfinder.ConnectorLanguage + "/connector."
		+ ckfinder.ConnectorLanguage + "?command=QuickUpload&type=" + ( imageType || 'Images' ) ;
	editorObj.Config['FlashUploadURL'] = dir + "core/connector/" + ckfinder.ConnectorLanguage + "/connector."
		+ ckfinder.ConnectorLanguage + "?command=QuickUpload&type=" + ( flashType || 'Flash' ) ;
 

5.在form配置文件中使用ckeditor的地方 _ui:ckeditor

6.从配置文件中调用表单 代码基本是固定的,上面其他插件使用有贴出来。

分享到:
评论

相关推荐

    前端ofd预览插件使用

    本文将深入探讨如何在前端环境中使用OFD预览插件,帮助用户在浏览器中查看OFD文件。 首先,理解前端预览OFD文件的需求。由于OFD文件通常包含复杂的文本、图像和排版信息,因此需要一个专门的插件或库来解析和渲染...

    使用C++开发EXCEL插件

    5. 使用C++语言开发EXCEL插件需要具备的一些基本知识,包括C++基础和VC++编译环境。 6. EXCEL的API函数,包括xlcall.h文件中的定义和xlcall32.lib文件中的实现。 本书为开发人员提供了一份详细的指南,指导他们如何...

    跨浏览器插件框架FireBreath安装与使用之一——Windows下的插件

    4. 使用 FireBreath 框架生成插件代码,整个过程非常简单,只需要输入一些基本信息, FireBreath 框架就会自动生成插件代码。 FireBreath 框架的优点是: * 跨浏览器支持:FireBreath 框架支持多种浏览器,包括 ...

    inkscape生成G代码插件,inkscape实心填充插件,以及插件使用教程

    本篇将详细讲解如何利用Inkscape生成G代码的插件以及实心填充插件,并提供使用教程。 首先,Inkscape生成G代码插件允许用户将设计的SVG路径转换为适合CNC切割或3D打印的G代码。这个插件通常适用于那些希望将...

    窗口插件增强版V6.00_361插件_按键插件_361窗口插件_361插件下载_361插件绑定_

    这些插件通常提供一些原生按键精灵脚本不具备的功能,比如更复杂的窗口识别、鼠标点击、键盘输入等,以满足不同用户的定制化需求。 "按键插件"是361插件中的一个重要分支,专门针对按键精灵的脚本编写者。它允许...

    VS2022 插件-包含一些常用插件

    GitHub.Copilot.Vsix.1.10.0.3.vsix---只能生成ai插件 Installer_Projects离线安装包_2022.vsix-----打包安装程序插件 NET+Upgrade+Assistant.vsix--net升级插件 ResXManager.VSIX.vsix--多语言管理插件

    插件插件插件插件插件插件插件插件插件

    在“软件/插件”这个标签下,我们可以推断这个压缩包可能包含了一些软件的插件。虽然具体文件名称列表中只有“软件”这一项,但通常压缩包会包含一系列插件文件,如.dll、.exe、.jar等,它们对应不同的插件或插件...

    cad插件使用快捷

    标题“cad插件使用快捷”暗示我们将讨论如何利用CAD插件来提升CAD操作的速度。描述“提高cad操作速度”进一步强调了插件在优化工作流程中的关键作用。现在,让我们深入探讨CAD插件的相关知识点。 首先,了解CAD插件...

    插件插件插件插件插件插件

    一些流行的插件平台如Chrome、Firefox、WordPress、Sketch等提供了详细的开发指南和丰富的资源。 总的来说,插件是IT世界中不可或缺的一部分,它们使软件变得更加灵活和强大,满足了用户的个性化需求。了解插件的...

    魔兽世界lua插件开发教程

    魔兽世界lua插件开发教程是一本关于使用lua语言开发魔兽世界插件的教程。这本书籍提供了从基础知识到高级技术的详细指导,旨在帮助读者快速掌握lua语言和魔兽世界插件开发的技能。 本书籍的主要内容包括: 1. lua...

    sketch up 插件大全

    一些插件会在工具栏上添加图标,方便一键操作。 6. **说明.txt**: 这个文件可能是插件的使用指南或安装说明,包含了如何安装、配置和使用插件的详细步骤,以及可能遇到的问题和解决方案。 7. **土木工程网- 土木...

    一些常用的插件

    本主题将深入探讨“一些常用的插件”,主要关注jQuery库插件、地图自适应窗口插件以及判断客户端类型的插件。 首先,jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画和Ajax交互等任务。...

    ie插件ie插件ie插件ie插件ie插件ie插件

    1. **兼容性**:不同版本的IE对插件的支持程度不同,可能导致一些插件无法正常工作。 2. **安全性**:未经验证的插件可能会带来安全风险,如恶意软件或侵犯用户隐私。 3. **性能影响**:过多或资源消耗大的插件可能...

    插件功能使用方法2.0版本

    例如,新版本可能修复了旧版插件的一些问题,添加了更多定制选项,或者引入了全新的功能模块。 在"插件功能.exe"这个文件中,我们可以推断这是一款用于安装或运行插件的应用程序。用户可以通过运行此文件来安装或...

    QT4dll插件使用

    3. **检测和使用插件**:Qt提供了一些接口来检测可用的插件,例如`QImageIOPlugin::availableImageFormats()`可以列出所有已注册的图像格式插件。根据业务需求,你可以选择合适的插件进行使用。 4. **实例化插件**...

    maya插件清理工具

    这在长期使用Maya并频繁尝试新插件的用户中尤为重要,因为他们可能忘记卸载一些临时测试的插件,这些插件可能会在后台占用资源,影响整体性能。 插件清理工具的操作流程一般包括以下步骤: 1. **扫描插件**:工具...

    WPF使用MEF方式实现插件化加载控件

    2. **定义接口**:为了确保插件和主程序之间的通信,需要定义一些接口,这些接口定义了插件应提供的服务或功能。 3. **导入元数据**:在插件项目中,使用MEF的 `[Import]` 和 `[Export]` 属性来标记需要导出的类和...

    myeclipse9 的一些插件

    这个压缩包文件的标题表明它包含了一些针对MyEclipse 9的插件,这将极大提升开发效率和功能多样性。 一、MyEclipse 9基础介绍 MyEclipse 9是专为Java EE开发者设计的,支持多种编程语言,包括Java、JSP、JavaScript...

Global site tag (gtag.js) - Google Analytics