yourphp常用标签

引入页面:

<include file="Home:header"/>

首页链接:

{$site_url}  {$site_url}/en

面包屑导航:
<div class="pos">{:L(catpos)} <a href="{:URL()}">{:L(home_font)}</a> >
    <YP:catpos  catid="catid" space=" &gt; " />
</div>

幻灯片调用:
<YP:flash flashid="2" />

碎片调用:

<YP:block pos="golf" />    文本调用
<YP:block pos="financial" type="image"/>    图片调用

if/else语法:

{if $catid==51}{elseif $catid==52}{else}{/if}

栏目调用

上级目录名称:{$Categorys[$parentid]['catname']}
{$Categorys[51][url]}、{$Categorys[40][catname]}、{$Categorys[$catid][image]}

分别读取子栏目下的文章列表,该示例为3级分类,第一级catid 为 1

<YP:subcat  catid="1">
  <div class="notice fl box2 ovh" style="width:363px;">
    <div class="title"><p><a href="{$r.url}">{$r.catname}</a></p></div>
    <div class="noticelist">
        <ul>
           <YP:list sql="select * from rf_article where catid in ($r[arrchildid]) order by id desc limit 10" id="res">
                 <li>
                     <span>[{$res.createtime|toDate=###,'m-d'}]</span>
                     <a href="{$res.url}">{$res.title|str_cut=###,36}</a>
                 </li>
           </YP:list>
        </ul>
     </div>
   </div>
</YP:subcat>

子栏目

<YP:subcat catid="8">
    <li>
        <a href="{$r.url}">{$r.catname}</a>
    </li>
</YP:subcat>

参数说明:
catid="8"为定义取栏目id为8的所有子栏目
self="1" 为1时同时在结果中加入本身栏目数据,为0为只取其所有子栏目
key="n"定义数据结果键值名称
id="r"定义数据查询的结果存放变量名称

列表页

1、列表页不指定栏目id

<volist name="list" id="r">
    {$r.createtime|toDate=###,'Y-m-d'}
    {$r.title|str_cut=###,15}
</volist>

标题图片:{$r.thumb|thumb=###,219,135,1}
其中thumb=###,219,135,1为用thumb函数处理标题图片###为当前值在函数中的位置,
后面三个值分别设置为缩略图的宽度,高度,是否自动裁剪(1为自动裁剪0为不裁剪)
{$r.title|str_cut=###,15} str_cut=###,15 ,15为设置标题截取15个字符 str_cut=###,15,'...' 后面可加截取后缀
{$r.createtime|toDate=###,'Y-m-d H:i:s'} toDate=###,'Y-m-d H:i:s'为格式化时间

2、指定栏目ID

<YP:list order="id desc" catid="6" limit="10" posid="1">
       <li><a href="{$r.url}">{$r.title|str_cut=###,15}</a></li>
</YP:list>

catid="8"设置调取那些栏目数据.多个栏目用半角逗号分开3,4,5,10当设置为大栏目ID时
取此栏目下所有子栏目数据.也可为变量$catid
posid="1" 设置数据推荐位
id = "r" 定义数据查询的结果存放变量
key = "i" 返回数据主键变量名称
where ='' 数据筛选条件
order = 'id desc';排序方式
limit ="10" 调用条数 默认10条
field="*" 调用那些字段
thumb="1" 值为1时调用有标题图片的数据
name="Article" 设置模型名称
sql="" 自定义sql语句查询

3、取第2到第5条

<YP:list order="id desc" catid="1" limit="1,4">
      <li {if $i<=2 }class="first_li"{else}class="others_li"{/if}>
           <a href="{$r.url}" class="fl">{$r.title|str_cut=###,30,''}</a>
           <span class="fr ffas f10">[{$r.createtime|toDate=###,'Y-m-d'}]</span>
     </li>
</YP:list>

4、list标签sql语句调用

<YP:list order="id desc"  sql="select * from rf_xhzhongxin where dingji=$catid or chaoji=$catid">
        <li><a href="{$r.url}" >{$r.title}</a></li>
</YP:list>

详情页

{$title}标题、{$content}内容、{$createtime|toDate=###,'Y-m-d'}发布时间、{$hits}点击次数
上一篇/下一篇
{:prevnext($module_name,$id,$catid)}

组图调用

<volist name="pic" id="r">
         <li>
                <a href="{$r.filepath}">
                        <img src="{$r.filepath}" height="80" />
                 </a>
          </li>
</volist>

其他

友情链接

<YP:link  typeid="2"  linktype="2" >
    <li>
        <a href="{$r['siteurl']}" target="_blank" title="{$r['name']}">
            <img src="{$r['logo']}" alt="{$r['name']}">

        </a>
    </li>
</YP:link>

参数说明:
typeid="2" 为友情链接所属类别ID
linktype="2" 设置调用什么类型的链接 1为文字链接.2为图片链接

 

下拉表单(类别管理中添加相关条目)

<select class="slect j-reset" name="model">
  <option value="0" selected>请选择</option>
  <YP:list sql="select * from bangju_type where parentid = '2'">
  <option value="{$r.typeid}">{$r.name}</option>
</YP:list>
</select>
{:Form::select(array('field'=>'module','options'=>$search_module),$module)}

 

添加表单
1.添加相应模型,并增加相应字段,
2.在表单模板中指定action的提交地址index控制器中如:index.php?a=golf。
3.在index控制器添加处理方法

function golf() {
        $mod = M("golf");
        $_POST = get_safe_replace($_POST);
        if(false!==$mod->create()){
            $mod->status = 1;
            $mod->lang = 1;
            $mod->createtime = time();
            $mod->updatetime = time();
            $mod->add();
            $this->success("提交成功");

        }else{
            $this->error("提交失败");
        }
}

 

※开启手机版
----------------------------------------------------------------------------------
①打开文件E:\wwwroot\zhongyi\Core\Lib\Core\App.class.php
static public function init() {
        //加入判断手机的代码
        if(mobile()){
            C('DEFAULT_THEME', 'Mobile') ;
            C('DEFAULT_HOME_THEME', 'Mobile');
        }
        // 页面压缩输出支持
        if(C('OUTPUT_ENCODE')){
            $zlib = ini_get('zlib.output_compression');
            if(empty($zlib)) ob_start('ob_gzhandler');
        }
        ...
    }    

※表单验证,验证码
-----------------------------------------------------------------------------------
①前台部分
<script src="js/validate.js" type="text/javascript"></script>
js引入验证码js:<load href="__PUBLIC__/Js/my.js"/>
<input type="text" name="verifyCode"/>
<img src="{:U('Home/Index/verify')}" onclick="javascript:resetVerifyCode();" class="checkcode" align="absmiddle"  title="点击更换验证码" id="verifyImage"/>

<script>
    $("#myform").validate();
</script>
<form action="index.php?a=message" id="myform" method="post">
    <input type="text" name="username" value="" data-rule-required="true" data-msg-required=""/>
</form>

②后台控制器
function message(){
        $mod = M("message");
        
        $verifyCode = trim($_POST['verifyCode']);
        if($_SESSION['verify'] && $this->sysConfig['ADMIN_VERIFY'] &&  md5($verifyCode) != $_SESSION['verify']){
            $this->error("验证码错误!");
        }
        
        $_POST = get_safe_replace($_POST);
        if(false!==$mod->create()){
            $mod->status = 1;
            $mod->lang = 1;
            $mod->createtime = time();
            $mod->updatetime = time();
            $mod->add();
            $this->success("提交成功");
        }else{
            $this->error("提交失败");
        }
    }

※全国省市联动筛选
--------------------------------------------------------------------------------------
①导入全国省市表area到数据库
②复制后台模型内容录入的默认模板'Content_edit.html',如'Store_edit.html',修改内容如下:
注:目前只调用到省市,地区暂时没调用
在需要进行添加筛选的模型表中加入省市区字段,目前只加入pid,cid

后台模型信息录入模板文件
<script src="/Public/Js/yourphp.js"></script>
<script>
    area_change(0,0,'province','city','area','{$vo[pid]}','{$vo[cid]}');
</script>

<if condition="!empty($r['status'])">
    <!--加入到字段address的下面-->
    {if $r['field']=='address'}
    <tr>
        <td width="10%" >省市</td>
        <td width="90%" id="">
            <select name="pid" class="messageItem_select"   id="province" onChange="area_change(this.value,1,'province','city','area');"  >
                <option value="">请选择省份...</option>
            </select>
            <select name="cid" onChange="area_change(this.value, 2,'province','city','area');" id="city" class="messageItem_select" >
                <option value="">请选择城市...</option>
            </select>
        </td>
    </tr>
    {/if}
    <tr>
        <td width="10%" ><if condition="$r['required']"><font color="red">*</font></if>{$r.name}</td>
        <td width="90%" id="box_{$r['field']}">
        {$r|getform=$form,###}
        </td>
    </tr>
</if>

前台调用省市
<script>
    area_change(0,0,'province','city','area','{$_GET[pid]}','{$_GET[cid]}');
</script>

<form action="{$Categorys[11][url]}" method="get">
    <div class="sea-form">
        <div class="province">
            <select name="pid" class="messageItem_select"   id="province" onChange="area_change(this.value,1,'province','city','area');"  >
                <option value="">请选择省份...</option>
            </select>
        </div>
        <div class="city">
            <select name="cid" onChange="area_change(this.value, 2,'province','city','area');" id="city" class="messageItem_select" >
                <option value="">请选择城市...</option>
            </select>
        </div>
        <div class="search-sub">
            <input id="addr" type="text" name="address" value="{$_GET['address']}"/>
            <input id="sub" type="submit" value=""/>
        </div>
    </div>
</form>

后台控制器部分
BaseAction.class.php

public function index($catid = '', $module = '')
{
    ...
    $where = " status=1 ";
    if ($cat['child']) {
        $where .= " and catid in(" . $cat['arrchildid'] . ")";
    } else {
        $where .= " and catid=" . $catid;
    }
    //添加条件过滤代码
    $pid = $_GET['pid'];
    $cid = $_GET['cid'];
    $address = $_GET['address'];
    if ($module == "Store" && $pid && $cid && $address) {
        $where .= " and pid = '$pid' and cid = '$cid' and address like '%$address%'";
    } elseif ($module == "Store" && $pid && $cid && $address == '') {
        $where .= " and pid = '$pid' and cid = '$cid'";
    } elseif ($module == "Store" && $pid == 0 && $cid == 0 && $address) {
        $where .= " and address like '%$address%'";
    }elseif ($module == "Store" && $pid && $cid == 0 && $address) {
        $where .= " and pid = '$pid' and address like '%$address%'";
    }elseif ($module == "Store" && $pid && $cid == 0 && $address=='') {
        $where .= " and pid = '$pid'";
    }
}


※文件上传
--------------------------------------------------------------------------
①前台文件
<script type="text/javascript" src="__PUBLIC__/Js/jquery.artDialog.js?skin=default"></script>
<load href="__PUBLIC__/Js/iframeTools.js"/>
<load href="__PUBLIC__/Js/swfupload.js"/>
<script type="text/javascript">
    var APP = '__APP__';
    var ROOT = '__ROOT__';
    var PUBLIC = '__PUBLIC__';
</script>

<tr>
    <td class="tr" width="120">
        <span class="red_x">*</span> 报图上传:
    </td>
    <td width="331">
        <input size="50" class="text" style="width:285px;" id="files" type="text" value="{$vo['files']}" name="files" >&nbsp;&nbsp;
        <input class="courierPage_button" value="文件上传" onclick="javascript:swfupload('files_uploadfile','files','文件上传',1,0,0,1,'zip,rar,doc,ppt,pdf,docx',20,1,'{$yourphp_auth}',up_image,nodo)"
        type="button" style="cursor:pointer;width:66px;">
    </td>
</tr>

②后台文件
AttachmentAction.class.php

function _initialize()
{
        $this->isadmin= $_REQUEST['isadmin'] ? $_REQUEST['isadmin'] : 0;
        $this->userid = 1;
        ...
        
}
BaseAction.class.php

public function _initialize()
{
    ...
    $yourphp_auth_key = sysmd5(C('ADMIN_ACCESS').$_SERVER['HTTP_USER_AGENT']);
    $yourphp_auth = authcode('1-0-0-1-zip,rar,doc,ppt,pdf,docx-20-1', 'ENCODE',$yourphp_auth_key);
    $this->assign('yourphp_auth',$yourphp_auth);
    ...
}


※多添加筛选
-----------------------------------------------------------------------
①创建模型时,添加相关的筛选字段,然后关联到相关的类别ID(typeid)绑定条件
后台控制器
BaseAction.class.php

public function index($catid='',$module='')
{
    ...
    ...
    $where = " status=1 ";
    if($cat['child']){
        $where .= " and catid in(".$cat['arrchildid'].")";
    }else{
        $where .=  " and catid=".$catid;
    }
    //添加代码
    $year = $_GET['year'];
    $area = $_GET['area'];

    if($module == "Case" && $year){
        $where .=" and year = {$year}";
    }
    if($module == "Case" && $area){
        $where .=" and area = {$area}";
    }
    ...
}

前台部分 Case_list.html

<?php
  $year = $_GET['year'];
  $area = $_GET['area'];
?>

<div class="caseCategory_item clearfix">
    <strong class="caseCategory_name">年份:</strong>
    <div class="caseCategory_list">
        <ul class="clearbox">
            <li {if !$year}class="on"{/if}><a href="{$Categorys[$catid][url]}{if $type}?type={$type}{/if}{if $area}&area={$area}{/if}" title="不限">不限</a></li>
            <YP:list sql="select * from bangju_type where parentid = '3' order by listorder desc">
                <li {if $r[typeid]==$year}class="on"{/if}><a href="?year={$r.typeid}{if $type}&type={$type}{/if}{if $area}&area={$area}{/if}" title="{$r.name}">{$r.name}</a></li>
            </YP:list>
        </ul>
    </div>
</div>

<div class="caseCategory_item clearfix">
    <strong class="caseCategory_name">面积:</strong>
    <div class="caseCategory_list">
        <ul class="clearbox">
            <li {if !$area}class="on"{/if}><a href="{$Categorys[$catid][url]}{if $type}?type={$type}{/if}{if $year}&year={$year}{/if}" title="不限">不限</a></li>
            <YP:list sql="select * from bangju_type where parentid = '17' order by listorder desc">
                <li {if $r[typeid]==$area}class="on"{/if}><a href="?area={$r.typeid}{if $type}&type={$type}{/if}{if $year}&year={$year}{/if}" title="{$r.name}">{$r.name}</a></li>
            </YP:list>
        </ul>
    </div>
</div>

后台添加自定义菜单步骤:

后台-》系统设置-》后台菜单管理

①即可以根据实际情况添加一级菜单或者二级菜单,这里测试添加一级菜单:
点击添加菜单,各个参数如下:

上级:一级菜单
名称:一级菜单的命名,测试菜单
模块:一级菜单属于哪个模块,这里为Test
方法:因为是一级,此处为空
参数:为空
类型:默认后台管理
填好如上参数后,提交,则一级菜单创建完毕。

②在上面基础之上创建一级菜单的子菜单,继续点击添加一级菜单或者在需要添加子菜单的菜单点添加:
各个参数如下:

上级:测试菜单
名称:测试添加
模块:继承上级菜单,这里为Test
方法:这里为具体的操作名,如add
参数:为空
类型:默认后台管理
填好如上参数后,提交,则二级菜单创建完毕。

至此,一个一级菜单和一级菜单的子菜单即添加完毕,但没有加入到权限节点,任何人都可以直接根据地址来
访问,所以必须要加入到后台的权限节点。

后台-》会员管理-》权限节点管理
①找到之前添加的测试菜单项,发现这里有个空的菜单节点项,现在这下面添加子节点:
点击添加权限节点,各参数如下:

分组:测试菜单(大分组名称,即权限分配时看到的是在该分类下)
名称:Test
标题:测试菜单管理
上级:后台管理

②找到刚才添加的节点,点击后面的添加,即添加该节点的子节点

分组:测试菜单(大分组名称,即权限分配时看到的是在该分类下)
名称:add(具体的操作名,添加后即可加入到权限节点进行权限控制)
标题:测试添加
上级:默认测试

调试结果:
会员管理-》会员组权限-》授权查询
即可以看到添加的一个测试菜单项,此时可以给相关的网站管理员赋予相关的权限,但要注意一个问题,
此系统的权限粒度设置比较大,有个全局设置,包括了所有控制器的增删改查,如果赋予了该节点下的所有
操作,则其他控制器的这些同名操作都会被覆盖。不管你是否赋予了权限




posted on 2016-10-05 19:50  gimin  阅读(1530)  评论(0)    收藏  举报