ホームページ  >  記事  >  バックエンド開発  >  phpcms v9の二次開発と利用におけるさまざまな問題の解決策 (2)

phpcms v9の二次開発と利用におけるさまざまな問題の解決策 (2)

黄舟
黄舟オリジナル
2016-12-30 10:56:311576ブラウズ

phpcms v9の二次開発と利用における諸問題の解決策(2)

テンプレート呼び出し



1. コンテンツタグ、シリアル番号123456789の呼び出し?

{pc:content action="lists" catid="$catid" order="id DESC" num="10"}
 {loop $data $k $v}
  <li>{$n}<a href="{$v<a href="http://www.lai18.com/content/%7D" >{str_cut($v[&#39;title&#39;],44,&#39;&#39;)}<="" a><="" li> {/loop}
<a href="http://www.lai18.com/content/%7D" >{str_cut($v[&#39;title&#39;],44,&#39;&#39;)}<="" a><="" li>{php $j=1;}
{pc:content action="lists" catid="$catid" order="id DESC" num="10"}
 {loop $data $v}
  <li>{$j}<a href="{$v[url]}">{str_cut($v[&#39;title&#39;],44,&#39;&#39;)}</a></li>
{$j++}
{/loop}

23faaec59e9a03a0d3772653fabc4754{str_cut($v['title'],44,'')}774be50b51d88ad7431c71939867b105 9df081d7067e5859b4abcc94cca354a3 2. 記事リストのタイトルの表示長(または文字数)を制御します

タイトルでもその他でも、strcut関数を使用してインターセプトできます。使用方法は次のとおりです:

{strcut($v[&#39;title&#39;],40,&#39;&#39;)} 向后截取,{str_cut($v[&#39;title&#39;],40,&#39;&#39;)} 向前截取。
这 个就是剪切文字长度的,如果你不想显示三个点,就是在40(剪切的字符数)后面加上逗号(,),
再加上引号内容为空,如果想变成别的,比如来个❤型之类, 那就在引号内加上❤型。gbk一个汉字为2字符,
utf版本一个汉字占用3个字符,注意一下编码再定剪切的字符数。

3. 列レベル 2 と 3 レベルの列名を呼び出すループ

4. ホームページまたはリスト ページに記事の詳細を表示します

moreinfo=1

5. 特定の列に最新の記事を表示します

{pc:get sql="SELECT * FROM phpcms_news WHERE catid IN(12,13,14,15,16,17,18) ORDER BY id DESC" num="10" return="data"}
 {loop $data $k $r}
 <li><a href="{$CATEGORYS[$r[catid]][url]}">[{$CATEGORYS[$r[catid]][catname]}]</a><a href="{$r[url]}" target="_blank">{$r[title]}</a></li>
 {/loop}
{/pc}

6.チャンネルIDを指定してランキングリスト

7. 列を個別に呼び出します

8. その列がトップレベルの列(サブ列あり)であるかどうかを判断します

{if $top_parentid}{/if}

9. カーリーに関する注意点中括弧

テンプレートの解析と競合しないように、中括弧は 2 行で記述する必要があります。例:

{} //错误

{ 正确

}

f2a43a07a7c1b8b6d7a194c006cb5581{str_cut($v['title'],44,'')}495da78cbecab0add66212161aab92b0b60d5bd23f5e813ebcb6d4be9c7cbeea10、首页默认幻灯焦点不显示

文件名大小写原因造成的,解决方法:

文件\statics\js\jquery.sGallery.js 修改jquery.sgallery.js

11、不同的会员模型调用不同模板

打开phpcms\modules\member\index.php 在第30行找到 include template('member', 'index'); 修改为

if($memberinfo[modelid]==10){
include template('member', 'index(此处为原会员模型模板)');
}
else{
include template('member', 'indexXXX(此处为另一种会员模型的模板)');
}

复制代码

11、时间格式化

格式化时间 2011-05-06 11:22:33

{date('Y-m-d H:i:s',$r[inputtime])}

格式化时间 2011年05月06日

{date('Y年m月d日',$r[inputtime])}

12、论坛数据调用

13、类别调用方法

{pc:content action="lists" catid="79" order="listorder DESC" num="14" }
43c4dbc7a114cdb80e7fdafaa4c675f3
{loop $data $n $r}
 25edfb22a4f469ecb59f1190150159c6{if $TYPE[$r[typeid]][name]}b4ce64a29f5f7a8b2b194873849116cf[ {$TYPE[$r[typeid]][name]}] 54bdf357c58b8a65c66d7c19c8e4d114{/if}07149bbe91d212c73cabdb6b8cf1c994{str_cut($r[title],33,'')}5db79b134e9f6b82c0b36e0489ee08edbed06894275b65c1ab86501b08a632eb
{/loop}
{/pc}

复制代码

14、碎片

15、组图的调用

16、会员信息调用

17、只调用推荐的友情链接

调用所有的,在loop循环中判断elite的值,或者用get标签调用

18、调用一级栏目

指定catid="0"

19、首页调用多栏目的推荐内容



{pc:get sql="SELECT * FROM `v9_news` a, `v9_position_data` p WHERE a.id=p.id and posid=14 AND a.catid in(6,11) ORDER BY a.updatetime DESC" num="10"}
{loop $data $r}
25edfb22a4f469ecb59f1190150159c612d7c3157eda88496377277fe90d5b5e{$CATEGORYS[$r[catid]][catname]}5db79b134e9f6b82c0b36e0489ee08edacb613a459857e996e777371e637baa4 {date('d', $r[inputtime])}日e6e38b3c62e8df885fe2e3986461aa6354bdf357c58b8a65c66d7c19c8e4d114f12ea53969a6519b443f997ddf87cccd{$r[title]}5db79b134e9f6b82c0b36e0489ee08edbed06894275b65c1ab86501b08a632eb
{/loop}
{/pc}

复制代码

20、subcat函数的用法

21、按时间归类的list页面

22、调取会员排行榜

{get sql="SELECT `userid`,`username`,`areaid`,`amount`,`point`,`modelid` FROM `phpcms_member_cache` ORDER BY `point` DESC" rows="10" }

复制代码

23、if的一些用法

{if $n ==2 || $n==3 }{/if}

这是以点数来排的……,试下能不能用哈!{$r[username]}

24、当前栏目调用父级及以下栏目信息

{php $arrchildid = $CATEGORYS[$CAT[parentid]][arrchildid]}
{pc:get sql="SELECT * FROM v9_news where catid in($arrchildid) cache="3600" page="$page" num="12" return="data"}

复制代码

25、内容页调用【内容分页】的当前页如[2/20]的方法

  想单独调用内容分页的{当前页}{总分页数}

例如文章标题“国内经济再次腾飞[1/5]”,国内经济再次腾飞[{$page}/{$pagenumber}]

26、调用全站最新内容

  把多张表相同的字段读取最新的N条出来,按照inputtime排序,点击查看" target=_blank>}">{str_cut($v['title'],44,'')}5db79b134e9f6b82c0b36e0489ee08edbed06894275b65c1ab86501b08a632eb
{/loop}

复制代码
或者

{php $j=1;}
{pc:content action="lists" catid="$catid" order="id DESC" num="10"}
 {loop $data $v}
  25edfb22a4f469ecb59f1190150159c6{$j}b15d0fec9e9d9097ca253dfdb0e92b1e{str_cut($v['title'],44,'')}5db79b134e9f6b82c0b36e0489ee08edbed06894275b65c1ab86501b08a632eb
{$j++}
{/loop}

复制代码

2、文章列表标题显示长度(或者叫字数)的控制

不管是标题还是其它,都可以利用strcut函数进行截取,用法如下:

{strcut($v['title'],40,'')} 向后截取,{str_cut($v['title'],40,'')} 向前截取。这 个就是剪切文字长度的,如果你不想显示三个点,就是在40(剪切的字符数)后面加上逗号(,),再加上引号内容为空,如果想变成别的,比如来个❤型之类, 那就在引号内加上❤型。gbk一个汉字为2字符,utf版本一个汉字占用3个字符,注意一下编码再定剪切的字符数。

3、循环调用栏目二级和三级栏目名称

4、在首页或列表页显示文章详细内容

moreinfo=1

5、显示某些指定栏目内的最新文章

{pc:get sql="SELECT * FROM phpcms_news WHERE catid IN(12,13,14,15,16,17,18) ORDER BY id DESC" num="10" return="data"}
 {loop $data $k $r}
 25edfb22a4f469ecb59f1190150159c6ee06f932dea6762e80ef86a76bcf640f[{$CATEGORYS[$r[catid]][catname]}]5db79b134e9f6b82c0b36e0489ee08ed3ef92ae5b30807b7e8620bc848a447b4{$r[title]}5db79b134e9f6b82c0b36e0489ee08edbed06894275b65c1ab86501b08a632eb
 {/loop}
{/pc}

复制代码

6、点击排行榜指定频道ID

7、单独调用栏目链接

8、判所在栏目是否为顶级栏目(有子栏目)



{if $top_parentid}{/if}

复制代码

9、点击量调用10、花括号的注意

为了不与模板解析冲突,花括号应该分成2行写,例如:

{} //错误

{ 正确

}

10、首页默认幻灯焦点不显示

文件名大小写原因造成的,解决方法:

文件\statics\js\jquery.sGallery.js 修改jquery.sgallery.js

11、不同的会员模型调用不同模板

打开phpcms\modules\member\index.php 在第30行找到 include template('member', 'index'); 修改为

if($memberinfo[modelid]==10){
include template(&#39;member&#39;, &#39;index(此处为原会员模型模板)&#39;);
}
else{
include template(&#39;member&#39;, &#39;indexXXX(此处为另一种会员模型的模板)&#39;);
}



11、时间格式化

格式化时间 2011-05-06 11:22:33

{date(&#39;Y-m-d H:i:s&#39;,$r[inputtime])}

格式化时间 2011年05月06日

{date(&#39;Y年m月d日&#39;,$r[inputtime])}

12、论坛数据调用

13、类别调用方法

{pc:content action="lists" catid="79" order="listorder DESC" num="14" }
<?php $TYPE = getcache(&#39;type_content&#39;,&#39;commons&#39;);?>
{loop $data $n $r}
 <li>{if $TYPE[$r[typeid]][name]}<span style="color:#CC6600">[ {$TYPE[$r[typeid]][name]}] </span>{/if}<a href="{$r[&#39;url&#39;]}"{title_style($r[style])}title="{$r[&#39;title&#39;]}" target="_blank">{str_cut($r[title],33,&#39;&#39;)}</a></li>
{/loop}
{/pc}


14、碎片

15、组图的调用

16、会员信息调用

17、只调用推荐的友情链接

调用所有的,在loop循环中判断elite的值,或者用get标签调用

18、调用一级栏目

指定catid="0"

19、首页调用多栏目的推荐内容



{

pc:get sql="SELECT * FROM `v9_news` a, `v9_position_data` p WHERE a.id=p.id and posid=14 AND a.catid in(6,11) ORDER BY a.updatetime DESC" num="10"}
{loop $data $r}
<li><a href="{$CATEGORYS[$r[catid]][url]}" target="_blank">{$CATEGORYS[$r[catid]][catname]}</a><font title= "{date(&#39;Y-m-d&#39;, $r[inputtime])}"> 
{date(&#39;d&#39;, $r[inputtime])}日</font></span><a href="{$r[url]}">{$r[title]}</a></li>
{/loop}
{/pc}


20、subcat函数的用法

21、按时间归类的list页面

22、调取会员排行榜

{get sql="SELECT `userid`,`username`,`areaid`,`amount`,`point`,`modelid` FROM `phpcms_member_cache` ORDER BY `point` DESC" rows="10" }



23、if的一些用法

{if $n ==2 || $n==3 }{/if}

这是以点数来排的……,试下能不能用哈!{$r[username]}

24、当前栏目调用父级及以下栏目信息

{php $arrchildid = $CATEGORYS[$CAT[parentid]][arrchildid]}
{pc:get sql="SELECT * FROM v9_news where catid in($arrchildid) cache="3600" page="$page" num="12" return="data"}



25、内容页调用【内容分页】的当前页如[2/20]的方法

  想单独调用内容分页的{当前页}{总分页数}

例如文章标题“国内经济再次腾飞[1/5]”,国内经济再次腾飞[{$page}/{$pagenumber}]

26、调用全站最新内容

  把多张表相同的字段读取最新的N条出来,按照inputtime排序,[url=http://bbs.phpcms.cn/viewthread.php?tid=296531]点击查看

27、一次搜索全站所有模型内容

28、调用其他网站指定内容

  在后台增加数据源 然后用get 调用即可

29、[url=http://bbs.phpcms.cn/viewthread.php?tid=279355]wshxh总结1 wshxh总结1

30、调用所有导航

{pc:content action="category" catid="0" num="25" siteid="$siteid" order="listorder ASC"}
<ul class="nav-site">
<li><a href="{siteurl($siteid)}"><span>首页</span></a></li>
{loop $data $r}
  <li class="line">|</li>
  <li><a href="{$r[url]}"><span>{$r[catname]}</span></a></li>
{/loop}
</ul>
{/pc}



31、全站显示lists列表标签文章的点击数

普通lists标签代码(适合栏目):

{pc:content action="lists" catid="$catid" num="10" order="id DESC"}
{loop $data $r}
 {php $h_md=pc_base::load_model(&#39;hits_model&#39;);$get_db=$h_md->get_one(array(&#39;hitsid&#39;=>"c-".$modelid."-".$r[id]));$views=$get_db[views];}
 点击:{$views}
{/loop}
{/pc}



首页调用因为需要模型ID的,所以需要将:

get_one(array(&#39;hitsid&#39;=>"c-".$modelid."-".$r[id]));

改为:

get_one(array(&#39;hitsid&#39;=>"c-1-".$r[id]));

1为当前lists调用栏目所属的模型ID,系统自带文章系统为1,自定义模型请根据你自己的修改。

$r[id] 根据实际情况修改。

32、显示全站排行榜,显示收藏统计量

{pc:get sql="select *,count(*) as count from phpcms_favorite where adddate>=DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) DAY) group by title order by count(*) desc" return="data" num="9"}
<ul>
{loop $data $key $val}
 <li><a href="{str_replace(&#39;/index.html&#39;,&#39;&#39;,$val[url])}" target="_blank" title="{$val[title]}">{$val[title]}</a> {$val[count]}</li>
{/loop}
</ul>
{/pc}


33、select的分页代码

{pc:content action="lists" catid="$catid" num="12" order="id DESC" return="data1" page="$page"}<select name="select_pages" 
onchange="location.href=this.options[this.selectedIndex].value;">
{loop $data $r1}
{/loop}
{str_replace("a href", "option value", str_replace("..", "", str_replace("</a", "</option", 
str_replace("a class", "option class", str_replace("</span>", "页</option>", str_replace("<span>",
 "<option selected>//", str_replace("> ", ">", $pages)))))))}</select>{/pc}

 以上就是phpcms v9二次开发及使用中各种问题解决方案(二)的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。