在这里不对模型、模板设置、category,list,show等静态页面引入、配置文件(caches\configs\database.php 和 caches\configs\system.php)、缓存清理、附件地址替换、等逻辑讲解。

安装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}
10     </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){ ?>
4     <dt>{$v[catname]}<i>{$v[description]}</i><em><b>首页</b>&nbsp;>&nbsp;<b>{$CATEGORYS[$catid][catname]}</b></em></dt>//这里有获取当前内容所属栏目的栏目名称
     <?php } ?>
   {/loop}
 {/pc}

上面呢,是获取当前栏目的父栏目下面的ID为39的子栏目的栏目信息;

 {template "content","footer"}

包含某个公共部分。

分页的页码:

 {$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://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.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建站经验分享的更多相关文章

  1. 从零Wordpress建站经验分享,内附耗时间及成本

    5月末回国,工作进入空档期. 每天上班没有任务压身,日子过得反而更加难熬. 一直自己做一个网站,却总下不定决心,总是懒得迈出第一步. 正巧朋友需要建设一个宣传用网站. 外面的公司给他报价很高. 反正我 ...

  2. Discuz建站教程:本地安装discuz网站

    网站建目前都很简单,建站容易,管理难,网站做大优化更难.本人有建站经验,目前给大家分享一下如何建站,当然,目前使用的是本地建站,因为非本地建站需要购买域名和网站空间,当然,朋友们想真正建站的,对于一些 ...

  3. 转型?还是延伸?开源建站系统近乎推整套SNS社区解决方案

    转型?还是延伸?开源建站系统近乎推整套SNS社区解决方案 近乎(英文:Spacebuilder),作为.net领域的SNS社区建站系统代表之一,一直在技术开发领域算是兢兢业业,在Discuz!和Php ...

  4. 用WordPress建立专业网站教程 (一步步建站, 一步也不少)

    最新美国域名中心US Domain Center: http://www.usdomaincenter.com/ 建站教程 (10分钟上线, 无需备案): https://www.qiyewp.com ...

  5. GoDaddy商务主机建站具有的优势

    GoDaddy是世界第一域名注册服务商,近年来凭借着优异的性能受到国内站长的欢迎,其中Godaddy商务主机得到了很多站长的喜爱,那么为什么GoDaddy商务主机可以受到那么多站长的喜爱呢?下面就带大 ...

  6. 外贸建站之图片预加载JS代码分享

    外贸建站之图片预加载JS代码分享 function preloadimg() { setTimeout(function() { new Image().src = "images/2017 ...

  7. 服务器购买+建站流程教程——适合新手没有经验的人Chinar总结

    服务器购买购买教程 本文提供全图文流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创 ...

  8. phpcms 初次建站心得

    最近要给客户建个网站,考虑到效率问题,直接找了个开源的phpcms,(现在被收购了,以前的时候我还知道是个开源的).由于对这个东西不熟悉,原来就是了解一些,php的建站系统,php的MVC框架.故此, ...

  9. WordPress建站指南

    WordPress建站指南(1)   写在前面: 3月份用10天零碎时间火速完成了建站,后台95%的工作都交给了WP(WordPress).如果想偷懒的话,WP是一个绝好的选择,估计有个小半天就建完收 ...

随机推荐

  1. delphi TServerSocket阻塞线程单元 实例

    TServerSocket阻塞线程单元,希望对你有所帮助.需要注意的是:1.如果你使用TServerSocket的stNonBlocking模式,重写TServerClientThread线程时要重载 ...

  2. Hibernate注解:一对多外键关联

    情形:两个表,cms_mode是主表,cms_model_field是子表,cms_model_field的model_id字段关联到cms_model的主键. # # Source for tabl ...

  3. tarjan 边双连通分量 对点进行分组 每组点都在一个双连通分量里边

    int dfn[N],low[N],id[N],s[N],p,num,t,son[N];//dfn记录dfs时间戳//low代表当前点到达的最小时间戳,id对点进行分组编号.num是时间戳//s临时存 ...

  4. Js获取当前日期时间及时间相关操作

    Js获取当前日期时间及时间格式 var myDate = new Date();myDate.getYear();        //获取当前年份(2位)myDate.getFullYear();   ...

  5. 翻译:Angular 2 - TypeScript 5 分钟快速入门

    原文地址:https://angular.io/docs/ts/latest/quickstart.html Angular 2 终于发布了 beta 版.这意味着正式版应该很快就要发布了. 让我们使 ...

  6. 关于Windows平台下应用程序加载DLL模块的问题.

    本文将讨论以下问题: (1)Windows可执行程序会从哪些目录下加载DLL. (2)如何将可执行使用的DLL放置到统一的目录下,而不是与EXE同一目录. (3)可执行程序加载了不该加载的DLL. ( ...

  7. Win2D 官方文章系列翻译 - 幕后绘制

    本文为个人博客备份文章,原文地址: http://validvoid.net/win2d-offscreen-drawing/ 应用有时需要将图形绘制到并不立即显示的目标上.此类绘制动作被称作“幕后绘 ...

  8. im4java开发向导

    0.搜索ImageMagick下载安装 1.Setting up the Environment    引入im4java到classpath    设置图片处理引擎的command searchpa ...

  9. Docker学习总结之docker介绍

    About Docker 以下均翻译自Docker官方文档 ,转载请注明:Vikings翻译 Develop, Ship and Run Any Application, Anywhere Docke ...

  10. 学习总结 for循环语句的应用

    for(初始值:条件表达式:状态改变) { } \n 表示换行   \ttab键   \\写出一个斜杠 例题解释 // 输出一个数,打印一到n出来 int n = int.Parse(Console. ...