phpcms关于栏目的【英文目录】使用总结
[ 2016/07/25, Phpcms , 4429阅, 0评 ]

一、phpcms在添加栏目的时候其英文目录是不能有空格的,例如填写contact us是不行的,那么就需要想办法处理一下了。

使用str_replace()可以很容易的解决此问题。代码如下(假设添加栏目时的英文目录中的空格用"-"代替,以contact-us为例):

{if $CATEGORYS[$parentid][catdir]}
<?php 
$str = str_replace("-"," ",$CATEGORYS[$parentid][catdir]);
echo strtoupper($str);
?>
{else}
<?php 
$str = str_replace("-"," ",$CATEGORYS[$catid][catdir]);
echo strtoupper($str);
?>
{/if}

说明:如果存在父栏目,则使用父栏目的英文目录,并将其中的“-”替换成" ",输出时转换成大写字母(该例子的英文目录是contact-us,那么转换后就变成了CONTACT US),否则直接使用当前栏目的英文目录,并。。。同上。。。

注意:此方法会将其中所有的"-"均替换成空格,例如:contact-us-ok_or-not会变成CONTACT US OK_OR NOT


二、有时候,设计师会把栏目的英文名(英文目录)的首字母和和之后的字母设计的很“漂亮”(例如将它们拆散),但是html和css又不好实现,所以就打上了用php操作的主意啦,思路如下:

phpcms v9关于栏目的【英文目录】使用总结

将英文目录的所有字符传给一个数组,然后按再按需输出就OK啦。

1.取英文目录的第一个字符

可以直接使用程序自身的功能实现

{if $parentid}{str_cut($CATEGORYS[$parentid][catdir],2,'')}{else}{str_cut($CATEGORYS[$catid][catdir],2,'')}{/if}

还可以像下面这样

<?php
if($CATEGORYS[$parentid][catdir]){$str=$CATEGORYS[$parentid][catdir];}
else $str=$CATEGORYS[$catid][catdir];
$sum_arr = array();
for($i=strlen($str);$i>0;$i--){
	$sum_arr[] = substr($str,$i-1,1);
}
$j=strlen($str);
for($k=$j;$k>=$j-1;$k--){
	echo "$sum_arr[$k]";
}
?>

说明:如果存在父栏目,则取父栏目英文目录的首字母,否则取当前栏目英文目录的首字母。

2.取英文目录第一个字符之后的所有字符

<?php
if($CATEGORYS[$parentid][catdir]){$str=$CATEGORYS[$parentid][catdir];}
else $str=$CATEGORYS[$catid][catdir];
$sum_arr = array();
for($i=strlen($str);$i>0;$i--){
	$sum_arr[] = substr($str,$i-1,1);
}
$j=strlen($str);
for($k=$j-2;$k>=0;$k--){
	echo "$sum_arr[$k]";
}
?>

说明:如果存在父栏目,则取父栏目英文目录的首字母,否则取当前栏目英文目录的首字母。

相关教程:phpcms v9模板开发有关【栏目】的相关小诀窍

有朋自远方来...评论一下呗O(∩_∩)O