phpok标签使用大全

phpok相关网站制作案例: https://www.ao-k.com

简要说明:

傲伽服务专注于phpok、帝国cms、织梦cms、css、Javascript、html、vue、小程序技术总结与开发。坚持为网站建设爱好者提供网站建设技术支持与网站制作服务。

调试代码


简要说明

可以调出相应变量对应的表,所有的字段与数据都可以查出来

【全局】{debug $config}

【列表】{debug $rslist}

【主题】{debug $rs}

【调试时间】{func debug_time 1 1 1 1}


常用函数


常用函数

phpok模板引挈支持调用自定义函数,包括PHP系统函数,有多种写法,

第一种写法,格式如下:

{func 函数名称 [参数1] [参数2]...}

中间用空格分开,如果参数中带有空格请将参数用引号包围起来。示例:

{func date Y-m-d $rs.dateline}
{func date "Y-m-d H:i:s" $rs.dateline}
{func time_format $rs.dateline}
{func nl2br $rs.content}
{func phpok_cut $rs.title 60 …}

在phpok4中常用到的函数有:

字符截取,格式为:{func phpok_cut 内容 截取长度 省略号}

{func phpok_cut $value.title 60}
{func phpok_cut $value.title 60 …}

时间格式化,格式为:{func time_format 时间戳} 或 {func date 时间格式 时间戳}

{func time_format $value.dateline}
{func date Y-m-d $value.dateline}
{func date "Y-m-d H:i:s" $value.dateline}
 

PHP内嵌


if条件判断

【代码段使用】{if 条件}执行内容{/if}

{if 条件}执行内容{else}执行内容{/if}

{if 条件}执行内容{elseif 条件2}执行内容{elseif 条件3}执行内容{/if}

【标签内使用】
{if 条件}....{else}....{/if}

内嵌php代码

phpok4中使用的模板语法参考了ET(Ease Template)和Smarty的一些思路,全新重新编写
对应程序文件是:framework/phpok_tpl.php 文件

模板标签的基本说明:

模板标签都是使用定界符包围,phpok的模板引挈定界符不允许修改。
大括号 { 和 } 是最基本的定界符
循环和条件允许使用 {和} 作为定界符
数组允许用点来分割,如:{$config.title},对应的php代码即为 ,传统模板写法{$config[title]} 仍然原生支持

模板中支持PHP语法:

单行<!-- php:这里输入相应的PHP代码 -->
多行<!-- php -->PHP代码<!-- /php -->
引用模板用:{include tpl=模板名称}
引用php文件用:{include file=php文件名}
引用其他模板文件:{include tpl=模板文件名}

项目搜索关键词高亮/不区分大小写


        <script>
        //搜索关键词显红,不区分大小写
        var rzhtml = $(".rzlbx_b").html();
        var rzkeyword = $("#sxjg").html();
        function heightLight(string, keyword) {
                        var reg = new RegExp(keyword, "gi");
                        string = string.replace(reg, function(txt){
                            return "<span style='color:red;'>"+txt+"</span>";
                        })
                        return string;
                    }
                    $(".rzlbx_b").html(heightLight(rzhtml,rzkeyword));
        </script>   

内置标签


名称 类型 备注 示例
_arclist 文章列表 内置,要求指定pid

{ php:$list = phpok('_arclist','pid=1') }

_arc 文章内容 内置,要求指定id

{ php:$arc = phpok('_arc','id=100') }

