点滴记录

记录我们的点滴心得~good good study,day day up~

1 前言

    本安装指南主要是是为了帮助您安装当前版本的Zen Cart应用程序或升级你的当前版本。

    PA-DSS(支付应用程序数据安全标准)

    您按照本实施指南的指示安装或升级您的Zen Cart应用程序,这是一个PA-DSS要求。

    还请注意,除非另有说明,本指南是应用与V1.5版本的Zen Cart程序。

2 安装要求

2.1安装之前,问一下自己下面的这些问题:

2.1.1你是否有一个域名?

    如果没有域名,停下来并查阅下面的2.2节为您的网站注册一个域名。您需要一个域名指向您服务器上的网店系统。

2.1.2 您是否有一个好的文本编辑器?

    如果没有,你将需要一个好的文本编辑软件(例如Notepad++, UltraEdit, Crimson Editor, BBedit, Kedit, 或者更高级的编辑工具如Eclipse等)。这个文本工具在你需要修改你的Zen Cart程序时会有很大帮助。

    注:请不要使用cPanel(或者任何基于web的工具)编辑文件,也不要使用MS Word或者其他设计花俏的软件,你只需要一个不会增加额外的"垃圾"文件的干净的文本编辑器。

2.1.3 您是否访问了你的虚拟主机的控制面板并创建数据库和帐号?

    在您开始安装之前,确保您可以访问MySQL数据库,并且有这个数据库的帐号和密码。您可能需要通过您的虚拟主机的控制面板去创建一个数据库。联系您的虚拟主机商获取帮助,Zen Cart不能为您创建一个数据库。

(您需要对数据库操作有如下的权限:SELECT, INSERT, UPDATE,DELETE, CREATE, ALTER, INDEX, DROP。但是像hSphere host这样的主机商,您可能需要做出更加通用的选择,可能是"all" or "dba"、但是至少需要有"read/write"的权限)。

2.1.4 您是否有一个可靠的FTP/SFTP 软件?

    如果没有,请停下来。您需要获得一个可靠的FTP/SFTP软件如:FileZilla、WinSCP或Transmit。这些软件主要是用来在您的电脑和你的虚拟主机之间传输文件。

(FTP是"File Transfer Protocol"的缩写)

("webserver"是指在互联网上的主机)

    您应该在安全的SFTP模式下使用您的ftp软件进行连接,关于FTP/SFTP怎么使用方面,可以从其他很多网站上查看教程。

    不管什么情况下,你都要使用SFTP代替FTP连接来使用,SFTP有如下的特点:

为什么要用SFTP和FTP做比较呢?

    纯FTP的模式下是通过明文传输文件的,而是用SFTP是使用的一个安全的加密方式进行传输。这点是非常重要的,特别是在你的电脑和服务器之间传输包含敏感信息的文件时。使用SFTP连接时您的数据都会被加密进行传输,从而保护文件不被窥视。

    许多兼容SFTP的FTP软件可以使用,免费的收费的都有。其中一个非常流行的免费软件是FileZilla,这个软件能运行在Windows和 Mac OS X两个系统。有些人更加喜欢更多功能的收费软件如Transmit等。

    注:如果你的主机商提供一个网页版本的上传服务或者ftp应用,我们强烈的建议您不要通过这个应用来传输大量的文件,他们也许能处理个别的文件,但是当上传大量的文件(如安装新的Zen Cart)时就不那么可靠了,他们会经常显示文件超时等错误信息,导致不可预知的文件错误。

    注意:在Dreamweaver的FTP功能不应该被用于大型上传就是类似的原因。

2.2 需要一个域名

    您将需要一个已经注册好的域名,用来访问您的网站。如果需要注册一个域名,请参见此网页的"注册域名"章节:http://www.zen-cart.com/partners

    临时使用一个ip地址来做初始化安装工作是可以的,但是网站上线的时候还是需要一个域名的。在有了域名以后需要手工去编辑您的网站上的configure.php文件。具体怎么去修改的的文件可以在http://tutorials.zen-cart.com这个网站上查到。

2.3 服务器硬件需求

    Zen Cart 不依赖于特定的硬件,只要您的主机服务器提供商提供的硬件能提供下面的软件需求。

2.4 服务器软件需求

    Zen Cart最低的软件环境:

  • PHP 版本 ≥5.2.3
  • MySQL 版本>4.1.3
  • Apache 版本>2.0

    推荐还是要使用最新版本的PHP/MySQL和Apache。

    注:我们推荐您使用Apache作为您的web服务软件,但是也能工作在IIS和其他的web服务软件下(如:nginx),但是一些安全功能可能会停用,并且一些特定的配置在软件使用的时候会要用到。关于.htaccess在安全保护方面更多的信息将在后面的章节介绍。

    你需要确认你的PHP文件是否已安装了如下模块:

  • cURL-一些购物和支付方式需要这个模块;
  • OpenSSH支持-通常都是编译到PHP里面了;

