thinkphp修改及编写标签库,编辑器的使用

在view目录下创建Index_aaa.html

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>select</title>
  6. </head>
  7. <body>
  8. <tagLib name="html"/>
  9. <html:select options="address" selected="sh" values="address"/>
  10. </body>
  11. </html>

在IndexController.class.php里面编写函数

  1. public function aaa(){
  2. $this->assign("address",["sh"=> "上海","天津","北京","郑州"]);
  3. $this->display();
  4. }

修改此文件可以编写标签库

把输出的几项全部改为val即可解决values=‘0‘

的问题,让values的值等于option的值

编写新的标签

‘ms‘=>array(‘attr‘=>‘id,name,options,selected‘,‘close‘=>0)

<html:ms id="aa" name="uu" options="address" selected="北京"/><br>

修改后的代码selected的值可以随便写即可

  1. public function _ms($tag) {
  2. $name = $tag[‘name‘];
  3. $options = $tag[‘options‘];
  4. $id = $tag[‘id‘];
  5. $selected = $tag[‘selected‘];
  6. $parseStr = ‘<select id="‘.$id.‘" name="‘.$name.‘" >‘;
  7. $parseStr .=‘<?php foreach($‘.$options.‘ as $val) { ?>‘;
  8. $parseStr .=‘<?php if("‘.$selected.‘"==$val) { ?>‘;
  9. $parseStr .= ‘<option selected="selected" value="<?php echo $val ?>"><?php echo $val ?></option>‘;
  10. $parseStr .= ‘<?php } else { ?><option value="<?php echo $val ?>"><?php echo $val ?></option>‘;
  11. $parseStr .= ‘<?php } ?>‘;
  12. $parseStr .= ‘<?php } ?>‘;
  13. $parseStr .= ‘</select>‘;
  14. return $parseStr;
  15. }

可以根据分配的值来确定selected

  1. public function _ms($tag) {
  2. $name = $tag[‘name‘];
  3. $options = $tag[‘options‘];
  4. $id = $tag[‘id‘];
  5. $selected = $tag[‘selected‘];
  6. $parseStr = ‘<select id="‘.$id.‘" name="‘.$name.‘" >‘;
  7. $parseStr .=‘<?php foreach($‘.$options.‘ as $val) { ?>‘;
  8. /* $parseStr .=‘<?php if("‘.$selected.‘"==$val) { ?>‘;*///selected的值可以随便写
  9. $parseStr .=‘<?php if($‘.$selected.‘==$val) { ?>‘;//值可以先分配再写
  10. $parseStr .= ‘<option selected="selected" value="<?php echo $val ?>"><?php echo $val ?></option>‘;
  11. $parseStr .= ‘<?php } else { ?><option value="<?php echo $val ?>"><?php echo $val ?></option>‘;
  12. $parseStr .= ‘<?php } ?>‘;
  13. $parseStr .= ‘<?php } ?>‘;
  14. $parseStr .= ‘</select>‘;
  15. return $parseStr;
  16. }
  1. public function aaa(){
  2. $this->assign("address",["上海","天津","北京","郑州"]);
  3. $this->assign("sh","天津");
  4. $this->display();
  5. }
  1. <tagLib name="html"/>
  2. <html:ms id="aa" name="uu" options="address" selected="sh"/><br>

用框架本身带的也可以实现

