在这里不对模型、模板设置、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. 朗逸2011款 1.4t 清除保养告警灯

    朗逸2011款 1.4t 清除保养告警灯 Posted on 2015-03-01 21:06 编辑 仪表盘上有两个按钮 按住右边set键,钥匙旋转到通电状态,保持2s. 放掉set,按左边的切换按钮 ...

  2. Chrome内嵌 FlashPlayer(PPAPI)会被页面DHTML元素遮住的问题

    flash的wmode为window,Chrome版本为29.0.1547.66 m,Flash PPAPI为11.8.800.97,Flash NPAPI为11,8,800,94. flash在正常 ...

  3. Sqlserver中存储过程,触发器,自定义函数(一)

    Sqlserver中存储过程,触发器,自定义函数 1.存储过程有关内容存储过程的定义:存储过程的分类:存储过程的创建,修改,执行:存储过程中参数的传递,返回与接收:存储过程的返回值:存储过程使用游标. ...

  4. [HDU 1114] Piggy-Bank (动态规划)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114 简单完全背包,不多说. #include <cstdio> #include < ...

  5. ORACLE快速彻底Kill掉的会话(转载)

    转载:http://www.cnblogs.com/kerrycode/p/4034231.html 在ORACLE数据库当中,有时候会使用ALTER SYSTEM KILL SESSION 'sid ...

  6. [分享·JavaScript]提取Table中的内容到XML对象

    在公司工作的时候,经常需要在前端进行这样的数据提取的操作.而之前的针对每个页面中的Table都重新写原生的JS代码效率太低,且不方便aspx对XML进行处理. 所以,在今天抽时间写了这么一个JS类,见 ...

  7. FPGA中的时序分析(四)

    常用约束语句说明 关于Fmax      上述是实现Fmax的计算公式,clock skew delay的计算如下图, 就是两个时钟的差值.到头来,影响Fmax的值的大小就是组合逻辑,而Fmax是针对 ...

  8. win8或win8.1修改注册表失败的原因

    win8 and win8.1 modify the registry need compiled to be different versions according to the os bits.

  9. Rational Functional Tester 对象文件(rftdef)合并

    Rational Functional Tester (RFT) 是一款集成在Eclipse上的自动化测试工具.而自动化测试最麻烦的维护部分,一大部分也是指的是对象库文件的管理维护. 之前的项目里,经 ...

  10. 学习总结 java 父子级

    package com.hanqi; //父类 public class Father { // public Father() // { // // } // public Father(Strin ...