SSL

    除非你不会有任何客户通过互联网访问您的网站,你可能会想要给你的帐号增加一个SSL证书,一个共享的证书可以工作,我们建议使用独立的,因为它是为您的客户更加无缝的体验和更容易配置。
SFTP (Secure FTP)

    你需要确认你的主机商能够让你通过SFTP上传下载文件。

2.5 其他的安装需求

PA-DSS要求

    Zen Cart为了安全考虑使用Apache的.htaccess文件更好的保护一些目录。你应该确认能在你的web主机上能够使用.htaccess。如果不能确认可以找你的主机供应商确认。

    Apache必须配置AllowOverride为'All'或者至少要包含'Limit' and 'Indexes'参数。

    如果你没有使用Apache作为web服务软件而是使用像IIS和Nginx等,那么您应该用.htaccess类似的方式来保护目录。

    你的web服务器必须要能使用SSL来加密页面并且你应该有一个SSL证书正确的安装。如果你没有SSL或者不确定有,那么你比不必须再次联系你的主机商确认。

    你的主机服务商必须要提供使用SFTP服务上传下载文件。

 

继续阅读

门户等diy数据中会使用到的一个缓存数据blockclass,也就是DIY模块分类缓存,要知道此分类缓存最好的方式就是直接查看对应的代码了,在登录后台在“工具”->更新缓存里面可以更新DIY模块分类缓存,那就话不多说打开源文件一探究竟去了。

文件source\admincp\admincp_tools.php里面的关键处理代码就是下面的

if(in_array('blockclass', $type)) {
include_once libfile('function/block');
blockclass_cache();
}
具体实现在blockclass_cache()函数,此函数在source\function\function_block.php文件中定义~
接下来看文件里面做了写什么事情
1、读取文件夹/source/class/block/下面的子文件夹,看这些子文件夹(forum、portal、group等)就知道,用文件夹来区分不同的模块,如论坛相关模块、门户相关模块等等;
2、读取每个文件夹里面的blockclass.php文件,通过此文件读取类名称,如(论坛类、门户类);
3、继续循环子文件夹里面的文件,循环子文件夹里面的文件时做了如下的几个工作~
3.1、读取每个子文件,取得模块的类名和脚本名称(标识);
3.2、通过类名判断是否存在类,如果存在则判断是否存在name、blockclass、fields、getsetting、getdata这几个方法,name方法得到脚本的名称、blockclass得到模块名称、fields得到读取的字段名称、getsetting取得设置的参数、getdata取得模块数据;
3.3、继续取得其他的数据知道循环完成;
4、保存系统缓存就ok了;
源码里面包含了一个blockstyle.php文件现在还不知道干啥的来着~
 
文章为原创:转载请带本文连接 http://www.logdd.com/?p=136

续上篇分析,直接通过门户入口文件portal.php的代码分析一下discuz!x核心初始化流程。

require './source/class/class_core.php';
$discuz = & discuz_core::instance();
如果页面包含了如上两个文件,通过名字都能看的出嘛,核心类了~哈哈
那咱就直接拿class discuz_core这个核心类来开刀好了,总共包含11个初始化的过程;
1、_init_env(),顾名思义,初始化环境了,定义了DISCUZ_ROOT、MAGIC_QUOTES_GPC、ICONV_ENABLE、IS_ROBOT之类的一系列常量,设置全局变量$_G,$this->var=$_G,初始化时间戳、时区设置,取得客户ip地址等;
2、_init_config(),初始化配置信息,读取config/config_global.php文件,设置一系列的配置变量和常量;
3、_init_input()初始化用户访问请求数据,过滤$_GET、$_POST等请求数据,防止攻击和初始化数据;
4、_init_output()初始化输出设置,防止跨站攻击,判断是否启动zip输出等;
5、_init_db()初始化数据库连接;
6、_init_memory()初始化缓存,使用discuz_memory类判断使用的缓存类型,dzx现在支持memcache、eaccelerator、xcache三种加速方式;
7、_init_user(),初始化用户这个和以前的discuz论坛的时间方式基本相同,通过读取cookies解密以后根据设置的变量来判断用户是否已经登录,如果登录就写入登录信息;
8、_init_session(),初始化session,这个不多说了~看看就明白了;
9、_init_setting(),初始化设置变量,这里有一个重要的就是通过loadcache函数读取了需要的缓存变量;
10、_init_cron(),初始化计划任务了,看是否有那些需要定时执行的程序,如果到时间了就执行;
11、_init_misc(),初始化其他杂项,比如formhash、用户访问限制等;
 
