phpcmsv9站群共用一套模板智能模板制作方法

更新时间:2021-08-27 17:34:23 来源:青锋建站 作者:青锋建站
  phpcmsv9的特点之一就是内置多站点支持,使用多站点可以使用一套台后来搭建多个站点,或构造站群。但是有一点,不同站点要使用一套模板来生成静态页面,这样就不方便了。于是青锋建站给大家分享了一套让phpcmsv9站群共用一套模板的智能模板制作方法,需要熟悉模板标签与模型操作。青锋建站给大家分享了实现多个子站点使用一套模板的实现思路与一套模板示例供大家下载,需要关注青锋建站的百度熊掌号来获取下载码。

站群共用模板的思路分析

  青锋建站给在这里进行逆向分析,要制作一个站群共用的智能模板,需要满足在主页自动调用相关栏目,两侧共用列表,列表页自动调用当前列表,内容页自动调用当前的内容和变量,搜索页和表单页也需要调用各自站点的表单。如果一套模板同时实现了这些,也就实现了智能模板的概念,从而实现phpcmsv9站群共用一套模板。一般列表页和内容很容易实现调用当前栏目或内容页的内容。我们的思路也主要围绕着实现主页,两侧共用列表,搜索页和表单页来实现代码的共用。
  由于主页一般需要调用某个栏目的新闻列表和产品列表,如果是站群的话需要传递给{pc:content action="lists" catid="2" order="id DESC" num="4"}这个标签一个siteid值和一个catid值来实现,但是模板怎么知道我们要调用哪个站点的哪个栏目呢?这是解决问题的关键。而且这个标签并不接受siteid的属性。
  青锋建站给大家提供一个思路:把模板当作栏目来使用,即使是字段相同的栏目我们也可以建两个模型,而且不同站点的模型的数量相同,字段也相同。而表名称采用这种命名方案:siteid+站点ID+表名称的命名方案,例如想建立一个文章模型,可以这样命名:站点1的模型为siteid1_article,站点2的模型为siteid2_article。然后在标板中对列表的调用采用{pc:get sql="SELECT * FROM pre_forum_thread" cache="3600" page="$page" dbsource="discuz" return="data"} 标签来实现。以下是实现的具体的步骤。

站群共用模板的实现步骤

1、建立模型,每站点为同一栏目建立相同模型,假设我们这里有三个站点。
  站点1建立文章模型:表名称为siteid1_article;站点1建立产品模型:表名称为siteid1_product;站点1建立案例模型:表名称为siteid1_case;
  站点2建立文章模型:表名称为siteid2_article;站点2建立产品模型:表名称为siteid2_product;站点2建立案例模型:表名称为siteid2_case;
  站点3建立文章模型:表名称为siteid3_article;站点3建立产品模型:表名称为siteid3_product;站点3建立案例模型:表名称为siteid3_case;
  如果感觉不同站点建立模型比较繁琐,可以使用青锋建站开发的phpcms模型共享分发插件,来达到多个站点共用一套模型,实现模型共享分享的功能。
  配置项如下图:
  phpcmsv9站群
2、模板制作,关键是如何实现相应的标签与站点ID和栏目ID的智能调用。
  智能模板的导航代码,基于bootstrap构建站:以下是站点1没有建立模型,只使用站点2和站点3来建立多站点智能模板示例。
<nav class="container-fluid navbar navbar-expand-lg bg-second shadow" style="position:relative;z-index:20;" id="for_nav">
    <div class="container mx-auto row justify-content-md-between">
        <a class="nav-brand col-4 col-md-2 order-1 order-md-1 text-white" href="{siteurl($siteid)}">JINAN MOTI</a>
        <div class="collapse navbar-collapse col-12 col-md-7 order-4 order-md-2" id="hidden">
            <ul class="container navbar-nav line-60 text-center link-white">
                <li class="channel-list"><a class="px-3 {if $catid ==0 } active{/if}" href="{siteurl($siteid)}">HOME</a></li>
                {pc:content action="category" catid="0" num="10" siteid="$siteid" order="listorder ASC"}
                    {loop $data $k $v}
                        <li class="channel-list">
                            <a class="px-3 {if $v[catid] ==$catid||$v[catid] ==$parentid||$v[catid]==$CAT[parentid]} active{/if}" href="{$v[url]}">{$v[catname]}</a>
                            <div class="channel-menu row justify-content-md-center text-left">
                                {pc:content action="category" catid="$v[catid]" num="10" siteid="[siteid]" order="listorder ASC"}
                                {loop $data $k $v}
                                    <ul class="sub-menu col-md-3 py-md-4 link-grey line-30">
                                        <h2 class="fa-xs py-2"><a class="text-white" href="{$v[catid]}">{$v[catname]}</a></h2>
                                        {pc:content action="lists" catid="$v[catid]" num="4"}
                                            {loop $data $r}
                                                <li><a class="fa-xs" href="{$r[url]}">{$r[title]}</a></li>
                                            {/loop}
                                        {/pc}
                                    </ul>
                                {/loop}
                                {/pc}
                            </div>
                        </li>
                    {/loop}
                {/pc}
            </ul>
        </div>
        <div class="col-7 col-md-3 order-2 order-md-3 fa-sm">
            <a href="{siteurl(2)}" target="_blank"><img src="en.png" /> english</a>&#160;
            <a href="{siteurl(3)}" target="_blank"><img src="korea.png" /> spanish</a>
        </div>
        <button class="navbar-toggler col-1 order-3 order-md-4" type="button" data-toggle="collapse" data-target="#hidden" >
              <span class="fas fa-align-justify "></span>
        </button>
    </div>
</nav>
  智能模板的列表调用,例如主页调用产品,实现与站点和栏目的同步:
<div class="container">
    <h2 class="h3 py-5 text-dark">Featured products</h2>
    <ul class="row justify-content-md-center">
    {php $sql_product="SELECT * FROM phpcms_siteid".$siteid."_product";}//构造SQL语句,包括与对应模型、对应站点的同步。
        {pc:get sql="$sql_product" num="12"}
            {loop $data $r}
                <li class="col-6 col-md-3 p-4 card">    
                    <a href="{$r[url]}"><img class="card-img-top" src="{$r[thumb]}" /></a>
                    <p class="card-body py-1" >{$r[title]}</p>
                    <div class="text-right">
                        <a class="btn bg-main px-2 text-white fa-xs" href="{$r[url]}">detial</a>
                    </div>
                </li>
            {/loop}
        {/pc}
    </ul>
</div>
  以就是就是青锋建站给大家分享的phpcmsv9站群共用一套模板智能模板制作方法,已经给大家准备了一套模型示例,大家可以去下载phpcms站群智能模板,需要关注青锋建站的微信公众号获取下载码,在对话框中输入“phpcms站群智能模板”即可免费获得下载码。青锋建站,提供专业的高品质网站制作服务,包括网站建设,SEO,网络营销,PHP开发。

转载请注明来源网址:青锋建站-http://www.sjzphp.com/code/zhanqunmoban_955.html

电话 15632335515 | 邮箱 943703539@qq.com | QQ 943703539 | 微信 qingfengjianzhan

Copyright © 2016-2026 青锋建站 版权所有