把红线处的$key修改为$val用分配变量的方式也可以实现selected,系统自带的稍加修改,但是值不可以随便写在selected后

  1. public function _select($tag) {
  2. $name = $tag[‘name‘];
  3. $options = $tag[‘options‘];
  4. $values = $tag[‘values‘];
  5. $output = $tag[‘output‘];
  6. $multiple = $tag[‘multiple‘];
  7. $id = $tag[‘id‘];
  8. $size = $tag[‘size‘];
  9. $first = $tag[‘first‘];
  10. $selected = $tag[‘selected‘];
  11. $style = $tag[‘style‘];
  12. $ondblclick = $tag[‘dblclick‘];
  13. $onchange = $tag[‘change‘];
  14. if(!empty($multiple)) {
  15. $parseStr = ‘<select id="‘.$id.‘" name="‘.$name.‘" ondblclick="‘.$ondblclick.‘" onchange="‘.$onchange.‘" multiple="multiple" class="‘.$style.‘" size="‘.$size.‘" >‘;
  16. }else {
  17. $parseStr = ‘<select id="‘.$id.‘" name="‘.$name.‘" onchange="‘.$onchange.‘" ondblclick="‘.$ondblclick.‘" class="‘.$style.‘" >‘;
  18. }
  19. if(!empty($first)) {
  20. $parseStr .= ‘<option value="" >‘.$first.‘</option>‘;
  21. }
  22. if(!empty($options)) {
  23. $parseStr .= ‘<?php foreach($‘.$options.‘ as $key=>$val) { ?>‘;
  24. if(!empty($selected)) {
  25. $parseStr .= ‘<?php if(!empty($‘.$selected.‘) && ($‘.$selected.‘ == $val || in_array($key,$‘.$selected.‘))) { ?>‘;
  26. $parseStr .= ‘<option selected="selected" value="<?php echo $val ?>"><?php echo $val ?></option>‘;
  27. $parseStr .= ‘<?php }else { ?><option value="<?php echo $val ?>"><?php echo $val ?></option>‘;
  28. $parseStr .= ‘<?php } ?>‘;
  29. }else {
  30. $parseStr .= ‘<option value="<?php echo $val ?>"><?php echo $val ?></option>‘;
  31. }
  32. $parseStr .= ‘<?php } ?>‘;
  33. }else if(!empty($values)) {
  34. $parseStr .= ‘<?php for($i=0;$i<count($‘.$values.‘);$i++) { ?>‘;
  35. if(!empty($selected)) {
  36. $parseStr .= ‘<?php if(isset($‘.$selected.‘) && ((is_string($‘.$selected.‘) && $‘.$selected.‘ == $‘.$values.‘[$i]) || (is_array($‘.$selected.‘) && in_array($‘.$values.‘[$i],$‘.$selected.‘)))) { ?>‘;
  37. $parseStr .= ‘<option selected="selected" value="<?php echo $‘.$values.‘[$i] ?>"><?php echo $‘.$output.‘[$i] ?></option>‘;
  38. $parseStr .= ‘<?php }else { ?><option value="<?php echo $‘.$values.‘[$i] ?>"><?php echo $‘.$output.‘[$i] ?></option>‘;
  39. $parseStr .= ‘<?php } ?>‘;
  40. }else {
  41. $parseStr .= ‘<option value="<?php echo $‘.$values.‘[$i] ?>"><?php echo $‘.$output.‘[$i] ?></option>‘;
  42. }
  43. $parseStr .= ‘<?php } ?>‘;
  44. }
  45. $parseStr .= ‘</select>‘;
  46. return $parseStr;
  47. }

引入ueditor放在js里面修改ueditor.config.js为如下的代码

  1. window.UEDITOR_HOME_URL = "/Public/js/ueditor/";

thinkphp里面放百度编辑器

  1. $parseStr = ‘<script id="container" name="content" type="text/plain">这里写你的初始化内容</script><script type="text/javascript" src="__ROOT__/Public/js/ueditor/ueditor.config.js"></script><script type="text/javascript" src="__ROOT__/Public/js/ueditor/ueditor.all.js"></script><script type="text/javascript"> var ue = UE.getEditor("container",{emotionLocalization:true,lang:"zh-cn",initialFrameWidth:"80%",initialFrameHeight:320,textarea:"content",initialContent:"欢迎留言!", autoClearinitialContent:true}); </script>‘;

然后在Index_aaa.html 里面编写要显示的代码

  1. <tagLib name="html"/>
  2. <html:editor type="UEDITOR"></html:editor>

来自为知笔记(Wiz)

时间: 2024-11-10 07:27:48

thinkphp修改及编写标签库,编辑器的使用的相关文章

标签库

