您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程
PHPCMS建站经验分享
凌寒2025-05-22phpcms教程已有人查阅
导读在这里不对模型、模板设置、category,list,show等静态页面引入、配置文件(caches\configs\database.php和 caches\configs\system.php)、缓存清理、附件地址替换、等逻辑讲解。
在这里不对模型、模板设置、category,list,show等静态页面引入、配置文件(caches\configs\database.php和 caches\configs\system.php)、缓存清理、附件地址替换、等逻辑讲解。
安装CMS-》删除所有栏目-》拷贝default文件夹-》配置文件夹里面的config文件-》后台重新配置站点,选模板风格-》开始引入HTML、JS、建立模型、建立栏目,为栏目选择模板、、、
只是罗列一些数据标签,比如如何获取当前栏目的上级的上级栏目url或者栏目名称、或者站点常量等常用数据标签总结,方便查阅。
网页title信息:
获取某一栏目下的所有栏目信息:
此时如何获取ID为2的里面的内容:
action为list或者category,一个是获取栏目信息,一个是获取栏目下面的内容信息。而order之中的排序,listorder是可以设置的,上面的排序左边那个可以输入排序ID进行排序。
数据表之中自带的在主表,自己设置的字段默认在副表,二者一并查出需要加上moreinfo="1".
在点击某一栏目下面的某一篇文章详情的时候,页面跳转,此时不需要在用PC标签进行查询数据,直接就是酱紫的
比如此时我们要获取到公司简介(栏目下面已经没有栏目)栏目下面的所有内容(一共四篇文章):
数据标签:
假如地址栏上的catid是38,而我们想获取38的上级栏目的名称:
分页的页码:
1 {$pages} 但是在PC标签里面需要加上: page="$page"拷贝default目录,然后一点点替换content文件夹里面的文件,与数据标签,选用哪个模板文件夹,在站点配置里面设置,扩展-》菜单管理可以设置后台菜单。
如何取出数组data之中的第六个数值:
如何加载页面时候根据有无page数据(GET参数)来选择是否调用JS方法:
Phpcms->modules->admin->templates->login.tpl.php
然后将前台提交信息的表单name属性改成跟后台一样的;改成这样,隐藏输入值也要传进去的前台表单action改成那个调用的javascript代码;
当点击进去新闻内页时候,显示的上一篇下一篇按钮
思路就是照着官方的发送搜索信息的表单改action还有hidden的数值:
首先当然是需要建立搜索字段了主要建立了搜索分类时候,得到的typeid要是正确的,了解?发送表单要的
安装CMS-》删除所有栏目-》拷贝default文件夹-》配置文件夹里面的config文件-》后台重新配置站点,选模板风格-》开始引入HTML、JS、建立模型、建立栏目,为栏目选择模板、、、
只是罗列一些数据标签,比如如何获取当前栏目的上级的上级栏目url或者栏目名称、或者站点常量等常用数据标签总结,方便查阅。
网页title信息:
<title>{if isset($SEO['title']) && !empty($SEO['title'])}{$SEO['title']}{/if}{$SEO['site_title']}</title>
站点地址:
<a href="{siteurl($siteid)}" class="logo">
<img src="{IMG_PATH}img/logo.png" alt="">
</a>
获取栏目ID为1下面所有的栏目信息:获取某一栏目下的所有栏目信息:
{pc:content action="category" catid="1" num="25" siteid="$siteid" order="listorder ASC" return="data"}
<?php $i = 1; ?>
{loop $data $k $v}
<a href="{$v[url]}"; class="navOption navOption{$i} <?php if($i<=3){echo "fl";}?> <?php if($i>3){echo "fr";}?>"><span class="en">{$v[catdir]}</span><span class="cn">{$v[catname]}</span></a>
<?php $i++; ?>
{/loop}
{/pc}
获取指定栏目ID下面的指定某一条信息:此时如何获取ID为2的里面的内容:
<div class="textWrp">
附近的车站:<br><br>
{pc:content action="lists" catid="2" num="25" siteid="$siteid" order="listorder ASC" return="data"}
{loop $data $k $v}
<?php if($k==2){ ?>
<span>{$v[description]}</span>
<?php }?>
{/loop}
{/pc}
</div>
此时是获取栏目ID为2也就是公共设置下面的ID为2的内容。action为list或者category,一个是获取栏目信息,一个是获取栏目下面的内容信息。而order之中的排序,listorder是可以设置的,上面的排序左边那个可以输入排序ID进行排序。
数据表之中自带的在主表,自己设置的字段默认在副表,二者一并查出需要加上moreinfo="1".
在点击某一栏目下面的某一篇文章详情的时候,页面跳转,此时不需要在用PC标签进行查询数据,直接就是酱紫的
<div class="content">
<h2>{$title}</h2>
<p>{$content}</p>
</div>
页码切换(show页面):
<div class="changeArticle clearfix">
<a href="{$previous_page[url]}" class="prev_article fl">上一篇:{$previous_page[title]}</a>
<a href="{$next_page[url]}" class="next_article fr">下一篇:{$next_page[title]}</a>
</div>
获取某一栏目下的所有内容信息:比如此时我们要获取到公司简介(栏目下面已经没有栏目)栏目下面的所有内容(一共四篇文章):
数据标签:
<div class="bg">
<div class="imgl">
<img src="{IMG_PATH}img/img06.jpg" width="204" height="504" alt="">
</div>
<ul class="showArea">
{pc:content action="lists" catid="$catid" moreinfo="1" num="25" page="$page"}
<?php $i = 1; ?>
{loop $data $v}
<li class="<?php if($i==1){echo "now";}?>">
<div class="title">
<h2>{$v[title]}</h2>
<h3>{$v[en_name]}</h3>
</div>
<div class="content">
{$v[content]}
</div>
</li>
<?php $i++; ?>
{/loop}
{/pc}
</ul>
</div>
指定栏目对应的url:
<a href="{$CATEGORYS[7][url]}" class="backToList" >查看更多</a>
此时点击查看更多就相当于点击顶部导航栏的 “工程案例”。假如地址栏上的catid是38,而我们想获取38的上级栏目的名称:
{$CATEGORYS[$CAT[parentid]][catname]} //上级
{$CATEGORYS[$catid][catname]} //当前栏目名称
如何获取当前栏目ID的父栏目下面的所有子栏目信息:
{pc:content action="category" catid="$CATEGORYS[$catid][parentid]" num="25" siteid="$siteid" order="listorder ASC"
return="data"}
<?php $i = 0; ?>
{loop $data $k $v}
<li style="<?php if($i==0){echo "border:none";}?>">{$v[catname]}
<i class="{if $v[catid]==$catid} cur {/if}"></i>
</li>
<?php $i++; ?>
{/loop}
{/pc}
时间处理:
<h3 class="data_box">
<i>{date('d', $v['inputtime'])}</i>
<em>{date('Y-m', $v['inputtime'])}</em>
</h3>
获取当前栏目的父栏目下面的其中某一特定栏目的栏目信息:
{pc:content action="category" catid="$CATEGORYS[$catid][parentid]" num="25"
siteid="$siteid" order="listorder ASC" return="data"}
{loop $data $k $v}
<?php if($k==39){ ?>
<dt>{$v[catname]}<i>{$v[description]}</i><em><b>首页</b> > <b>{$CATEGORYS[$catid][catname]}</b></em></dt>//这里有获取当前内容所属栏目的栏目名称
<?php } ?>
{/loop}
{/pc}
上面呢,是获取当前栏目的父栏目下面的ID为39的子栏目的栏目信息;
{template "content","footer"}
包含某个公共部分。分页的页码:
1 {$pages} 但是在PC标签里面需要加上: page="$page"拷贝default目录,然后一点点替换content文件夹里面的文件,与数据标签,选用哪个模板文件夹,在站点配置里面设置,扩展-》菜单管理可以设置后台菜单。
如何取出数组data之中的第六个数值:
{pc:content action="lists" catid="21" moreinfo="1" num="25" page="$page"}
<?php $key=1;?>
{loop $data $k $v}
<?php if($key==6){ ?>
<div class="hb" id="multi" style="background-image:url({$v[shouyezhanshitupian]});">
<a href="{$v[url]}">
<div class="li_box liz li_h1" >
<h1>{$v[shouyexiaobiaoti]}</h1>
<p>{$v[chanpingongneng]}</p>
</div>
</a>
</div>
<?php } ?>
<?php $key++;?>
{/loop}
{/pc}
或者数组之中的任意个元素如何加载页面时候根据有无page数据(GET参数)来选择是否调用JS方法:
<script type="text/javascript">
if(<?php echo $_GET['page'] ? $_GET['page'] : 0; ?>){
c_tab('#left_tab3','au3','au_nav');
}
</script>
后台登陆首页:Phpcms->modules->admin->templates->login.tpl.php
<?php defined('IN_ADMIN') or exit('No permission resources.'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// .w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http:// .w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET;?>" />
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<title><?php echo L('phpcms_logon')?></title>
<style type="text/css">
html{
background: #524B8E;
}
body{
font-family: "Microsoft YaHei", "微软雅黑", Arial, Helv, Helvetica, sans-serif;}
div {overflow: hidden;*display: inline-block;}
div {*display: block;}
.login_box {
/*background: url(<?php echo IMG_PATH?>admin_img/login_bg.jpg) no-repeat;*/
position: absolute;
left: 50%;
top: 50%;
margin-left: -375px;
margin-top: -150px;
width: 750px;
height: 300px;
background: #fff;
overflow: hidden;
box-shadow: 0 0 25px 0px rgb(34, 29, 81);
}
.login_iptbox {
padding: 50px 0 0 301px;
font-size: 12px;
overflow: visible;
}
.admin_logo{
position: absolute;
left: 0;
top: 0;
width: 301px;
}
.admin_logo img{
width: 301px;
height: 301px;
}
.login_iptbox .ipt {
height: 30px;
width: 195px;
/*background: url(<?php echo IMG_PATH?>admin_img/ipt_bg.jpg) repeat-x;*/
*line-height: 24px;
overflow: hidden;
border: 1px solid #C9C7E1;
font-size: 25px;
text-align: center;
}
<?php if(SYS_STYLE=='en') {
?>
.login_iptbox .ipt {
width: 100px;
margin-right: 12px;
}
<?php
}
?>
.login_iptbox label {
width: 150px;
text-align: right;
font-size: 13px;
display: inline-block;
*display: inline;
*zoom: 1;
}
.login_iptbox .ipt_reg {
width: 75px;
/*background: url(<?php echo IMG_PATH?>admin_img/ipt_bg.jpg) repeat-x;*/
*overflow: hidden;
padding: 2px 0 2px 2px;
font-size: 16px;
font-weight: bold;
text-align: center;
}
.login_tj_btn {
margin: 0 auto;
padding: 10px 0;
/*background: url(<?php echo IMG_PATH?>admin_img/login_dl_btn.jpg) no-repeat 0px 0px;*/
background-color: #6961AB;
color: #fff;
width: 250px;
height: 37px;
border: none;
cursor: pointer;
padding: 0px;
display: block;
font-family: "Microsoft YaHei", "微软雅黑", Arial, Helv, Helvetica, sans-serif;
}
.yzm {
height: 36px;
display: inline-block;
*display: inline;
*zoom: 1;
}
.yzm img{
width: 110px;
height: 36px;
vertical-align: middle;
}
.cr {
font-size: 12px;
font-style: inherit;
text-align: center;
color: #ccc;
position: absolute;
bottom: 5px;
left: 473px;
}
.cr a {
color: #ccc;
text-decoration: none;
}
</style>
<script language="JavaScript">
<!--
if(top!=self)
if(self!=top) top.location=self.location;
//-->
</script>
</head>
<body onload="javascript:document.myform.username.focus();">
<div id="login_bg" class="login_box">
<a class="admin_logo" href="#"><img src="<?php echo IMG_PATH?>admin_img/admin_logo.jpg" alt="" /></a>
<div class="login_iptbox">
<form action="index.php?m=admin&c=index&a=login&dosubmit=1" method="post" name="myform">
<label><?php echo L('username')?>:</label>
<input name="username" type="text" class="ipt" value="" />
<br/>
<br/>
<label><?php echo L('password')?>:</label>
<input name="password" type="password" class="ipt" value="" />
<br/>
<br/>
<label><?php echo L('security_code')?>:</label>
<input name="code" type="text" class="ipt ipt_reg" onfocus="document.getElementById('yzm').style.display='block'" />
<span class="yzm"><?php echo form::checkcode('code_img')?></span>
<br/>
<br/>
<!-- <div id="yzm" class="yzm"><?php echo form::checkcode('code_img')?><br /><a href="javascript:document.getElementById('code_img').src='<?php echo SITE_PROTOCOL.SITE_URL.WEB_PATH;?>api.php?op=checkcode&m=admin&c=index&a=checkcode&time='+Math.random();void(0);"><?php echo L('click_change_validate')?></a></div> -->
<input name="dosubmit" value="登 录" type="submit" class="login_tj_btn" />
</form>
</div>
<div class="cr">Power By <a href="#">代码号</a></div>
</div>
</body>
</html>
前台表单:然后将前台提交信息的表单name属性改成跟后台一样的;改成这样,隐藏输入值也要传进去的前台表单action改成那个调用的javascript代码;
当点击进去新闻内页时候,显示的上一篇下一篇按钮
<div class="changeArticle clearfix">
<a href="{$previous_page[url]}" class="prev_article fl">上一篇:{$previous_page[title]}</a>
<a href="{$next_page[url]}" class="next_article fr">下一篇:{$next_page[title]}</a>
</div>
页码一般在list页面,直接{$page}就OK了,page="$page"记得在Pc标签加上这一句话就好了,还有就是搜索功能的实现:思路就是照着官方的发送搜索信息的表单改action还有hidden的数值:
首先当然是需要建立搜索字段了主要建立了搜索分类时候,得到的typeid要是正确的,了解?发送表单要的
<form action="{APP_PATH}index.php" method="get" target="_blank" >
<!-- <input type="hidden" name="m" value="search"/>
<input type="hidden" name="c" value="index"/>
<input type="hidden" name="a" value="init"/>
<input type="hidden" name="typeid" value="54" id="typeid"/>
<input type="hidden" name="siteid" value="1" id="siteid"/>
<input type="text" name="q" id="q"/>
<input type="submit" value="搜 索" class="button" />-->
<!-- {php $j=0}
{php $search_model = getcache('search_model_'.$siteid, 'search');}
{loop $search_model $k=>$v}
{php $j++;}
<a href="javascript:;" onclick="setmodel({$v['typeid']}, $(this));" style="outline:medium none;" hidefocus="true" {if $j==1 && $typeid=$v['typeid']} class="on" {/if}>{$v['name']}</a>{if $j != count($search_model)}<span> | </span>{/if}
{/loop}
{php unset($j);} -->
<input type="hidden" name="m" value="search"/>
<input type="hidden" name="c" value="index"/>
<input type="hidden" name="a" value="init"/>
<input type="hidden" name="typeid" value="54" id="typeid"/>
<input type="hidden" name="siteid" value="1" id="siteid"/>
<input type="text" class="text" name="q" id="q"style="float:left"/>
<input type="submit" value="搜 索" class="button" style="float:left"/>
</form>
主要看看URL有没拼接正确,然后就是找到搜索结果展示的页面,找到数据表单(搜索结果数据)并且改成自己网站的页面就OK了这个就是搜索结果页面了,大兄弟,这TM还没思路吗,我TM都给你做完了好吗!
本文标签:
很赞哦! ()
上一篇:PHPCMS二次开发方法介绍
下一篇:phpcms二次开发步骤教程示例
相关教程
图文教程
PHPCMS控制器是什么,编程逻辑介绍
PHPCMS控制器是MVC开发模式中的C,所谓MVC一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进界面及用户交互的同时
phpcms联动菜单使用方法介绍
phpcms联动菜单使用方法,在phpcms中,联动菜单的管理位置位于“后台-扩展-联动菜单”支持自定义添加,联动菜单一般有使用用法:
phpcms图片分页的实现方法
phpcms把图片分页的方法:首 先进入phpcms后台管理界面;然后单独加一个栏目,并指定一个模版;接着设置这个栏目为伪静态;最后在里面写“get”调用想要的数据,即可实现分页显示。
phpcms系统是免费的吗?需要授权吗?
phpcms系统是免费的吗?PHPCMS有免费版与商业版免费版仅限于个人非商业用途商业版需要购买授权
相关源码
-
PbootCMS(自适应手机端)智能电话AI机器人网站模板产品概述基于PbootCMS内核开发的智能电话AI机器人网站模板,为语音交互服务场景设计,采用HTML5+CSS3响应式布局技术,实现PC端与移动端数据实时同步展示。模板适用于智能电话查看源码 -
(自适应手机端)seo博客网站模板新闻资讯网站源码下载本模板为SEO博客及新闻资讯类平台深度定制,采用PbootCMS内核开发。通过模块化设计实现多行业快速适配,仅需替换图文内容即可转型为医疗、教育、科技等领域网站。响应式布局确保在手机、平板等设备上获得一致浏览体验。查看源码 -
(自适应)pbootcms模板五金元件气缸气动系统源码下载基于PbootCMS核心开发的气缸气动系统网站模板,为五金元件、气动设备制造企业设计。采用响应式布局技术,自动适配手机、平板等移动设备,确保各类终端用户获得良好浏览体验。查看源码 -
(自适应)绿色农业机械设备农场网站源码下载为现代农业机械领域打造的响应式网站模板,采用PbootCMS内核开发,数据实时同步后台管理。通过简洁大气的视觉设计,有效展示农机产品技术参数与应用场景,帮助客户快速建立专业数字化形象。查看源码 -
(PC+WAP)货物运输快递物流汽车贸易pbootcms模板下载为货运代理、汽车贸易及快递企业设计的全终端适配网站系统,整合运单追踪与车辆展示核心功能模块原生开发的DIV+CSS架构,支持WebP图像压缩技术。查看源码 -
(自适应)html5导航目录索引工具类网站源码下载本模板基于PbootCMS开发,为站长导航、网址导航类网站设计。采用HTML5+CSS3技术构建,适配PC端和移动端,提供流畅的浏览体验。适用于个人站长、资源导航平台等场景查看源码
| 分享笔记 (共有 篇笔记) |