基本流程就是上面这些了~
以后再继续深入门户生成代码罗!!!
 
文章为原创:转载请带本文连接 http://www.logdd.com/?p=131

 

discuz!x新版本出来以后一直没时间去看实现原理,因为可能会要使用来正好空出时间去跟了一下index.php文件代码,记录一下看到的过程~,不评论好坏,仅记录一些代码原理。

废话不多说了,index.php文件实现其实是一个超级简单的处理过程,通过判断访问的域名和请求变量进行不同的处理;

1、首先判断如果$_SERVER['QUERY_STRING']为数字变量直接进入home.php的页面进行处理(home页面的具体实现以后继续分析);

2、包含data/cache/cache_domain.php文件,此文件记录的就是一些域名的基本信息(默认首页、不能使用的二级域名、门户/论坛/家园等二级域名、频道域名等),通过对用户访问的域名来判断是否需要进行重定向或包含对于的请求文件;

3、用门户来做例子,如果用户访问的是门户域名就包含portal.php文件,此文件才开始真正的页面初始化工作~(初始化过程请看下回分解)

 

文章为原创:转载请带本文连接 http://www.logdd.com/?p=128

cloudflare貌似也是最近才听说的一个提供免费服务的CDN系统,当然也可以卖他的收费服务,收费服务的响应速度和监控时间间隔肯定是要好不少的了,不过免费的目前用起来也是非常稳定的,如果使用的国外空间在欧洲和美国中部可以使用加速。

cloudflare自己的介绍里面写的CloudFlare powered, this website will be accelerated and protected。主要是提供加速和保护功能,也可以节省空间带宽,也有抗D的空能了~因为用户访问的是cloudflare的服务器了;

cloudflare节点状态监控,看到节点里面有好几个地域,按道理来说国内访问应该是日本最快了,不过ping地址的时候感觉应该没有CDN定向到日本节点(或许也是免费和收费的差别吧^_^)

cloudflare注册和使用过程(超级简单)

1、注册地址https://www.cloudflare.com/sign-up.html,填写邮箱、帐号、密码、选择免费帐号提交就可以了;

2、会提示你添加需要做CDN的域名;

3、提交完成以后会自动读取你的域名的DNS记录,免去了设置A记录之类的麻烦,如果没有读取出来的就自行设置了~;

4、设置完成以后就发邮件给你要你修改DNS到cloudflare的DNS服务器JOSH.NS.CLOUDFLARE.COM和PAM.NS.CLOUDFLARE.COM;

5、域名生效以后就可以开始享受CDN的加速服务器罗~

统计功能

免费的帐号也是有分析功能的,不过统计是24小时一次,可以查看页面的访问情况、访问提速的情况、访问节省的流量等;

现在的博客就是使用了CDN功能,暂时蛮稳定的,推荐国外空间访问慢的使用,以后不要用了直接把DNS修改回来就行了很方便。

顺便提一下~看加速以后的http头发现nginx做的反向代理,看来nginx的反向确实很牛的说~

 

友情提示~ 

当用户访问网站时候网站上得到的ip是CloudFlare的ip地址,需要网站上做相应的判断才行!wordpress可以直接下载使用CloudFlare的插件

本文编译自TechCrunch原文《365 Days, $10 Million, 3 Rounds, 2 Companies, All With 5 Magic Slides》,由SocialCast创始人Tim Young撰写。文中讲述了他如何在一年内凭借5张幻灯片,通过3轮融资,为SocialCastabout.me获得$1000万风险投资的传奇。

一年内说服风投投资两个创业公司不是一件容易的事,其中的艰辛只有Tim Young知道,从中他领悟到融资过程中的许多注意事项,尤其是在与风投的首次接洽时。下面跟大家分享一下:

首次会面尽量避免使用投影仪

大多数风投在会议室中接待创业者。一般Young会带上自己的笔记本电脑和视频转接器。有一次拜访一家著名基金公司,Young忘记带视频转接器。此时,为了避免尴尬和麻烦,Young决定改变策略,直接用笔记本电脑向投资人演示幻灯片,当然这种情况仅适用于与2人以下的投资人会面时。结果证明笔记本演示的效果非常不错,而Young 也揽得一张风投协议。Young分析其原因在于当创业者与投资人一起聚集在笔记本面前时,彼此距离拉得更近,相对于距离较远的会议室模式,氛围更加融洽,更令人放松。

了解每个投资人的立场