ThinkPHP 模版中的标签库,我们使用的很多内置标签就是通过标签库声明而来的,当然还可以自定义扩展标签. 一.内置标签 模版中的这些内置标签是是在  ThinkPHP/Library/Think/Template/TagLib  下 在完整版中提供了两个类文件: Cx.class.php (内置标签核心类). Html.class.php (html 扩展标签) 观察  Cx.class.php  源码,我们发现其实就是内置标签的核心类.比如: 1 /** 2 * volist标签解析 循环

JavaWeb-12 (自定义标签库开发&amp;JSTL标签库)

JavaWeb-12:自定义标签库开发&JSTL标签库 自定义标签库开发 一.自定义标签简介 自定义标签主要用于移除Jsp页面中的java代码. 使用自定义标签移除jsp页面中的java代码,只需要完成以下两个步骤: 1.编写一个实现Tag接口的Java类(标签处理器类). 2.编写标签库描述符(tld)文件,在tld文件中把标 实验:项目架构如下: a.tld <?xml version="1.0" encoding="utf-8" ?> &l

学习笔记_Java_day13_JSTL_自定义标签库(9)

自定义标签 1 自定义标签概述 1.1 自定义标签的步骤 其实我们在JSP页面中使用标签就等于调用某个对象的某个方法一样,例如:<c:if test=””>,这就是在调用对象的方法一样.自定义标签其实就是自定义类一样! l  定义标签处理类:必须是Tag或SimpleTag的实现类: l  编写标签库描述符文件(TLD): SimpleTag接口是JSP2.0中新给出的接口,用来简化自定义标签,所以现在我们基本上都是使用SimpleTag. Tag是老的,传统的自定义标签时使用的接口,现在不建

jsp的标签库和自定义标签

1.jstl标签库 JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签. 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签. 根据JSTL标签所提供的功能,可以将其分为5个类别. 核心标签 格式化标签 SQL 标签(过时) XML 标签(过时) JSTL 函数 1.1使用taglib指令导入标签库 ,除了JSP动作标签外,使用其他第三方的标签库都需要:  <%

JAVAWEB开发之JSTL标签库的使用、 自己定义EL函数、自己定义标签(带属性的、带标签体的)

JSTL JSTL简单介绍: JSTL的全称:JSP Standard Tag Library.JSP标准标签库 JSTL的作用: 提供给Java Web开发者一个标准通用的标签函数库 和EL来代替传统直接在页面上嵌入Java程序(Scripting)的做法,以提高程序可读性.维护性和方便性 JSTL的版本号: JSTL的主要版本号是1.0.1.1和1.2(差别不大) 1.0版本号EL表达式还没有纳入官方规范 1.1和1.2版本号EL表达式已经纳入了官方规范 JSTL1.1 下载对应的jar包

[原创]java WEB学习笔记40:简单标签概述(背景,使用一个标签,标签库的API,SimpleTag接口,创建一个自定义的标签的步骤 和简单实践)

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

thinkphp的缓存与taglib-html标签库

TP中的标签库+-------------------------------------------------------------------------+要使用标签库扩展,需要在项目配置文件中定义taglibs.php文件,格式如下:return array(    'mytag'=>'@.Taglib.TaglibMyTag',)+-------------------------------------------------------------------------+然后在

javaweb学习总结(二十六)——jsp简单标签标签库开发(二)

一.JspFragment类介绍 javax.servlet.jsp.tagext.JspFragment类是在JSP2.0中定义的,它的实例对象代表JSP页面中的一段符合JSP语法规范的JSP片段,这段JSP片段中不能包含JSP脚本元素. WEB容器在处理简单标签的标签体时,会把标签体内容用一个JspFragment对象表示,并调用标签处理器对象的setJspBody方法把JspFragment对象传递给标签处理器对象.JspFragment类中只定义了两个方法,如下所示: getJspCon

转: JSTL SQL标签库 使用

SQL标签库 JSTL提供了与数据库相关操作的标签,可以直接从页面上实现数据库操作的功能,在开发小型网站是可以很方便的实现数据的读取和操作.本章将详细介绍这些标签的功能和使用方法. SQL标签库从功能上可以划分为两类:设置数据源标签.SQL指令标签. 引入SQL标签库的指令代码为: <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %> 1 设置数据源 使用<sql:set