10月11, 2014

phpcms当前位置面包屑导航,去掉最后一个的分隔符方法总结

在使用phpcms制作网站的过程中,经常使用到当前位置面包屑导航,即 --你好,当前位置:首页>新闻中心>公司新闻这样的导航效果(当前路径).当我们调用系统中默认的catpos函数的时候,最后的一个导航栏目也给加上了分隔符,这个是我们所不想要的.

我们应该如何来更改为我们所需要的效果呢,下面对工作中遇到的相关问题进行一个总结归纳.如下提供两中修改方法.可以将系统中的catpos函数进行修改或者不修改系统函数在模板中来处理也可以的.

方法一: 找到系统中写好的catpos函数(phpcms\libs\functions\global.func.php)中的catpos方法: 原始的代码如下:

/**
 * 当前路径
 * 返回指定栏目路径层级
 * @param $catid 栏目id
 * @param $symbol 栏目间隔符
 */
function catpos($catid, $symbol=' > '){
    $category_arr = array();
    $siteids = getcache('category_content','commons');
    $siteid = $siteids[$catid];
    $category_arr = getcache('category_content_'.$siteid,'commons');
    if(!isset($category_arr[$catid])) return '';
    $pos = '';
    $siteurl = siteurl($category_arr[$catid]['siteid']);
    $arrparentid = array_filter(explode(',', $category_arr[$catid]['arrparentid'].','.$catid));
    foreach($arrparentid as $catid) {
        $url = $category_arr[$catid]['url'];
        if(strpos($url, '://') === false) $url = $siteurl.$url;
        $pos .= '<a href="'.$url.'">'.$category_arr[$catid]['catname'].'</a>'.$symbol;
    }
    return $pos;
}

修改后的相关函数代码:

function catpos($catid, $symbol=' > '){
    $category_arr = array();
    $siteids = getcache('category_content','commons');
    $siteid = $siteids[$catid];
    $category_arr = getcache('category_content_'.$siteid,'commons');
    if(!isset($category_arr[$catid])) return '';
    $pos = '';
    $siteurl = siteurl($category_arr[$catid]['siteid']);

    $arrparentid = array_filter(explode(',', $category_arr[$catid]['arrparentid'].','.$catid));

    $index=0;

    foreach($arrparentid as $catid) {
        $index++;
        sizeof($arrparentid)==$index && $symbol='';
        $url = $category_arr[$catid]['url'];
        if(strpos($url, '://') === false) $url = $siteurl.$url;
        $pos .= '<a href="'.$url.'">'.$category_arr[$catid]['catname'].'</a>'.$symbol;
    }
    return $pos;
}

方法二:(直接在模板页面中用php标签进行修改)

<!-- start 当前位置部分 -->
        <div class="position">
            <?php $pid=get_topid($catid);?>
            <h2 class="pos_pic">{$CATEGORYS[$pid][catname]}</h2>
            <div class="site">
                您现在的位置:  <a href="{siteurl($siteid)}">首页</a>
                <?php
                    $apid=explode(",",$CAT[arrparentid]);

                    //p($apid);
                    //print_r($apid);
                    //exit();
                    if(count($apid)==2){
                        $pcats=$CATEGORYS[$apid[1]];
                        //p($pcats[url]);
                        echo '<span style="margin:0 0 0 2px;"> ></span><a style="margin:0 0 0 4px;" href="'.$pcats[url].'">'.$pcats[catname].'</a>';
                    }
                ?>
                <span style="margin:0 -3px 0 0;"> ></span>
                <a class="cat" style="margin:0 2px 0 0;" href="{$CAT[url]}">{$CAT[catname]}</a>
            </div>
        </div>        

<!-- end 当前位置部分-->

本文链接:https://901web.com/post/phpcms当前位置面包屑导航去掉最后一个的分隔符方法.html

-- EOF --

Comments

请在后台配置评论类型和相关的值。