本来想在前台界面上分析看看ecshop导航栏设置,在浏览器里面是定位到了“nav-manu”下面,然后子目录是在m_left下可以看到是动态生成一系列的ul,li标签来设置导航栏的,然后打开源码,因为主界面是由index.dwt布局完成的
所以可以在其中发现这一行代码,因为dwt文件的缘故,注释可以忽略,然后进入
/library/page_header.lbi
文件下,找到nav-menu标签,原始代码真是够乱的,对于有强迫症的我来说,必须得重新排版下在m_left标签下,可以发现首页标签是单独列出来的,而后面的几个选项是通过foreach动态生成,从给的href可以看出。之前一直没看懂$navigator_list这个参数是怎么传进来的,因为固定思维,一直以为带有‘$’的标签都是根目录下的php文件通过smarty传递过来,所以找遍了所有php文件和dwt文件,都没发现$navigator_list这个参数,后面又试着关键字搜索nav这个表名,以为能找到对应的sql语句,可是找遍仍然没发现,后面接着在page_header.lbi这个文件下调试这几个参数的值,输出这些值,找找看能不能发现什么,顺便把数据库里面nav表的name参数改动,看看变化,依然没什么进展,不过,倒是解决了之前很多的疑问,感觉里面的代码和界面被我调试的面目全非。最终问题是解决了,我无意中翻看其他文件夹,在includes/目录下,我意识到,像导航栏这种常年不变的组件,必须得剥离到共用的地方,很多地方都得调用,如果写在业务逻辑代码里面,会非常臃肿的,我翻了一下,本能的从init.php,lib_base,lib_main这三个文件里面看了看,最后在lib_main文件内找到$navigator_list参数。
呵呵,我想说一句,fuck,几十个文件翻着看,这基本的调用也不给个注释,这叫我们这些菜鸟怎么活啊ORZ