热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ecmall开发记录(二)

ecmall基本的功能还算不错,拿过来就能用,但是老板想要加一个余额支付的功能,就是用户先把钱存到账户里,购买商品时直接用余额支付,这样可以更快回收资金。于是这个艰巨的任务就是我来做啦。先

  ecmall基本的功能还算不错,拿过来就能用,但是老板想要加一个余额支付的功能,就是用户先把钱存到账户里,购买商品时直接用余额支付,这样可以更快回收资金。于是这个艰巨的任务就是我来做啦。

  先注册一个用户登陆进去看看,用户中心的默认app就是member.app

 

  那就去member.app.php里看看,打开一看,又是一大堆shit。

  我就想先知道左边的菜单栏是如何做出来的,如图

  找啊找,找模板,在themes\mall\default文件夹中找到member.index.html,打开一看,里面又引用了member.header.html和member.menu.html。打开member.menu.html,看到了这么一段

  感觉比较像,因为用firebug看到菜单栏的源码就是如此这般

  foreach from是ecmall模板里的语法,就和foreach as 差不多,但是$_member_menu是从哪里来的呢?再去源码里找!直接在member.app.php中ctrl+F,没找到?额,不要逼我用大招,使用zend里面的search也就是ctrl+H键,在整个工作区里找这个变量,终于被我找到了两行。

  

  frontend.base.php?好像是个基类。爱啥啥,直接来到第541行,看到是把_get_member_menu()方法分配给了$_member_menu,so,再来到第579行,

  

 function _get_member_menu()
    {
        $menu = array();

        /* 我的ECMall */
        $menu['my_ecmall'] = array(
            'name'  => 'my_ecmall',
            'text'  => Lang::get('my_ecmall'),
            'submenu'   => array(
                'overview'  => array(
                    'text'  => Lang::get('overview'),
                    'url'   => 'index.php?app=member',
                    'name'  => 'overview',
                    'icon'  => 'ico1',
                ),
                'my_profile'  => array(
                    'text'  => Lang::get('my_profile'),
                    'url'   => 'index.php?app=member&act=profile',
                    'name'  => 'my_profile',
                    'icon'  => 'ico2',
                ),
                'message'  => array(
                    'text'  => Lang::get('message'),
                    'url'   => 'index.php?app=message&act=newpm',
                    'name'  => 'message',
                    'icon'  => 'ico3',
                ),
                'friend'  => array(
                    'text'  => Lang::get('friend'),
                    'url'   => 'index.php?app=friend',
                    'name'  => 'friend',
                    'icon'  => 'ico4',
                ),
                /*
                'my_credit'  => array(
                    'text'  => Lang::get('my_credit'),
                    'url'   => 'index.php?app=member&act=credit',
                    'name'  => 'my_credit',
                ),*/
            ),
        );
...

  是的吗是的吗?好激动耶,四个数组正好对应着账户概览,个人资料,短消息和好友。所以我也来一首,随便复制一个array改成这样

  

'account'  => array(
                    'text'  => Lang::get('account'),
                    'url'   => 'index.php?app=account',
                    'name'  => 'account',
                    'icon'  => 'ico4',
                ),

  新菜单项出现了!

  

  但是只是英文的,而且点进去出现了这个

  

  这是没有account.app.php,这个可以理解。那么怎么把英文菜单显示成中文呢?text选项是以 Lang::get()方法取得的,在zend里转到定义,在/eccore文件夹里的ecmall.php文件找到了这个方法

  

class Lang
{
    /**
     *    获取指定键的语言项
     *
     *    @author    Garbin
     *    @param     none
     *    @return    mixed
     */
    function &get($key = '')
    {
        if (Lang::_valid_key($key) == false)
        {
            return $key;
        }
        $vkey = $key ? strtokey("{$key}", '$GLOBALS[\'__ECLANG__\']') : '$GLOBALS[\'__ECLANG__\']';
        $tmp = eval('if(isset(' . $vkey . '))return ' . $vkey . ';else{ return $key; }');

        return $tmp;
    }
...

  再往下也看不懂了,直接度娘

  原来已经有人写好了,呜呜

  

  common.lang.php就是语言包了,这里就是本地化的所有菜单项,添加一个呗,

  

'account'=>'用户账户',

  刷新,哦也

  

  添加一个菜单项就做好了,注意这个菜单的icon我是复制的好友菜单的。可是里面还是啥功能都没有,下回再叙吧

  


推荐阅读
  • 解决FCKeditor应用主题后上传问题及优化配置
    本文介绍了在Freetextbox收费后选择FCKeditor作为替代方案时遇到的上传问题及其解决方案。通过调整配置文件和调试工具,最终解决了上传失败的问题,并对相关配置进行了优化。 ... [详细]
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • 使用Pandas高效读取SQL脚本中的数据
    本文详细介绍了如何利用Pandas直接读取和解析SQL脚本,提供了一种高效的数据处理方法。该方法适用于各种数据库导出的SQL脚本,并且能够显著提升数据导入的速度和效率。 ... [详细]
  • 本文将介绍网易NEC CSS框架的规范及其在实际项目中的应用。通过详细解析其分类和命名规则,探讨如何编写高效、可维护的CSS代码,并分享一些实用的学习心得。 ... [详细]
  • 本文将深入探讨如何在不依赖第三方库的情况下,使用 React 处理表单输入和验证。我们将介绍一种高效且灵活的方法,涵盖表单提交、输入验证及错误处理等关键功能。 ... [详细]
  • 本文介绍了一种根据用户选择动态切换屏幕界面的方法,通过定义不同的选择块(Selection Block),实现灵活的用户交互体验。 ... [详细]
  • 20100423:Fixes:更新批处理,以兼容WIN7。第一次系统地玩QT,于是诞生了此预备式:【QT版本4.6.0&#x ... [详细]
  • CentOS系统安装与配置常见问题及解决方案
    本文详细介绍了在CentOS系统安装过程中遇到的常见问题及其解决方案,包括Vi编辑器的操作、图形界面的安装、网络连接故障排除等。通过本文,读者可以更好地理解和解决这些常见问题。 ... [详细]
  • 本文详细介绍如何利用已搭建的LAMP(Linux、Apache、MySQL、PHP)环境,快速创建一个基于WordPress的内容管理系统(CMS)。WordPress是一款流行的开源博客平台,适用于个人或小型团队使用。 ... [详细]
  • Struts与Spring框架的集成指南
    本文详细介绍了如何将Struts和Spring两个流行的Java Web开发框架进行整合,涵盖从环境配置到代码实现的具体步骤。 ... [详细]
  • 解决SVN图标显示异常问题的综合指南
    本文详细探讨了SVN图标无法正常显示的问题,并提供了多种有效的解决方案,涵盖不同环境下的具体操作步骤。通过本文,您将了解如何排查和修复这些常见的SVN图标显示故障。 ... [详细]
  • 本文探讨了如何在iOS开发环境中,特别是在Xcode 6.1中,设置和应用自定义文本样式。我们将详细介绍实现方法,并提供一些实用的技巧。 ... [详细]
  • 本文探讨了高质量C/C++编程的最佳实践,并详细分析了常见的内存错误及其解决方案。通过深入理解内存管理和故障排除技巧,开发者可以编写更健壮的程序。 ... [详细]
  • 本文探讨了在Windows Server 2008环境下配置Tomcat使用80端口时遇到的问题,包括端口被占用、多项目访问失败等,并提供详细的解决方法和配置建议。 ... [详细]
  • 深入理解ASP.NET MVC中的_ViewStart.cshtml
    本文介绍了_ViewStart.cshtml文件在ASP.NET MVC 3.0及以上版本中的作用和使用方法。该文件位于Views目录下,主要用于统一配置视图布局和其他全局设置。 ... [详细]
author-avatar
Min2502857657_377
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有