日志存档:03, 2009
大家好,今天我们来解决上次遗留下的问题。上次我们谈到了如何从php脚本中往dwt模板中传参数,同时我们留下了两个问题,第一是dwt中有的地方是不可以编辑的;第二是往dwt中传参数并且让它显示,它不一定显示出来。 首先我们来讨论一下第一个问题——为什么有的地方不可以编辑。我们通过讨论index.dwt来分析一下这个问题的原因。在index.dwt中我们会看到好多形如 <!-- TemplateBeginEditable name="左边区域" --> <!-- TemplateEndEditable --> 这样的语句。如果对ecshop的后台的管理有点了解的朋友们对“左边区域”这几个字应该很熟悉吧!不错,在后台的模板管理->设置模板中你会看到如下的图片 从表面上看,大家都应该知道,比如“商品分类树”是在整个页面的中间区域显示。那么为什么在后台这边重新选择一下并且确定,在页面显示就会按照你的选择来显示呢了?它的实质是这样的,上面每个模块是对应一个库文件(就是theme下library下的lbi文件),当你把上面的这些按照你的布局设置好后点击确定,程序就会按照你的布局的选择将每个lbi文件的内容写入到index.dwt中,那么lbi文件中的内容往哪里写呢,这个时候上面的 <!-- TemplateBeginEditable name="左边区域" --> <!-- TemplateEndEditable -->
4条评论 »
在上一篇中给大家带来了ecshop的总体的框架。从总体上看ecshop,相信大家的思路应该很清楚。作为一个对开源项目修改者你来说,能对ecshop有个初步的了解就行了,下面我会给大家带来我在修改ecshop的过程中的一些体会。 记得在上一篇中我们聊到了Adobe的模板。下面我们来根据ecshop跟大家讨论一下模板。说到模板,这就是ecshop前台显示的主要文件,如果你能很好理解theme下模板文件和样式表文件,对于ecshop前台显示应该没有任何问题了。Ecshop中页面到底是怎么显示的呢?这个问题我们先放在一边,我们先研究一下ecshop是怎么将一系列从数据库中读取出来,然后传到显示页面中的。要解决这个问题我们要用根目录下的index.php和theme/default下的index.dwt来作为用例。之所以用对应的两个文件夹,是因为在index.dwt中要显示的数据是通过smarty从index.php中加载进来的。在index.php中有如下代码: $position = assign_ur_here();
$smarty->assign('page_title', $position['title']); // 页面标题
$smarty->assign('ur_here', $position['ur_here']); // 当前位置
首先它是调用函数assign_ur_here,这样得到了变量$position,在变量$position中有title和ur_here这两个变量。在index.dwt中会有如下代码:
1条评论 »
Ecshop包括的文件夹有admin、api、cert、data、images、includes、js、languages、plugins、temp、theme、wap、widget这些文件夹,和根目录下的所有.php文件。这些文件和文件夹组成了整个ecshop。如果从软件工程角度分析ecshop的话,ecshop的二级可以看成admin和前台两个部分。admin主要是面向服务端的,而前台是面向客户端的,这是这两个部分的最明显的差别。下面给出ecshop的二级流程图: 此二级流程图给出了admin模块、前台显示模块和数据库模块之间的一个关系。从上面的图示可以看出,admin模块要对数据库进行读和写,这里的读和写组成了整个的后台的管理,包括商品的增加和删减、留言的管理、订单的处理等等。前台模块也要对数据库进行读和写,它的读写主要是完成交易的过程,写的内容基本都是和商品数量、点击数量这些在商品交易中一定要改变的数字。在admin模块也可以对前台显示部分进行写,这个写的过程主要是完成前台显示方式的改变,比如admin模块可以选择模板;同样也可以改变每个小模块在某个页面中是否显示,以及显示的位置(如果显示)。
6条评论 »
glut是OpenGL应用工具包(OpenGL Utility Toolkit),它为OpenGL提供了一个简易的窗口平台,使程序员不用过多的关心与平台相关的窗口系统。 建立工程时,我们一般都建立控制台程序(在vc6中即console win32 application)来使用glut库,但是在控制台程序下,运行时都会跳出控制台窗口,很不美观,我们可以用下面的方法将控制台窗口去掉: #pragma comment( linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) 在主函数所在的.cpp文件的顶部加上上面的宏,就可以轻松将控制台窗口去掉,这样就只剩下glut窗口了。
发表评论 »
Wind River的编码习惯 1.1 介绍 本文档详细说明了Wind River的C代码和包含在代码中的附加文档的编写习惯。 这些习惯是特意约定的,不全,但是能写出更高质量的代码。每一个源模块必须包含某些基本的文档,并且这些代码和文档必须具备一个好的格式以便于阅读和理解。这些习惯也用来在不同的程序员之间提供一个统一的编码标准,这样就能减少在别人的代码上工作时因为不同的代码风格所做的额外调整。同时,也能允许对代码的自动处理。比如,可以写一些程序来自动生成参考手册,模块摘要,更新说明等。 本文档所描述的编码习惯由以下两部分组成: l 文件标题:无论什么编程语言,在每一个源文件的头部都有一个统一的标题说明 l C代码习惯 1.2 文件标题 每一个包含C代码的文件,不管它是头文件,资源文件,或者是一个使用主机工具、库例程或应用程序的文件,都必须包含一个标准的文件标题。 文件标题由下面描述的几块组成,这些块由一个或几个空行分开,但是在每一个块里面不能有空行,以便于文件标题的自动处理。 l 名称:由一行注释组成,包含工具,库或应用程序的名字,以及一个简短的描述。名字必须跟文件名一样。这一行将变成自动处理后的参考条目和索引中的名称。 l 版权:由一行注释组成,包含适当的版权信息。 l 更改历史:包含一个注释块,就是C语言中的多行注释。更改历史中的每一个条目包含版本号、更改时间、更改人和有关更改内容的完整描述。 版本号由两个阿拉伯数字和一个字符组成(例如,03C)。字符的增加表示一个内部的改动(小的改动),数字的增加表示一个大的改动,特别是改变了模块的外部接口。 下面是一个标准的C源文件的文件标题的例子: ...
发表评论 »
#define FALSE 0
#define TRUE 1
#define N 2 /* 进程数 */
int turn; /* 轮到谁了? */
int interested[N]; /* 所有值初始为0(FALSE)*/
void enter_region(int process) /* 进程号为0或1 */
{
int other; /* 另一个进程的进程号 */
other = 1 - process; /* 另一个进程 */
interested[process] = TRUE; /* 标识出希望进入临界区 */
...
发表评论 »
1 简介 提供从宿主机到目标机之间的一个命令 shell。WindSh 是一种非常受欢迎的开发工具,它具有很强的交互性和可操作性,允许用户调用内存中的应用程序模块或是 VxWorks模块中的任何例程。它不但具有一般命令语言的功能,而且也具有 C 语言的设计特点,能够解释几乎任何 C 语言表达式, 执行大多数 C 语言算子,解析符号表数据。对初用者来说,WindSh学习起来比较简单,使用比较方便,对熟练用户而言,则有较为高级的手段可以应用。 WindSh是一个驻留在主机内的C语言解释器,通过它可运行下载到目标机上的所有函数,包括VxWorks和应用函数。Tornado外壳还能解释常规的工具命令语言TCL。 WindSh不仅可以解释几乎所有的C语言表达式,而且可以实现所有的调试功能。它主要有以下调试功能:下载软件模块;删除软件模块;产生任务;删除任务;设置断点;删除断点;运行、单步、继续执行程序;查看内存、寄存器、变量;修改内存、寄存器、变量;查看任务列表、内存使用情况、CPU利用率;查看特定的对象(任务、信号量、消息队列、内存分区、类);复位目标机。 2 启动和终止 启动:命令行方式为:windSh phobos(目标服务器名称);菜单Tool->Shell;工具条。 终止: 快捷键[Ctrl+D];命令exit() 或 quit()。 3 Shell特性 I/O重定向: 程序员常常调用例程从标准输入接收数据或在标准输出显示数据,缺省情况下,标准输入输出流被定向到 Tornado Shell。 使用Tcl过程 shConfig 修改WindSh 环境变量 SH_GET_TASK_IO,实现I/O复位向。 路径与符号补齐: 键入任何符号或存在的路径名的开始部分,然后键入[Ctrl+D], Shell会自动补齐命令或路径名。 并且可以继续键入若干字符后加上 [Ctrl+D] 知道命令或路径完整为止。 ...
发表评论 »
Tornado2.2 for pcPentium的安装和使用流程 一、安装Tornado2.2 for PcPentium和BSP 1、安装时需要install key,:cAQ8i-qP2I&-g$vT6-3&gjw-bEk9g 2、在C盘建立一个flexlm文件夹,将license.dat拷贝进去 3、安装完毕后,如果从开始菜单直接运行tornado,会提示错误,这是因为安装还没有完成, 在C盘Tornado2.2文件夹下你会发现一个setup.log文件,用ultraedit或vim打开, 在最后一行你会发现一个注册表键值,进入注册表,找到这个键值,将其值修改为: c:\flexlm\license.dat,OK! 4、直接安装bsp,install key:A7KbB-Rd37p-hNFBE-kzgaT-b9gpC ...
发表评论 »
一、官方的Program Guide 位于安装目录下:\docs\vxworks\guide\index.html 二、常用的库: #include "taskLib.h" /* 任务 */ #include "msgQLib.h" /* 消息队列 */ #include "semLib.h" /* 信号量 */ #include "ioLib.h" /* IO */ #include "wdLib.h" /* Watch dog ...
发表评论 »