_cate 分类信息 内置,要求指定pid和cateid {php:$cate = phpok('_cate','pid=1&cateid=100')}
_catelist 分类列表 内置,要求指定pid {php:$catelist = phpok('_catelist','pid=1')}
_project 项目信息 内置,要求指定pid {php:$project = phpok('_project','pid=1')}
_sublist 子项目信息 内置,要求指定pid {php:$sublist = phpok('_sublist','pid=1')}
_parent 上级项目信息 内置,要求指定pid {php:$sublist = phpok('_parent,'pid=1')}
_fields 字段及表单 内置,要求指定pid {php:$fields = phpok('_fields','pid=1')}
_cate_id 分类信息 内置,要求指定catid {php:$cate = phpok('_cate_id','cateid=1')}

顶部代码


顶部代码

<base href="{$sys.url}" />
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<base href="{$sys.url}" /> 为页面上所有相对 URL 规定基准 URL,{$sys.url} 为首页网址

比如首页网址为 http://127.0.0.1/ ,模板调用中存在:<a href="abc.html" ></a> 那么无论是在哪级目录下,实际指向链接为 http://127.0.0.1/abc.html

<meta name="renderer" content="webkit"> 默认360极速模式

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 使用最高版本ie渲染

示例

20170107224335_65184


SEO设置


首页SEO代码 index.htm

<title>{if $seo.title}{$seo.title}-{/if}{$config.title}</title>
<meta name="keywords" content="{$seo.keywords}" />
<meta name="description" content="{$seo.description}" />

后台网站信息中设置

项目列表页 标识_list.htm

<title>{if $cate_rs  }{php:echo $cate_rs.seo_title ? $cate_rs.seo_title : $cate_rs.title}{elseif !$cate_rs}{php:echo $page_rs.seo_title ? $page_rs.seo_title : $page_rs.title}{/if}-{$config.title}</title>
<meta name="keywords" content="{if $cate_rs.seo_keywords || $page_rs.seo_keywords }{$seo.keywords}{/if}" />
<meta name="description" content="{if $cate_rs.seo_desc || $page_rs.seo_desc }{$seo.description}{/if}" />

分类存在的情况:如果分类有设置seo标题,那就输出分类设置的,如果没有就输出分类名称

分类不存在的情况:如果项目seo标题存在就输出项目的,没有就输出项目名称

主题文档页 标识_content.htm

<title>{php:echo $rs.seo_title ? $rs.seo_title : $rs.title}-{$config.title}</title>
<meta name="keywords" content="{if $rs.seo_keywords }{$seo.keywords}{/if}" />
<meta name="description" content="{if $rs.seo_desc }{$seo.description}{/if}" />

如果文档中的自定义seo标题有设置,那么输出文档的,如果没有就输出:文档标题 _分类名称

以上设置只是参考,一般可以直接复制用,具体情况还要看需求设置


head网页头部


目录位置

顶部模板命名为 head.htm,创建于模板目录下的 common 文件夹下

 

logo标签

<a href="{$sys.url}" title="{$config.title}"><img src="{$config.logo}" alt="{$config.title}"></a>

{$sys.url} 系统网址

{$config.title} 网站标题

{$config.logo} 网站logo

 

顶部导航

导航标签( 用后台左侧导航管理 ):
{php:$list = menu('top')}

循环:
{loop from=$list key=$key value=$value id=$tmpid}
                      <li {if $highlight == $tmpid.num || $menutitle == $value.title} class="active" {/if}> <a href="{$value.url}"
  target="{$value.target}">{$value.title}</a>{if $value.sublist}<span class="arrow"></span>{/if}
                        <ul class="dm-align-2">
                           {loop from=$value.sublist key=$k value=$v}
                          <li> <a href="{$v.url}" target="{$v.target}">{$v.title}</a></li>
                           {/loop}
                        </ul>
                      </li>
                      {/loop}



其中{if $highlight == $list_id.num || $menutitle == $value.title} 是实现当前栏目变色代码,其中$highlight 、$menutitle 是模板文件传递的参数

 

关于分类id调用:

<!-- php 
$caid = substr($v.id, 5);
-->
{$caid}

首页引入顶部

{include tpl=common/head highlight=1}

head模板文件放在 comon文件夹中,highlight 是传递给head模板中的变量 $highlight 的参数,使得首页高亮,这个命名其实随意都行

 

内页引入顶部

{include tpl=common/head menutitle=$page_rs.title}

 

由于程序本身不是很支持不同栏目的交叉,为了更灵活使用实现高亮,一般配合php采用以下调用【内页就直接推荐用这个】:

{include tpl=common/head rstitle=$rs.title pagetitle=$page_rs.title}

 

head模板中的对应的条件判断语句中的php代码:

<!-- php -->
        if($rstitle == "联系方式" || $pagetitle == "在线留言" || $pagetitle == "加入我们"){
        $menutitle="联系我们";
        }else{
        $menutitle=$pagetitle;
        }
<!-- /php -->

       

foot网页底部


目录位置

底部模板命名为 foot.htm,创建于模板目录下的 common 文件夹下

通常放版权信息,网站客服代码等等

 

模板引入底部

{include tpl=common/foot}

 

 

示例代码

Copyright © {$config.contact.year}-{func date Y} {$config.contact.company}   网站ICP备案:<a href="https://beian.miit.gov.cn/" target="_blank" rel="nofollow"{$config.contact.cert}</a>
电 话:{$config.contact.tel}   传 真:{$config.contact.fax}   地 址:{$config.contact.address}   技术支持:<a href="http://www.ao-k.com" target="_blank">傲伽服务</a>

版权年份】 {$config.contact.year}-{func date Y} 

 公司名称】 {$config.contact.company}

备案号】 {$config.contact.cert} 

电话】 {$config.contact.tel} 

传真】 {$config.contact.fax} 

地址】 {$config.contact.address}

【联系人】 {$config.contact.fullname} 

【邮箱】 {$config.contact.email} 

【客服QQ】 {$config.contact.qq} 

 

第三方代码

如果底部模板不是最外层,在每个模板的  前面加 {$config.footcode.codecont}

如果底部模板已经是最外层,直接在底部模板里面的最下面加 {$config.footcode.codecont}


rslist左侧主题列表


目录位置

一般命名为rslist.htm,放在common文件夹下

示例

{if $rtitle}
<div class="sub_left">
  <h3>{$ptitle}</h3>
  <ul class="snb">
    {php:$list = phpok('_arclist','pid='.$pid,'psize=10')}
    {loop from=$list.rslist key=$key value=$value}
    <li {if $rid == $value.id} class="on"{/if}><a {if $value.link} href="{$value.link}" {else} href="{$value.url}"{/if} title="{$value.title}">{$value.title}</a></li>
    {/loop}
  </ul>
</div>
{/if}

第一个if语句作为判断是否存在主题,存在了才调用执行下面的代码

{$ptitle} 是其他模板引入这个文件时候传递的参数,方便灵活使用,$pid、$rid 也是传递的参数,$rid是为了实现当前栏目高亮,具体不解释,使用了就会了解

模板引入代码

{include tpl=common/rslist rid=$rs.id rtitle=$rs.title ptitle=$page_rs.title pid=$page_rs.id}

通常用于关于我们,联系方式等单页文档的左侧


catelist左侧分类列表


目录位置

一般命名为catelist.htm,放在模板目录的common文件夹下

 

示例

{if $ptitle}
<div class="sub_left">
  <h3>{$ptitle}</h3>
  <ul class="snb">
    {php:$catelist = phpok('_catelist','pid='.$pid,'psize=10' )}
    {loop from=$catelist.sublist key=$key value=$value id=list_id}
    <li {if $cate_rs.id == $value.id} class="on"{/if}><a href="{$value.url}" title="{$value.title}">{$value.title}</a></li>
    {/loop}
  </ul>
</div>
{/if}

第一个if语句作为判断是否存在主题,存在了才调用执行下面的代码
{$ptitle} 是其他模板引入这个文件时候传递的参数,方便灵活使用,$pid、$cid 也是传递的参数,$cid是为了实现当前栏目高亮,具体不解释,使用了就会了解

模板引入

{include tpl=common/catelist cid=$cate_rs.id ptitle=$page_rs.title pid=$page_rs.id}

一般用户产品中心,新闻中心等左侧


pagelist分页代码


目录位置

一般命名为pagelist.htm,放在模板目录的common文件夹下

模板引入分页

{include tpl=common/pagelist}

PC端分页代码

{php:$pagelist = phpok_page($pageurl,$total,$pageid,$psize,"prev=上一页&next=下一页&last=末页&home=首页&always=1&half=5","rewrite=/(page).html","cut=.html")}
{if $total > $psize}
<div class="pages" {if $style} style="{$style}"{/if}>
<ul>
	{loop from=$pagelist key=$key value=$value}
	<li{if $value.status} class="current"{/if}>
		{if $value.nolink}
		<span>{$value.title}</span>
		{else}
		<a href="{$value.url}" title="{$value.title}">{$value.title}</a>
		{/if}
	</li>
	{/loop}
</ul>
</div>
{/if}
用到搜索的用这个
{if !$keywords}
{php:$pagelist = phpok_page($pageurl,$total,$pageid,$psize,"always=1&half=5","rewrite=/(page).html","cut=.html")}
{if $total > $psize}
<div class="pages" {if $style} style="{$style}"{/if}>
<ul>  {loop from=$pagelist key=$key value=$value}  <li{if $value.status} class="current"{/if}>  {if $value.nolink}  <span>{$value.title}</span>  {else}  <a href="{$value.url}" title="{$value.title}">{$value.title}</a>  {/if}  </li>  {/loop}
</ul>
</div>
{/if}
{else}
<!-- php:$pagelist = phpok_page($pageurl,$total,$pageid,$psize,"always=1&half=5") -->
<div class="pages" {if $style} style="{$style}"{/if}>
<ul>  {loop from=$pagelist key=$key value=$value}  <li{if $value.status} class="current"{/if}>  {if $value.nolink}  <span>{$value.title}</span>  {else}  <a href="{$value.url}" title="{$value.title}">{$value.title}</a>  {/if}  </li>  {/loop}
</ul>
</div>
{/if}

PC端分页样式

/* 通用分页样式 */
.pages {
	height: 26px;
	padding: 5px 0;
	margin-top: 5px;
	clear: both;
}
.pages:after {
	content: '.'
	clear: both;
	height: 0;
	line-height: 0;
	display: block;
	visibility: hidden;
}
.pages ul {
	padding: 0;
	list-style: none;
	margin: 0;
}
.pages li {
	float: left;
	margin-right: 5px;
}
.pages li a {
	padding: 5px 10px;
	border: 1px solid #e1e1e1;
	height: 24px;
	line-height: 24px;
	color: #666;
}
.pages li a:hover {
	border: 1px solid #3a97ef;
	background: #3a97ef;
	color: #fff;
	text-decoration: none;
}
.pages li span {
	border: 1px solid #e1e1e1;
	height: 24px;
	line-height: 24px;
	color: #c4c4c4;
	padding: 5px 10px;
}
.pages .current a {
	border: 1px solid #3a97ef;
	background: #3a97ef;
	color: #fff;
}

 

手机端分页代码

{if $total}
{php:$pagelist = phpok_page($pageurl,$total,$pageid,$psize,"last=末页&home=首页&always=1&half=2")}
<div class="pages" {if $style} style="{$style}"{/if}>
<ul>
	{loop from=$pagelist key=$key value=$value}
	<li{if $value.status} class="current"{/if}>
		{if $value.nolink}
		<span>{$value.title}</span>
		{else}
		<a href="{$value.url}" title="{$value.title}">{func phpok_cut $value.title 8 …}</a>
		{/if}
	</li>
	{/loop}
</ul>
</div>
{/if}

手机端分页样式

/* 通用分页样式 */
.pages {
	height: 36px;
	padding: 20px;
	margin-top: 30px;
	clear: both;
}
.pages:after {
	content: '.'
	clear: both;
	height: 0;
	line-height: 0;
	display: block;
	visibility: hidden;
}
.pages ul {
	padding: 0;
	list-style: none;
	margin: 0;
}
.pages li {
	float: left;
	margin-right: 8px;
}
.pages li a {
	display: block;
	padding: 0 15px;
	border: 1px solid #e1e1e1;
	height: 28px;
	line-height: 28px;
	color: #666;
}
.pages li a:hover {
	border: 1px solid #3a97ef;
	background: #3a97ef;
	color: #fff;
	text-decoration: none;
}
.pages li span {
	display: block;
	border: 1px solid #e1e1e1;
	height: 28px;
	line-height: 28px;
	color: #c4c4c4;
	padding: 0 10px;
}
.pages .current a {
	border: 1px solid #3a97ef;
	background: #3a97ef;
	color: #fff;
}

具体使用不解释,按需求修改


内页通栏图


内页banner

一般建在模板目录下的common,或者直接写在模板里面,如果要传递参数实现更多自定义的,就要放在common里面

{if $rs.banner} 
<div class="banner"><img src="{$rs.banner.filename}" width="980" alt="{$rs.title}" /></div>
{elseif $cate_rs.banner}
<div class="banner"><img src="{$cate_rs.banner.filename}" width="980" alt="{$cate_rs.title}" /></div>
{elseif $page_rs.banner}
<div class="banner"><img src="{$page_rs.banner.filename}" width="980" alt="{$page_rs.title}" /></div>
{/if}

大概意思,如果分类存在通栏图片,那么分类的为优先,如果不存在,那么即调用项目的


缩略图GD方案


缩略图GD方案

原始大小:{$value.thumb.gd.auto}
正方形缩放:{$value.thumb.gd.thumbzs}
正方形剪裁:{$value.thumb.gd.thumb}
长方形缩放:{$value.thumb.gd.thumbcs}
长方形剪裁:{$value.thumb.gd.thumbcj}

具体看后台的GD方案,这是默认的方案,一般需要删除,根据模板要求设置两个左右就够,{$value.thumb.gd.auto}这个最好留着,其他的根据要求再做一个缩放一个剪裁

已经上传的后面要更改的话,需要进行资源更新


判断该分类或项目下是否有主题


{php:$tmp = phpok("_total","pid=项目ID")}
{if $tmp}
有内容再执行
{/if}

切记不要用$list.total


广告大图


数据调用方法(后台创建)

默认创建好的标识为 banner

{php:$list = phpok('banner')} 
          {loop from=$list.rslist key=$key value=$value id=list_id}
          <li style="background:url({$value.pic.filename}) #fff center 0 no-repeat;"><a href="{$value.link}" {if $value.target == "_blank"} target="{$value.target}" {/if} title="{$value.title}" ></a></li>
          {/loop}

标识】banner

图片路径{$value.pic.filename} 

【手机版图片路径】{$value.mpic.filename}

【链接】{$value.link}

【标题】{$value.title}

【序号】{$list_id.num}

{if $value.target == "_blank"} target="{$value.target}" {/if} 判断链接是否为新窗口打开,后台可以设置

 

内置的调用方法

{php:$list = phpok('_arclist','pid=9&psize=4')}
{loop from=$list.rslist key=$key value=$value id=list_id}
          <li style="background:url({$value.pic.filename}) #fff center 0 no-repeat;"><a href="{$value.link}" {if $value.target == "_blank"} target="{$value.target}" {/if} title="{$value.title}" ></a></li>
          {/loop}

产品分类


数据调用方法(后台创建)

默认创建好的标识为 products_cate

二级产品分类

{php:$list = phpok('products_cate')}
{loop from=$list.tree key=$key value=$value id=list_id}
	<div class="line1">
		<div class="pfw">
			<h3>{$value.title}</h3>
			<ul class="artlist">
         {loop from=$value.sublist key=$k value=$v id=list_id}
             <li><a href="{$v.url}" title="{$v.title}">{$v.title}</a></li>
		 {/loop}
			</ul>
		</div>
		
	</div>
{/loop}

第一个loop为一级,第二个loop为二级

如果只有一级,只需要把 list.tree 改成list.sublist 

更多拓展

指定栏目: {if $value.id == 68 || $value.id == 8}  {/if}
循环个数: {if $list_id.num < 1} {/if}


推荐产品


数据调用方法(后台创建)

默认创建好的标识有 re_products

{php:$list = phpok('re_products','psize=8')}
{loop from=$list.rslist key=$key value=$value id=list_id}
<div class="pro"> 
<span class="photo"><img {if $value.thumb}src="{$value.thumb.filename}"{else}src="/{#images#}/moren.gif"{/if}
 alt="{$value.title}"></span> 
<a href="{$value.url}">
<h4 class="mb10">{$value.title}</h4>
<p>{func phpok_cut $value.note 20 …}</p>
</a>
</div>
{/loop}

【调用个数】 psize = 8

【显示标题】 {$value.title}

【显示描述】 {func phpok_cut $value.note 15 …}

【缩略图】{if $value.thumb}src="{$value.thumb.filename}"{else}src="/{#images#}/moren.gif"{/if}

缩略图的意思是如果存在就调用缩略图,如果不存在就调用根目录的 moren.gif

原始大小:{$value.thumb.filename}


公司简介


数据调用方法(后台创建)

一般默认标识为aboutus,是在关于我们里面的公司简介文档的标识

{php:$aboutus = phpok('aboutus')} 
{if $aboutus}
<div class="about">
  <div class="index_t"><span class="fl"><img src="/images/plus.png" align="absmiddle" style=" width:20px; height:20px"> <font color="#065bab">{$aboutus.title}</font></span><a href="{$aboutus.url}" title="{$aboutus.title}" class="fr nav_pro">更多 ></a></div>
  <ul>
    <li style=" line-height:1.8em; padding:1em;">{if $aboutus.thumb} <img src="{$aboutus.thumb.gd.auto}" alt="{$aboutus.title}" style="margin-left:3%;border:1px solid #e1e1e1;padding:1px;" align="right" width="40%">{/if}
 {func phpok_cut $aboutus.note 180 …}
    </li>
  </ul>
</div>
<div class="clear"></div>
{/if} 

【标题】 {$aboutus.title}

【链接】 {$aboutus.url}

【缩略图】 {if $aboutus.thumb} <img src="{$aboutus.thumb.gd.auto}" alt="{$aboutus.title}" >{/if}

【文字内容】 {func phpok_cut $aboutus.note 180 …}


新闻列表


数据调用方法(后台创建)

默认后台创建好的调用标识为newlist,一般新闻列表有个缩略图的头条,phpok的有头条,但是却没有排除头条的方法,

如果用判断排除又会出现数量不对,所以一般把想要放在第一条的排序改到最高

{php:$list = phpok('newslist','psize=5')} 
{if $list.total}
<div>
  <div class="index_t"><span class="fl"><img src="/images/plus.png" align="absmiddle" style=" width:20px; height:20px"> <font color="#065bab">{$list.project.title}</font></span><a href="{$list.project.url}" title="{$list.project.title}" class="fr nav_pro">更多 ></a></div>
  <ul class="newsmain">
    {loop from=$list.rslist key=$key value=$value id=list_id} 
    {if $list_id.num == 1}
    <li style="margin-bottom:15px;"> <a href="{$value.url}" title="{$value.title}"><img src="{$value.thumb.gd.thumbcs}" alt="{$value.title}" width="30%" height="80px" style="margin-left:2%;float:left;margin-right:15px;margin-bottom:15px;"> </a>
      <div style="float:left;width:60%;"> <a href="{$value.url}">
        <h3>{$value.title}</h3>
        </a>
        <p>{if $value.note}{func phpok_cut $value.note 25 …}{else}{func phpok_cut $value.content 25 …}{/if} </p>
      </div>
    </li>
    {/if} 
    {/loop} 

{if $list.total} 是用来判断列表是否存在的,存在才调用,不存在就不调用,这个代码要不要都无所谓,一般都是存在的

{if $list_id.num == 1} 指的是第一条的时候

【项目标题】{$list.project.title}

【项目链接】{$list.project.url}

【新闻标题】{$value.title} 、 {$value.title}

【新闻链接】{$value.url}

【新闻描述】  {func phpok_cut $value.note 25 …} 

【新闻时间】 {func date Y-m-d $value.dateline}

如果描述没写的,则调用内容的判断方法:{if $value.note}{func phpok_cut $value.note 25 …}{else}{func phpok_cut $value.content 25 …}{/if}

内置的调用方法(推荐这种)

因为首页经常调用多个分类的信息,如果每个分类都要去后台创建标识调用就会比较繁琐,所以直接用内置的指定分类更方便

{php:$list = phpok('_arclist','pid=2&cateid=10&psize=4')}
        {if $list.total}
        <div class="mct left">
          <div>
            <h2><a href="{$list.cate.url}" style="color: #005fac;">{$list.cate.title}</a></h2>
            <div class="m_board"> 
              {loop from=$list.rslist key=$key value=$value id=list_id}
              {if $list_id.num == 1}
              <div class="latest"> <span class="photo"><img {if $value.thumb}src="{$value.thumb.gd.thumbcj}"{else}src="/{#images#}/moren.gif"{/if}
 alt="{$value.title}" height="85" width="137"></span> <a href="{$value.url}">
                <h4 class="mb10">{$value.title}</h4>
                <p>{func phpok_cut $value.note 20 …}</p>
                </a> </div>
                {/if} 
              {/loop}
              <dl>
                {loop from=$list.rslist key=$key value=$value id=list_id} 
                {if $list_id.num > 1}
                <dt><a href="{$value.url}">{$value.title}</a></dt>
                <dd>{func date Y-m-d $value.dateline} </dd>
                 {/if} 
                {/loop}
              </dl>
            </div>
          </div>
        </div>
       {/if}  

单个项目 / 文章 / 分类


内置调用方法

【读取单个项目】

{php:$project = phpok('_project','pid=10')}
项目标题:{$project.title}
项目链接:{$project.url}

【读取单个分类】

{php:$cate = phpok('_cate','pid=10&cateid=2')}
项目标题:{$cate.title}
项目链接:{$cate.url}

【读取单个文章或者导航】

{php:$arc = phpok('_arc','id=28')}
内容标题:{$arc.title}
内容链接:{$arc.url}

多级栏目信息循环调用


多级栏目信息循环调用

通常用于首页或者封面页,想一次性循环多级的

类似织梦channelartlist
{php:$catelist = phpok('_catelist','pid=43')}
 {loop from=$catelist.sublist key=$key value=$value  id=list_id }
	<div class="line1">
		<div class="pfw">
			<h3>{$value.title}<small>{$value.entitle}</small><a href="{$value.url}" class="more">更多</a></h3>
			<ul class="artlist">
            {php:$list = phpok('_arclist','pid=43&psize=2&cateid='.$value.id)}
				{loop from=$list.rslist key=$k value=$v  }
				<li><a href="{$v.url}" title="{$v.title}">{func phpok_cut $v.title 15 …}</a></li>
				{/loop}
			</ul>
		</div>
		
	</div>
    {/loop}

指定栏目: {if $value.id == 68 || $value.id == 8}  {/if}
循环个数: {if $list_id.num < 1} {/if}

内页当前栏目下

{catelist pid=$page_rs.id cateid=$page_rs.cate}
	{loop from=$list.sublist key=$key value=$value}
	<div class="yui3-u-1-2 nlist">
		<div class="nlist-box">
    	<h5><a href="{$value.url}" class="readmore"></a>>> {$value.title}</h5>
		{arclist pid=$page_rs.id cateid=$value.id}
        <ul>
			{loop from=$list key=$key value=$v}
			<li><a href="{$v.url}" id="various3" title="{$v.title}"> + {$v.title}</a></li>
			{/loop}
        </ul>
		</div>
    </div>
	{/loop}

搜索框


简要说明

搜索有两种方法,一种是用全站搜索程序,需要用到 search_list.htm 这个模板,一般用这种。

另外一种是按栏目或者分类搜索,直接用列表页来进行关键词索引,只有要对应栏目的列表页模板就行

全站搜索

<form method="post" action="{url ctrl=search/}" onsubmit="return top_search();">
<input name="keywords" value="{$keywords}" id="top-keywords" type="text" class="input" placeholder="请输入关键字" />
<input name="" type="submit" class="btn" value="" />
</form>

按栏目搜索

<form id="search" name="search" method="post" action="{url id=product /}" target="_blank" onsubmit="return top_search();">
                <div class="input">
                  <input type="text" id="top-keywords" name="keywords" class="log-in-input-bg" value=""  placeholder="输入型号">
                </div>
                <div class="input">
                  <select name="cate" size="1" class="log-in-input-bg1" type="text">
                    <option value="" selected>所有产品</option>
                    {php:$catelist = phpok('_catelist','pid=1')} 
                    {loop from=$catelist.sublist key=$key value=$value id=list_id}
                    <option value="{$value.identifier}">{$value.title}</option>
                    {/loop}
                  </select>
                </div>
                <div class="so">
                  <h5>
                    <input type="submit"  value="提交"  class="foottijiao">
                  </h5>
                </div>
              </form>

这种的话其实链接就相当于 http://127.0.0.1/index.php?id=product&cate=筛选的&keywords=输入的关键词


无限级分类调用插件,面包屑导航


无限级别分类调用插件

一般运用于三级分类或者超过三级的调用,不需要做两次循环

面包屑导航

<ol class="breadcrumb">
    <li>您现在的位置:<a href="{$sys.url}" title="{$config.title}">首页</a></li>
    <li><a href="{$page_rs.url}" title="{$page_rs.title}">{$page_rs.title}</a></li>
    {loop from=$cateinfo.lead key=$key value=$value id=$tmpid}
    <li><a href="{$value.url}" title="{$value.title}">{$value.title}</a></li>
    {/loop}
</ol>

多级树状菜单

<dl class="catelist">
    {loop from=$cateinfo.tree key=$key value=$value id=$tmpid}
    <dt{if $value._highlight} class="on"{/if}><a href="{$value.url}" title="{$value.title}">{$value._space}{$value.title}</a></dt>
    {/loop}
</dl>

phpok链接地址:https://www.phpok.com/infinite-level-classification.html


产品/文章列表


列表页

项目的列表页,分类的列表页,文章的列表页,都差不多,直接用的就是主题列表调用,需要调用配合分页模板使用 

{include tpl=block_pagelist}

主体参考代码

 

{loop from=$rslist key=$key value=$value}
			<li>
				
				<span class="n-img"><a href="{$value.url}" title="{$value.title}"><img {if $value.thumb}src="{$value.thumb.filename}"{else}src="/{#images#}/moren.gif"{/if}
 alt="{$value.title}"></a></span>
				
				<h3><a href="{$value.url}" title="{$value.title}">{$value.title}</a></h3>
				<div class="n-txt">
					{$value.note ? phpok_cut($value.note,225,'…') : phpok_cut($value.content,225,'…')}
					<span class="more">[<a href="{$value.url}" title="查看{$value.title}详细信息">查看更多</a>]</span>
				</div>
			</li>
			{/loop}

具体字段就不做过多解释,应该能看明白,不明白的话后台对应的输入框右击查看元素看分别对应的代码

或者直接用调试调用出数据表来查找字段:{debug $rslist} 

当前位置调用

 【大标题】
<h2>{if $cate_rs.title }{$cate_rs.title}{else}{$page_rs.title}{/if}</h2>

【当前位置】
<a href="{$sys.url}">首页</a> > <a href="{$page_rs.url}">{$page_rs.title}</a>{loop from=$cateinfo.lead key=$key value=$value id=$tmpid}{if $value.title !== $page_rs.title} > <a href="{$value.url}">{$value.title}</a>{/if}{/loop}

视实际情况而用


产品/文章内容


详细页

产品详细,新闻详细,公司简介,联系方式等用的都是这个模板

主体参考代码

 <h3>产品标题: {$rs.title}</h3>
  <div class="salesbox"> 
    {if !$rs.pictures && $rs.thumb}
    <li data-src="{$rs.thumb.filename}"><a><img src="{$rs.thumb.filename}" alt='{$rs.thumb.filename}'  /></a></li>
    {/if} 
    {if $rs.pictures}
点击放大查看 &rarr; 
    <ul id="auto-loop" class="gallery">
      {loop from=$rs.pictures key=$key value=$value id=$list_id}
      <li data-src="{$value.filename}"><a><img src="{$value.filename}" alt='{$value.title}'  /></a></li>
      {/loop}
    </ul>
    {/if}
    
    <h4>详细介绍</h4>
    <div> {$rs.content} </div>
  </div>

【标题】{$rs.title}

【点击次数】{$rs.hits}

【发布日期】{func date Y-m-d $rs.dateline}

【简要说明】{$rs.note}

【缩略图】{if !$rs.pictures && $rs.thumb}<a href="{$rs.thumb.filename}" target="_blank"><img src="{$rs.thumb.filename}" alt="{$rs.thumb.filename}" /></a>{/if}

【多图】

{if $rs.pictures}
{loop from=$rs.pictures key=$key value=$value id=$list_id}
<a href="{$value.filename}" target="_blank"><img src="{$value.filename}" alt="{$value.title}" /></a>
 {/loop}
  {/if}


如果要判断多图是否大于1张,则用php统计数组的函数来实现,如{if count($rs.pictures) > 1}

后台对应的输入框右击查看元素看分别对应的代码,或者直接用调试调用出数据表来查找字段:{debug $rs} 

上一篇下一篇

<div class="d_page">
  <p>上一主题: 
    {php:$prev = phpok_prev($rs)} 
    {if $prev} 
    <a href="{$prev.url}" title="{$prev.title}">{$prev.title}</a> 
    {else} 
    没有了 
    {/if} 
  </p>
  <p>下一主题: 
    {php:$next = phpok_next($rs)} 
    {if $next} 
    <a href="{$next.url}" title="{$next.title}">{$next.title}</a> 
    {else} 
    没有了 
    {/if} 
  </p>
</div>

当前位置

【大标题】
<h2>{if $cate_rs.title }{$cate_rs.title}{else}{$page_rs.title}{/if}</h2>
【当前位置】
<a href="{$sys.url}">首页</a> > <a href="{$page_rs.url}">{$page_rs.title}</a>{loop from=$cateinfo.lead key=$key value=$value id=$tmpid}{if $value.title !== $page_rs.title} > <a href="{$value.url}">{$value.title}</a>{/if}{/loop} 

搜索结果页


标题设置:<title>搜索结果 - {$config.title}</title>

参考代码

{loop from=$rslist key=$key value=$value} <a href="{$value.url}" title="{$value.title}">
      <div class="w-item">
        <div class="item-top">
          <div class="houselist-img"> <img {if $value.thumb} src="{$value.thumb.gd.thumbcs}" {else} src="/{#images#}/moren.gif" {/if} alt="{$value.title}"/>
          </div>
          <div class="houselist-con">
            <h2>
              <div class="titlepro">{func phpok_cut $value.title 20 …}</div>
            </h2>
            <div class="houselist-data">
              <p class="area">{func phpok_cut $value.note 30 …}</p>
            </div>
          </div>
        </div>
      </div>
      </a>  {/loop}

其实跟文章列表页差不多,只是分页数不能在后台改,只能在程序改


在线留言


简要说明

在线留言模板包含验证、表单、回复三个部分,需要引入默认的js与css实现弹窗效果,还需要引入分页{include tpl=common/pagelist} 

顶部必须需要引入的js与css

<link type="text/css" rel="stylesheet" href="/{#css#}/artdialog.css">
<script type="text/javascript" src="{url ctrl=js ext=jquery.artdialog/}" charset="utf-8"></script>
<script type="text/javascript" src="/js/global.js" charset="utf-8"></script>

主体代码参考

【验证用的】
<script type="text/javascript">
$(document).ready(function(){
	$("#book_post").submit(function(){
		//提交表单
		if(!$('#title').val()){
			$.dialog.alert("主题不能为空");
			return false;
		}
		if(!$('#fullname').val()){
			$.dialog.alert('姓名不能为空');
			return false;
		}
		if(!$('#email').val()){
			$.dialog.alert('邮箱不能为空');
			return false;
		}
		if(!$('#content').val()){
			$.dialog.alert('留言内容不能为空');
			return false;
		}
		$(this).ajaxSubmit({
			'url':api_url('post','save'),
			'type':'post',
			'dataType':'json',
			'success':function(rs){
				if(rs.status == 'ok'){
					$.dialog.alert('您的留言信息已发布,请耐心等候管理员审核,感谢您的提交',function(){
						$.phpok.reload();
					},'succeed');
				}else{
					$.dialog.alert(rs.content,function(){
						$("#update_vcode").phpok_vcode();
						$("#_chkcode").val('');
					});
					return false;
				}
			}
		});
		return false;
	});
});
</script>

【主体表单】
        <div class="content mess">
				<form method="post" id="book_post">
				<input type="hidden" name="id" id="id" value="{$page_rs.identifier}" />
				{fields pid=$page_rs.id fields_format=1 in_title=1}
				<table width="100%">
				{loop from=$list key=$key value=$value}
				{if $value.identifier != 'adm_reply'}
				<tr>
					<td width="150px" align="right" valign="top">{$value.title}:</td>
					<td class="td">{$value.html}</td>
				</tr>
				{/if}
				{/loop}
				{if $sys.is_vcode && function_exists("imagecreate")}
				<tr>
					<td align="right" valign="top">验证码:</td>
					<td class="td">
						<table cellpadding="0" cellspacing="0" width="180px">
						<tr>
							<td><input type="text" name="_chkcode" id="_chkcode" class="vcode" /></td>
							<td align="right"><img src="" border="0" align="absmiddle" id="update_vcode" class="hand"></td>
						</tr>
						</table>
						<script type="text/javascript">
						$(document).ready(function(){
							$("#update_vcode").phpok_vcode();
							//更新点击时操作
							$("#update_vcode").click(function(){
								$(this).phpok_vcode();
							});
						});
						</script>
					</td>
				</tr>
				{/if}
				<tr>
					<td>&nbsp;</td>
					<td><input type="submit" value=" 提交 " class="submit" /></td>
				</tr>
				</table>
				</form>
			</div>
        
【管理员回复】
        {loop from=$rslist key=$key value=$value id=$tmpid}
		<div class="pfw{if $tmpid.num != $tmpid.total} mb10{/if}">
			<h3>{$value.title}<small>({func time_format $value.dateline})</small></h3>
			<div class="content">{$value.content}</div>
			{if $value.adm_reply}
			<div class="adm_reply"><span><img src="/{#images#}/user_default.png" align="absmiddle" width="15px" /> 管理员回复:</span>{$value.adm_reply}</div>
			{/if}
		</div>
		{/loop}

样式代码

.mess {
	padding: 0;
	margin: 0;
	font-size: 14px
}
.mess tr {
	padding: 0;
	margin: 0;
	line-height: 50px;
	height: 50PX
}
.mess input {
	display: inline-block;
	height: 25px;
	padding: 2px 8px;
	font-size: 12px;
	line-height: 1.42857143;
	color: #555;
	background-color: #fff;
	background-image: none;
	border: 1px solid #ccc;
	border-radius: 4px;
	-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
	box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
}

.mess textarea {
	width:500px !important;
	display: inline-block;
	padding: 2px 8px;
	font-size: 12px;
	line-height: 1.42857143;
	color: #555;
	background-color: #fff;
	background-image: none;
	border: 1px solid #ccc;
	border-radius: 4px;
	-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
	box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
}
.mess .submit {
	width: 240px;
	height: 40px !important;
	text-align: center;
	color: #fff !important;
	font-size: 16px;
	background: #4081d6 !important;
	border-radius: 10px;
	border: 0 none;
	cursor: pointer;
}
div.pfw{position:relative;border:1px solid #e1e1e1; margin-top:30px; }
div.pfw:after{content:".";display:block;height:0;clear:both;visibility:hidden;line-height:0;overflow:hidden;}
div.pfw h3{height:30px;line-height:30px;font-size:1em;margin:0;padding:0 0 0 20px;background:#f6f6f6 url(/images/heading_bg.png) 8px top no-repeat;border-bottom:1px solid #e1e1e1; color:#444; font-weight:bold;}
div.pfw h3 small{font-size:12px;color:#666;font-weight:normal;padding-left:4px;font-style:normal;}
div.pfw h3 .more{display:block;float:right;height:30px;line-height:30px;padding-right:8px;font-weight:normal;font-size:12px;margin-right:5px;}
div.pfw .content{margin:5px;font-size:12px;line-height: 1.6em;padding:10px;}
div.pfw .adm_reply {margin:6px 0 0 0;font-size:1em;line-height:200%;padding:25px 5px 25px 25px;position:relative; color:#444; border-top:1px solid #e1e1e1; background:#f7faff;}
div.pfw .adm_reply span{color:darkred; font-weight:bold; color:#e77718; }

 

手机端的主体与样式不复制了,看默认标准版的手机版样式

*第三方验证码*

验证码.zip

<form id="book_post"  method="post" class="form-info">
    <input type="hidden" name="id" id="id" value="{$page_rs.identifier}" />
    <input type="hidden" name="title" id="title" value="联系我们页面留言" />
    <div class="field-row">
        <div class="one-three">
            <p class="input-info"><input type="text" name="fullname" id="fullname" value="" placeholder="您的姓名 *"  required></p>
        </div>
        <div class="one-three">
             <p class="input-info"><input type="email" name="email" id="email" value="" placeholder="Email邮箱 *" required></p>
        </div>
        <div class="one-three">
             <p class="input-info"><input type="text" name="mobile" id="mobile" value="" placeholder="电话号码 *" required></p>
        </div>
     </div>
     <div class="input-text">
        <textarea id="content" name="content" placeholder="留言内容 *" required></textarea>
     </div>
     <div class="btn-submit">
         <button type="submit">提交留言</button>
         <div id="yanzhengma"></div>
     </div>
</form>


<link type="text/css" rel="stylesheet" href="/{#css#}/artdialog.css">
<script type="text/javascript" src="{url ctrl=js ext=jquery.artdialog/}" charset="utf-8"></script>
<link rel="stylesheet" type="text/css" href="stylesheet/verify.css">
<script type="text/javascript" src="javascript/verify.min.js" ></script>
<script>
    $("#book_post").submit(function(){
        // 判断不为空
        // if(!$('#fullname').val()){
        //     $.dialog.alert('姓名不能为空');
        //     return false;
        // }
        $('#yanzhengma').show();
        return false;
    });
</script>

相关产品


指定项目ID:

{php:$list = phpok('_arclist','pid=1&psize=5&cateid='.$cate_rs.id)} 
          {loop from=$list.rslist key=$key value=$value [id=rslist_id]} 
          {if $value.id != $rs.id}
          <dl class="pd_list_dl pd_list_dl_1">
            <dt> <a href="{$value.url}" target="_blank"><img {if $value.thumb}src="{$value.thumb.gd.auto}"{else}src="/{#images#}/moren.gif"{/if} alt="{$value.title}" ></a> </dt>
            <dd> <a href="{$value.url}" target="_blank">{$value.title}</a> </dd>
          </dl>
          {/if} 
          {/loop}

不指定项目ID:

{php:$list = phpok('_arclist','psize=5&pid='.$page_rs.id,'cateid='.$cate_rs.id)} 
          {loop from=$list.rslist key=$key value=$value [id=rslist_id]} 
          {if $value.id != $rs.id}
          <dl class="pd_list_dl pd_list_dl_1">
            <dt> <a href="{$value.url}" target="_blank"><img {if $value.thumb}src="{$value.thumb.gd.auto}"{else}src="/{#images#}/moren.gif"{/if} alt="{$value.title}" ></a> </dt>
            <dd> <a href="{$value.url}" target="_blank">{$value.title}</a> </dd>
          </dl>
          {/if} 
          {/loop}


循环体的外面判断【循环体数量】


其实也是属于循环体里面的判断,先用一个循环判断,用php语句赋值给一个变量,然后再进行真正的循环,比如产品页面中判断有相关产品才出现对应的板块:

{php:$list = phpok('_arclist','pid=1&cateid='.$cate_rs.id )} 
{loop from=$list.rslist key=$key value=$value id=list_id} 
<!-- php -->
$sl = $list_id[total];   
<!-- /php -->
{/loop}
{if $sl > 1}判断是否存在的内容{/if}

内页上下一篇前端计算方法


上一篇下一篇目前有bug,特别改了排序后就会出现问题,土方法计算的代码如下:

{php:$list = phpok('_arclist','pid=2&psize=500&cateid='.$cate_rs.id)}
              {loop from=$list.rslist key=$key value=$value id=list_id}
                {if $rs.id == $value.id}
                <!-- php -->
                 $num = $list_id[num]+1;
                 $num2 = $list_id[num]-1; 
                <!-- /php -->
                {/if}
              {/loop}


              {loop from=$list.rslist key=$key value=$value id=list_id}
              {if $num == $list_id.num}
                <!-- php -->
                 $xia = $value[id];
                <!-- /php -->
                {/if}
              {if $num2 == $list_id.num}
                <!-- php -->
                 $shang = $value[id];
                <!-- /php -->
                {/if}
              {/loop}



{php:$arc = phpok('_arc','id='.$xia)}
下一篇:{if $xia}<a href="{$arc.url}">{$arc.title}</a>{else}没有了{/if}

{php:$arc = phpok('_arc','id='.$shang)}
上一篇:{if $shang}<a href="{$arc.url}">{$arc.title}</a>{else}没有了{/if}

规格参数


简要说明

先用 {debug $abcd} 调试出规格参数字段

以单个文章为例:

{php:$arc = phpok('_arc','id=20')}
{loop from=$arc.daohang.content key=$key value=$value id=$list_d}
 <a class="nav-link link scroll active" href="{$value[2]}">{$value[0]}</a>
 {/loop}

{$value[序号]} 其中序号代表所在的列数,从0开始算