Home >Backend Development >PHP Tutorial > ecshop新加模板当前位置和分页的链接地址不能关联有关问题

ecshop新加模板当前位置和分页的链接地址不能关联有关问题

WBOY
WBOYOriginal
2016-06-13 13:29:181048browse

ecshop新加模板当前位置和分页的链接地址不能关联问题
因网站里好多分类模板都不一样,所有我建了好多模版,链接地址基本都是写死的,但商品详情页和列表页这样的页面的一些链接就不好办了,还都是默认的模板的链接地址,
比如:商品列表的默认模板是category.php,我加了好多个不同的新模板category1.php、category2.php、category3.php、category4.php
这样导致的所有的模板的一些链接地址还是默认的category.php的地址,比如当前位置和分页的,实在不好解决。
拿当我位置的为例:
{$ur_here}的标签在lib_main.php文件里做的function assign_ur_here,看了下好像修改那里是不行的,

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
/* 循环分类 */
            if (!empty($cat_arr))
            {
                krsort($cat_arr);
                foreach ($cat_arr AS $val)
                {
                    $page_title = htmlspecialchars($val['cat_name']) . '_' . $page_title;
                    $args       = array($key => $val['cat_id']);
                    $ur_here   .= ' <code>></code> <a href="'%20.%20build_uri(%24type,%20%24args,%20%24val%5B'cat_name'%5D)%20.%20'">' .
                                    htmlspecialchars($val['cat_name']) . '</a>';
                }
            }


链接地址应该是靠build_uri获得的,然后我找到了lib_common.php文件里面的function build_uri
PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->case 'category':
            if (empty($cid))
            {
                return false;
            }
            else
            {
                if ($rewrite)
                {
                    $uri = 'category-' . $cid;
                    if (isset($bid))
                    {
                        $uri .= '-b' . $bid;
                    }
                    if (isset($price_min))
                    {
                        $uri .= '-min'.$price_min;
                    }
                    if (isset($price_max))
                    {
                        $uri .= '-max'.$price_max;
                    }
                    if (isset($filter_attr))
                    {
                        $uri .= '-attr' . $filter_attr;
                    }
                    if (!empty($page))
                    {
                        $uri .= '-' . $page;
                    }
                    if (!empty($sort))
                    {
                        $uri .= '-' . $sort;
                    }
                    if (!empty($order))
                    {
                        $uri .= '-' . $order;
                    }
                }
                else
                {
                    $uri = 'category.php?id=' . $cid;
                    if (!empty($bid))
                    {
                        $uri .= '&brand=' . $bid;
                    }
                    if (isset($price_min))
                    {
                        $uri .= '&price_min=' . $price_min;
                    }
                    if (isset($price_max))
                    {
                        $uri .= '&price_max=' . $price_max;
                    }
                    if (!empty($filter_attr))
                    {
                        $uri .='&filter_attr=' . $filter_attr;
                    }

                    if (!empty($page))
                    {
                        $uri .= '&page=' . $page;
                    }
                    if (!empty($sort))
                    {
                        $uri .= '&sort=' . $sort;
                    }
                    if (!empty($order))
                    {
                        $uri .= '&order=' . $order;
                    }
                }
            }


应该是修改这段代码,可是我php不太懂,只会一般的修修改改,这里试了很多方法都没有成功。
望各位大侠指导下多谢。



------解决方案--------------------
模板是写好的架构,再改属二次开发,是有点小难度的,你得完全看懂它的实现过程才能动手,要不然可能影响了其他地方:好多种CMS都是一样的。
通常{}大括号是要替换的,例如abc.html abc.php index.php
替换文件abc.php作用是,生成替换内容,注意,里面有参数设定,你得找找看,你光在abc.html模板里修改添加一个{abc}是不会替换的
abc.php里参数中添加abc=$content2//你进去看看,里面有数组,看是怎么replace的,加个值就行
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn