解决zen-cart乱码问题

September 1st, 2010 1 comment »

admin prefile. 将languages/english.php 编码设置为UTF-8

编辑*.SQL文件. 看是否需要加前缀. 首行设置SET NAMES ‘utf8′;

在PHPMYADMIN中运行.

OVER.

延伸阅读

URL 301 重定向 htaccess

August 31st, 2010 No comments »
打开.htaccess文件,加入以下规则。(下面的规则是针对主域名的,子域名要修改)
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
2.重定向www.domain.com到domain.com
RewriteEngine On
RewriteCond %{HTTP_HOST} !^domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]
3.重定向olddomain.com到www.newdomain.com
RewriteEngine On
RewriteCond %{HTTP_HOST} !olddomain.com$ [NC]
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [L,R=301]
4.重定向olddomain.com to newdomain.com
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !olddomain.com$ [NC]
RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R=301]
5.重定向domain.com/file/file.php 到 otherdomain.com/otherfile/other.php
RewriteCond %{HTTP_HOST} ^www.domain.com$
RewriteRule ^file/file.php$ http://www.otherdomain.com/otherfile/other.php [R=301,L]

position absolute css

August 31st, 2010 No comments »

默认的属性值都是static,静态。就不用多说了。最关键的是
relative(相对)以及absolute(绝对)。
往往我们如果是COPY别人的代码,会把absolute属性与left、top配合起来制作相关的“悬浮层”效果。然而有时候我们需要针对某一个容器的悬浮效果,而不是针对窗口的。这时候通过高度、宽度的计算不但麻烦,而且几乎无法完美实现效果。我一开始也无能为力,后来发现只要把其上一级的样式属性position设置为relative就可以了

也就是说,position的属性值的效果,直接受其容器样式中position属性值影响。
例如如下A-B的嵌套结构

mysqldump 使用

August 30th, 2010 No comments »

最常见的mysqldump使用可能制作整个数据库的一个备份:

mysqldump –opt database > backup-file.sql

但是它对用来自于一个数据库的信息充实另外一个MySQL数据库也是有用的:

mysqldump –opt database | mysql –host=remote-host -C database

由于mysqldump导出的是完整的SQL语句,所以用mysql客户程序很容易就能把数据导入了:

shell> mysqladmin create target_db_name
shell> mysql target_db_name < backup-file.sql
就是
shell> mysql 库名 < 文件名

================================
几个常用用例:

1.导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.导出一个数据库结构
mysqldump -u wcnc -p -d –add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql

-d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table

4.导入数据库
常用source 命令
进入mysql数据库控制台,
如mysql -u root -p

mysql>use 数据库

然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source d:\wcnc_db.sql

1.导出结构不导出数据

mysqldump -d 数据库名 -uroot -p > xxx.sql

2.导出数据不导出结构

mysqldump -t 数据库名 -uroot -p > xxx.sql

3.导出数据和表结构

mysqldump 数据库名 -uroot -p > xxx.sql

4.导出特定表的结构

mysqldump -uroot -p -B数据库名 –table 表名 > xxx.sql

C:\Documents and Settings\Administrator>
mysqldump -h192.168.0.81  –hex-blob=true -uroot -p  database tablename >d:\blob.sql

mysqldump -h192.168.0.81 -uroot -p –hex-blob=true database> d:\coolink.sql

将左侧菜单全部改成图

August 15th, 2010 No comments »

sideboxes/tpl_categories.php

if ($box_categories_array[$i]['current']) {
if ($box_categories_array[$i]['has_sub_cat']) {
$content .= '' . $box_categories_array[$i]['name'] . '';
} else {
$content .= '' . $box_categories_array[$i]['name'] . '';
}
} else {
$content .= '< img src="../images/menu/' . $new_style . '.jpg" />'/* . 'top down'*/;
}

在商品页随机显示一定数量的同类产品

July 26th, 2010 No comments »

1, 创建一个新文件 随意命名 没重复就行 例如:tpl_product_info_similar.php
复制该文件到includes\templates\你的模板\templates\目录下
打开该文件,把以下代码复制进去并保存
» Read more: 在商品页随机显示一定数量的同类产品

ZenCart源代码的思想笔记

July 26th, 2010 1 comment »

阅读代码笔记:

1\newimg imgedit等值是提交表单对应的表单值.

2\初步判断,dmz_cache的图片也是这个ih组件来控制来生成.

3\所有图片的操作,都是由这个image handles模块来控制,而那个includes的下面的configure.php都是一个路径变量的设置,以及数据库连接参数的设置.

4\include下面的class 以及Fuction都是一些常用操作功能的设置.包括.图片一部份节能处理操作.

5\图片上传调用的类是includes/class下面的upload.php类文件.

6\阅读数据库,熟悉数据表,特别是数据表名以数据字段,熟悉之,更方便读懂源代码!

7\刚刚发现,俺一直疑惑看源代码里的SQL语句时,总找不到执行操作的表.原来是SQL语句中都加了前缀,例如table_tablename 等.正克确而实际的数据名是tablename.
现在问题就是仍然搞明,他们文件是如何调用与转移的?明白这点,就好写代码?

8\经过测试,现在已经解决图片复制其它目录的问题.而且经过观察,相应的img录,dmz_cache目录也可以看到生成的缓存图片.感觉工作已经完成一大半.只余下最后一步,就是将生成的加水印的图片放到本地网站的images目录下面,方便以后查询调用.并且,要判断,本地有的,就从本地但读取,本地没有的,才从远程的图片目录调用.是事情就这样简单吗?

9\那么俺应该再精读源代码,如果以前是走马观花地阅读,是大概级阅读,那么现在就是代码级阅读.那就先从Fuction,再读class.再读ih2模块.
10\ 阿mark说要改变那些加密过的字符为自已定制的字符,这个比较难实现.因为MD5加密的字符都是随机的.不能让MD5加密的字符完全符合自已的要求.除非取消MD5加密.而将后缀名改为按提交时间或者按产品目录分类来定义吧.
11\ Zen Cart是基于面向对象,也就是OOP来开发的.刚刚发觉这种写法的一样好处,就是代码比较精练,没有冗余代码设置.
» Read more: ZenCart源代码的思想笔记

Google Namebench

July 23rd, 2010 No comments »

http://code.google.com/p/namebench/

与另一款网站测速工具 Pingdom Tools 不同的是,HostTracker 采用分布式的测速方案。通过布置在全球范围内的几十台服务器来测试网站的访问速度,更有针对性和参考性。

相比 Pingdom Tools 强悍的网页元素的加载测试,HostTracker 在这方面没有多少优势。但重要的是它能了解不同网络环境下的访问速度,包括能否成功访问,响应时间,数据传输速度等参数。两款工具结合测试,效果更佳。

此外,HostTracker 支持站外按钮调用,点击右侧工具 “Get button code” 即可配置。允许自定义调用图标和文字信息,非常方便。

官方主页:host-tracker.com

ecshop收货人信息二次开发

July 16th, 2010 No comments »

ecshop电子商务系统里面,ecshop收货人信息其实是存在很大缺陷的,ecshop 二次开发的过程中,我们也常常修改ecshop收货人信息.比如卖花的行业,他们需要知道送花人,送花人的电话和送花的确切时间, 首先是在flow.php?step=consignee里面,就是用来增加收货人地址的.

1:首先二次开发修改ecshop数据库

alter table dyh_order_info add column buy_real_name varchar(200), add column buy_real_phone varchar(20)

2:在consignee.lbi中增加

订货人姓名: 订货人电话:

3:ecshop的flow.php中增加以下

‘buy_real_name’ => empty($_POST['buy_real_name']) ? ” : $_POST['buy_real_name'],

‘buy_real_phone’ => empty($_POST['buy_real_phone']) ? ” : $_POST['buy_real_phone'],

4:在flow.php中的done中,记录订货人信息

5:order_info.htm中显示订货人信息

订货人姓名:
{$order.buy_real_name|escape}
订货人电话:
{$order.buy_real_phone|escape}

通过以上思路和流程,我们就完成了ecshop二次开发收货人插件的制作.

删除IMAGE HANDLER2 SQL

July 16th, 2010 No comments »


DELETE FROM configuration WHERE configuration_key = 'LARGE_IMAGE_MAX_WIDTH';
DELETE FROM configuration WHERE configuration_key = 'LARGE_IMAGE_MAX_HEIGHT';
DELETE FROM configuration WHERE configuration_key = 'SMALL_IMAGE_FILETYPE';
DELETE FROM configuration WHERE configuration_key = 'SMALL_IMAGE_BACKGROUND';
DELETE FROM configuration WHERE configuration_key = 'WATERMARK_SMALL_IMAGES';
DELETE FROM configuration WHERE configuration_key = 'SMALL_IMAGE_QUALITY';
DELETE FROM configuration WHERE configuration_key = 'MEDIUM_IMAGE_FILETYPE';
DELETE FROM configuration WHERE configuration_key = 'MEDIUM_IMAGE_BACKGROUND';
DELETE FROM configuration WHERE configuration_key = 'WATERMARK_MEDIUM_IMAGES';
DELETE FROM configuration WHERE configuration_key = 'MEDIUM_IMAGE_QUALITY';
DELETE FROM configuration WHERE configuration_key = 'LARGE_IMAGE_FILETYPE';
DELETE FROM configuration WHERE configuration_key = 'LARGE_IMAGE_BACKGROUND';
DELETE FROM configuration WHERE configuration_key = 'WATERMARK_LARGE_IMAGES';
DELETE FROM configuration WHERE configuration_key = 'LARGE_IMAGE_QUALITY';
DELETE FROM configuration WHERE configuration_key = 'WATERMARK_GRAVITY';
DELETE FROM configuration WHERE configuration_key = 'IMAGE_MANAGER_HANDLER';
DELETE FROM configuration WHERE configuration_key = 'DIR_FS_IMAGE_MAGICK';
DELETE FROM configuration WHERE configuration_key = 'DIR_FS_IMAGE_MAGICK_LIB';
DELETE FROM configuration WHERE configuration_key = 'SHOW_UPLOADED_IMAGES';
DELETE FROM configuration WHERE configuration_key = 'CLONE_IMAGE_DIR_OWNER';