织梦(dede)添加栏目图片功能

数据库操作:

  1. alter table 表名 add typeimg char(100) NOT NULL default ;

需要修改的文件如下:

  1. dede/catalog_add.php                      控制器文件
  2. dede/catalog_edit.php                      控制器文件
  3. dede/templets/catalog_add.htm       模板文件
  4. dede/templets/catalog_edit.htm       模板文件

打开dede/catalog_add.php      

查找

$queryTemplate=”insertinto#@_arctype

(reid,topid,sortrank,typename,typedir,

替换为

(reid,topid,sortrank,typename,typedir,typeimg,

(‘~reid~’,’~topid~’,’~rank~’,’~typename~’,’~typedir~’,

替换为

(‘~reid~’,’~topid~’,’~rank~’,’~typename~’,’~typedir~’,’~typeimg~’,

 

打开dede/catalog_edit.php控制器

查找

$upquery=”Updatecn_arctypeset

在其下面新加一行

typeimg=’$typeimg’,

 

打开dede/templets/catalog_add.htm模板

查找

  1. <tr>
  2.   <td height=“26”>列表命名规则:</td>
  3.   <td>
  4.     <input name=“namerule2” type=“text” id=“namerule2” value=“{typedir}/list_{tid}_{page}.html” class=“pubinputs” style=“width:250px” />
  5.     <img src=“img/help.gif” alt=“帮助” width=“16” height=“16” border=“0” style=“cursor:pointer” onClick=“ShowHide(‘helpvar3’)” /></td>
  6. </tr>

追加

  1. <tr>
  2.   <td height=“65” style=“padding-left:10px;”>栏目图片:</td>
  3.   <td>
  4.     <input name=“typeimg” type=“text” style=“width:250px” id=“typeimg” class=“alltxt” value=“” />
  5.     <input type=“button” name=“set9” value=“浏览… “ class=“coolbg np” style=“width:60px” onClick=“SelectImage(‘form1.typeimg’,”);” /></td>
  6. </tr>

并在文件的head增加以下内容

  1. <script language=’javascript’ src=“js/main.js”></script>

打开dede/templets/catalog_edit.htm模板

同上,查找’列表命名规则’;追加如下:

  1. <tr>
  2.   <td height=“65” style=“padding-left:10px;”>栏目图片:</td>
  3.   <td>
  4.     <input name=“typeimg” type=“text” style=“width:250px” id=“typeimg” class=“alltxt” value=“<?php echo $myrow[‘typeimg’]?>” />
  5.     <input type=“button” name=“set9” value=“浏览… “ class=“coolbg np” style=“width:60px” onClick=“SelectImage(‘form1.typeimg’,”);” /></td>
  6. </tr>

并在文件的head增加以下内容:

  1. <script language=’javascript’ src=“js/main.js”></script>

调用栏目图片:

  1. {dede:type}
  2. <img src=“[field:typeimg/]”>
  3. {/dede:type}

修改后台文件:include/taglib/type.lib.php

 

UEditor编辑器的使用

1、引入

  1. ueditor.config.js
  2. ueditor.all.min.js
  3. lang/zh-cn/zh-cn.js

2、编辑器显示处  id=”content”

3、底部

  1. <script type=“text/javascript”>
  2.     //实例化编辑器
  3.     //建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor(‘editor’)就能拿到相关的实例
  4.     UE.getEditor(‘content’,{initialFrameWidth:1500,initialFrameHeight:400,});
  5. </script>

织梦pc端+手机端 搜索功能实现

  1. <!–搜索form表单:方法一–>
  2.     <div class=“contentBox mb0”>
  3.       <h5 class=“h5Ttl01”><a href=“#”><img src=“/templets/default/img/index/h5_img04.png” height=“57” width=“1200” alt=“合作客户 cooperative client” /></a></h5>
  4.       <div class=“inputBox clearfix”>
  5.       <form action=“{dede:global.cfg_cmsurl/}/plus/search.php”>
  6.         <input type=“text” name=“q” value=“输入公司名称” onfocus=“if(value==’输入公司名称’) {value=”}” onblur=“if (value==”) {value=’输入公司名称’}”/>
  7.         <input onclick=“document.forms[0].submit();” type=“button” name=“search” value=“” />
  8.     </form>
  9.       </div>
  10. <!–搜索form表单:方法二–>
  11. <form  name=“formsearch” action=“{dede:global.cfg_cmsurl/}/plus/search.php” autocomplete=“off”>
  12.         <div class=“form”>
  13.           <h4>搜索</h4>
  14.            <input type=“hidden” name=“kwtype” value=“0” />
  15.            <input name=“q” type=“text” class=“search-keyword” id=“search-keyword” placeholder=“在这里搜索…” value=“在这里搜索…” onfocus=“if(this.value==’在这里搜索…’){this.value=”;}”  onblur=“if(this.value==”){this.value=’在这里搜索…’;}” />
  16. <input type=“text”  autocomplete=“off” name=“q” id=“searchkey” placeholder=“在这里搜索…”  maxlength=“60” onfocus=”if (value ==’在这里搜索…’){value =”}”onblur=”if (value ==”){value=‘在这里搜索…’}”>
  17.            <select name=“searchtype” class=“search-option” id=“search-option”>
  18.                <option value=“title” selected=‘1’>检索标题</option>
  19.                <option value=“titlekeyword”>智能模糊</option>
  20.            </select>
  21.           <button type=“submit” class=“search-submit”>搜索</button>
  22.         </div>
  23.         </form>
  24. <!–打印搜索结果页–>
  25.       <div class=“imgBox clearfix”>
  26.          {dede:list pagesize =’12’ channelid=“1” addfields=“link” }
  27.           <h2><a href=“[field:arcurl/]”><span>[field:title/]</span></h2>
  28.           [field:description/]
  29.           <span>[field:pubdate function=“MyDate(‘Y-m-d’,@me)”/]</span>
  30.           <br/>
  31.           <hr style=“height:1px;border:none;border-top:1px dashed #424242;” />
  32.           <br/>
  33.           {/dede:list}
  34.         </div>

手机端:
首先打开php文件plus/search.php
重命名一个plus/search_m.php代码一样

然后打开php文件include/arc.searchview.class.php
重命名include/arc.searchview.classm.php代码一样。

后面就是修改一下php文件了,打开search_m.php文件,里面第13行
require_once(DEDEINC.”/arc.searchview.class.php”);
修改为
require_once(DEDEINC.”/arc.searchview.classm.php”);

然后打开include/arc.searchview.classm.php文件,找到第131行
$tempfile = $GLOBALS[‘cfg_basedir’].$GLOBALS[‘cfg_templets_dir’].”/”.$GLOBALS[‘cfg_df_style’].”/search.htm”;
修改为
$tempfile = $GLOBALS[‘cfg_basedir’].$GLOBALS[‘cfg_templets_dir’].”/”.$GLOBALS[‘cfg_df_style’].”/search_m.htm”;

织梦dedecms标签调用集合,史上最全,仿站必备2

  1. <!———————if标签 condition属性自动判断vo变量是数组还是对象,不需要加{}———————>
  2.  <if condition=“$vo.zhaotype eq 1 “>竞标中
  3.   <else />竞标结束
  4.  </if>
  5. <!———————select、volist、eq———————>
  6. <select name=“”>
  7.     <option value=“1” <eq name=‘vo.status’  value=‘1’>selected</eq>>竞标中</option>
  8.     <option value=“2” <eq name=‘vo.status’  value=‘2’>selected</eq>>中标</option>
  9.     <option value=“3” <eq name=‘vo.status’  value=‘3’>selected</eq>>淘汰</option>
  10. </select>
  11. <eq name=“vo.sta” value=“0”>等待审核</eq>
  12. <volist name=“list” id=“vo”>
  13.   <tr class=“tuo-tit1”>
  14.     <td><span class=“tuo-date”>{$vo.date} </span></td>
  15.     <td><select name=“”>
  16.     <option value=“1” <eq name=‘vo.status’  value=‘1’>selected</eq>>竞标中</option>
  17.     <option value=“2” <eq name=‘vo.status’  value=‘2’>selected</eq>> 中标</option>
  18.     <option value=“3” <eq name=‘vo.status’  value=‘3’>selected</eq>>淘汰</option></select></td>
  19.     <td><a href=“#”>查看</a><a href=“#”>发私信</a></td>
  20.   </tr>
  21.   </volist>
  22. <!———————提交———————>
  23. (1)<a href=“”>
  24. <form method=“post” action=“__APP__/User/zhichuselect” name=“form” id=“form”>
  25.    查询时间:
  26.     <input type=“text”  name=“beginTime”  id=“beginTime” class=“easyui-datebox” style=“height:auto;”/>
  27.     <input type=“text”  name=“endTime” id=“endTime”  class=“easyui-datebox”/>
  28.     <a href=“javascript:;” onclick=“$(‘#form’).submit()”></a>
  29. </form>
  30. (2)如果a调用onclick方法 如:checkname()
  31. <a href=“javascript:checkname();”></a>
  32. (3)<input type=“submit”>
  33. <form action=“__APP__/User/sendLetter” method=“post”>
  34.     请输入对方的昵称:<input type=“text” class=“cing-nr”  id=“name”  name=“name”/></dt>
  35.      内容:<textarea cols=“” rows=“” class=“cing-not” name=“content” id=“content”></textarea>
  36.         <input name=“” type=“submit”  value=“发送” class=“cing-sub” /><input name=“” type=“reset” value=“清空” class=“cing-reset” />
  37.         </dd>
  38.     </dl>
  39.     </form>
  40. (4)<input type=“button”>【(得载入{:W(‘Easyui’)})
  41. function submits(){
  42.     $(“#form”).form(“submit”,{
  43.         url:”__URL__/xinxi”,
  44.         success:function(data){
  45.             var msg= $.parseJSON(data);
  46.             alert(msg.msg);
  47.                         if(msg.sta==1){
  48.                    window.location.href=“__URL__/registeEnd”;//提交成功后跳转页面
  49.             }else{
  50.                alert(msg.msg);
  51.             }
  52.         }
  53.     });
  54. }
  55. <input name=“” type=“button”  onclick=“submits()”/>
  56. $u=$users->where(array(‘id’=>15))->save($data);
  57.         if($u){
  58.             $json [‘msg’] = “信息添加成功”;
  59.             $json [‘sta’] = 1;
  60.         }else{
  61.             $json [‘msg’] = “信息添加失败”;
  62.             $json [‘sta’] = 2;
  63.         }
  64.         $this->ajaxReturn ( $json );
  65. 需要传id参数的话
  66. <input name=“” type=“button”  onclick=“submits({$vo.id})” />//submits(id)
  67. function submits(id){
  68. …………..
  69. …………..
  70.                 if(msg.sta==1){
  71.              window.location.href=“__URL__/registeEnd/id/”+id;//提交成功后跳转页面
  72.                }
  73. }
  74. (5)<input type=“submit”>调用jquery文件【
  75. <form id=“form1” name=“form1” action=“__APP__/User/sendLetter” method=“post” onsubmit=“return xxg();”>
  76. <input name=“name” id=“name”>
  77. </form>
  78. <script language=“JavaScript”>
  79. function xxg()
  80. { //两种判断方法
  81.     /* if(document.getElementById(“name”).value==””){
  82.         alert(‘姓名不能为空’);
  83.         return false;
  84.     }*/
  85.     if($(“#name”).val()==””){
  86.         alert(“姓名不能为空”);
  87.         return false;
  88.     }else{
  89.         return true;
  90.     }
  91.   }
  92. </script>
  93. 获取刚注册添加的用户的id
  94. $r = $users->add ( $data );//$r就是刚刚添加成功的用户的id
  95. <!———————根据条件输出不同的内容———————>
  96.  <volist name=“list” id=“vo”>
  97.     <eq name=“vo.sender_uid” value=“$userid”>//当前用户的id等于vo.sender_uid的时候输出下面内容
  98.     <dl class=“hui-bs”>
  99.     <dt><a href=“#”><img src=“__PUBLIC__/cms/images/h-bar14.jpg”  /></a></dt>
  100.     <dd>
  101.     <span class=“hui-true”>{$vo.sender_name}:{$vo.send_content}</span>
  102.     <p><span class=“tui-delete”><a href=“#”>回复</a> | <a href=“__URL__/detele/id/{$vo.id}”>删除</a></span>{$vo.send_time}</p>
  103.     </dd>
  104.     </dl>
  105.     </eq>
  106.     <neq name=“vo.sender_uid” value=“$userid”>当前用户的id不等于vo.sender_uid的时候输出下面内容
  107.     <dl class=“hui-bs hui-bs1”>
  108.     <dd>
  109.     <span class=“hui-true”>{$vo.receive_name}:{$vo.send_content}</span>
  110.     <p><span class=“tui-delete”><a href=“#”>回复</a> | <a href=“#”>删除</a></span>{$vo.send_time}</p>
  111.     </dd>
  112.     <dt><a href=“#”><img src=“__PUBLIC__/cms/images/h-bar14.jpg”  /></a></dt>
  113.     </dl>
  114.     </neq>
  115.  </volist>
  116. <!———————文本框只读,不能改———————>
  117. <input readonly=“readonly” type=“text” name=“title” id=“title” style=“width: 100%; background-color:#B4C0CB” value=“” />//readonly=“readonly”只读
  118. <!———————回车提交功能———————>
  119. $(function(){
  120. $(“#form1”).keydown(function(e){
  121.         var curKey = e.which;
  122.         if(curKey == 13){
  123.             login();
  124.         }
  125.     });
  126. })
  127. <!———————iframe———————>
  128. iframe 自适应高度
  129. <script type=“text/javascript”>
  130.             function SetCwinHeight(obj) {
  131.                 var height1 = $(obj).contents().find(“body”).css(“height”);
  132.                 var height2 = $(obj).contents().find(“html”).css(“height”);
  133.                 var height = “”;
  134.                 if (height1 > height2) {
  135.                     height = height1;
  136.                 } else {
  137.                     height = height2;
  138.                 }
  139.                 $(obj)
  140.                         .css(“height”,
  141.                                 (height.replace(“px”, “”) / 1 + 20) + “px”);
  142.             }
  143.         </script>
  144.         <iframe onload=“SetCwinHeight(this)” src=“__URL__/indexFrame”//indexFrame页面
  145.             style=“width: 776px;” frameborder=“0” scrolling=“no”></iframe>
  146. <!———————设置默认图片———————>
  147. <img src=“touxiang/{$vo.photo}”  onerror=‘src=”touxiang/1.jpg”‘ />//当链接图片没有,则显示默认图片1.jpg
  148. <!———————eq等于 neq不等于———————>
  149. <eq name=“vo.sender_uid” value=“$userid”>{$vo.receive_name}</eq><neq name=“vo.sender_uid” value=“$userid”>{$vo.sender_name}</neq>
  150. <!———————where条件———————>
  151. $where[‘id’]=1; (对)$where[‘id’]=array(‘eq’,1);(对)
  152. $where[‘id’]!=1;(错)$where[‘id’]=array(‘neq’,1);(对)
  153. 区间查询
  154. $where[‘id’]= array(array(‘neq’,6),array(‘gt’,3),’and’); id大于3并且不等于6
  155. $where[‘id’]  = array(‘between’,’1,8′);//between查询
  156. $where[‘id’]  = array(‘between’,array(‘1′,’8’));//between查询
  157. 模糊查询
  158. $where[‘name’] = array(‘like’,’thinkphp%’);//模糊查询
  159. $where[‘name’] = array(‘notlike’,’thinkphp%’);//模糊反向查询
  160. $where3[‘zuozhe’]= array(array(‘like’,’%,’.$bb[1].”,%”),array(‘notlike’,’%,’.$bb[0].”,%”),’and’);//合并模糊查询
  161. $where[‘id’]  = array(‘exp’,’ IN (1,3,8) ‘);//EXP:表达式,支持更复杂的查询情况
  162. 快捷查询(“|”和“&”不能同时使用)
  163. $where[‘name|title’] = ‘thinkphp’;//name=‘thinkphp’ OR title = ‘thinkphp’
  164. $where[‘status&title’] =array(‘1′,’thinkphp’,’_multi’=>true);//’_multi’=>true必须加在数组的最后,表示当前是多条件匹配,这样查询条件就变成status=1 AND title = ‘thinkphp’
  165. $user->where(‘id=1‘)->select;
  166. $user->where(array(‘id’=>1))->select;
  167. $where[‘id’]=1;
  168. $user->where($where)->select;
  169. $User = D(“User”); // 实例化User对象
  170. $condition[‘name’] = ‘thinkphp’;
  171. $condition[‘account’] = ‘thinkphp’;
  172. $condition[‘_logic’] = ‘OR’;//通过使用 _logic 定义查询逻辑:
  173. // 把查询条件传入查询方法
  174. $User->where($condition)->select();
  175. 最后生成的SQL语句是SELECT * FROM think_user WHERE name=’thinkphp’ OR account=’thinkphp’
  176. <!———————自定义文本框内容,validatebox可以用于整个form的插件,它将阻止不合法的字段从form提交———————>
  177. <input type=“text”  id=“username” name=“username”  placeholder=“手机号/邮箱”  class=“easyui-validatebox” required=“true”  />//placeholder属性class里面调用validatebox插件 required属性为true
  178. <!———————在另一个页面打开链接target———————>
  179. <a href=“{$gao.link}” target=“_blank”>
  180. <!———————获取前100个字节———————>
  181. {$p.promemo|string_cut=100}
  182. <!———————分页———————>
  183.                 import ( ‘ORG.Util.Page’ ); // 导入分页类
  184.         $num = I(“num”,10);//以num为参数或者以10位默认值
  185.         $count = $m->count ();
  186.         $page = new Page ( $count, $num );
  187.         $page->setConfig ( ‘theme’, getPageTheme() );
  188.         $show = $page->show ();
  189.         $list = $m->limit ( $page->firstRow . ‘,’ . $page->listRows )->select ();
  190.         $this->assign ( ‘show’, $show );
  191.         $this->assign(“list”,$list);
  192.         在模板html页面调用分页{$show}
  193. <!———————for循环  $zhao[$i][‘countall’]=$count; 给zhaobiao表添加了一个新字段,在HTML页面输出数据———————>
  194. $zhaobiao=D(‘Zhaobiao’);
  195.         $zhao=$zhaobiao->limit(8)->order(‘id desc’)->select();
  196.         $baojia=D(‘Baojia’);
  197.         for($i=0;$i<countArray($zhao);$i++){
  198.             $id=$zhao[$i][‘id’];
  199.             $count=0;
  200.             $baojia1=$baojia->where(array(‘zhaobiaoid’=>$id))->field(array(‘num’,’cankao’))->select();
  201.             for($j=0;$j<countArray($baojia1);$j++){
  202.                 $count=$count+$baojia1[$j][‘num’]*$baojia1[$j][‘cankao’];
  203.             }
  204.             $zhao[$i][‘countall’]=$count;
  205.         }
  206.         $this->assign(“zhao”,$zhao);
  207. <!———————修改获取select下option数据———————>
  208. <script language=“javascript”>
  209. $(function() {
  210.     $(‘#typeid’).val(‘{$vo.typeid}’);//从数据库获取的typeid
  211. })
  212. </script>
  213.  <td ><select id=“typeid” name=“typeid”>
  214.     <volist name=“leis” id=“leiv”>
  215.     <option value=“{$leiv.id}” >{$leiv.memo}</option>
  216.     </volist>
  217.       </select>
  218. </td>
  219. 获取状态radio
  220. <script type=“text/javascript”>
  221. $(function(){
  222.     $(“#status_{$vo.status}”).attr(‘checked’,true);
  223. })
  224. </script>
  225. <tr>
  226.     <td width=“18%” class=“infoBoxTd”>状态:</td>
  227.     <td colspan=“2”>
  228.         <input type=“radio” name=“status” value=“1” id=“status_1” checked/>启用
  229.         <input type=“radio” name=“status” value=“0” id=“status_0” />禁用
  230.     </td>
  231. </tr>
  232. jQuery根据数据库内容选中按钮
  233. <select name=“cid” id=“cid” >
  234.    <option value=“-1” >请选择分类</option>
  235.      <volist name=“clist” id=“row” key=“k”>
  236.    <option id=“c_{$row.id}” value=“{$row.id}” >{$row.name}</option>
  237.      </volist>
  238. </select>
  239. <input type=“radio” checked name=“iszd” id=“iszd1” value=“1”/> 置顶 <input type=“radio” name=“iszd” value=“0” id=“iszd2” /> 不置顶
  240. <input type=“radio” checked name=“isyc” id=“isyc1” value=“1”/> 原创 <input type=“radio” name=“isyc” value=“0” id=“isyc2” /> 转载
  241. 前台页面需要使用jQuery
  242. <script type=“text/javascript”>
  243. $(function(){
  244.         $(“#cid”).val({$vo.cid});
  245.     if({$vo.iszd}==1){
  246.         $(“#iszd1”).attr(‘checked’,true);
  247.     }else{
  248.         $(“#iszd2”).attr(‘checked’,true);
  249.     }
  250.     if({$vo.iszd}==1){
  251.         $(“#isyc1”).attr(‘checked’,true);
  252.     }else{
  253.         $(“#isyc2”).attr(‘checked’,true);
  254.     }
  255. })
  256. </script>
  257. <!———————设置背景图片大小、正确显示幻灯片图片———————>
  258. <li style=“display:<neq name=’key’ value=’0′>none</neq>;background:url(__PUBLIC__/Uploads/xiangmu/{$vo.pic}) top center no-repeat;background-size:1360px 950px;”>
  259. <!———————正则表达式,用户名验证汉字数字字母1-20位———————>
  260.     if (!$(“#name”).val().match( /^[\u4E00-\u9FA5a-zA-Z0-9_]{1,20}$/)) {
  261.         alert(‘用户名由汉字、英文字母、数字和下划线组成,1-20位’);
  262.         $(“#name”).focus();
  263.         return false;
  264.     }
  265. 正则表达式,用户名必须是英文字母开头,也可包含数字和下划线,6-12位
  266. if (!$(“#username”).val().match( /^[a-zA-Z][a-zA-Z0-9_]{6,12}$/)) {
  267.         alert(‘用户名必须是英文字母开头,也可包含数字和下划线,6-12位’);
  268.         $(“#username”).focus();
  269.         return false;
  270.     }
  271. if(!(/^1[3|4|5|8][0-9]\d{4,8}$/.test($(“#phone”).val()))){
  272.         alert(“不是完整的11位手机号或者正确的手机号前七位”);
  273.         $(“#phone”).focus();
  274.         return false;
  275.     }
  276. 正则表达式,用户名只能是汉字
  277. if(!$(“#name”).val().match( /^[\u4E00-\u9FA5]{0,6}$/)) {
  278.             $(“#name”).focus()
  279.             $(“#name_s”).html(“<img src=‘__PUBLIC__/sysimages/x.png’/><font color=‘red’>真实姓名只能是汉字!</font>“);
  280.             return false;
  281. 正则表达式,邮箱验证
  282. var email = $(“#email”).val();
  283. if(!isEmail(email)){
  284.             $(“#email”).focus()
  285.             $(“#email_s”).html(“<img src=‘__PUBLIC__/sysimages/x.png’/><font color=‘red’>邮箱格式不正确!</font>“);
  286.             return false;
  287. 正则表达式,如果密码是9位数以下纯数字!
  288.  if($(“#password”).val().match(/^\d{1,9}$/)){
  289.             $(“#password”).focus()
  290.             $(“#password_s”).html(“<img src=‘__PUBLIC__/sysimages/x.png’/><font color=‘red’>密码不能是9位数以下纯数字!</font>“);
  291.             return false;
  292.         }
  293. 正则表达式,是否包含空格
  294. if(password.indexOf(” “)!=-1){  //是否包含空格
  295.             $(“#password”).focus()
  296.             $(“#password_s”).html(“<img src=‘__PUBLIC__/sysimages/x.png’/><font color=‘red’>密码不能包含空格!</font>“);
  297.             return false;
  298.         }
  299. <!———————19.———————>
  300. <div class=“jxzx”>
  301.            <dl class=“news”>
  302.             <dt><a href=“#” class=“hover”  id=“j1” onmouseover=“setTab(‘j’,1,3)”>经济金融动态</a>
  303.             <a href=“#” id=“j2” onmouseover=“setTab(‘j’,2,3)”>监管机构动态</a>
  304.             <a href=“#”  id=“j3” onmouseover=“setTab(‘j’,3,3)”>同业动态</a>
  305.             <dd><a href=“__APP__/More/index”>more</a></dd>
  306.             </dl>
  307.             <div class=“clear”></div>
  308.             <div class=“cont” id=“con_j_1”>
  309.                 <!–经济金融动态 –>
  310.                 {:W(‘Jjjr’)}
  311.             </div>
  312.             <div class=“cont”  id=“con_j_2”  style=“display:none”>
  313.                 <!–监管机构动态 –>
  314.                 {:W(‘Jgjg’)}
  315.             </div>
  316.             <div class=“cont” id=“con_j_3” style=“display:none”>
  317.                 <!–同业动态 –>
  318.                 {:W(‘Tydt’)}
  319.             </div>
  320.         </div>
  321. <!———————添加HTML页面标签(给id为test的标签下的tbody标签里面添加标签内容)append()函数———————>
  322. <script>
  323.      function addline() {
  324.     $(“#test tbody”).append(
  325.            ‘<tr class=“houlaitianjia”><td><input type=“file” name=“file[]” style=“width:250px;”><input class=“picnameinput” style=“width: 250px;”/>&nbsp;<a onclick=“del(this)” href=“javascript:void(0)”><img src=“__PUBLIC__/cms/images/sc.png”></a></td></tr>
  326.           );
  327. }
  328.         </script>
  329. <!———————根据有没有企业名字这个条件进行查询,查询结果是循环里面套循环volist里面加volist———————>
  330. 后台方法:
  331. function index(){
  332.         $memeber=D(‘Member’);
  333.         $qiyename=I(“qiyename”,””);
  334.         if($qiyename!=””){
  335.             $where[“qiyename”] = $qiyename;
  336.         }
  337.         $m=$memeber->where($where)->select();
  338.         $huoyuan=D(‘Huoyuan’);
  339.         for($i=0;$i<countArray($m);$i++){
  340.             $id=$m[$i][‘id’];
  341.             $where[‘memberid’]=$id;
  342.             $huoy=$huoyuan->where($where)->select();
  343.             $m[$i][‘memo’]=$huoy;
  344.         }
  345.         $this->assign(“m”,$m);
  346.         $this->display();
  347.     }
  348. 前台页面:
  349. <volist name=“m” id=“vo”>
  350. {$vo.qiyename}
  351. <volist name=“vo.memo” id=“hvo”><eq name=“hvo.memo” value=“”>没有信息发布</eq><neq name=“hvo.memo” value=“”>{$hvo.memo}</neq></br></volist>
  352. <p>联系人:{$vo.name}&nbsp;&nbsp;  联系电话:{$vo.tel}</p>
  353. {$vo.createtime}发布
  354. </volist>
  355. <!———————将一篇文章里的图片和内容分别显示出来———————>
  356. function index(){
  357.         $zsesc=D(“Zxhd”);
  358.         $zs=$zsesc->order(“time desc”)->find();
  359.         $matchs = selectImgHtml($zs[“content”],”__PUBLIC__/home/default/zanwutupian.jpg”);
  360.         $zs[“image”] = $matchs;
  361.         $zs[“content”] = strip_tags($zs[“content”] );
  362.         $this->assign(“zs”,$zs);
  363.         $this->display();
  364.     }
  365. <volist name=“zs.image” id=“zz”>
  366. {$zz}
  367. </volist>
  368. <p>{$zs.content}</p>
  369. <!———————鼠标点击切换不同的class属性内容(js)———————>
  370. <script type=“text/javascript”>
  371.   $(document).ready(function(){
  372.       $(‘.memo’).click(function (){
  373.           $(‘.memo’).css(‘color’,’black’);
  374.           $(this).css(‘color’,’#679C31′);
  375.       });
  376.   });
  377. </script>
  378.   <volist name=“lei” id=“leivo”>
  379.         <li><a class=“memo” href=“javascript:;” >{$leivo.memo}</a></li>
  380.   </volist>
  381. 清空某标签里面的某一个class属性
  382. $(“.mb2_1 a”).removeClass(‘selected’);
  383. 清空某标签里面的所有class属性
  384. $(“.mb2_1 a”).removeClass();
  385. 给某标签的class添加其他class
  386. $(“.mb2_1 a”).eq(0).addClass(‘selected’);
  387. $(“.nav-main>li:eq(4) span”).attr(“class”, “nav_hit”);
  388. $(“.page”).find(“.num”).removeClass(“num”);
  389. 根据id改变class属性内容
  390. function iframe3(a,b){
  391.     $(“.mb2_1 a”).removeClass(‘selected’);
  392.     $(“#p_”+a).addClass(“selected”);
  393. }
  394. <div class=“mb2_1”>
  395. <a id=“p_{$pvo.id}” href=“javascript:iframe3({$pvo.id},{$tid})”>{$pvo.title}</a>
  396. </div>
  397. <!———————返回前一页———————>
  398. <input type=“button” onclick=“javascript:history.back()” value=“返回” />
  399. <!———————点击删除时,图片也要一起删除———————>
  400. unlink(‘./Public/Uploads/desdd/’.$pic[‘pic’]);
  401. <!———————设置背景图片及大小———————>
  402. <div style=“background:url(1.jpg) no-repeat; background-size:1000px 211px;”>
  403. <!———————根据条件查询某一表多条数据,获取这多条数据中的每条的id,将id组成字符串,进行查询———————>
  404. function article(){
  405.         //收藏的文章
  406.         $articlecollect=D(‘Articlecollect’);
  407.         $where[‘sid’]=12;
  408.         $alist=$articlecollect->where($where)->select();
  409.         foreach ($alist as $k=>$v){
  410.             $ids=$v[‘aid’].”,”.$ids;
  411.         }
  412.         $ids=$this->getStringExceptLastChar($ids);//获取除最后一个字符的字符串
  413.         $article=D(‘Article’);
  414.         $a=$article->where(“id in (“.$ids.”)”)->select();
  415.         $this->assign(“a”,$a);
  416.     }
  417. 如果是view的话查询条件要写上是哪个表的id字符串
  418. function I_index(){
  419.         //查询收藏的老师
  420.         $collection = D(‘Collection’);
  421.         $clist = $collection->where(array(‘sid’=>1))->select();
  422.         foreach($clist as $k=>$v){
  423.             $tid=$v[‘tid’];
  424.             $ids =$tid.”,”.$ids;
  425.         }
  426.                 $ids=$this->getStringExceptLastChar($ids);
  427.                 $teacher=D(‘TeacherView’);
  428.                 $t=$teacher->where(“Teacher.id in (“.$ids.”) and Teacher.status=1“)->select();
  429.                 $this->assign(“t”,$t);
  430.     }
  431. 查询其他表的数据在当前volist里面输出
  432.                 $article=D(‘Article’);
  433.                 $collection = D(‘Collection’);
  434.         $list = $collection->where(array(‘sid’=>1))->select();
  435.         for($i=0;$i<countArray($list);$i++){
  436.             $cid=$list[$i][‘id’];
  437.             $anum=$article->where(array(‘cid’=>$cid))->count();
  438.             $list[$i][‘anum’]=$anum;
  439.         }
  440.         $this->assign(‘list’,$list);
  441. <!———————js刷新当前页面,跳转———————>
  442. <script type=“text/javascript”>
  443.     $(function(){
  444.            location.reload();
  445.     })
  446. </script>
  447. 刷新包含该框架的页面用
  448. <script language=JavaScript>
  449.     parent.location.reload();
  450. </script>
  451. 2000毫秒后跳转到另一页面
  452. <script type=“text/javascript”>
  453. $(function(){
  454.     var t=setTimeout(function(){
  455.         window.location.href=“__URL__/login”;
  456.     },2000)
  457. });
  458. </script>
  459. <!———————设置默认iframe,可以切换其他iframe,并且随着iframe的切换标题变动颜色attr()方法———————>
  460.      <ul>
  461.         <li><a class=“a” target=“iframepage” href=“__URL__/getshouru/tid/{$tvo.id}”>收入明细</a></li>
  462.         <li><a class=“a” target=“iframepage” href=“__URL__/getaixin/tid/{$tvo.id}”>爱心救助金明细</a></li>
  463.         <li><a class=“a” target=“iframepage” href=“__URL__/totixian/tid/{$tvo.id}” style=“color:#1f8dd9;”>提现</a></li>
  464.      </ul>
  465.      <!– ——————————————————-可变内容——————————————- –>
  466.         <iframe style=“width:100%” id=“iframepage” name=“iframepage” onload=“this.height=this.contentWindow.document.documentElement.scrollHeight” frameborder=0 scrolling=no src=“__URL__/totixian/tid/{$tvo.id}”></iframe>
  467.      <!– ——————————————————-可变内容——————————————- –>
  468.    <script type=“text/javascript”>
  469.      $(function(){
  470.     $(“.a”).attr(‘onclick’,”setcolor(this)”);//页面加载的时候点击哪个class=a的标签,哪个标签就调用setcolor方法,变动颜色
  471.      })
  472.     function setcolor(obj){
  473.     $(“.a”).css(‘color’,’black’);//class=a的标签,颜色是black
  474.     $(obj).css(“color”,”#1f8dd9″);//将obj的颜色设置成”#1f8dd9″
  475.       }
  476.   </script>
  477. <!———————函数———————>
  478. implode()把数组元素组合为一个字符串。
  479. explode()把字符串分割为数组
  480. strpos()返回字符串在另一个字符串中第一次出现的位置
  481. 截取字符串  substr(‘ahddsjkdjdsk’,8,2)  从下标是8的开始截取两个字符  substr(‘dsfaasfdafdf’,0,7);从下标是0开始截取7个字符
  482. 先截取最后一个,的字符串,再截取第一个字符串  substr(rtrim(‘,1,2,3,4,5,’,’,’),1)     输出的是1,2,3,4,5
  483. <!———————鼠标放上去文字消失———————>
  484. <input type=“text” onfocus=“javascript:this.value=”” value=“请输入文章关健词进行检索”/>
  485. <!———————从app下的方法跳转到index下的页面header()———————>
  486.                if($user_type==1){//登录者为教师
  487.             header(“Location:”.”http://”.$_SERVER[‘HTTP_HOST’].”/”.__ROOT__.’/teacheradmin.php/Index/index’);
  488.         }else{//登录者为学生
  489.             header(“Location:”.”http://”.$_SERVER[‘HTTP_HOST’].”/”.__ROOT__.’/studentadmin.php/Index/index’);
  490.         }
  491. <!———————弹出层(需要引入一个插件zczy-UI.js)———————>
  492. <a href=“javascript:opend()” >弹出层</a>
  493. <script type=“text/javascript”>
  494. $(function(){
  495.     $(‘#zcxydiv’).zczy_window({
  496.         “closed” : true
  497.     });
  498. })
  499. function opend() {
  500.         $(‘#zcxydiv’).zczy_window(“open”);
  501. }
  502. function close() {
  503.         $(‘#zcxydiv’).zczy_window(“close”);
  504. }
  505. </script>
  506. <div id=“zcxydiv” >
  507.         <h2 class=“tc_xx_top”><span><a href=“javascript:close()”><img src=“{$hi}/in_tu_57.png”/></a></span>弹出层</h2>
  508.         <div class=“tc_xx_lie”>
  509.             {$content}
  510.         </div>
  511.     </div>
  512. <!———————button箭头变成小手———————>
  513. style=“cursor:pointer”
  514. <input type=“button” value=“登 录” style=“cursor:pointer”/>
  515. default 默认状态(箭头)
  516. pointer  手形
  517. crosshair  十字形
  518. text  文本形
  519. wait  沙漏形
  520. move  十字箭头形
  521. help  问号形
  522. e-resize  右箭头形
  523. n-resize  上箭头形
  524. nw-resize  左上箭头形
  525. w-resize  左箭头形
  526. s-resize  下箭头形
  527. se-resize  右下箭头形
  528. sw-resize  左下箭头形
  529. <!———————截取除html外的前多少个字符———————>
  530. string_cut_nohtml=70
  531. <!———————like查询条件———————>
  532. $sname=I(“sname”);
  533. $where[‘name’]=array(‘like’,’%’.$sname.”%”);
  534. <!———————分组显示,相当于group by的效果———————>
  535. $group = $model->group(‘visitdate’)->where($condition2)->select();
  536. $num1 = $wszx->query(“select DISTINCT(sid) from think_wszx”);//有多少个学生进行过网上咨询
  537. $list=$model->query(“select DISTINCT(gid) from think_buy where userid=“.$_SESSION[‘member_id’].” order by createtime desc limit “.$page->firstRow.”,”.$page->listRows);//加入了排序order by和limit
  538. $list = $school->query(“select *, count(DISTINCT name) from think_major where typeid=“.$v[‘id’].” group by name”);
  539. $list=$huiyuan->query(“select *, count(DISTINCT phone) from think_yuyue where bianma=“.$bianma.” group by phone order by createtime desc limit “.$page->firstRow.”,”.$page->listRows);
  540. $count=$huiyuan->query(“select *, count(DISTINCT phone) from think_yuyue where bianma=“.$bianma.” group by phone”);
  541. $count=countArray($count);
  542. <!———————循环调用typeid,查出相对应的option的值———————>
  543.  <volist name=“list” id=“row”>
  544.     <select id=“typeid”  name=“typeid”>
  545.       <volist name=“type” id=“tvo”>
  546.      <option <eq name=“tvo.id” value=“$row.typeid”>selected</eq> value=“{$tvo.id}”>{$tvo.name}</option>
  547.       </volist>
  548.    </select>
  549.  </volist>
  550. <!———————截取文字———————>
  551. function string_cut_nohtml($str, $n,$s=“…”){
  552.     $str =  string_cut ( preg_replace ( “/\s/”, “”, strip_tags ( $str) ), 160 );
  553.     return string_cut($str, $n,$s);
  554. }
  555. <!———————通过链接从一页面跳转到一iframe页面———————>
  556. <a href=“__APP__/Article/toadd/cid/{$row1.cid}”>跳转</a>
  557. action方法:function toadd(){
  558.         $this->assign(‘method’,’toAdd’);
  559.         $this->template(‘index’,’添加文章’);
  560.     }
  561. 通过改变iframe的src属性,跳转到不同的方法页面
  562. index页面,iframe执行toAddArticle方法
  563. <script type=“text/javascript”>
  564. var method=“{$method}”;
  565. if(method==”toAdd”){
  566.     $(“#iframepage”).attr(‘src’,”__APP__/Article/toAddArticle”);
  567. }
  568. </script>
  569. <!———————触发onclick事件时,改变当前点击的class=”a”的样式———————>
  570. <script type=“text/javascript”>
  571. $(function(){
  572.     $(“.a”).attr(‘onclick’,”setcolor(this)”);
  573. })
  574. function setcolor(obj){
  575.     $(“.a”).css(‘color’,’black’);
  576.     $(obj).css(“color”,”#1f8dd9″);
  577. }
  578. </script>
  579. <!———————css<div>标签文字居右显示,CSS定义字体行间距———————>
  580. <div style=“text-align:right;line-height:xxpx;”>
  581. <!———————JS验证判断———————>
  582. js分割字符串
  583. name = “张三,李四,王五”;
  584.      ch = new Array;
  585.      ch = name.split(“,”);
  586.      for(i=0;i<ch.length;i++){
  587.       document.write(ch[i],”<br>“);
  588.      }
  589. 结果:张三 李四 王五
  590. <!———————ajax———————>
  591. function check(){
  592. $.ajax({
  593.                 url:’__URL__/checkEmail’,
  594.                 type:’post’,
  595.                 dataType:’json’,
  596.                 data:{’email’:email},
  597.                 success:function(data){
  598.                     if(data.sta==0){
  599.                         $(“#email”).focus();
  600.                         $(“#email_s”).html(“<img src=‘__PUBLIC__/sysimages/x.png’/><font color=‘red’>没有相关用户信息, 请检查邮箱是否正确</font>“);
  601.                         return false;
  602.                     }else{
  603.                         $(“#email_s”).html(“<img src=‘__PUBLIC__/sysimages/p.png’/><font color=‘blue’>该邮箱可以使用!</font>“);
  604.                     }
  605.                 }
  606.             });
  607. }
  608. <!———————根据字符串查询数据———————>
  609. //查询收藏的老师
  610.         $collection = D(‘Collection’);
  611.         $clist = $collection->where(array(‘sid’=>$uid))->select();
  612.         foreach($clist as $k=>$v){
  613.             $tid=$v[‘tid’];
  614.                 $ids =$tid.”,”.$ids;
  615.         }
  616.         $ids=$this->getStringExceptLastChar($ids);//获取查询出的所有tid,组成字符串
  617.         $teacher=D(‘TeacherView’);
  618.         $t=$teacher->where(“Teacher.id in (“.$ids.”)”)->limit(0,2)->select();
  619.         $this->assign(“t”,$t);
  620.   array_push()用法,向第一个查询出来的数组后继续添加一个或多个元素
  621.  //我的足迹
  622.         $zuji=D(‘Zuji’);
  623.         $zulist=$zuji->where(array(‘sid’=>$uid))->order(‘createtime desc’)->limit(0,2)->select();
  624.         $tlist = array();
  625.         foreach($zulist as $k => $v){
  626.             $tvo = $teacher->getById($v[‘tid’]);
  627.             array_push($tlist,$tvo);
  628.         }
  629.         $this->assign(“zulist”,$tlist);
  630. <!———————同步执行操作———————>
  631. <span id=“ncount”>5</span>
  632. function notice(){
  633.         var ncount=$(“#ncount”).text();
  634.         $(“#ncount”).text(ncount-1);//数量减一
  635.             //数量加一 $(“#ncount”).text(ncount-1+2);
  636.     }
  637. 返回
  638. <a href=“javascript:history.back()”>返回</a>
  639. <!———————确定删除?确定退出,提示语句———————>
  640. <a href=“__URL__/loginout” onclick=“return confirm(‘确定要退出?’)”>退出</a>
  641. <!———————form获取volist的value值———————>
  642. <form action=“__URL__/index” id=“form1” method=“post”>
  643. <volist name=“name” id=“nvo”>
  644. <input type=“hidden” name=“uid[]” value=“{$nvo.uid}”>//命名name时用数组,如uid[]
  645. </volist>
  646. <input type=“submit” value=“分配并提醒他们” />
  647. </form>
  648. function index(){
  649.  $uid=I(“uid”); //获取的是数组
  650. }
  651. <!———————获取字段的长度———————>
  652. $title=“你好”;
  653. $wslist=mb_strlen($title,”UTF8″);
  654. <!———————加密函数base64_encode()———————>
  655. 对应的解密函数base64_decode()
  656. <!———————直接跳转页面,不用success()方法———————>
  657. header(‘Location: http://php.zbyyzm.com/hos/bbs/’);
  658. 从app页面跳转到home下的register方法下的tosuccess页面
  659. header(“Location:”.”http://”.$_SERVER[‘HTTP_HOST’].”/”.__ROOT__.’/index.php/Register/tosuccess’);
  660. <!———————通过form跳转不同的方法———————>
  661.          第一种:      if(a==1){
  662.             document.form.action=“__URL__/方法1”;
  663.         }else{
  664.             document.form.action=“__URL__/方法2”;
  665.         }
  666.         document.form.submit();
  667.      第二种:$(“#form”).attr(‘action’,'{:U(“buys”)}’);
  668.          $(“#form”).submit();
  669. <!———————传参———————>
  670. $(‘#iframepage1’).attr(‘src’,”{:U(‘Footer/helpwith’)}/id/”+id);
  671. <!———————循环出来的j是1、2、1、2、1、2、1、2、、、———————>
  672. $j = 1;
  673. for ($i = 0; $i < countArray($list); $i++) {
  674.     $list[$i][‘cla’]=$j;
  675.     $j++;
  676.     if($j==3){
  677.         $j=1;
  678.     }
  679. }
  680. <!———————传值———————>
  681. $(‘#iframe’).attr(‘src’,”__APP__/Footer/helpwith/id/”+id+”/type/2″);
  682. <input name=“commentid” id=“commentid” type=“checkbox” value=“1”/>我所提出最新评论
  683. <script type=“text/javascript”>
  684. $(function(){
  685.     if(“{$vo.commentid}”==1){
  686.         $(“#commentid”).attr(‘checked’,true);
  687.     }
  688. });
  689. </script>
  690. <!———————查询———————>
  691. $begin=I(‘begin’);
  692. $end=I(‘end’);
  693.           if ($begin != “” && $end != “”) {
  694.             $where [‘createdate’] = array (
  695.             array (‘egt’,$begin),
  696.             array (‘elt’,$end),’and’
  697.             );
  698.         }
  699.     if ($begin != “” && $end == “”) {
  700.         $where [‘createdate’] = array (
  701.            ‘egt’,$begin);
  702.     }
  703.     if ($begin == “” && $end != “”) {
  704.         $where [‘createdate’] = array (
  705.            ‘elt’,$end);
  706.     }
  707. <!———————显示收藏(点击触发onclick事件,执行check方法进行数据的隐藏和显示)———————>
  708. <a href=“javascript:check();”>阅读更多…</a>
  709. function check(){
  710.     $(‘#memo1’).hide();//收藏
  711.         $(“#memo2”).show();//显示
  712.       }
  713. <!———————$data获取今天的日期,$monthday获取$data所在的月份的第一天以及最后一天。$monthday是个数组———————>
  714. $date=getCurrentDate();
  715. $monthday=getThemonth($date);
  716. <!———————常用事件onchange、onclick———————>
  717. <!———————通过onchange事件触发jishuanhe方法遍历数组———————>
  718. function jishuanhe(){
  719.     var  all = 0;
  720.     $(“.ck:checked”).each(function(){
  721.         var a = $(this).parent().parent().find(“.moneyevery”).eq(0).html()/1;
  722.         all+=a;
  723.     });
  724.     $(“#all”).html(all);
  725. }
  726. <!———————发送邮件,吧用户email和id传过来———————>
  727. function sendEmail() {
  728.         $email = I ( “em” );
  729.         $emails = explode ( “@”, $email );
  730.         $userid = I(“uid”);
  731.         $uuid = getUUID ( 4 );
  732.         $domain = getDomain ();
  733.         $url = $domain . __APP__ . “/Email/checkEmail?uid=” . $userid . “&ud=” . $uuid;
  734.         $name = getNameByUserid ( $userid );
  735.         if ($name == “”) {
  736.             $name = “无名”;
  737.         }
  738.         import ( ‘ORG.Net.Mail’ );
  739.         $r = SendMail ( $email, ‘注册成功’, getEmailContents ( $name, $url, $domain ), ‘定制商城’ );
  740.         if ($r == 1) {
  741.             $address = explode ( “@”, $email );
  742.             $this->assign ( “emailServer”, “http://mail.” . $address [1] );
  743.             $msg [‘sta’] = 1;
  744.             $msg [‘msg’] = “邮件已发送到您的邮箱”;
  745.         } else {
  746.             $msg [‘sta’] = 2;
  747.             $msg [‘msg’] = “邮件发送失败,请稍后尝试”;
  748.         }
  749.         $this->ajaxReturn ( $msg );
  750.     }
  751. /**
  752.  * 邮件的内容
  753.  */
  754. function getEmailContents($name, $url, $domain){
  755.     $html = ‘
  756.             <style>.email{width:500px;font-family: “微软雅黑”,”Arial”;padding-left:20px; line-height:25px;color:#636466;}’ . ‘.em_top{background-color:#50A5E6;height:40px;background-image:url(‘ . $domain . __ROOT__.’/Public/images/logo_email.jpg) ;background-repeat :no-repeat;}.email h3{ padding-left:20px; }.email h4{ font-size:14px; padding-left:40px;}.email h5{font-size:14px; padding-left:40px; padding-top:8px;}.email h5 a{ text-decoration:none; color:#FFF; font-size:18px; background:#55aaea; padding:12px 18px;}.email h5 a:hover{ color:#666;}.em_ni{ font-size:12px;padding-left:40px;}.em_ni a{ color:#55aaea;}.em_ni a:hover{color:#666;}.em_b{ font-size:12px;}</style>
  757.             <div class=“email”><p class=“em_top”></p><h3><span>Hello</span>先生/女士:</h3><h4>恭喜您,注册成功<br /></h4>
  758.                     <div class=“em_b”>2014@&nbsp;&nbsp;定制商城网&nbsp;&nbsp;客服热线:010-0000000&nbsp;&nbsp;info@.cn</div>
  759.             </div>‘;
  760.     return $html;
  761. }
  762. /**
  763.  * 根据用户id获取姓名
  764.  *  string $userid 用户id
  765.  */
  766. function getNameByUserid($userid){
  767.     $U = D(“Member”);
  768.     $where[“id”]=$userid;
  769.     return $U->where($where)->getField(“username”);
  770. }
  771. <!———————each()遍历数组———————>
  772. <!———————U方法———————>
  773. (1)传1个参数<a href=“{:U(‘About/index’,array(‘id’=>1))}”>
  774. (2)传多个参数<a href=“{:U(‘About/index’,array(‘id’=>1,’p’=>2))}”>
  775. (3)传的参数是从后台获取过来的<a href=“{:U(‘About/index’,array(‘id’=>$id))}”>
  776.  (4)传参数window.location.href=“{:U(‘Home/Member/cunchudetail’)}?pid=”+pid;
  777. <!———————点击对应的导航栏变换颜色,改变eq()内的值,指定对应的导航栏———————>
  778. $(function(){
  779.     $(“.nav_ul li a”).eq(6).addClass(“hover”);
  780. });
  781. <!———————***———————>
  782. 显示$(‘#div1’).show()
  783. 隐藏$(‘#div1’).hide()
  784. <!———————字段只能为数字 class=”easyui-numberbox”———————>
  785. <input type=“text” name=“px” id=“px” size=“60”  class=“easyui-numberbox” />
  786. <!———————弹出新窗口页面———————>
  787. <a href=“javascript:;” onclick=“checka(id);”>跳转到方法传参</a>
  788. function checka(id){
  789.     window.open(“__URL__/lianxi/id/”+id,””,”width=700px,height=500px“)
  790. }
  791. <!———————获取radio选中按钮的value值———————>
  792. <label><input type=“radio” name=“pingfen” value=“4”  checked=“checked”>4</label>
  793. <label><input type=“radio” name=“pingfen” value=“3”>3</label>
  794. <label><input type=“radio” name=“pingfen” value=“2”>2</label>
  795. var val=$(‘input:radio[name=“pingfen”]:checked’).val();
  796. <!———————把选中的checkbox标签的下的价格累加起来———————>
  797. <p><label><input type=“checkbox” value=“{$cfind.hid1}” name=“chois1[]” id=“hid1” class=“ck” checked/>机油</label><input name=“hname1” id=“hname1” type=“text” class=“input_260” value=“{$cfind.hname1}” readonly=“readonly” style=“background-color:#EBEBEB”/>&nbsp;&nbsp;{$cfind.hbao1}<input type=“hidden” id=“hprice1” name=“hprice1” class=“moneyevery” value=“{$cfind.hprice1}” /></p>
  798. <p><label><input type=“checkbox” value=“{$cfind.hid2}” name=“chois1[]” id=“hid2” class=“ck” checked/>机滤</label><input name=“hname2” id=“hname2” type=“text” class=“input_260” value=“{$cfind.hname2}” readonly=“readonly” style=“background-color:#EBEBEB”/>&nbsp;&nbsp;{$cfind.hbao2}<input type=“hidden” id=“hprice2” name=“hprice2” class=“moneyevery” value=“{$cfind.hprice2}” /></p>
  799. <p><label><input type=“checkbox” value=“{$cfind.hid3}” name=“chois1[]” id=“hid3” class=“ck” />空气滤清器</label><input name=“hname3” id=“hname3” type=“text” class=“input_260” value=“{$cfind.hname3}” readonly=“readonly” style=“background-color:#EBEBEB”/>&nbsp;&nbsp;{$cfind.hbao3}<input type=“hidden” id=“hprice3” name=“hprice3” class=“moneyevery” value=“{$cfind.hprice3}” /></p>
  800. <p><label><input type=“checkbox” value=“{$cfind.hid4}” name=“chois1[]” id=“hid4” class=“ck” />空调滤清器</label><input name=“hname4” id=“hname4” type=“text” class=“input_260” value=“{$cfind.hname4}” readonly=“readonly” style=“background-color:#EBEBEB”/>&nbsp;&nbsp;{$cfind.hbao4}<input type=“hidden” id=“hprice4” name=“hprice4” class=“moneyevery” value=“{$cfind.hprice4}” /></p>
  801. //计算合
  802.     var  all = 0;
  803.     $(“.ck:checked”).each(function(){
  804.         var a = $(this).parent().parent().find(“.moneyevery”).eq(0).val()/1;
  805.         all+=a;
  806.     });
  807.     $(“#hprices”).html(all);//最终结果
  808. <!———————根据id改变指定标签的checked属性———————>
  809. document.getElementById(“hid1”).checked = true;
  810. <!———————自动生成编号———————>
  811. (1)$bianhao=date(‘H-iY-m-d’);//获取时间的函数H:时,i:分钟,Y:年,m:月,d:日
  812. $bianhao=str_replace(‘-‘,”,$bianhao);//字符串替换函数
  813. $bianhao.=rand(1000,999999);//返回随机整数,范围是(1000,999999)
  814. $data[‘bianhao’]=$bianhao;//时间数+随机整数
  815. (2)也可直接获取随机整数
  816. $bianhao=rand(1000,999999);//返回随机整数,范围可自动调整比如(1000,999999)
  817. <!———————设置上传文件的大小———————>
  818. 修改php.ini文件下面的:
  819. post_max_size = 108M
  820. upload_max_filesize = 100M
  821. <!———————获取本地另一数据库内表的数据———————>
  822. $model = M ( “” );
  823. $model->db ( 1, “mysql://” . C ( “DB_USER” ) . “:” . C ( “DB_PWD” ) . “@” . C ( “DB_HOST” ) . “:” . C ( “DB_PORT” ) . “/” . “jmt” );
  824. $mlist=$model->db(1)->query(“select * from think_banner”);
  825. <!———————将val值换成可进行加减的值———————>
  826. var fuwufei=$(“#fuwufei”).val()/1;
  827. <!———————给value赋session的值———————>
  828. <input  type=“text” value=“{$Think.session.phone}”/>
  829. <!———————添加两张图片———————>
  830. if($files[“sta”]==1){
  831.             $data[‘picname’]=$files[“files”][0][“savename”];
  832.             $data[‘picname2’]=$files[“files”][1][“savename”];
  833. }
  834. 修改两张图片
  835. if($files[“sta”]==1){
  836.             for($i=0;$i<countArray($files[“files”]);$i++){
  837.                 if($files[“files”][$i][‘key’]==”picname”){
  838.                     $data[‘picname’]=$files[“files”][$i][“savename”];
  839.                 }
  840.                 if($files[“files”][$i][‘key’]==”picname2″){
  841.                     $data[‘picname2’]=$files[“files”][$i][“savename”];
  842.                 }
  843.             }
  844.         }
  845. <!———————unset方法()销毁指定变量———————>
  846. unset($_SESSION[‘user’]);
  847. <!———————判断checkbox是否是选中状态———————>
  848. $(“#checkbox”).is(“:checked”) == false
  849. <!———————添加cookie———————>
  850. cookie ( “phone”, I ( ‘phone’, “” ), array(“path”=>“/”,”expire”=>3600 * 24 * 7 ));
  851. 清除cookie  cookie(“phone”, null, time()-3600*24*365);
  852. 记住用户名cookie
  853. $uname=I(‘uname’);
  854.         if($jizhu==1){//记住状态
  855.             setcookie(‘uname’,$uname,time()+3600);
  856.         }
  857.                if($jizhu==2){//不记住状态
  858.             setcookie(‘uname’,$uname,time()-3600);
  859.         }
  860. <!———————把input的type属性改成tel,就会弹出输入法数字界面(手机使用)———————>
  861. <input type=“tel” id=“phone” name=“phone”>
  862. <!———————查看thinkphp版本,在页面上{$Think.version}———————>
  863. 查看php版本,后台方法里面加上 phpinfo(); 就可以在页面查看信息了
  864. <!———————获取客户端ip———————>
  865. getClientIp ()
  866. /**
  867.  * 获取客户端ip
  868.  *
  869.  * @return Ambigous <unknown, boolean>
  870.  */
  871. function getClientIp() {
  872.     $ip = false;
  873.     if (! empty ( $_SERVER [“HTTP_CLIENT_IP”] )) {
  874.         $ip = $_SERVER [“HTTP_CLIENT_IP”];
  875.     }
  876.     if (! empty ( $_SERVER [‘HTTP_X_FORWARDED_FOR’] )) {
  877.         $ips = explode ( “, “, $_SERVER [‘HTTP_X_FORWARDED_FOR’] );
  878.         if ($ip) {
  879.             array_unshift ( $ips, $ip );
  880.             $ip = FALSE;
  881.         }
  882.         for($i = 0; $i < count ( $ips ); $i ++) {
  883.             if (! eregi ( “^(10|172\.16|192\.168)\.”, $ips [$i] )) {
  884.                 $ip = $ips [$i];
  885.                 break;
  886.             }
  887.         }
  888.     }
  889.     return ($ip ? $ip : $_SERVER [‘REMOTE_ADDR’]);
  890. }
  891. <!———————点击删除,弹出框,是否确定删除———————>
  892. function gongchengquxiao(e){
  893.     if(!confirm(‘删除后无法恢复,确定删除?’))
  894.         return false;
  895.     $.ajax({
  896.         url:’__APP__/Home/Member/gongchengquxiao’,
  897.         type:’post’,
  898.         dataType:’json’,
  899.         data:{‘pid’:e},
  900.         success:function(data){
  901.             if(data.sta==1){
  902.                 ui.success(‘删除成功’);
  903.                 location.reload(“{:U(‘Home/Member/gongchengtijiao’)}”);
  904.             }else{
  905.                 ui.error(‘删除失败’);
  906.             }
  907.         }
  908.     });
  909. }
  910. <!———————验证性别不为空———————>
  911. <input type=“radio” value=“1” name=“sex” id=“sex_1” >
  912. <input type=“radio” value=“0” name=“sex” id=“sex_0”>
  913. if ($(“#sex_1:checked”).val()!= “1”&&$(“#sex_0:checked”).val()!= “0”) {
  914.         ui.error(“请选择性别!”);
  915.         return false;
  916.     }
  917. <!———————给上线的网页加logo(标题栏显示的logo)———————>
  918. 在根目录加名字是favicon.ico的图片就行
  919. <!———————百度统计———————>
  920. http://tongji.baidu.com/web/welcome/login  注册账号后就会得到一段代码,把那段代码放到页面就ok了
  921. (jksjksjks  123456)
  922. <!———————foreach套foreach———————>
  923. foreach ($channels as $k=>$v){
  924.             foreach ($v[‘bid’] as $k2=>$v2){
  925.                 $author=M(‘Goods’)->where(‘id=’.$v2[‘pid’])->getField(‘author‘);
  926.                     $v[‘bid’][$k2][‘author’]=$author;
  927.             }
  928.             $channels[$k][‘bid’]=$v[‘bid’];
  929.         }
  930. 普通的foreach()
  931. foreach ($bidArr[0][‘bid_list’] as $k=>$v){
  932.         $author=M(‘Goods’)->where(‘id=’.$v[‘pid’])->getField(‘author‘);
  933.         $bidArr[0][‘bid_list’][$k][‘author’]=$author;
  934.       }

织梦dedecms标签调用集合,史上最全,仿站必备

  1. <!——————————–分页——————————>
  2. {dede:pagelist listitem=“info,index,end,pre,next,pageno” listsize=“5”/}
  3. <!——————————–引入文件——————————>
  4. {dede:include filename=“head.htm”/}引入
  5. <!——————————–简介长度调用——————————>
  6. field:description function=’cn_substr(@me,200)’/]   list简介长度
  7. <!——————————–当前栏目调用——————————>
  8. {dede:field.typename/}
  9. <!——————————–内容页调用栏目名称跟链接————————>
  10. <a href=“{dede:field.typeurl/}”>{dede:field.typename/}</a>
  11. <!——————————–导航有英文  加下级文件——————————>
  12. {dede:channelartlist typeid=‘top’ currentstyle=‘active’ row=“6”}
  13.         <li class=“dropdown {dede:field.currentstyle/}”><a class=“dropdown-toggle” data-toggle=“dropdown” href=“{dede:field name=’typeurl’/}”>{dede:field name=‘typename’/}<small>{dede:field.typenameen/}</small></a>
  14.           <ul class=“dropdown-menu dropdown-menu-left”>
  15.             {dede:channel type=‘son’ noself=‘yes’}
  16.             <li><a href=“[field:typeurl/]”>[field:typename/]</a></li>
  17.             {/dede:channel}
  18.           </ul>
  19.         </li>
  20.         {/dede:channelartlist}
  21. <!——————————–自定义调用内容页——————————>
  22. channelid=“1”   addfields=‘body’
  23. [field:body/]
  24. <!———————一条红线———————>
  25. <p style=“border-bottom:2px solid red;width:100%;align:center;”></p>
  26. <!———————查询多个typeid———————>
  27. typeid=‘1,7,12,18,22,29’
  28. (1)某一id导航栏下的二级导航栏
  29. {dede:channel type=‘sun’ typeid=‘1’ row=‘8’ }
  30.      <li> <a id=“nav_zhoubian” href=“[field:typeurl/]” target=“_self” >[field:typename/]<i></i></a></li>
  31.       {/dede:channel}
  32. (2)表示指定单个栏目的链接 typeid指定栏目id
  33. {dede:type  typeid =’21’}
  34.                 <a href=“[field:typelink/]”>[field:typename/]</a>
  35.             {/dede:type}
  36. 栏目表dede_arctype
  37. (3)显示一级导航栏及二级导航栏
  38. {dede:channelartlist row=7  typeid=‘top’ orderby=“id” orderway=“asc”}
  39.                         <li {dede:field name=‘currentstyle’/}><a href=“{dede:field name=’typeurl’/}”>{dede:field name=‘typename’/}</a>
  40.                           <ul class=“sub”>
  41.                            {dede:channel type=‘son’ noself=‘yes’}
  42.                             <li class=“sub”><a class=“sub” href=“[field:typelink/]”>[field:typename/]</a></li>
  43.                             {/dede:channel}
  44.                           </ul>
  45.                         </li>
  46.                         {/dede:channelartlist}
  47. (4)当前栏目导航栏被选中状态
  48.      <ul>
  49.       <li class=“on”><a href=“/”>首页</a><br/><a href=“/” class=‘dd’>Home</a></li>
  50.       {dede:channel type=‘top’ row=’10’ currentstyle=”
  51.       <li class=‘hover’><a href=‘~typelink~’ ~rel~><span>~typename~</a><br/><a href=‘~typelink~’ class=‘dd’  ~rel~>~typenameen~</span></a></li>
  52.       “}
  53.       <li><a href=“[field:typeurl/]”>[field:typename/]</a><br />
  54.              <a href=“[field:typeurl/]” class=‘dd’>[field:typenameen/]</a></li>
  55.       {/dede:channel}
  56.     </ul>
  57. (5)当前栏目导航栏被选中状态2
  58.      {dede:channel type=‘sun’ row=‘5’ currentstyle=”
  59.       <li class=‘cur’><a href=‘~typelink~’ ~rel~>~typename~</a></li>
  60.       “}
  61.       <li><a href=“[field:typeurl/]”>[field:typename/]</a></li>
  62.       {/dede:channel}
  63. (6)显示一级导航栏及二级导航栏,并当前栏目导航栏被选中状态
  64. {dede:channelartlist row=8  typeid=‘top’ orderby=“id” orderway=“asc” currentstyle=“<li class=’active has-sub’>”}
  65.                         <li {dede:field name=‘currentstyle’/}><a href=“{dede:field name=’typeurl’/}”>{dede:field name=‘typename’/}</a>
  66.                           <ul>
  67.                            {dede:channel type=‘son’ noself=‘yes’}
  68.                             <li class=‘has-sub’><a href=“[field:typelink/]”>[field:typename/]</a></li>
  69.                             {/dede:channel}
  70.                           </ul>
  71.                         </li>
  72.                         {/dede:channelartlist}
  73. 或是这种写法
  74.  {dede:channelartlist typeid=‘top’ currentstyle=‘active’ row=“6”}
  75.         <li class=“dropdown {dede:field.currentstyle/}”><a class=“dropdown-toggle” data-toggle=“dropdown” href=“{dede:field name=’typeurl’/}”>{dede:field name=‘typename’/}<small>{dede:field.typenameen/}</small></a>
  76.           <ul class=“dropdown-menu dropdown-menu-left”>
  77.             {dede:channel type=‘son’ noself=‘yes’}
  78.             <li><a href=“[field:typeurl/]”>[field:typename/]</a></li>
  79.             {/dede:channel}
  80.           </ul>
  81.         </li>
  82.         {/dede:channelartlist}
  83. (7)显示一级导航栏及二级导航栏,当前栏目导航栏被选中状态,进入二级栏目时,一级栏目的导航栏也是选中状态
  84. dede_type表内,二级栏目的topid必须一级栏目的id
  85.   {dede:channelartlist typeid=‘top’ currentstyle=‘active’ row=“5”}
  86.         <li class=“dropdown {dede:field.currentstyle/}”><a class=“dropdown-toggle” data-toggle=“dropdown” href=“{dede:field name=’typeurl’/}”>{dede:field name=‘typename’/}<small>{dede:field.typenameen/}</small></a>
  87.           <ul class=“dropdown-menu dropdown-menu-left”>
  88.             {dede:channel type=‘son’ noself=‘yes’}
  89.             <li><a href=“[field:typeurl/]”>[field:typename/]</a></li>
  90.             {/dede:channel}
  91.           </ul>
  92.         </li>
  93.         {/dede:channelartlist}
  94. (8)显示某一顶级导航栏下的二级三级导航栏
  95.   {dede:channelartlist typeid=‘top’  typeid=’53’}
  96.                    <li><h3 ><a href='{dede:field name=’typeurl‘/}’ class=“depth_2”><span class=“icon10”></span>二级{dede:field name=‘typename’/}</a></h3>                  <ul>
  97.                           {dede:sql sql=‘Select * from dede_arctype where reid=~id~  ORDER BY id limit 00,20’}
  98.                           <li><a href=“[field:typedir function=’str_replace(“{cmspath}”,””,@me)’/]”  class=“depth_3”>三级[field:typename/]</a></li>
  99.                           {/dede:sql}
  100.                          </ul>
  101.                    </li>
  102.                   {/dede:channelartlist}
  103. (9)channelartlist指定导航栏的id输出
  104.  {dede:channelartlist  typeid=‘1,2,3,4,5’ }
  105.    <li class=“line”></li>
  106.    <li id=‘nav_1’ style=‘width:125px;’ ><a href='{dede:field name=’typeurl‘/}’ 0 title='{dede:field name=’typename‘/}’ class=‘hover-none nav’><span>{dede:field name=‘typename’/}</span></a>
  107.    <dl>
  108.     {dede:channel type=‘son’ noself=‘yes’ }
  109.    <dd><a href=‘[field:typelink/]’ title=‘[field:typename/]’ >[field:typename/]</a></dd>
  110.  {/dede:channel}
  111.    </dl>
  112.    </li>
  113.      {/dede:channelartlist}
  114. (10)输出某一级栏目下的二级栏目,及二级栏目下的几条文章
  115. {dede:channelartlist typeid=“20”}
  116.     <a href=“{dede:field name=’typeurl’/}”>{dede:field name=‘typename’/}
  117.     {dede:arclist row=“8”}<a href=“[field:arcurl/]”>[field:title /]</a>{/dede:arclist}
  118. {/dede:channelartlist}
  119. <!———————arclist显示某分类的前5条新闻  flag=’c’即推荐  列表也显示body数据———————>
  120. {dede:arclist typeid=“24” channelid=“1” addfields=‘body’ titlelen=’45’ row=“5” flag=‘c’}
  121.     <div class=“news”>
  122. <img src=“[field:litpic/]” alt=“[field:title/]” />
  123. <img src=“[field:picname/]” />
  124. [field:global name=autoindex runphp=“yes”]@me=@me;[/field:global]
  125. <a href=‘[field:typeurl/]’>[field:typename/]</a>
  126.     <a style=“float:left” href=“[field:arcurl/]” target=“_blank”>[field:title/]</a>
  127. [field:description function=‘cn_substr(html2text(@me),2)’/]
  128. [field:description function=‘cn_substr(Html2text(“@me”).”…”,80)’/]
  129. [field:body function=‘cn_substr(html2text(@me),200)’/]
  130. [field:title function=‘( strlen(“@me”)>42 ? cn_substr(“@me”,42).”…” : “@me” ) ‘ /]
  131.     <span style=“float:right”>
  132.         [field:pubdate function=“MyDate(‘Y-m-d’,@me)”/]
  133.         [field:pubdate function=‘strftime(“%b %d, %Y”,@me)’/]
  134.                 [field:pubdate function=strftime(‘%Y-%m-%d’,@me)/]
  135.                 [field:pubdate function=“GetDateTimeMK(@me)”/]
  136.        </span>
  137.     </div>
  138.     {/dede:arclist}
  139. 文章详细页/*文章浏览数*/
  140. <script src=”{dede:field name=’phpurl’/}/count.php?view=yes&aid={dede:field name=’id’/}&mid={dede:field name=’mid’/}”type=’text/javascript’ language=“javascript”></script>
  141. 指定文章id输出
  142. {dede:arclist idlist=‘2’ titlelen=’50’}
  143.         <li>
  144.             <div class=“image”><a href=“[field:arcurl/]”><img src=“[field:litpic/]” /></a></div>
  145.             <div class=“text”>
  146.                 <span class=“title”>NEWS:</span>
  147.                 <p><a href=“[field:arcurl/]”>[field:title/]…</a></p>
  148.             </div>
  149.             <a class=“link link2” href=“[field:arcurl/]”>关于我们</a>
  150.         </li>
  151.     {/dede:arclist}
  152. 根据当前typeid输出
  153. {dede:arclist type=“~typeid~”  titlelen=’51’ row=10 orderby=‘sortrank’ }
  154.                     <div class=“single-grid inner_show”>
  155.                         <div class=“lone-line”>
  156.                             <h4><a href=“[field:arcurl/]” target=“_blank”>[field:title/]</a></h4>
  157.                             <ul class=“sin-grid”>
  158.                                 <li><a href=“[field:arcurl/]”><span class=“clock”> </span>[field:pubdate function=MyDate(‘Y-m-d’,@me)/]</a></li>
  159.                                 <!–<li><a href=”[field:arcurl/]”><span class=”share”> </span>集团要闻</a></li>———————>
  160.                             </ul>
  161.                         </div>
  162.                     </div>
  163. {/dede:arclist}
  164. 显示自定义的arclist的字段,加channelid 加addfields字段
  165. {dede:arclist pagesize=’12’ typeid=’10’ channelid=‘2’ addfields=‘wuxing,shuzi,ptitle,palt,tlink’}
  166. {/dede:arclist}
  167. <!———————分页显示新闻———————>
  168.  <div class=“xinwen_box”>
  169.                         {dede:list pagesize=‘6’ titlelen=’36’}
  170.                             <div class=“lie-box”>
  171.                                 <a href=“[field:arcurl/]” >
  172.                                     <p class=“xw-lt”>
  173.                                         [field:title/]
  174.                                     </p>
  175.                                 </a>
  176.                             </div>
  177.                          {/dede:list}
  178.                             <div class=“pages”> {dede:pagelist listitem=“index,end,pre,next,pageno” listsize=“7”/} </div>
  179.                         </div>
  180. <!———————{dede:global.cfg_sj/}显示系统的数据调用sysconfig表里的数据———————>
  181. <!———————sql语句调用数据———————>
  182. 查询栏目内容
  183. {dede:sql sql=‘Select content from “#@__arctype” where id=1’}
  184. [field:content/]
  185. {/dede:sql}
  186. 查询文章
  187. {dede:sql sql=“SELECT * FROM dede_archives where typeid2 in(13,14,15,16,17,18) and typeid=6 order by pubdate DESC limit 5 “}
  188.      <li><a href='[field:id runphp=’yes’] $id=@me;@me=”;$url=GetOneArchive($id);@me=$url[‘arcurl‘];[/field:id]’ title=“[field:title/]” target=“_blank”><b>[field:title function=cn_substr(@me,60)/]</b></a></li>
  189. {/dede:sql}
  190. 查询栏目
  191. {dede:sql sql=”SELECT * From #@__arctype
  192. WHERE topid=1 And letter LIKE ‘%a%’ or letter LIKE ‘%b’ or letter LIKE ‘%c%’ order by letter asc”}
  193.  <li><a href=“[field:typedir function=’str_replace(“{cmspath}”,””,@me)’/]”>[field:typename/]</a></li>
  194. {/dede:sql}
  195. <!———————根据typeid输出数据———————>
  196. {dede:type type=“~typeid~”}[field:typename/]{/dede:type}
  197. <!———————设置[field:description/]的字数———————>
  198. [field:description function=‘cn_substr(Html2text(“@me”).”…”,80)’/]
  199. <!———————当前位置———————>
  200. {dede:field name=‘position’/}
  201. 英文版
  202. {dede:field name=‘position’  function=‘str_replace(“首页”,”Home”,Html2Text(“@me”))’/}
  203. <!———————调用共用页面———————>
  204. {dede:include filename=“footer.htm”/}
  205. <!———————ShowMsg()跳转到哪个页面———————>
  206. <!———————文章详细页,输出图片集的所有图片———————>
  207. (输出所有)
  208. {dede:productimagelist}
  209.    <li class=“now”> <a href=“[field:imgsrc/]” target=“_blank”><img longdesc=“[field:imgsrc/]” src=“[field:imgsrc/]” width=“96” height=“76”></a> </li>
  210. {/dede:productimagelist}
  211. (输出第一张)
  212. {dede:field name=‘imgurls’ alt=‘图片输出区’}
  213.                   <a class=“jqzoom” href=“[field:imgsrc/]”> <img src=“[field:imgsrc/]” alt=“” class=“js_goods_image_url” style=“width: 520px;” /> </a>
  214.                   {/dede:field}
  215. <!———————热门标签———————>
  216. 参数说明:
  217. num:关键词数目
  218. subday:天数
  219. maxlength:关键词最大长度
  220. {dede:hotwords num=‘6’ /}
  221. //页面输出内容:
  222. <a href=‘/plus/search.php?keyword=ibm’>ibm</a>
  223. <a href=‘/plus/search.php?keyword=htc’>htc</a>
  224. <a href=‘/plus/search.php?keyword=dedecms’>dedecms</a>
  225. <!———————搜索———————>
  226. <form  name=“formsearch” action=“{dede:global.cfg_cmsurl/}/plus/search.php” autocomplete=“off”>
  227.         <div class=“form”>
  228.           <h4>搜索</h4>
  229.            <input type=“hidden” name=“kwtype” value=“0” />
  230.            <input name=“q” type=“text” class=“search-keyword” id=“search-keyword” placeholder=“在这里搜索…” value=“在这里搜索…” onfocus=“if(this.value==’在这里搜索…’){this.value=”;}”  onblur=“if(this.value==”){this.value=’在这里搜索…’;}” />
  231. <input type=“text”  autocomplete=“off” name=“q” id=“searchkey” placeholder=“在这里搜索…”  maxlength=“60” onfocus=”if (value ==’在这里搜索…’){value =”}”onblur=”if (value ==”){value=‘在这里搜索…’}”>
  232.            <select name=“searchtype” class=“search-option” id=“search-option”>
  233.                <option value=“title” selected=‘1’>检索标题</option>
  234.                <option value=“titlekeyword”>智能模糊</option>
  235.            </select>
  236.           <button type=“submit” class=“search-submit”>搜索</button>
  237.         </div>
  238.         </form>
  239. form禁止enter键提交最后面加上 onkeydown=“if(event.keyCode==13)return false;”
  240. <form name=“formsearch” action=“{dede:global.cfg_cmsurl/}/plus/search.php”  onkeydown=“if(event.keyCode==13)return false;”>
  241. <form action=“” autocomplete=“off” method=“post”>//autocomplete=“off”  清空数据
  242. echo “<script>alert(‘提交成功!’); window.history.go(-1)</script>“;//返回当前页
  243. 15.指定id加class
  244. $(function(){
  245.             $(“#7”).addClass(“active”);
  246.         })
  247. <!———————文章详细页跳转到列表页———————>
  248. <a href=“{dede:type typeid=’0′ row=1}[field:typelink function=’str_replace(“/index.html”,””,@me)’ /]{/dede:type}” class=“btn btn-default”>全部</a>
  249. 17.当前是首页的话,导航栏首页高亮效果
  250. <li {dede:field name=typeid runphp=“yes”}(@me==””)? @me=”   class=’on’  “:@me=“”;{/dede:field}>首页</li>

常用css样式属性大全(中文注释)

  1. 一 CSS文字属性:
  2. color : #999999/*文字颜色*/
  3. font-family : 宋体,sans-serif/*文字字体*/
  4. font-size : 9pt/*文字大小*/
  5. font-style:itelic; /*文字斜体*/
  6. font-variant:small-caps; /*小字体*/
  7. letter-spacing : 1pt/*字间距离*/
  8. line-height : 200%; /*设置行高*/
  9. font-weight:bold/*文字粗体*/
  10. vertical-align:sub/*下标字*/
  11. vertical-align:super/*上标字*/
  12. text-decoration:line-through/*加删除线*/
  13. text-decorationoverline/*加顶线*/
  14. text-decoration:underline/*加下划线*/
  15. text-decoration:none/*删除链接下划线*/
  16. text-transform : capitalize/*首字大写*/
  17. text-transform : uppercase/*英文大写*/
  18. text-transform : lowercase/*英文小写*/
  19. text-align:rightright/*文字右对齐*/
  20. text-align:left/*文字左对齐*/
  21. text-align:center/*文字居中对齐*/
  22. text-align:justify/*文字分散对齐*/
  23. vertical-align属性
  24. vertical-align:top/*垂直向上对齐*/
  25. vertical-align:bottombottom/*垂直向下对齐*/
  26. vertical-align:middle/*垂直居中对齐*/
  27. vertical-align:text-top/*文字垂直向上对齐*/
  28. vertical-align:text-bottom/*文字垂直向下对齐*/
  29. 二、CSS边框空白
  30. padding-top:10px/*上边框留空白*/
  31. padding-right:10px/*右边框留空白*/
  32. padding-bottom:10px/*下边框留空白*/
  33. padding-left:10px/*左边框留空白
  34. 三、CSS符号属性
  35. list-style-type:none; /*不编号*/
  36. list-style-type:decimal/*阿拉伯数字*/
  37. list-style-type:lower-roman/*小写罗马数字*/
  38. list-style-type:upper-roman/*大写罗马数字*/
  39. list-style-type:lower-alpha/*小写英文字母*/
  40. list-style-type:upper-alpha/*大写英文字母*/
  41. list-style-type:disc/*实心圆形符号*/
  42. list-style-type:circle/*空心圆形符号*/
  43. list-style-type:square/*实心方形符号*/
  44. list-style-image:url(/dot.gif); /*图片式符号*/
  45. list-style-positionoutside/*凸排*/
  46. list-style-position:inside/*缩进*/
  47. 四、CSS背景样式
  48. background-color:#F5E2EC/*背景颜色*/
  49. background:transparent/*透视背景*/
  50. background-image : url(/image/bg.gif); /*背景图片*/
  51. background-attachment : fixed/*浮水印固定背景*/
  52. background-repeat : repeat/*重复排列-网页默认*/
  53. background-repeat : no-repeat/*不重复排列*/
  54. background-repeat : repeat-x; /*在x轴重复排列*/
  55. background-repeat : repeat-y; /*在y轴重复排列*/
  56. 指定背景位置
  57. background-position : 90% 90%; /*背景图片x与y轴的位置*/
  58. background-position : top/*向上对齐*/
  59. background-position : buttom; /*向下对齐*/
  60. background-position : left/*向左对齐*/
  61. background-position : rightright/*向右对齐*/
  62. background-position : center/*居中对齐*/
  63. 五、CSS连接属性
  64. /*所有超链接*/
  65. a:link /*超链接文字格式*/
  66. a:visited /*浏览过的链接文字格式*/
  67. a:active /*按下链接的格式*/
  68. a:hover /*鼠标转到链接*/
  69. 鼠标光标样式:
  70. 链接手指 CURSOR: hand
  71. 十字体 cursor:crosshair
  72. 箭头朝下 cursor:s-resize
  73. 十字箭头 cursor:move
  74. 箭头朝右 cursor:move
  75. 加一问号 cursor:help
  76. 箭头朝左 cursor:w-resize
  77. 箭头朝上 cursor:n-resize
  78. 箭头朝右上 cursor:ne-resize
  79. 箭头朝左上 cursor:nw-resize
  80. 文字I型 cursor:text
  81. 箭头斜右下 cursor:se-resize
  82. 箭头斜左下 cursor:sw-resize
  83. 漏斗 cursor:wait
  84. 光标图案(IE6)   p {cursor:url(“光标文件名.cur”),text;}
  85. 六、CSS框线一览表
  86. border-top : 1px solid #6699cc/*上框线*/
  87. border-bottom : 1px solid #6699cc/*下框线*/
  88. border-left : 1px solid #6699cc/*左框线*/
  89. border-right : 1px solid #6699cc/*右框线*/
  90. 以上是建议书写方式,但也可以使用常规的方式 如下:
  91. border-topcolor : #369 /*设置上框线top颜色*/
  92. border-topwidth :1px /*设置上框线top宽度*/
  93. border-top-style : solid/*设置上框线top样式*/
  94. 其他框线样式
  95. solid /*实线框*/
  96. dotted /*虚线框*/
  97. double /*双线框*/
  98. groove /*立体内凸框*/
  99. ridge /*立体浮雕框*/
  100. inset /*凹框*/
  101. outset /*凸框*/
  102. 七、CSS表单运用
  103. 文字方块
  104. 按钮
  105. 复选框
  106. 选择钮
  107. 多行文字方块
  108. 下拉式菜单 选项1选项2
  109. 八、CSS边界样式
  110. margin-top:10px/*上边界*/
  111. margin-right:10px/*右边界值*/
  112. margin-bottom:10px/*下边界值*/
  113. margin-left:10px/*左边界值*/
  114. 九、CSS滤镜属性
  115. Filter:在样式中加上滤镜特效。由于此属性内容比较多,我们将到下一章单独对滤镜介绍。
  116. 1.Alpha:设置透明度
  117. Alpha(Opacity=?, FinishOpacity=?, Style=?, StartX=?, StartY=?, FinishX=?, FinishY=?)
  118. Opacity:透明度级别,范围是0-100,0代表完全透明,100代表完全不透明。FinishOpacity:设置渐变的透明效果时,用来指定结束时的透明度,范围也是0 到 100。Style:设置渐变透明的样式,值为0代表统一形状、1代表线形、2代表放射状、3代表长方形。StartX和StartY:代表渐变透明效果的开始X和Y坐标。 FinishX和FinishY:代表渐变透明效果结束X和Y 的坐标。
  119. 2.BlendTrans:图像之间的淡入和淡出的效果
  120. BlendTrans(Duration=?) Duration:淡入或淡出的时间。注意:这个滤镜必须配合JS建立图片序列,才能做出图片间效果。
  121. 3.Blru:建立模糊效果
  122. Blur(Add=?, Direction=?, Strength=?) Add:是否单方向模糊,此参数是一个布尔值,true(非0)或false(0)。 Direction:设置模糊的方向,其中0度代表垂直向上,然后每45度为一个单位。 Strength:代表模糊的象素值。
  123. 4.Chroma:把指定的颜色设置为透明
  124. Chroma(Color=?) Color:是指要设置为透明的颜色。
  125. 5.DropShadow:建立阴影效果
  126. DropShadow(Color=?, OffX=?, OffY=?, Positive=?) Color:指定阴影的颜色。OffX:指定阴影相对于元素在水平方向偏移量,整数。 OffY:指定阴影相对于元素在垂直方向偏移量,整数。 Positive:是一个布尔值,值为true(非0)时,表示为建立外阴影;为false(0),表示为建立内阴影。
  127. 6.FlipH:将元素水平反转
  128. 7.FlipV:将元素垂直反转
  129. 8.Glow:建立外发光效效果
  130. Glow(Color=?, Strength=?)
  131. Color:是指定发光的颜色。
  132. Strength:光的强度,可以是1到255之间的任何整数,数字越大,发光的范围就越大。
  133. 9.Gray:去掉图像的色彩,显示为黑白图象
  134. 10.  Invert:反转图象的颜色,产生类似底片的效果
  135. 11.  Light:放置光源的效果,可以用来模拟光源在物体上的投影效果 注意:此效果需要用JS设置光的位置和强度。
  136. 12.  Mask:建立透明遮罩
  137. Mask(Color=?) Color:设置底色,让对象遮住底色的部分透明。
  138. 13.  RevealTrans:建立切换效果
  139. RevealTrans(Duration=?, Transition=?)
  140. Duration:是切换时间,以秒为单位。
  141. Transtition:是切换方式,可设置为从0到23。
  142. 注意:如果做页面间的切换效果,可以在<head>区加上一行代码:<Meta http-equiv=Page-enter content=revealTrans(Transition=?,Duration=?) >。如果用在页面里的元素必须配合JS使用。
  143. 14.  Shadow:建立另一种阴影效果 Shadow(Color=?, Direction=?) Color:是指阴影的颜色。
  144. Direction:是设置投影的方向,0度代表垂直向上,然后每45度为一个单位。
  145. 15.  Wave:波纹效果
  146. Wave(Add=?, Freq=?, LightStrength=?, Phase=?, Strength=?) Add:表示是否显示原对象,0表示不显示,非0表示要显示原对象。 Freq:设置波动的个数。LightStrength:设置波浪效果的光照强度,从0到100。0表示最弱,100表示最强。 Phase:波浪的起始相角。从0到100的百分数值。(例如:25相当于90度,而50相当于180度。) Strength:设置波浪摇摆的幅度。
  147. 16.  Xray:显现图片的轮廓,X光片效果
  148. 注意:在使用CSS滤镜时,必须使用在有区域的元素,比如表格,图片等。而文本,段落这样没有区域的元素不能使用CSS滤镜,对这样的元素我们可以设置元素的Height和Width样式或坐标来实现。”

css样式大全(整理版)

  1. 字体属性:(font)
  2. 大小 {font-sizex-large;}(特大) xx-small;(极小) 一般中文用不到,只要用数值就可以,单位:PX、PD
  3. 样式 {font-styleoblique;}(偏斜体) italic;(斜体) normal;(正常)
  4. 行高 {line-heightnormal;}(正常) 单位:PX、PD、EM
  5. 粗细 {font-weightbold;}(粗体) lighter;(细体) normal;(正常)
  6. 变体 {font-variantsmall-caps;}(小型大写字母) normal;(正常)
  7. 大小写 {text-transformcapitalize;}(首字母大写) uppercase;(大写) lowercase;(小写) none;(无)
  8. 修饰 {text-decorationunderline;}(下划线) overline;(上划线) line-through;(删除线) blink;(闪烁)
  9. 常用字体: (font-family)
  10. “Courier New”, Courier, monospace“Times New Roman”, Times, serifArialHelveticasans-serifVerdana
  11. 背景属性: (background)
  12. 色彩 {background-color#FFFFFF;}
  13. 图片 {background-imageurl();}
  14. 重复 {background-repeatno-repeat;}
  15. 滚动 {background-attachmentfixed;}(固定) scroll;(滚动)
  16. 位置 {background-positionleft;}(水平) top(垂直);
  17. 简写方法 {background:#000 url(..) repeat fixed left top;} /*简写·这个在阅读代码中经常出现,要认真的研究*/
  18. 区块属性: (Block) /*这个属性第一次认识,要多多研究*/
  19. 字间距 {letter-spacingnormal;} 数值 /*这个属性似乎有用,多实践下*/
  20. 对齐 {text-alignjustify;}(两端对齐) left;(左对齐) rightright;(右对齐) center;(居中)
  21. 缩进 {text-indent: 数值px;}
  22. 垂直对齐 {vertical-alignbaselinebaseline;}(基线) sub;(下标) super;(下标) toptext-topmiddlebottombottomtext-bottom;
  23. 词间距word-spacingnormal; 数值
  24. 空格whitewhite-spacepre;(保留) nowrap;(不换行)
  25. 显示 {display:block;}(块) inline;(内嵌) list-item;(列表项) run-in;(追加部分) compact;(紧凑) marker;(标记) table; inline-table; table-raw-group; table-header-grouptable-footer-group; table-raw; table-column-group; table-columntable-celltable-caption;(表格标题) /*display 属性的了解很模糊*/
  26. 方框属性: (Box)
  27. width:; height:; float:; clear:bothmargin:; padding:; 顺序:上右下左
  28. 边框属性: (Border)
  29. border-styledotted;(点线) dashed;(虚线) soliddouble;(双线) groove;(槽线) ridge;(脊状) inset;(凹陷) outset;
  30. border-width:; 边框宽度
  31. border-color:#;
  32. 简写方法borderwidth style color/*简写*/
  33. 列表属性: (List-style)
  34. 类型list-style-typedisc;(圆点) circle;(圆圈) square;(方块) decimal;(数字) lower-roman;(小罗码数字) upper-romanlower-alphaupper-alpha;
  35. 位置list-style-positionoutside;(外) inside;
  36. 图像list-style-imageurl(..);
  37. 定位属性: (Position)
  38. Position: absoluterelativestatic;
  39. visibility: inherit; visiblehidden;
  40. overflowvisiblehiddenscrollauto;
  41. clip: rect(12px,auto,12px,auto) (裁切)
  42. css属性代码大全
  43. 一 CSS文字属性:
  44. color : #999999/*文字颜色*/
  45. font-family : 宋体,sans-serif/*文字字体*/
  46. font-size : 9pt/*文字大小*/
  47. font-style:itelic; /*文字斜体*/
  48. font-variant:small-caps; /*小字体*/
  49. letter-spacing : 1pt/*字间距离*/
  50. line-height : 200%; /*设置行高*/
  51. font-weight:bold/*文字粗体*/
  52. vertical-align:sub/*下标字*/
  53. vertical-align:super/*上标字*/
  54. text-decoration:line-through/*加删除线*/
  55. text-decorationoverline/*加顶线*/
  56. text-decoration:underline/*加下划线*/
  57. text-decoration:none/*删除链接下划线*/
  58. text-transform : capitalize/*首字大写*/
  59. text-transform : uppercase/*英文大写*/
  60. text-transform : lowercase/*英文小写*/
  61. text-align:rightright/*文字右对齐*/
  62. text-align:left/*文字左对齐*/
  63. text-align:center/*文字居中对齐*/
  64. text-align:justify/*文字分散对齐*/
  65. vertical-align属性
  66. vertical-align:top/*垂直向上对齐*/
  67. vertical-align:bottombottom/*垂直向下对齐*/
  68. vertical-align:middle/*垂直居中对齐*/
  69. vertical-align:text-top/*文字垂直向上对齐*/
  70. vertical-align:text-bottom/*文字垂直向下对齐*/
  71. 二、CSS边框空白
  72. padding-top:10px/*上边框留空白*/
  73. padding-right:10px/*右边框留空白*/
  74. padding-bottom:10px/*下边框留空白*/
  75. padding-left:10px/*左边框留空白
  76. 三、CSS符号属性:
  77. list-style-type:none; /*不编号*/
  78. list-style-type:decimal/*阿拉伯数字*/
  79. list-style-type:lower-roman/*小写罗马数字*/
  80. list-style-type:upper-roman/*大写罗马数字*/
  81. list-style-type:lower-alpha/*小写英文字母*/
  82. list-style-type:upper-alpha/*大写英文字母*/
  83. list-style-type:disc/*实心圆形符号*/
  84. list-style-type:circle/*空心圆形符号*/
  85. list-style-type:square/*实心方形符号*/
  86. list-style-image:url(/dot.gif); /*图片式符号*/
  87. list-style-positionoutside/*凸排*/
  88. list-style-position:inside/*缩进*/
  89. 四、CSS背景样式:
  90. background-color:#F5E2EC/*背景颜色*/
  91. background:transparent/*透视背景*/
  92. background-image : url(/image/bg.gif); /*背景图片*/
  93. background-attachment : fixed/*浮水印固定背景*/
  94. background-repeat : repeat/*重复排列-网页默认*/
  95. background-repeat : no-repeat/*不重复排列*/
  96. background-repeat : repeat-x; /*在x轴重复排列*/
  97. background-repeat : repeat-y; /*在y轴重复排列*/
  98. 指定背景位置
  99. background-position : 90% 90%; /*背景图片x与y轴的位置*/
  100. background-position : top/*向上对齐*/
  101. background-position : buttom; /*向下对齐*/
  102. background-position : left/*向左对齐*/
  103. background-position : rightright/*向右对齐*/
  104. background-position : center/*居中对齐*/
  105. 五、CSS连接属性:
  106. /*所有超链接*/
  107. a:link /*超链接文字格式*/
  108. a:visited /*浏览过的链接文字格式*/
  109. a:active /*按下链接的格式*/
  110. a:hover /*鼠标转到链接*/
  111. 鼠标光标样式:
  112. 链接手指 CURSOR: hand
  113. 十字体 cursor:crosshair
  114. 箭头朝下 cursor:s-resize
  115. 十字箭头 cursor:move
  116. 箭头朝右 cursor:move
  117. 加一问号 cursor:help
  118. 箭头朝左 cursor:w-resize
  119. 箭头朝上 cursor:n-resize
  120. 箭头朝右上 cursor:ne-resize
  121. 箭头朝左上 cursor:nw-resize
  122. 文字I型 cursor:text
  123. 箭头斜右下 cursor:se-resize
  124. 箭头斜左下 cursor:sw-resize
  125. 漏斗 cursor:wait
  126. 光标图案(IE6) p {cursor:url(“光标文件名.cur”),text;}
  127. 六、CSS框线一览表:
  128. border-top : 1px solid #6699cc/*上框线*/
  129. border-bottom : 1px solid #6699cc/*下框线*/
  130. border-left : 1px solid #6699cc/*左框线*/
  131. border-right : 1px solid #6699cc/*右框线*/
  132. 以上是建议书写方式,但也可以使用常规的方式 如下:
  133. border-topcolor : #369 /*设置上框线top颜色*/
  134. border-topwidth :1px /*设置上框线top宽度*/
  135. border-top-style : solid/*设置上框线top样式*/
  136. 其他框线样式
  137. solid /*实线框*/
  138. dotted /*虚线框*/
  139. double /*双线框*/
  140. groove /*立体内凸框*/
  141. ridge /*立体浮雕框*/
  142. inset /*凹框*/
  143. outset /*凸框*/
  144. 七、CSS表单运用:
  145. 文字方块
  146. 按钮
  147. 复选框
  148. 选择钮
  149. 多行文字方块
  150. 下拉式菜单 选项1选项2
  151. 八、CSS边界样式:
  152. margin-top:10px/*上边界*/
  153. margin-right:10px/*右边界值*/
  154. margin-bottom:10px/*下边界值*/
  155. margin-left:10px/*左边界值*/
  156. CSS 属性: 字体样式(Font Style)
  157. 序号 中文说明 标记语法
  158. 1 字体样式 {font:font-style font-variant font-weight font-size font-family}
  159. 2 字体类型 {font-family:“字体1”,“字体2”,“字体3”,…}
  160. 3 字体大小 {font-size:数值|inherit| mediumlargelargerx-largexx-largesmallsmallerx-smallxx-small}
  161. 4 字体风格 {font-style:inherit|italic|normal|oblique}
  162. 5 字体粗细 {font-weight:100-900|bold|bolder|lighter|normal;}
  163. 6 字体颜色 {color:数值;}
  164. 7 阴影颜色 {text-shadow:16位色值}
  165. 8 字体行高 {line-height:数值|inherit|normal;}
  166. 9 字 间 距 {letter-spacing:数值|inherit|normal}
  167. 10 单词间距 {word-spacing:数值|inherit|normal}
  168. 11 字体变形 {font-variant:inherit|normal|small-cps }
  169. 12 英文转换 {text-transform:inherit|none|capitalize|uppercase|lowercase}
  170. 13 字体变形 {font-size-adjust:inherit|none}
  171. 14 字体 {font-stretch:condensed|expanded|extra-condensed|extra-expanded|inherit|narrower|normalsemi-condensed|semi-expanded|ultra-condensed|ultra-expanded|wider}
  172. 文本样式(Text Style)
  173. 序号 中文说明 标记语法
  174. 1 行 间 距 {line-height:数值|inherit|normal;}
  175. 2 文本修饰 {text-decoration:inherit|none|underline|overline|line-through|blink}
  176. 3 段首空格 {text-indent:数值|inherit}
  177. 4 水平对齐 {text-align:left|rightright|center|justify}
  178. 5 垂直对齐 {vertical-align:inherit|top|bottombottom|text-top|text-bottom|baselinebaseline|middle|sub|super}
  179. 6 书写方式 {writing-mode:lr-tb|tb-rl}
  180. 背景样式
  181. 序号 中文说明 标记语法
  182. 1 背景颜色 {background-color:数值}
  183. 2 背景图片 {background-imageurl(URL)|none}
  184. 3 背景重复 {background-repeat:inherit|no-repeat|repeat|repeat-x|repeat-y}
  185. 4 背景固定 {background-attachment:fixed|scroll}
  186. 5 背景定位 {background-position:数值|top|bottombottom|left|rightright|center}
  187. 6 背影样式 {background:背景颜色|背景图象|背景重复|背景附件|背景位置}
  188. 框架样式(Box Style)
  189. 序号 中文说明 标记语法
  190. 1 边界留白 {margin:margin-top margin-right margin-bottom margin-left}
  191. 2 补  白 {padding:padding-top padding-right padding-bottom padding-left}
  192. 3 边框宽度 {border-width:border-topwidth border-rightwidth border-bottomwidth border-leftwidth}
  193. 宽度值: thin|medium|thick|数值
  194. 4 边框颜色 {border-color:数值 数值 数值 数值}  数值:分别代表toprightrightbottombottomleft颜色值
  195. 5 边框风格 {border-style:none|hidden|inherit|dashed|solid|double|inset|outset|ridge|groove}
  196. 6 边  框 {border:border-width border-style color}
  197. 上 边 框 {border-top:border-topwidth border-style color}
  198. 右 边 框 {border-right:border-rightwidth border-style color}
  199. 下 边 框 {border-bottom:border-bottomwidth border-style color}
  200. 左 边 框 {border-left:border-leftwidth border-style color}
  201. 7 宽  度 {width:长度|百分比| auto}
  202. 8 高  度 {height:数值|auto}
  203. 9 漂  浮 {float:left|rightright|none}
  204. 10 清  除 {clear:none|left|rightright|both}
  205. 分类列表
  206. 序号 中文说明 标记语法
  207. 1 控制显示 {display:none|block|inline|list-item}
  208. 2 控制空白 {whitewhite-space:normal|pre|nowarp}
  209. 3 符号列表 {list-style-type:disc|circle|square|decimal|lower-roman|upper-roman|lower-alpha|upper-alpha|none}
  210. 4 图形列表 {list-style-image:URL}
  211. 5 位置列表 {list-style-position:inside|outside}
  212. 6 目录列表 {list-style:目录样式类型|目录样式位置|url}
  213. 7 鼠标形状 {cursor:hand|crosshair|text|wait|move|help|e-resize|nw-resize|w-resize|s-resize|se-resize|sw-resize}

百度蜘蛛比较喜欢的链接样式

下边列出了部分URL样式,请大家参考。如果你有好的URL样式,请跟帖分享给大家

http://www.{顶级域名}/{随机字符}/

http://www.{顶级域名}/{年}{月}{日}_{随机数字}.html

http://{随机字符}.{顶级域名}/{随机数字}/

http://{随机数字}.{顶级域名}/{随机字符}/

http://{随机字符}.{随机域名}/{随机数字}/

http://{随机数字}.{随机域名}/{随机字符}/

http://{随机域名}/{随机数字}.html

http://{随机域名}/{随机字符}.html

http://{顶级域名}/{随机数字}.html

http://{顶级域名}/{随机字符}.html

http://{顶级域名}/{随机字符}/

http://{顶级域名}/{随机数字}/

http://{顶级域名}/{年}{月}{日}.html

http://{顶级域名}/{年}{月}{日}/

http://{随机域名}/{年}{月}{日}/

http://{随机域名}/{年}{月}{日}.html

http://{随机字符}.{顶级域名}/{年}{月}{日}.html

http://{随机数字}.{顶级域名}/{年}{月}{日}.html

http://{随机字符}.{随机域名}/{年}{月}{日}.html

http://{随机数字}.{随机域名}/{年}{月}{日}.html

http://{随机字符}.{顶级域名}/{年}{月}{日}/

http://{随机数字}.{顶级域名}/{年}{月}{日}/

http://www.{随机域名}/{随机字符}/

http://www.{随机域名}/{年}{月}{日}_{随机数字}.html

http://bbs.{随机域名}/{随机字符}/

http://bbs.{随机域名}/{年}{月}{日}_{随机数字}.html

http://bbs.{顶级域名}/{随机字符}/

http://bbs.{顶级域名}/{年}{月}{日}_{随机数字}.html

http://blog.{顶级域名}/{随机字符}/

http://blog.{顶级域名}/{年}{月}{日}_{随机数字}.html

http://{当前域名}/{年}{月}{日}_{随机数字}.html

http://{当前域名}/{随机字符}/

http://{当前域名}/{随机数字}/

帝国cms编辑器添加插入代码插件内容页模板高亮显示

帝国CMS编辑器默认是没有插入代码insertcode的插件,在网上找了一个,分享给大家
实现步骤
1、将“infoeditor”直接把文件复制到根目录的eadminecmseditorinfoeditor目录下,替换源文件;

2、为了可以使用插入代码功能,需要在相应的页面加入CSS代码(insertcode.css),和下面的Js代码;

3、在文章模板(内容模板)页链接Css文件:

或者直接把css代码拷贝到模板的css文件中。

4、在文章模板(内容模板)页加入以下的js代码,实现复制和运行功能。

完毕!

 

如果在后台编辑器中仍然看不到插入代码的按钮,清楚浏览器缓存 就可以了!

架构设计基础知识整理

星星点点的知识点,很早就想做这块整理了,持续维护…

I. 原则:

灵活运用,而非刻意遵循

1. 基础原则

尽量少的重复代码,低耦合(尽量小的影响),高内聚
模块,可小到一个类,大到一个系统

模块间耦合因素

构建架构时,需要谨慎耦合的因素

  • 模块间调用
  • 模块间传递的数据量
  • 模块间控制
  • 模块间接口复杂度

模块间耦合从弱到强顺序

构建架构或简单的类时,需要根据实际情况尽量契合弱的模块间耦合关系
做到职责分明,简单轻量,尽量少的潜在性的数据流动,尽量少的相互影响,避免牵一发而动全身

  1. 非直接耦合: 相互之间没有直接关系,而是由第三方模块控制和调用
  2. 数据耦合: 通过传递java的内置数据类型通讯
  3. 标记耦合: 都引用了共同的数据结构,并且通过传递该数据结构通讯
  4. 控制耦合: 通过传递开关、标志、名字等控制信息,明显的控制选择另一个模块的功能
  5. 外部耦合: 都访问一个java的内置数据类型的全局变量
  6. 公共耦合: 都访问了一个公共代码块( 全局数据结构、公共通讯区、内存公共覆盖区等)
  7. 内容耦合: 一个模块直接修改另外一个模块的数据。

降低耦合度的方法

  • 少用类继承,多用类接口隐藏实现细节
  • 模块功能尽量单一
  • 拒绝重复代码
  • 尽量不使用全局变量(Android中的全局变量会有一些坑,因为Attach在ClassLoader上的,因此根据不同ROM的优化,可能会在未预料的情况被unload,导致数据丢失)
  • 类成员变量与方法少用public,多用private
  • 尽量不用硬编码(如 字符串放到 res/string.xml,SQL语句做一层基于业务的封装供上层使用)
  • 使用设计模式,尽量让模块间的耦合关系保证在数据耦合或更弱

2. 原则汇总

原则 基本概念 解决问题 基本实现
开闭原则 对扩展开发,对修改关闭 实现热拔插,解耦方式 接口、抽象
里氏代换原则 子类是父类的具体抽象,抽象并可代表父类(Is-A) 解释抽象化的具体原则 继承,抽象
依赖倒转原则 针对接口编程,依赖于抽象不依赖于具体 易于拓展 接口编程时类型使用基类,而不使用具体实现的子类
接口隔离原则 使用多个隔离接口,比使用单个接口要好 降低耦合 封装接口的时候,尽量用不同接口解决不同问题,尽量不要合用一个接口
迪米特法则 以实体为单位,实体之间的相互作用尽量的少 降低耦合 写一个系统架构,或模块的时候,尽量少的对外依赖
合成复用原则 优先使用合成/聚合,而非继承 可以通过引入抽象类更加灵活,相互耦合变小,更加简单 尽量将已有对象纳入到新对象中,成为新对象的一部分,而不使用继承的方式进行复用,如 ClassLoader 中双亲委派架构

使用组合而非继承的场景:

优先使用对象组合,而非继承

  • Has-A的关系,而非Is-A的关系
  • 子类的主要目的是拓展父类,而非overridefinal,如果存在大量这种情况,改用组合
  • 引入工具类,而非继承自工具类
  • 有可能或不确定 子类 有可能被替换为 另外一个类的子类的情况 ( 如果出现这种情况,就需要修改。因此还不如使用 组合,如果有类似需求,再 组合如新的对象,进行拓展即可)

继承需要注意

当已经选择使用继承时,需要注意

  • 实现抽象方法,拓展新的特性方法,尽量少的重载父类非抽象方法
  • 重载父类非抽象方法时: 方法前置条件(方法形参)要比父类方法更宽松,方法后置条件(方法返回值)要比父类更严格

类之间的关系与UML表示

II. 常见的模式

1. MVC 与 MVP


From http://msdn.microsoft.com/en-us/library/ff647859.aspx

MVP(Model-View_Presenter)是MVC(Model-View_Controller)的一个子集。

  • MVC中Controller控制全局事务,View将事件发送给ControllerController处理完事件同步给Model(数据库/数据模型),View是通过所绑定的Model的改变来刷新自己。
  • MVP中PresenterView中获取数据,刷新Model,当Model中的数据发生改变后,Presenter读取Model并刷新View

2. MVVM

MVVM(ViewViewModel->Model)

在Android中可以通过DataBinding,直接在Layout文件中绑定其ViewModel

  • View: 布局
  • ViewModel: 负责显示数据(监听到Model中的数据变化进行显示),以及处理用户交互(监听View布局中的用户Action)
  • Model: 存储内容

3. MVVM-C

MVVM-C(View-ViewModel-Callback-Model)

  • View: 布局
  • Callback: 通常可以是FragmentActivity,用于处理用户交互(监听View布局中的用户Action)
  • ViewModel: 显示数据(监听Model中的数据变化进行显示)
  • Model: 存储内容

III. 设计模式

1. 工厂方法模式

2. 单例模式

Initialization-on-demand holder idiom

Wiki

性能高,线程安全 基于JVM Class Loader保证Class唯一性线程安全的模型

  1. public class Something {
  2.     private Something() {}
  3.     private static class LazyHolder {
  4.         private static final Something INSTANCE = new Something();
  5.     }
  6.     public static Something getInstance() {
  7.         return LazyHolder.INSTANCE;
  8.     }
  9. }

 

3. 建造者模式

与工厂模式区别是: 工厂模式关注构建单个类型类型;建造者模式关注构建符合类型对象。

4. 原型模式

当前对象对外提供拷贝方法

浅拷贝

除了基本数据类型外,其他类型的对象都只持有当前对象的引用,而非重新创建拷贝

Java中的Object#clone
  1. Object#clone()就已经提供了该对象的浅拷贝
  2. 如果需要使用Object#clone,需要类实现Clonable这个接口,来申明该类对象支持拷贝,否则会抛CloneNotSupportedException, 如果对象中存在队列成员变量,队列也需要实现Clonable

深拷贝

所有成员变量都将重新创建

方式一:

直接序列化(Java中基于JVM层级最简单的让对象支持序列化的方式,实现Serializable),拷贝二进制流。

方式二(推荐):

基于Object#clone()将非基本数据类型以外的元素都实现深拷贝,挨个深拷贝返回。

5. 适配器模式

6. 装饰模式

7. 代理模式

8. 外观模式

9. 桥接模式

10. 组合模式

11. 享元模式

12. 策略模式

13. 模板方法模式

14. 观察者模式

程序员福利:各大平台免费接口,非常实用

电商接口

京东获取单个商品价格接口:

http://p.3.cn/prices/mgets?skuIds=J_商品ID&type=1

ps:商品ID这么获取:http://item.jd.com/954086.html

物流接口

快递接口:

http://www.kuaidi100.com/query?type=快递公司代号&postid=快递单号

ps:快递公司编码:申通=”shentong” EMS=”ems” 顺丰=”shunfeng” 圆通=”yuantong” 中通=”zhongtong” 韵达=”yunda” 天天=”tiantian” 汇通=”huitongkuaidi” 全峰=”quanfengkuaidi” 德邦=”debangwuliu” 宅急送=”zhaijisong”

谷歌接口

FeedXml转json接口:

http://ajax.googleapis.com/ajax/services/feed/load?q=Feed地址&v=1.0

备选参数:callback:&callback=foo就会在json外面嵌套foo({})方便做jsonp使用。

备选参数:n:返回多少条记录。

天气接口

百度接口:

http://api.map.baidu.com/telematics/v3/weather?location=嘉兴&output=json&ak=5slgyqGDENN7Sy7pw29IUvrZ

location:城市名或经纬度 ak:开发者密钥 output:默认xml

气象局接口:

http://m.weather.com.cn/data/101010100.html

音乐接口

虾米接口:

http://kuang.xiami.com/app/nineteen/search/key/歌曲名称/diandian/1/page/歌曲当前页?_=当前毫秒&callback=getXiamiData

QQ空间音乐接口:

http://qzone-music.qq.com/fcg-bin/cgi_playlist_xml.fcg?uin=QQ号码&json=1&g_tk=1916754934

QQ空间收藏音乐接口:

http://qzone-music.qq.com/fcg-bin/fcg_music_fav_getinfo.fcg?dirinfo=0&dirid=1&uin=QQ号&p=0.519638272547262&g_tk=1284234856

多米音乐接口:

http://v5.pc.duomi.com/search-ajaxsearch-searchall?kw=关键字&pi=页码&pz=每页音乐数

soso接口:

http://cgi.music.soso.com/fcgi-bin/fcg_search_xmldata.q?source=10&w=关键字&perpage=1&ie=utf-8

视频接口

土豆接口:

http://api.tudou.com/v3/gw?method=album.item.get&appKey=Appkey&format=json&albumId=视频剧集ID&pageNo=当前页&pageSize=每页显示

地图接口

阿里云根据地区名获取经纬度接口:

http://gc.ditu.aliyun.com/geocoding?a=苏州市

参数解释: 纬度,经度type 001 (100代表道路,010代表POI,001代表门址,111可以同时显示前三项)

阿里云根据经纬度获取地区名接口:

http://gc.ditu.aliyun.com/regeocoding?l=39.938133,116.395739&type=001

IP接口

新浪接口(ip值为空的时候 获取本地的):

http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=218.4.255.255

淘宝接口:

http://ip.taobao.com/service/getIpInfo.php?ip=63.223.108.42

手机信息查询接口

淘宝网接口:

http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=手机号

拍拍接口:

http://virtual.paipai.com/extinfo/GetMobileProductInfo?mobile=手机号&amount=10000&callname=getPhoneNumInfoExtCallback 用例

百付宝接口:

https://www.baifubao.com/callback?cmd=1059&callback=phone&phone=手机号

115接口:

http://cz.115.com/?ct=index&ac=get_mobile_local&callback=jsonp1333962541001&mobile=手机号

有道接口:

http://www.youdao.com/smartresult-xml/search.s?jsFlag=true&type=mobile&q=手机号

手机在线接口

http://api.showji.com/Locating/www.showji.com.aspx?m=手机号&output=json&callback=querycallback

视频信息接口

优酷:

http://v.youku.com/player/getPlayList/VideoIDS/视频ID

(比如 http://v.youku.com/v_show/id_XNTQxNzc4ODg0.html的ID就是XNTQxNzc4ODg0)

翻译、词典接口

腾讯:

http://dict.qq.com/dict?q=词语

腾讯的部分接口

获取QQ昵称和用户头像:

http://r.qzone.qq.com/cgi-bin/user/cgi_personal_card?uin=QQ

前端工程师必备实用网站

一、配色类网站

http://colorhunt.co

这个网站给我们提供了很多的配色方案,我们直接使用就OK了。使用方法也很简单,鼠标移动到对应的颜色上,我们就可以看到颜色的十六进制码,复制这个颜色到工具里就可以使用了。

https://color.adobe.com/zh/create/color-wheel

这个是Adobe公司出的,他提供了多种配色方案。我们点击圆盘中间的点,就可以调整出我们想要的配色方案。

http://www.colorhunter.com/

这是一个提取现有图片配色方案的工具。我们上传一张图片,它就会帮我们把图片的配色提取出来供我们使用。

http://www.bootcss.com/p/websafecolors/

这个网站是为WEB设计,开发中经常用到的安全色。网站内列出了颜色的十六进制码和RGB码,复制粘贴就可以了。

http://www.sioe.cn/yingyong/yanse-rgb-16/

这是一个在线RGB和十六进制颜色码转换工具。在对应的位置填入十六进制代码,点击转换,我们就可以获取到RGB颜色的代码了。

二、图标类网站

http://www.iconfont.cn/plus

这是阿里巴巴旗下的图标库网站,直接搜索关键词就可以找到大批的图标。下载图标的时候我们还可以选择颜色、大小、格式,根据自己的需要下载就好了。

http://www.easyicon.net/iconsearch/ios/

这也是一个非常有名的图标库,与上面那个不同的是,这里的图标不是单一颜色的,而是设计好的颜色。下载图标也很简单,直接点击对应图标上面的格式就可以下载。

http://www.thinkcmf.com/font/search.html

奥森图标(Font Awesome)提供丰富的矢量字体图标—通过CSS可以任意控制所有图标的大小 ,颜色,阴影。

三、插件类网站

http://www.jq22.com/

这个网站分享jQuery插件和提供各种jQuery特效的详细使用方法,在线预览,jQuery插件下载及教程

http://www.htmleaf.com/

这个网站与上一个网站类似,也提供了大量的jQuery插件

http://www.layui.com/

这是一个强大的模块化前端框架

http://www.h-ui.net/index.shtml

H-ui前端框架,一个轻量级前端框架,简单免费,兼容性好,服务中国网站。

四、素材类网站

http://588ku.com/

千库网,一个免费下载图片素材的网站

https://unsplash.com/

Unsplash是一个分享免费高质量照片的网站,照片分辨率都挺大,而且都是真实的摄影师作品,图片多是风景和静物。

五、字体类网站

http://www.youziku.com/onlinefont/index

有字库,一个免下载字体,直接在线引用字体的网站。

http://www.psjia.com/pssc/fontxz/list_18_3.html

PS字体库,包含了几乎所有类型的字体,下载好安装,PS中就可以使用了。

常见的正则表达式可视化描述

最近在看正则指引这本书,记录一下常见的一些正则表达式,图片使用https://regexper.com生成

整数

[0-9]

 

逗号分隔的整数

\b[0-9]{1,3}(,[0-9]{3})*\b

浮点数

(\ ?(\d |\.\d |\d \.\d )|-?(\d |\d \.\d ))

0-255之间的数字

^([0-9]|[0-9]{2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])$

身份证

^[1-9]\d{14}(\d{2}[0-9x])?$

邮箱

^[-\w.]{0,64}@([a-zA-Z0-9]{1,63}\.)*[-a-zA-Z0-9]{1,63}$

固定电话

(\(?0[1-9]{2,3}\)?-?)?[1-9][0-9]\{6,7}(-[0-9]{1,6})?

邮编

[1-9][0-9]{5}

ISBN

((ISBN(-13)?:?\s)?97[89][-\s]?[0-9][-\s]?[0-9]{3}[-\s]?[0-9]{5}[-\s]?[0-9]|(ISBN(-10)?:?\s)?[0-9][-\s]?[0-9]{3}[-\s]?[0-9]{5}[-\s]?[0-9x])

手机号

(0|\ 86)?(13[0-9]|15[0-356]|18[025-9])\d{8}

成对的html tag

test

<([^>] )>[\s\S]*?<\/\1>

a

<a\s href\s*=\s*["\']?([^"\'\s] )["\']?>([^<] )<\/a>

([^>] )<\/head>

图片

<img\s[^>]*?src=[\'"]?([^"\'] )["\']?[^>]*>

附:正则指引思维导图

7个使用和不使用ThinkPHP的理由

thinkphp

7个使用ThinkPHP的理由:


1. 最基本的PHP框架

如果你从来没有使用过PHP框架,那么你至少应该选择一个PHP框架,这比完全自己写代码要好得多,至少有很多常见的问题框架的文档都会提及。而PHP框架中,ThinkPHP会是理想和基础的选择之一。我本人曾尝试过国外多用的Laravel,作为初学者,并没有发现Laravel比ThinkPHP有什么优越之处,反而缺点多多。

2. 中国人做的开源框架

符合国内大部分PHP开发者使用习惯,中文文档及社区完善。很多人懂,意味着容易招人。容易上手。而其它所有PHP框架基本上都是国外的(除了鸟哥惠新宸的Yaf),需要英文阅读能力过关,偶尔还要翻墙。

3. 完善的文档

ThinkPHP有很完善的技术文档以及教程,不像国外的PHP框架写得很简单(简洁)。验证码、微信开发等主题也有涵盖。视图的语法也描述得很清晰(国外的PHP框架一般默认程序员已经知道视图的各种特殊语法)。可以认为,国外的PHP框架大多对高手友好,ThinkPHP对刚入门的程序员友好。

4. 简洁的路由和参数

如果使用默认的路由方式,不需要定义哪个URL由哪个函数处理,开发者从URL就能很容易地找到处理的代码以及传入的参数,这让代码结构变得很规范、美观。比如说,URL为http://localhost/Home/Index/course,那么Controller就在Application/Home/Controller/IndexController::course(),View就在Applicaiton/Home/View/Index/course.html。如果页面很简单,没有动态内容,那么我们连Controller都可以不写。

5. 支持验证码、微信、图片处理、IP定位等功能

支持这些常用的功能,让人感觉很方便。

6. 学习曲线低

相比起国外的PHP框架,对于中国人来说ThinkPHP应该算最容易学的了。(尽管我个人最喜欢学习曲线陡峭、被一般人认为只是一个CMS的Drupal。)

7. 容易部署

对PHP版本要求不高,对服务器也不需要怎样配置。我之前用过Laravel的人尝试部署到腾讯的PHP服务器,结果发现腾讯服务器的PHP版本太低,部署不了,要自己买台虚拟机。那些国外的PHP框架用了很多强大的脚本,敲几条命令就可以把框架装好。可以命令到了国内就会遇到网络问题。这一点上,还是原始地下载完整框架代码的方式比较简单。

7个不使用ThinkPHP的理由:


1. 没有多环境的配置机制

开发网站通常需要在本地配置、然后放到测试服务器、然后放到生产环境。那么我们需要有3套的配置文件(数据库的账号密码)。但是ThinkPHP不像Laravel等框架可以把多个环境的配置区分开来,并且ThinkPHP的应用配置文件放在Application/Common/Conf/config.php,也就是说,如果我们想用rsync命令把所有代码同步到服务器,会把服务器的配置覆盖。这一点很不方便。

2. 没有内置发送邮件的支持

需要自己安装扩展,缺乏这个基本功能不太方便。

3. 没有内置用户管理、权限控制的支持

这是每个网站都需要有的功能,连这个也不支持很不方便。对于新手来说,可能还不懂得怎样构建权限控制的模型,让系统很容易出安全漏洞。在网上也很难找到一个质量高的完整例子。

4. 国内的开源PHP框架

这个其实不是什么缺点,但是会被部分人鄙视。这种偏见有其合理性的一面,因为ThinkPHP框架本身以及社区里使用ThinkPHP程序员的平均水平要低于国外的PHP框架,长期混在这一社区水平难有提高。

5. 页面跳转机制设计不太好

ThinkPHP在页面处理有一个返回成功或失败消息的机制,显示该消息几秒后跳转到新页面。这样做有两个缺点:1. 增加了一次额外的页面请求。2. 用户可能还没有看清楚消息就跳转了。同时,这种跳转的机制和jQuery Mobile的Ajax加载页面模式不兼容。像Drupal里把需要返回的结果信息显示在下一个页面里是更优的设计。

6. 搜索答案效率低下

国内的事问百度,国外的事问Google。用Google问IT问题的人都知道Stack Overflow这个网站,都知道找到这个网站的链接就基本上找到答案了。但是ThinkPHP是国内的技术,要问百度,在百度找答案是很累的。国内的文化是很乐意共享别人的东西(例如盗版电影、软件链接),但不乐意共享自己原创的东西(论坛下载资源要先注册一下,只共享不能运行的代码片段)。

7. 功能略简单

整个ThinkPHP的功能看半天文档基本看完,用一个星期做一个网站也基本可以了解其大部分功能。虽然基本的功能都有了,但可深入挖掘的东西不多,适合入门,不利于长期积累。一年的ThinkPHP经验和一个月的经验差不多。学一些功能复杂的PHP框架,有利于工作时间长的程序员积累更多,相比起经验不多的程序员有更高的效率。

来自:http://cto.eguidedog.net/node/202

可视化服务器管理控制面板Plesk,让您专心于网站运营

一直以来让我很头疼的问题就是对服务器的管理。自己搞了个站点,本来想着要专心经营下,但是每天在管理服务器这件事情上就花费了我大量的时间,时不时出现些问题还需要各种找资料问人。当然,也可能是我对网站和服务器管理那套技术不算精通。后来,我实在忍受不了就希望能在网上找一款面板能够让我摆脱这些问题。

网上各种推荐的都有,但是服务器管理面板国内外一共也没几款,经过多方面对比和试用,最终我决定用Plesk。Plesk是大名鼎鼎的Parallels公司旗下的一款专用于管理主机的软件。起初,我也是跟随着名气而来,抱着随便试试的心态吧。之后发现果然名不虚传,Plesk不仅仅是一款简单的管理面板,里面还包含了很多有益于网站运营的功能和插件,被实力圈粉啊。下面我就简单说下Plesk吸引我的几个点吧。

Plesk网站备份功能

我对网站数据的备份非常重视,事实上网站数据一直就很重要。看Plesk官方的介绍说有备份功能,我就特地研究了下。Plesk面板在“工具与设置”里有个专门的备份管理器,可设置创建、上传、移除备份、个人远程FTP存储设置,还可对计划备份的任务进行设置,以及支持对全局的数据进行备份设置以减少CPU负载。

可视化服务器管理控制面板Plesk,让您专心于网站运营 建站教程 第1张

在创建备份时,可以备份域名配置、邮件配置及内容、用户文件及数据库,以及制定文件存储设置。并且,Plesk还能支持选择全量或增量备份,增量备份是仅备份自上次备份起已被更改的网站和邮件主机数据,但数据库数据总是会全量备份。这个功能着实让我很喜欢。

可视化服务器管理控制面板Plesk,让您专心于网站运营 建站教程 第2张

另外有一点,在备份管理时,我还可以设置开启密码保护,对所备份数据进行加固安全密码保护。除此之外,在Plesk的备份管理器里,还有较多细节化的设置,完全满足了我对网站数据备份的需求,也算是解决了我的心头大患。

Plesk免费赠送SSL数字证书

以前我觉得给自己的小网站安装个SSL证书,几乎是不可能的,也完全没必要。后来有在网上看到新闻说是以后网站是否采用HTTPS加密也将作为SEO优化的一项考虑因素,查看了下谷歌百度也都先后部属了SSL。但是SSL证书价格一直是偏高的,也就懒得买。

不过这次倒是让我误打误撞,惊喜地发现在Plesk的插件里居然有免费的SSL证书可以安装!一共包含了两款免费证书:Let’s encrypt和赛门铁克,一键下载安装很省事。虽然都是基础款的证书,但是完全能够满足我们小站点的需求。这个可以说是对我的网站的一项很好的增值服务,对SEO也是很有帮助。(主要这样显得我的网站很有逼格。)

可视化服务器管理控制面板Plesk,让您专心于网站运营 建站教程 第3张

可视化服务器管理控制面板Plesk,让您专心于网站运营 建站教程 第4张

设置自己的网站域名邮箱

Plesk确实很高大上,自带有邮件系统,能够让我非常方便地创建自己的域名邮箱。我不用再去额外购买和配置自己的域名邮箱。Plesk的域名邮箱功能包括创建邮箱(可设置邮箱大小/设置密码等)、邮件转发设置、域名别名设置(是与主电子邮件地址相关联的其它电子邮件地址,主电子邮件地址会接收到所有发送到邮件别名的邮件)、设置自动回复等。

我添加在plesk上进行管理的每个域名都可设置自己的域名邮箱,也可以对某个域名选择停用/激活邮箱服务。在邮件设置那一栏里,还会有个“发送给不存在用户的邮件”选项,主要给当前选定域名设置如何处理发送给不存在电子邮件地址的邮件,包括退回信息设置、转发到设定的邮箱地址,以及选择拒绝。

自觉配上截图:

可视化服务器管理控制面板Plesk,让您专心于网站运营 建站教程 第5张

Plesk安全管理我的站点

在安全管理这块,我觉得Plesk也是做得不错的。在Plesk“工具与设置”界面的“安全”选项下包括了很多从不同层面和各个方面对网站服务器的安全设置,有安全策略(可配置各种安全设置,如密码强度和安全FTP等)、IP地址禁止(设置自动禁止对您的服务器造成恶意攻击的IP地址和网络)、SSL/TSL证书(网站加密及保障连接安全)、被禁域名(管理启用或禁止域名)以及限制管理性访问等。Plesk还有个非常赞的安全管理功能,就是能够对网站防火墙进行设置,需要先进入工具与设置 》更新与升级 》添加与移除组件 》Plesk 扩展里找到 plesk firewall,添加之后,就能在工具与设置里轻松设置了。

可视化服务器管理控制面板Plesk,让您专心于网站运营 建站教程 第6张

可视化服务器管理控制面板Plesk,让您专心于网站运营 建站教程 第7张

另一方面,plesk在对邮件的安全管理方面也很到位,可设置对病毒与其他恶意软件的防护、对垃圾邮件进行防护等功能。另外,我在上文中有提到的Plesk支持免费安装SSL证书功能也是对网站安全的一种保护。

以上是我专门总结的几点,不过其实Plesk还有很多很好用的功能,比如上文中没有提到的可绑定多个域名、数据库管理功能、FTP文件管理器、对服务器用量的统计显示以及界面个性化设置等。Plesk里还包含了上百款应用程序(很多都是免费的),能够支持一键下载安装WordPress,并且还包含了WP工具包,使用起来非常灵活方便,这个对于WordPress站点来说也是个很不错的消息,可惜我的不是WP站点。还有一点就是,我专门在官网上看了下,Plesk是支持Linux和Windows系统,两个系统版本基本上一模一样。总之,个人感觉Plesk功能支持很多很强大,用了之后,着实节省了我不少时间和精力,可以让我专心地去管理和运营自己的网站。

Plesk还有很多巧妙的功能我可能没有介绍全,感兴趣的朋友倒是可以关注下Plesk的微信号领取个试用Key来试试。有关购买的话,现在阿里、腾讯包括美橙上都有得买,而且比较便宜。联系上海锐成官方购买也行。其实我现在没啥事做的时候,就喜欢各种摸索Plesk中的功能,喜欢到不行,个人强烈推荐。

robots史上最详尽、最易懂说明及写法

  robots介绍:


很多做优化的忽略robots的重要性,我们首先要记住的就是蜘蛛来到网站之后第一个看的就是robots文件,它是搜索引擎的协定,告诉蜘蛛哪些能抓,哪些不能抓,哪些目录下的哪些文件可以抓,这些robots文件都可以实现。优化时候忽略了robots文件的重要性,可能会一不小心被网站编程人员给自己埋了一个坑(详情请看之前的帖子)

robots介绍

  robots规则说明:


*代表所有的意思

User-agent

爬虫抓取时会声明自己的身份,这就是User-agent,如果这个规则适用于所有搜索引擎的话,写法:User-agent:* 如果单独适用于百度的话User-agent:Baiduspider

(附一些搜索引擎的名字:百度Baiduspider|谷歌Googlebot|360蜘蛛:360Spider|SOSO蜘蛛:Sosospider|雅虎蜘蛛:Yahoo!|有道蜘蛛:YoudaoBot|搜狗蜘蛛:Sogou News Spider|MSN蜘蛛:msnbot/msnbot-media|必应蜘蛛:bingbot/compatible|一搜蜘蛛:YisouSpider|Alexa蜘蛛:ia_archiver|宜sou蜘蛛:EasouSpider|即刻蜘蛛:JikeSpider|一淘网蜘蛛:EtaoSpider)

DisallowDisallow 列出的是要禁止抓取的的网页和规则,后面用/代表层次关系

Disallow:/(代表着禁止抓取网站所有内容)

Disallow:/abc(禁止抓取abc及其层次下的内容)

Disallow:/abc/(禁止抓取abc层次下的内容,但是允许抓abc)

Disallow:/*.png(禁止抓取png的图片,其他格式的也这样写比如禁止抓网站中的PPT后缀文件是Disallow:/*.PPT)

Disallow:/abc/*.png(禁止访问abc层次下的PNG图片,其他格式也是)

Disallow:/*?*(屏蔽站内所有动态URL,因为动态地址都带?所有可以用这种形式,其他的字符也可以)

Disallow:/abc/*?*(只屏蔽abc层次下的动态地址)

Disallow:/*?/(屏蔽动态层次下的内容,比如有些文章或栏目是网址/?14125这样URL,这样可以让抓取文章,也可以屏蔽后面内容)

Disallow:/abc/*?/(屏蔽abc栏目下的动态层次下的内容)

其他的按照这个思路灵活使用就行了

 

Allow

Allow代表允许访问抓取的意思

Allow一定放在disallow的前面才能不受disallow的影响,比如禁止所有动态后,想要排除一个栏目,写法如下:

Allow:/abc

disallow:/*?*

其他的写法参考disallow的逻辑

 

sitemap

这个只用于告诉蜘蛛网站地图在哪

sitemap:网址/sitemap.xml

 

Crawl-delay

控制抓取频次,一般有些搜索蜘蛛频繁抓取网站,会对服务器造成很大的负担,这个就是用来控制抓取频次的

 

User-agent:360Spider

Crawl-delay:10

这句是说,360你抓的太频繁,你抓过之后10秒之后才能下一次抓取

还有就是不让显示快照:

在你不想展示快照页面的head标签中加入 meta name=“robots” content=“noarchive”(禁止所有搜索引擎产生快照)

在你不想展示某个搜索引擎出现快照页面的head标签中加入 meta name=“360Spider” content=“noarchive”(禁止360产生快照,name后面的换成蜘蛛名字即可)