每个投资人在了解创业公司时都有各自的出发点:有的人更关注产品或服务,有的人更注重财务,有的人一开始则更看重团队。创业者要先对自己的出发点有非常准确的认知,才能找到合适的投资人。你更愿意与自己出发点相似的投资人合作,还是更愿意与自己互补的投资人合作呢?在与会面之前,创业者应该对投资人的背景有一定了解。创业者可以通过投资人的工作经验来了解他们:他们之前是负责销售还是产品?他们整个职业生涯都是风投吗?从他们的工作经验你可以推测出每个人的思考方法和在企业建设中的专长。

首次会面中的幻灯片

与投资人的首次会面通常持续30分钟至1个小时,时间非常宝贵。为了给投资人留出足够的时间提出他们关心的问题,创业者一定要确保用简洁有力的陈述向投资人展示你的公司,激发起他们的兴趣,然后才能进入下一步。演讲者应当尽量避免在介绍的过程中陷入讨论或者技术性漏洞。

Young采取了非常极端的做法,他将所有的内容囊括在5张幻灯片中。他典型的开场白是:

“我用简短的5张幻灯片清晰地勾勒出我们的业务框架,跟各位分享一下”

做出这样的陈述之后,Young立刻注意到投资人表现得十分感兴趣。接下来就是这5张神奇的幻灯片,它们介绍了创业公司的愿景、策略、价值观和潜力。

 

继续阅读

yui 3.2.0框架的大部分内容出来都半年了,grids一直没有出新版本~,前几天终于出来了,现在有空就看了看框架结构,官方网站上也有很详细的说明滴,就是暂时没有和2版本一样的在线设计器了。
grids分两部分,yui3-g和yui3-u*,一个是网格一个是网格内的单元格,非常的通俗,所有的单元格的宽度都蚕蛹百分比来定义,网格可以被单元格切分为24份。
.yui3-u-1、.yui3-u-1-2……一直到.yui3-u-23-24
官方按照默认格式切分的例子:http://developer.yahoo.com/yui/3/examples/cssgrids/cssgrids-units_source.html
The only child elements (e.g. direct descendants) of a yui3-g should be yui-3-u-* elements. Any elements within a yui3-g need to be wrapped in a yui3-u-* of some kind, otherwise you may experience side-effects due to the layout system being used.
上面是官方晚上上的一个建议就是yui3-g里面的元素都要包含到yui3-u-*里面去
!不过看到另外一个实际的例子中貌似违反了这个规则~嘿嘿。
四个例子中有一个Fluid Page Template(非固定页面布局)又使用到了非常经典的负边距布局哦。
其他的就自己看官方,文档那是非常滴详细~

zencart很多配置信息存储在数据库表内,通过init_db_config_read.php文件来读取,主要读取两个表的配置信息

1、TABLE_CONFIGURATION(zen_configuration)表,此表保存的都是网店的全局配置信息,如商店名称、店主、语言、货币等信息;
2、TABLE_PRODUCT_TYPE_LAYOUT(zen_product_type_layout)表,此表主要是产品页面布局的一些信息,如是否显示型号、是否显示重量等;

两个表内的数据都只读出configuration_key和configuration_value两个字段,然后通过define定义为常量提供给模板使用;

zencart文件和数据库表名常量初始化工作由includes/init_includes/init_file_db_names.php文件来完成,主要做了三个工作,
1、包含includes/filenames.php文件,此文件定义了一系列的文件名常量;
2、包含includes/database_tables.php文件,此文件定义了系统自己的数据库表名称常量;
3、包含indludes/includes/extra_datafiles/目录下面的php文件,如果文件大于0字节,就include进来,主要用于用户自定义一些文件名和数据库表常量;

zencart在用户自定义方面做的还是非常不错滴~

ecshop做为国内最大的开源网店具有很强的定制特定,很大一部分个人店长都在使用,不过发现用ecshop做出来的模板出来色调以外其他的都是一样的,不方便做特别的设计。
后台模板设置的动态内容(分类商品、品牌商品、文章列表、广告位)只能使用同一个模板,也就是模板里面动态添加的内容都只能是同一个样式,只是内容不同而已。
查询数据库发现模板参数在数据库里面有一个library的字段是保存的模板文件名的,所以应该是可以通过后台做相应的修改~接下来就看代码了,修改起来也很简单。
修改两个文件就ok了~
1、修改ecshop\admin\templates\template_setup.htm,把默认的文件名修改为提交的文件名~
2、ecshop\admin\template.php文件修改,修改提交数据库语句~

2.7.2的utf8版本修改文件见附件,其他版本对照修改

需要注意填写的文件名一定要存在,否则提交以后无效。
ecshop后台动态lib 下载