More servicesWindows Live
HomeHotmailSpacesOneCare
 
MSN
Sign in
 
 
Spaces home  StylePhotosProfileFriendsBlog Tools Explore the Spaces community

Blog

July 01

搜索引擎排名39人谈

本文是 SEOMOZ 著名文章“Search Engine Factors” V2 版的中文翻译,该文是39位顶尖SEO专家的集体智慧,他们共同出列了一个可能影响 Google 搜索结果的52个排名因子清单,这份清单虽然并没有完全涵盖 Google 据称的200多个排名参考因素,但与 Google 搜索算法相关的 90%-95% 的知识已经包含其中。

52个排名因子中排名前10的正面因子

  1. Title 标签中关键词的使用
  2. 来自外部站点的链接中的锚链文字(Anchor Text)
  3. 站点被外部站点链接的广泛度
  4. 站点面世的时间
  5. 站内链接的广泛度
  6. 来自外部站点的链接的内容关联度
  7. 在同主题站点中的链接广泛度
  8. 在站点内文中关键词的使用
  9. 提供外部链接的站点的链接广泛度
  10. 链接的内容相关度

最具争议性的10个排名因子

  1. Google 通过人工审查给予一个站点的额外权重
  2. 用户搜索内容与站点主题之间的关联度
  3. 是否有链接买卖行为
  4. 相同标题与 META TAG 在多页中重复
  5. 提供外部链接的站点的链接广泛度
  6. 内容的质量
  7. 提供外部链接的站点的域名类型(org, edu, gov ...)
  8. 站点服务器的稳定程度
  9. 对垃圾站点的链接
  10. 站点域名的类型(org, edu, gov, com, net ...)

排名前5的负面因子

  1. 站点服务器不稳定
  2. 内容重复或抄袭
  3. 对垃圾站点的链接
  4. 参与链接买卖行为
  5. 相同标题与 META TAG 在多页中重复

39位为本文提供集体智慧的顶尖SEO专家

  1. Aaron Wall
  2. Andy Hagans
  3. Ani Kortikar
  4. Barry Schwartz
  5. Barry Welford
  6. Ben Pfeiffer
  7. Bill Slawski
  8. Caveman
  9. Chris Boggs
  10. Christine Churchill
  11. Danny Sullivan
  12. DazzlinDonna
  13. Debra Mastaler
  14. EGOL
  15. Elisabeth Osmeloski
  16. Eric Enge
  17. Eric Ward
  18. Guillaume
  19. Jeremy Schoemaker
  20. Jill Whalen
  21. Jonah Stein
  22. Joost de Valk
  23. Laura Lippay
  24. Lucas Ng (aka shor)
  25. Marcus Tandler
  26. Michael Gray
  27. Mike McDonald
  28. Natasha Robinson
  29. Neil Patel
  30. Rae Hoffman
  31. Rand Fishkin
  32. Roger Montti aka martinibuster
  33. Russ Jones
  34. Ruud Hein
  35. Scottie Claiborne
  36. Thomas Bindl
  37. Todd Malicoat
  38. Wil Reynolds
  39. Will Critchlow
May 14

会社設立

会社設立、売買、法人格の設立(NPO,LLP)などはわりと簡単に出来ますが問題はそのあといくら儲けるか、どうしたら会社が大きくなるかと云うことは、作ったあとのこととなりますので、要は会社設立する事や中古会社をリニューアルすることが先でしょう。

新規会社設立 - 株式 ・ NPO・LLP (貸金融業を除く)
会社M&A (会社買取・会社買収)、会社引継
増資、変更登記一般・有限から株式、脱サラ支援
記帳、決算書、資産表作、コンサルティング
転業、廃業、縮小合併、会社整理、個人から法人化へ
節税、相続(分納・代納)、納税相談,
銀行債務、一般債務の処理方法、任意整理
会社売ります、会社買います、会社設立方法
会社登記・会社登記代行・ 会社登録・会社登録代行
法人登記・法人登記代行・ 法人登録・法人登録代行
会社買取・会社買収・会社M&A・法人M&A・M&A東京
NPO法人設立代行、登記情報サービス、商業登記
会社設立による.投資経営ビザの.取得と手続き。

初期段階(創業)

会社設立支援
  設立書類の.作成を行います。
②間接業務代行
  スタートアップ時の人材不足を補うために、経理業務を代行します。
③資金調達支援
  公的資金や金融機関からの資金調達のため、事業計画書の作成
  及び金融機関との交渉を行います。
February 25

日本房地产

目前日本房地产是最佳投资时期,日本房地产魅力第一个:日本现在是世界第二位的GDP经济大国的不动产。日本的泡沫经济其实已经是过了二十年,现在是最好的购买时机,平均投资收益率是5%—9%,是安定的收益模式。这个是今年来讲我们算第一的,在两三年前10%是没有人会买的不动产。
  通过金融的运作有可能获得更大的收益,购买日本不动产可以获得的是什么呢?土地、楼房都是自己所有权。最主要的是日本房地产是楼房跟土地是自己的,你要决定怎么样是你决定的,不是政府决定的,土地是留给子孙的,不是留给政府的。
  希望您获得日本房地产
December 13

投资经营签证

中国人想要在日本经营公司, 投资经营签证是必须的.现在有很多中国人想在日本生活,学习日本的语言,文化,开始做日中贸易的中国人也越来越多了.申请投资经营签证最重要的是先成立日本公司.

考虑到将来银行融资、保证协会还有股票上市的问题最好是用相当于资本金1000万日元(没有1000万日元的情况也可相谈)的国债、股票等现货的方法来成立日本公司。除此之外不用花其他费用,一直到登记完了为止。而且根据新公司法的规定,不能成立的公司也可以作为中古有限公司买卖

公司买卖,从已有的50年以上历史的日本公司到成立不久的日本公司,OMC公司都会提供给你。

现阶段投资日本公司的最有利的条件在于日本高素质的人才以及广大而稳定的市场。要研发受日本市场欢迎的产品,在日本开发则更为有利。现在投资日本公司最多涉及到的是IT方面的投资。这些公司本身可能在日本有客户,为了更好地与客户开展合作关系,在日本投资就比较有利。

December 03

Google SERP中的“这个网站有可能会损害您的计算机”

Google会在某些装有“恶意软件”(木马、病毒、破坏性或其它有害脚本或程序等)的网页在搜索结果里标明“这个网站有可能会损害您的计算机”,英文为“This site may harm your computer”,如下图:

继而在SERP中打开这个网页,会出现:

很多人看到这一行,差不多就不会打开这个网站,也就是说,即使你的网站排名很高,也不会给你带来流量。

我试着在搜索引擎里面搜索“这个网站有可能会损害您的计算机”这个关键词,找到很多关于出现这个问题的网站,确实有些是网站被注入木马,而有些确实被冤枉的。

这个“冤枉”引起了一些人的愤慨,如你可以看看如下帖子:

谷歌(google)你这样算不算作恶?
Google,何时流氓起来了?

不过这些个“冤枉”在我看来,是没有做好脚本的控制的原因,并不等于说你的js对用户没有伤害、杀毒软件没有警告就说明你不该被Google这么处理,应该从自身网站上找原因,删除不必要的脚本,让自身网站更好的适应Google。不要把这些事情扯上“不作恶”的信条,不做恶针对的是最终浏览者,并不是网站主。

下面我们来分析一下造成“这个网站有可能会损害您的计算机”的脚本,主要是三种脚本:

1、iframe
2、js文件
3、flash文件

网页里面嵌入iframe和js文件本没有什么大不了的,但是做得不好会引发这个恶果。

1、先说说这个iframe,我们看看这个站点:www.usstf-opto.com,在他的源代码里面有这么一段代码:

  1. <iframe src=http://s5d.cn/back/help/help.htm width=0 height=0></iframe>

打开这个内嵌的网页,我们发现它还会内嵌一个iframe,他最终的网页其实也就说一个几行文字的网页,无不良代码,这说明,iframe内嵌的时候不要在内嵌的网页里面添加iframe或者js了,不然会被认为是恶意网页。

你可以看看像卓越网、当当网联盟的这些联盟广告的iframe,查看她的源代码就是纯粹的html代码,看看这个例子

2、js脚本。

这个就有很多了,关于js主要是对用户机器执行各种操作以及js里面嵌入别的js之类的。这里说一下这个站点:www.znwb.com,造成它被误杀的原因主要是51la的统计系统,代码如下:

  1. <script language="javascript" type="text/javascript" src="http://js.users.51.la/723598.js"></script>

而很多人投放51.la的统计系统没有任何问题,为这这个站点出问题了,在51la的论坛里面也有人提过这个问题,最后的讨论只能说是误杀。

3、flash文件。

这个比较典型的是www.zuowen168.com,他网页里面做了很多flash,而这些flash却是脚本控制的,整个网页都被认为是“恶意网页”,这个例子从上面所引用的文章中可以看到开发者的愤怒和无奈。

综合以上分析,告诉我们做网站的时候尽量少用iframe、js以及脚本控制的flash,搜索引擎喜欢简单的页面,网站不要做得那么花哨,有些功能纯粹是“炫耀”的东西大可不必做上去,那会冒很大的风险,“恶意软件”跟这些脚本本来就是差不了多少的,连杀毒软件都能误杀,何况搜索引擎判断恶意脚本呢?

如何去除“这个网站有可能会损害您的计算机”?

在Google的帮助里面有详细的文档,你可以点击这里查看,不再细述。

要注意的是,尽量删除你网页里面的“可疑代码”,向Google提交申请,Google会在一段时间内删除,请耐心等待。

作为SEOer,帮助客户去除“可疑代码”,也是其基本的业务之一。

November 09

IX Web Hosting 如何建立超过8个站点

用过的人都知道ixwebhosting主机目前能建立8个独立站点。那么如何才能建立超过8个站点呢?下面的方法可以实现。经验证在linux主机和windows主机上都可以实现。

过程:

  • 先为clickchina.biz设置好子域名test.clickchina.biz
  • 再将子域名test.clickchina.biz设置“域名别名”(Domain aliases)为62188.com

结果:

  • 通过浏览test.clickchina.biz与62188.com都可以访问到test.clickchina.biz网页目录里的文档

注意:

  • 如果是为子域名设置“域名别名”,请确保子域名站点是正常访问的
  • 子域名的添加,可能需要24小时后生效

参考:

November 08

FLASH 实现动态模糊效果

在一些片头动画里我们经常能看到很炫的模糊效果,极具视觉冲击。高质量的模糊效果大多利用PS处理后才导入flash中进行制作。其实,在flash中也可以利用其脚本功能来实现动态模糊的效果(效果还可以的)。 

·首先用PS,制作两张图。一张清楚的,一张模糊的(用高斯模糊)。

·然后把两张图片导入到FLASH中,分别建立三个图层,顺序依次为 :清楚的图片(最下面)、模糊的图片(在中间)、最上层为AS。 最重要一点:选中模糊的图片。按下F8将其转换为movieclip,同时在属性面板上将其实例名命名为blurred。

·在as层上加入代码如下。

var myColor:Color = new Color(blurred);
var white:Object = {ra:100, rb:255, ga:100, gb:255, ba:100, bb:255, aa:100, ab:255};
myColor.setTransform(white);
setc();
function setc(){
onEnterFrame = function(){
white.rb-=5;
white.gb-=5;
white.bb-=5;
white.ab-=5;
myColor.setTransform(white);
}
}

August 18

图片超过固定大小后,自动缩小

<img  src="path/filename"  onload="javascript:if(this.width>580)   this.width=580;" />

August 14

英文/简体系统安装繁体软件的解决方法

解决乱码的方法很多,最简单的方法就是把Windows的系统区域设置成该操作的区域,不过这样来回折腾也够麻烦的。虽说Windows 2000出现以来,系统预设的地区编码便可经由控制台来自行改变,但是更改需要重新启动系统,并且采用新的设定对系统的其它应用程序也有一定的影响,十分不方便。
微软开发了一个程序名叫“AppLocale”,类似 Windows XP 的基于 Unicode 的平台可按以下方法模拟运行非 Unicode 应用程序所需的语言环境,它可以让你的 Windows XP (或更新) 操作系统下,执行非系统预设的地区编码之程序,也就是说在繁体版的Windows XP下执行GB编码的程序后,此GB程序呈现出来的文字都将是工整的简体字,而不是乱码。AppLocale也可应用在其它各国的程序上,不管是日文、韩文、法文,都可适用,任何文字编码的程序都可借由它来正确地显示文字,享受原本只有 Unicode 的程序才有的好处,从此告别程序乱码的苦恼。有了AppLocale后,我们便可以指定某一程序,以指定的文字编码呈现,不需重新开机,也不会影响其它程序的运作。
安装完成后,打开他,点下一步,然后浏览,打开需要区域模拟的程序,点下一步,选择你要的语言,下一步,在"创建快界方式...."上打钩,点完成即可,以后要开,只要在开始..所有程序..Microsoft Applocale 里开就可了。
软件下载地址:http://www.skycn.com/soft/12582.html

August 08

1064 - You have an error in your SQL syntax, A Fix for this MySQL v 4.1.xx problem

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-20, 20' at line 1
followed by something like
select manufacturers_id, manufacturers_name, manufacturers_image, date_added, last_modified from manufacturers order by manufacturers_name limit -20, 20
or
select banners_id, banners_title, banners_image, banners_group, status, expires_date, expires_impressions, date_status_change, date_scheduled, date_added from banners order by banners_title, banners_group limit -20, 20
depending on which table you have deleted all records from.
To fix this
In admin/includes/classes find split_page_results.php and - BACK IT UP then find the lines
$offset = ($max_rows_per_page * ($current_page_number - 1));
$sql_query .= " limit " . $offset . ", " . $max_rows_per_page;
change to
$offset = ($max_rows_per_page * ($current_page_number - 1));
if ($offset < 0)
{
$offset = 0 ;
}
$sql_query .= " limit " . $offset . ", " . $max_rows_per_page;
MySQL 4.1.xx handles negatives correctly (by forcing an error) in the code above unlike earlier versions of MySQL.
ohmy.gif NOTE - I have NOT asked you to change catalog/includes/classes/split_page_results.php - If you have a problem on the catalog side you may want to try the same change in that file - I did and it went wrong so the change to my catalog/includes/classes/split_page_results.php file is a little more elaborate and I will share that here if it becomes an issue - but for now it seems people will mostly have a problem with empty files on the admin side.

OSC问题整理

一,如果在安装时出现

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of sscanf(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in c:\appserv\www\twe\twe_installer\includes\application.php on line 91

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of sscanf(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in c:\appserv\www\twe\twe_installer\includes\application.php on line 92

开启php.ini将

allow_call_time_pass_reference = Off

更改成

allow_call_time_pass_reference = On

这段php.ini中的默认值是Off,因为每个人使用的环境不同,所以设定会有差异,

有的虚拟主机已经将此设定开启,有的新安装在WINDOWS下的SERVER会因预设是Off而出现以上错误讯息,在安装中sscanf().函数主要是检查您使用的PHP版本.

以下是此段allow_call_time_pass_reference 的中文解说

; 是否强迫函数调用时按引用传递参数,在将来的PHP/Zend中,这一功能很可能不会再被支持,

; 建议您把此项设为Off,并在脚本中用函数声明此变量,以便在将来的PHP下正常运行.

二.注册页有发生执行错误

要继续吗

行206

不正确的字符

请开启lang/tchinese/tchinese.php

找出[stag]

define('ENTRY_DATE_OF_BIRTH_ERROR', ' (例:05/21/1970)');

define('ENTRY_DATE_OF_BIRTH_TEXT', ' (例:05/21/1970) 必填字段');[/stag]

更改成

[stag]

define('ENTRY_DATE_OF_BIRTH_ERROR', '(例:05.21.1970)');

define('ENTRY_DATE_OF_BIRTH_TEXT', '(例:05.21.1970)必填字段');

define('DATE_FORMAT', 'Y.m.d'); // this is used for strftime()

改成

define('DATE_FORMAT', 'm.d.Y'); // this is used for strftime()

这个地方可以自行搭配格式

[/stag]

三,进入后台时出现讯息

Fatal error: Class ADODB_Iterator contains 1 abstract methods and must therefore be declared abstract (Iterator::valid) in d:\AppServ\www\twecommerce\includes\classes\adodb\adodb-iterator.inc.php on line 46

下载start.zip

接压缩后将admin/start.php档案置换

四,安装时如果出现讯息

GDlib GIF-Support .............................. ERROR

You don't have GIF support within your GDlib, you won't be able to use GIF images, and GIF overlayfunctions in TWE-Commerce!

表示SERVER不支持gif档案,请勿使用.gif图文件当作商品图片,并于后台[图片设定]处清除掉所有关于[合并图片]的设定.

五,上传商品时的讯息

Warning: imagecreatetruecolor(): requires GD 2.0 or later in /home/httpd/html/twecommerce/admin/includes/classes/image_manipulator.php on line 57

当上传商品图片时产生类似错误讯息,表示你的GD版本小于2.0

解决方式:

下载image_manipulator.php解压缩后覆盖 we/admin/includes/classes/image_manipulator.php

如果SERVER不支持gif档案,请勿使用.gif图文件当作商品图片,并于后台[图片设定]处清除掉所有关于[合并图片]的设定.

六,请注意目前TWE 1.2不支持PHP5

七安装到步骤六 install_step6.php时,在我输入完相关数据后,出现错误:电子邮件格式错误。

是下方寄件人电子邮件格式错误

八进入后台出现 Cannot re-assign $this in :\AppServ\www\twecommerce\admin\includes\classes\upload.php on line 31

处理方式:

打开

admin\includes\classes\upload.php on line 31

$this = null;

改成

unset($this);

九,1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-20, 20' at line 1

处理方式:

打开admin/includes/classes/split_page_results.php

找出

$offset = ($max_rows_per_page * ($current_page_number - 1));

$sql_query .= " limit " . $offset . ", " . $max_rows_per_page;

改成

$offset = ($max_rows_per_page * ($current_page_number - 1));

if($offset<0) $offset=0;

$sql_query .= " limit " . $offset . ", " . $max_rows_per_page;

十,账单打印出现乱码

处理方式:

打开下列两个档案

templates/twe/module/print_order.html

templates/twe/module/print_product_info.html

找到

meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"

改成

meta http-equiv="Content-Type" content="text/html; charset=big5"

十一,在商品目录的地方会出现 html__head__/head__body_(输入的名称)_/body__/html_

处理方式:

开启

admin/categories.php

找出115行

'categories_description' => twe_big5_prepare_input($_POST['categories_description'][$language_id]),

改成

'categories_description' => twe_db_prepare_input($_POST['categories_description'][$language_id]),

十二,phpbb不输入电子邮件与密码直接按下登入就会出现bug

处理方式:

打开forum/login.php

找到

message_die(GENERAL_ERROR, 'Error in obtaining userdata', '', __LINE__, __FILE__, $sql);

改成

$message = $lang['Error_login'] . '

' . sprintf($lang['Click_return_login'], "", '') . '

' .sprintf($lang['Click_return_index'], '

answer by smilecome

十三,讨论区在登入注销时出现找不到网页,但是回到购物网却又已经登入或注销了

处理方式:

先在购物车前台以管理员身份登入,进入PHPBB后台 -> 基本组态,更改「网域名称」

网址路径要符合你现在的网站网址路径,ex:本机为"localhost"

十四,后台"内容管理员"右下角出现「错误:'offset Width'是null或不是一个物件」

十五,前台"出货方式"(checkout_shipping.php) 右下角出现「错误:'document.checkout_address.shipping.0'是Null或不是一个物件」

处理方式:

因程序代码无法贴上,改用结连方式

http://www.twecommerce.org/modules/ipboard/index.php?showtopic=1910&s=173a3a936cf205af39e29116e7cf1055

十六,SMTP能寄出信,但出现Warning

SMTP -> FROM SERVER: 220 mail.cssqn.net ESMTP SMTP -> FROM SERVER: 250-mail.cssqn.net 250-PIPELINING 250-8BITMIME 250-SIZE 10485760 250 AUTH LOGIN PLAIN CRAM-MD5 SMTP -> FROM SERVER: 250 ok SMTP -> FROM SERVER: 250 ok SMTP -> FROM SERVER: 250 ok SMTP -> FROM SERVER: 354 go ahead SMTP -> FROM SERVER: 250 ok 1099534874 qp 29400 SMTP -> FROM SERVER: 250 flushed

Warning: Cannot modify header information - headers already sent by (output started at /usr/local/apache2/htdocs/twisters/twosco/includes/classes/class.smtp.php:132) in /usr/local/apache2/htdocs/twisters/twosco/admin/includes/functions/general.php on line 146

处理方式:

SMTP mail SERVER如果都可以寄信可以将这两个档案

classes/class.phpmailer.php var $SMTPDebug = false;

classes/class.smtp.php var $do_debug = false;

十七,twe2.x后台新增商品,分级价格必须输入两次才能纪录下来

打开admin/categories.php

找出

$db->Execute("UPDATE personal_offers_by_customers_status_" . $group_data[$col]['STATUS_ID'] . " SET personal_offer = '" . $personal_price . "' WHERE products_id = '" . $products_id . "' AND quantity = '1'");

改成

$check_query=$db->Execute("SELECT quantity FROM personal_offers_by_customers_status_" . $group_data[$col]['STATUS_ID'] . "

WHERE products_id='". $products_id."'

and quantity='1'");

if ($check_query->RecordCount()<1) {

$db->Execute("INSERT INTO personal_offers_by_customers_status_" . $group_data[$col]['STATUS_ID'] . " (price_id, products_id, quantity, personal_offer) VALUES ('', '" . $products_id . "', '1', '" . $personal_price . "')");

}else{

$db->Execute("UPDATE personal_offers_by_customers_status_" . $group_data[$col]['STATUS_ID'] . " SET personal_offer = '" . $personal_price . "' WHERE products_id = '" . $products_id . "' AND quantity = '1'");

}

十八,PHPBB会出现,ERROR MSG 1062 - Duplicate entry 的错误讯息

这段时间许多朋友提到关于PHPBB会出现

ERROR MSG 1062 - Duplicate entry 的错误讯息

这是phpbb的session TABLE要重复写入相同ID的结果

这段程序是在forum/includes/sessions.php

$stored_customer_query = twe_db_query("select count(*) as count from " . TABLE_PHPBB_SESSIONS . " where session_id = '" . $session_id . "' AND session_ip = '".$user_ip."'");

$stored_customer = twe_db_fetch_array($stored_customer_query);

if ($stored_customer['count'] > 0) {

twe_db_query("update " . TABLE_PHPBB_SESSIONS . " set session_user_id = '" . $customers_id . "', session_start = '".$current_time."', session_time = '" . $current_time . "', session_page = '".$page_id."', session_logged_in = '". $login ."' where session_id = '" . $session_id ."' and session_ip = '".$user_ip."'");

} else {

twe_db_query("insert into " . TABLE_PHPBB_SESSIONS . " (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in) values ('" . $session_id . "', '" . $customers_id . "', '" . $current_time . "', '" . $current_time . "', '" . $user_ip . "', '".$page_id."', '". $login ."')");

}

其中第一段query是检查此USER的SESSION_ID与USER_IP在数据库是否存在

如果存在则用UPDATE的方式更新数据表

如果不存在则INSERT一个新的SESSION_ID

程序看似没有问题

但昨天 Alexander测试的结果只要重新整理几次就会出现该讯息

原因是$user_ip的变数不同了

目前不知是何原因会让USERIP变动

所以如果有此问题的朋友可以试试看将

$stored_customer_query = twe_db_query("select count(*) as count from " . TABLE_PHPBB_SESSIONS . " where session_id = '" . $session_id . "' AND session_ip = '".$user_ip."'");

改成

$stored_customer_query = twe_db_query("select count(*) as count from " . TABLE_PHPBB_SESSIONS . " where session_id = '" . $session_id . "'");

July 31

osCommerce简单模板制作系统STS

目录
1. 插件简介 1
2. STS的原理 2
3. STS 安裝 3
4. 使用STS模板系统 6
5. 参考 10
6. 对STS的评价 14
本插件可以让你轻易的利用设计好的HTML模板文件来控制osCommerce的首页版面的外观。达到轻松定制你的osCommerce的效果。你可以将版面上的各个Box模块放在HTML文件的不同的位置上,首页就会立即将你的修改显示出来。
1. 插件简介
STS 是Simple Template System的缩写,翻译成中文的意思是“简单模板系统”。软件系统的主题,或者叫做布景(Theme),对于许多使用过phpNuke或者是Xoops 的人都是十分的熟悉,布景对于这些建站系统来说已经有了完美的支持。但是对于osCommerce系统,根据开发计划,在Mile Stone 3(目前是 Mile Stone 2) 时才会支持基本的模板系统,也就是说可能要在 osCommerce 2.3 或 3.0 以后才会出现布景系统 (Theme),所以,如果要使用系统默认的布景功能,还需要等待一定的时间。
因此,在官方的外挂插件 (contributions)中,有两个模板功能的插件,对于osCommerce的阳春版面来说,是一个重新打造外观的最好选择。其中之一就是我们本文所提到的STS系统,另外一个时BTS(Basic Template System),我们会在另外进行介绍。
2. STS的原理
STS 的原理非常简单,使用一个标准的HTML文件(sts_template.html),更简单的说,你只需要会<table> <tr> <td> 等的 HTML的基本标记的用法就可以把 osCommerce原来的版面修改成另外一个样子,进行个性化的设计。
以osCommerce的基本版面来说,分成五个区域,包含:上,左,中,右和下区域,在STS系统中,将每个区域再进行细分,将细分的功能抽出来变成一个独立的参数。以上区域为例,我们可以看到这个区域内包括: Logo图片连接,我的帐户,购物车,内容以及结帐三个图片连接,导览列。因此,再STS系统中,一一对应了参数:$cataloglogo、$ myaccountlogo、$cartlogo、$checkoutlogo、$breadcrumbs。有了这些参数,可以将Logo放到 osCommerce系统版面的任何地方,不需要修改任何的osCommerce源码文件,对于不懂PHP的人最为适合,也是osCommerce现在定制修改的最佳方式。
看一下例子:
代码:
<html>
<body>
<table>
<tr>
<td>$cataloglogo</td>
<td>$myaccountlogo $cartlogo $checkoutlogo</td>
</tr>
</table>
<table>
<tr>
<td>$breadcrumbs</td>
<td>$myaccountlogoff | $cartcontents | $checkout</td>
</tr>
</table>
</body>
</html>
这是一个最简单的HTML文件,但却可以表现出osCommerce基本版本的上区域部分,而且只需要修改参数的位置或者改变<td>< tr>的样式,包括颜色,背景,对齐等属,就可以立即得到不一样的版面。同样,对于常见的问题,“如何将底部的Banner移到上区域中?”,使用 STS就可以将一切搞定。
目前STS提供了丰富的变量可以进行版面设计工作,导STS 2.01为止,甚至可以针对某一商品的分类或者某一商品制作特定的模板(template),预计以后会有更多的功能。
3. STS 安裝
STS 的安装相当简单,作者的说明文档中提供了两种安装方法,分别是干净的osCommerce安装和修改过的osCommerce安装,所谓干净的安装是指 osCommerce软件是从官方网站上下载,并且没有安装任何的插件的情况下进行的安装,对于安装了任何的插件模块,需要按照第二中方法进行安装。
第一步:下载STS插件
请直接导官方网站http://oscommerce.sunsite.dk/contributions/STS-2_01.ziphttp://www.oscommerce.com/contributions/STS-2_01.zip 下载软件到本地电脑,使用解压工具将文件解开。
第二步:备份原始文件
安装前请备份catalog/includes目录下的文件:
application_top.php
configure.php
header.php
column_left.php
column_right.php
footer.php
application_bottom.php
如果是远程的主机,需要将这几个文件下载到你自己的电脑上。
第三步:编辑STS的application_top.php文件,在最后一行 ?> 之前插入下列代码:
代码:
// STS: ADD
// Capture text between application_top.php and header.php
require(STS_START_CAPTURE);
// STS: EOADD
第四步:编辑configure.php文件,再文件的最后一行 ?> 之前增加如下代码:
代码:
// STS: ADD: Define Simple Template System files
define('STS_START_CAPTURE', DIR_WS_INCLUDES . 'sts_start_capture.php');
define('STS_STOP_CAPTURE', DIR_WS_INCLUDES . 'sts_stop_capture.php');
define('STS_RESTART_CAPTURE', DIR_WS_INCLUDES . 'sts_restart_capture.php');
define('STS_TEMPLATE_DIR', DIR_WS_INCLUDES . 'sts_templates/');
define('STS_DEFAULT_TEMPLATE', DIR_WS_INCLUDES . 'sts_template.html');
define('STS_DISPLAY_OUTPUT', DIR_WS_INCLUDES . 'sts_display_output.php');
define('STS_USER_CODE', DIR_WS_INCLUDES . 'sts_user_code.php');
define('STS_PRODUCT_INFO', DIR_WS_INCLUDES . 'sts_product_info.php');
// STS: EOADD
第五步:如果服务器再远程,使用更新工具上传你的文件。
第六步:使用浏览器打开osCommerce,如果可以正常浏览到网站,证明安装成功。
第七步:尝试修改catalog/includes/sts_template.html内的参数,可以使用dreamweaver 之类的编辑器打开文件,进行修改。
提示:如果安装失败,只需要将你备份的文件恢复即可。
干净模式的安装
安装之前同样需要备份上面提到的文件,然后将下列文件复制到include目录下即可:
application_top.php
header.php
column_left.php
column_right.php
footer.php
application_bottom.php
sts_start_capture.php
sts_stop_capture.php
sts_restart_capture.php
sts_display_output.php
sts_user_code.php
sts_template.html
configure-SAMPLE.php
说明: configure-SAMPLE.php 文件是一个范例文件,他说明了如何修改configure.php文件,修改主目录下的/includes/configure.php在最后一行 ?> 之前,插入下面的程序代码:
代码:
// STS: ADD: Define Simple Template System files
define('STS_START_CAPTURE', DIR_WS_INCLUDES . 'sts_start_capture.php');
define('STS_STOP_CAPTURE', DIR_WS_INCLUDES . 'sts_stop_capture.php');
define('STS_RESTART_CAPTURE', DIR_WS_INCLUDES . 'sts_restart_capture.php');
define('STS_TEMPLATE_DIR', DIR_WS_INCLUDES . 'sts_templates/');
define('STS_DEFAULT_TEMPLATE', DIR_WS_INCLUDES . 'sts_template.html');
define('STS_DISPLAY_OUTPUT', DIR_WS_INCLUDES . 'sts_display_output.php');
define('STS_USER_CODE', DIR_WS_INCLUDES . 'sts_user_code.php');
define('STS_PRODUCT_INFO', DIR_WS_INCLUDES . 'sts_product_info.php');
// STS: EOADD
注意: 不要修改admin/目录下的文件。
4. 使用STS模板系统
你可以用你喜欢的网页编辑软件,打开并修改主目录的/includes/sts_template.html 文件。
如果你想要加入新的函数区域或者样本参数,把它加入 sts_user_code.php 文件中。但如果你将拉升级这个插件,一定要记住,不能够覆盖这个文件,需要使用手工修改的方式。
为每一个页面设计一个模板文件(1.8版以后支持)
你可以为每一个档案都设计一个模板文家,方法如下:
1. 在osCommerce程序主目录下建一个名称为/includes/sts_templates/的文件夹
2. 将你的模板名称命名为xxx.php.htm
例如,你要专门针对index.php 建立一个模板文件,那么这个文件的名称就叫做/includes/sts_templates/index.php.html
3. 由于文件的名称已经改为.htm文件,所以服务器不会把它当作程序来执行
4. 如果没有找到对应的模板文件,那么系统会使用STS_DEFAULT_TEMPLATE这个文件来取代
为每一个主类别生成一个模板文件(2.0版本以后支持)
你可以为从首页进入的每一个主类别都设计一个模板文件。
1) 首页的模板文件是:
程序根目录的/includes/sts_template.html
2) 主类别的默认模板文件是:
根目录/includes/sts_templates/index.php.html
3) 各类别的模板文件:
以第二各类别为例,网址是index.php?cPath=2 ,那么对应的文件的名称就是
根目录/includes/sts_templates/index.php_2.html
4) 假设类别的网址是index.php?cPath=XX_YY ,那么对应的模板文件名字就是:
根目录/includes/sts_templates/index.php_XX-YY.html
产品信息模板(2.0版以后支持)
模板名称和位置如下:
根目录/includes/sts_templates/product_info.php.html
你可以修改项目参数和页面风格,所有参数在后面列出。
在下载的插件中,有一个叫做product_info.php.html-SAMPLE 的文件,这是一个例子,虽然设计的不是十分好看,但是可以作为参考。如果你要用它,需要将这个文件保存到相应的位置,并重新命名。
如何加入其他插件到首页的模板中? (以『首页登陆插件』为例)
首先完成『首页登陆插件』的安装。
这个插件可以从http://www.oscommerce.com/community/contributions,857上下载。
然后打开/includes/sts_template.html 这个文件,在你想要增加这个插件的地方加入$loginbox 。
然后编辑/includes/sts_user_code.php 文件,在最后一行php程序代码结束符号" ?>" 之前,插入下面的代码:
$sts_block_name = 'loginbox';
require(STS_START_CAPTURE);
require(DIR_WS_BOXES . 'login.php');
require(STS_STOP_CAPTURE);
$template['loginbox'] = strip_unwanted_tags($sts_block['loginbox'], 'loginbox');
结果显示如下:
结论:我们不需要修改includes/column_right.php 或 includes/column_left.php这两个文件,而是应该修改sts_user_code.php这个文件。
使用技巧
在你的模板文件的图片和样式表达上,尽量使用绝对的URL地址表示方法。
5. 参考
这里可以找到使用本插件的网站列表
http://www.diamondsea.com/sts/sites.html
插件地址:
http://www.oscommerce.com/community/contributions,1524
英文讨论区:
http://forums.oscommerce.com/index.php?showtopic=58541
调试
In the /catalog/includes/sts_display_output.php file you can see the
following settings (near the top of the file):
$display_template_output = 1;
$display_normal_output = 0;
$display_debugging_output = 0;
Display_Template_Output (the default setting) will cause it to display the
template versions of the pages.
Display_Normal_Output will cause it to display the non-template version of
the pages.
Display_Debugging_Output will cause it to display debugging information
showing all of the blocks of data that it is using and how it translates
them into template variables as well as some other runtime details.
You can use any or all of the settings in any combination. If you have both
Normal and Template output, the Template output will be displayed first.
远程调试
You can toggle the debugging options via URL options. You can use the
following parameters in your URL to turn on/off options from your browser
sts_template=1 Turns on the Template display
sts_template=0 Turns off the Template display
sts_normal=1 Turns on the Normal display
sts_normal=0 Turns off the Normal display
sts_debug=1 Turns on the Debugging display
sts_debug=0 Turns off the Debugging display
sts_version=1 Turns on Version Number display
sts_version=0 Turns off Version Number display
6. 对STS的评价
首先,STS安装和使用很简便,操作容易,定制功能强大,基本满足了我们的需要。
但是,需要使用者有HTML设计经验,商业用户使用的时候带来了一定的难度,如果为他做一个定性的评价:
功能:4(5分制)
安装时间:5分钟
难度:3(5分制)1->5由易到难

July 30

让作品居中显示方法

用CSS让元素居中显示并不是件很简的的事情--同样的合法CSS居中设置在不同谩骂中的表现行为却各有千秋.在Entomology时Hicks也自然遇到了这个问题,但幸运的是,他最终找到了一种临时补救措施.在介绍他的做法之前,让我们先来看一下CSS中觉的几种让元素水平居中显示的方法.
1.使用自动外边距实现居中
CSS中首先的让元素水平居中的方法就是使用margin属性--将元素的margin-left和margin-right属性设置为auto即可.在实际使用中,我们可以为这些需要居中的元素创建一个起窗口作用的div.需要特别注意的一点就是必须为该容器指定宽度:

view plaincopy to clipboardprint?

  1. div#container{  
  2. margin-left:auto;  
  3. margin-right:auto;  
  4. width:168px;  
  5. }  
div#container{
 margin-left:auto;
 margin-right:auto;
 width:168px;
}

图1演示了这种方法的实际效果,图中的蝴蝶图来自Hicks的作品.将该图版放置于一个div中,并使用自动外边距的方法让其居中显示.

在大多数主流浏览器中,这种方法都非常有效,即使是Windows平台上的IE6,在其标准兼容模式(complace mode)下也能够正常显示.但不幸的是,在更低版本的IE中,这种设置却并不能实现居中效果.所以若想在实际项目中使用这种方法,那么就要确保用户的 IE浏览器版本必须不低于6.0.
表中列出了觉浏览器对自动外边距居中的支持情况.
浏览器的自动外边距支持
Table 1. Browser Support for Auto Margins

Browser
Version
Support

Internet Explorer
7.0, compliance mode
Yes

Internet Explorer
7.0, quirks mode
No

Internet Explorer
6.0, compliance mode
Yes

Internet Explorer
6.0, quirks mode
No

Internet Explorer
5.5 Windows
No

Internet Explorer
5.0 Windows
No

Internet Explorer
5.2 Macintosh
Yes

Mozilla
All current versions
Yes

Mozilla Firefox
All versions
Yes

Netscape
4.x
No

Netscape
6.x+
Yes

Opera
6.0, 7.0 Macintosh and Windows
Yes

Safari
1.2
Yes

图1在IE中text-align实现居中。可以看到div中的文本也继承了居中的样式
尽管在扶持上不尽如人意,但大多数设计师都建议尽可能地使用这种方法.该方法也被认为是在各种用CSS实现元素水平居中方法中最正确,最合理的一种.
2.使用text-align实现居中
另一种实现元素居中的方法是使用text-align属性,将该属性值设置为center并应用到body元素上即可.这种做法是彻头彻尾的hack,但它却能兼容大多数浏览器,所以在某些情况下也自然必不可少.
之所以说这是hack,是因为这种方法并没有将文本属性应用到文本上,而是应用到了作为窗口的元素上.这也就是给我们带来了额外的工作.
在创建好布局必须的div之后,我们要按照如下代码为body应用text-align属性:

view plaincopy to clipboardprint?

  1. body{  
  2. text-align:center;  
  3. }  
body{
 text-align:center;
}

之后会出现什么问题么?body的所有子孙元素都会被居中显示图2

图2在IE中使用text-aling实现居中。可以看到div中的文本也继承了居中的样式
因此,我们就需要用再写一条规则,让其中的文本回到默认的居左对齐:

view plaincopy to clipboardprint?

  1. p{  
  2. text-align:left;  
  3. }  
p{
 text-align:left;
}
可以想象这条而加的规则将带来一些不便。另外,真正完全遵循标准的浏览器并不会改变窗口的位置,而只会让其中的文字居中显示。
3.组合使用自动外边距和文本对齐
因为文本对齐居中方式有着良好的向下兼容性,且自动外边距方式也被大多数当代浏览器支持,所以很多设计师将二者组合起来使用,以期让居中效果得到最大限度的跨浏览器支持:

view plaincopy to clipboardprint?

  1. body{  
  2. text-align:center;  
  3. }  
  4. #container{  
  5. margin-left:auto;  
  6. margin-right:auto;  
  7. border:1px solid red;  
  8. width:168px;  
  9. text-align:left;  
  10. }  
body{
 text-align:center;
}
#container{
 margin-left:auto;
 margin-right:auto;
 border:1px solid red;
 width:168px;
 text-align:left;
}
可是这始终是个hack,无论如何也算不上完美。我们还是需要为居中容器中的文本编写附加的规则,但至少在各个浏览器中看起来都不错。
4.负外边距解决方案
考虑Entomology的特殊挑战,Hicks决定用另外一种方案来实现页面居中--使用负外边距。
负外边距解决方案远不是仅仅为元素添加负外边距这么简单。这种方法需要同时使用绝对定位各负外边距两种技巧。
下面将介绍该方案的具体实现方法。首先创建一个包含居中元素的容器,然后将其绝对定位于相对页面左边缘50%的位置。这样,该窗口的左外边距将从页50%宽度的位置开始算起(图3)。

然后,将容器的左外边距值设置为负的容器宽度的一半。这样即可将该窗口固定在页面水平方向的中点(图4)。

下面就是Entomology所用到的CSS代码:

view plaincopy to clipboardprint?

  1. #container{  
  2. background:#ffc url(mid,jpg) repeat-y center;  
  3. position:absolute;  
  4. left:50%;  
  5. width:760px;  
  6. margin-left:-380px;  
  7. }  
#container{
background:#ffc url(mid,jpg) repeat-y center;
position:absolute;
left:50%;
width:760px;
margin-left:-380px;
}

看,没有任何hack!虽然这并不是首选的方案,但也是个不错的方法,且适用性极广--甚至在Netscape Navigator 4.x 中都没有任何问题,很令人吃惊,不是么?所以若想得到最广泛的浏览器支持,那么这种方法将会是最好的选择。
July 29

joomla安装过程中的故障和解决办法

第一步题外话:这几天想找个好的cms,在群里讨论大家都说joomla是很不错的。打开了官方页面一看真是简洁之极啊,很舒服。
我用英文版的演示
下载地址:http://joomlacode.org/gf/download/frsrelease/111/262/Joomla_1.0.12-Stable-Full_Package.zip
解压后上传到服务器在浏览器中打开
第一页中显示

第一项

Required Settings Check,是必须的设置。

configuration.php Unwriteable, 这个不用去理他。因为:You can still continue the install as the configuration will be displayed at the end, just copy & paste this and upload.
Session save path Unwriteable, 这是非常重要的,通常初次安装都会出问题。详细的解决办法在http://forum.mamboserver.com/archive/index.php/t-53532.html%3Cbr%20/t-19284.html
我归纳了一下
1 修改php.ini文件指定session.save_path = /tmp,将其文件夹下的属性改为777,重新启动apache
2.configure.php中加入 ini_set('session.save_path',"/root/yourtempdir"); /root/yourtempdir设置为可写777
1.需要很大的权限,也就是说你必须对服务器有完全控制权才可以做到
2.这个解决办法是帮助虚拟主机用户解决安装问题的,/root/yourtempdir 设置成你joomla在虚拟机的绝对路径。unix主机的用户一定不要忘记前面的/,否则出错很郁闷,我今天就把它丢掉了……

Recommended Settings Check,这是推荐的设置


这里面基本不用怎么改,就可以了。
我安装的时候提示了一个安全问题 Register Globals Emulation: OFF: ,这个我也不是很明白意思,不过感兴趣的可以去读下官方文档。
解决办法:找到joomla根目录中的globals.php,打开后修改define( 'RG_EMULATION', 1);为define( 'RG_EMULATION', 0);即可。

Directory and File Permissions Check,目录和文件的权限设置。

初次安装的全是Unwriteable,把提示的文件夹属性全部777
接着一路next就可以了,中间无非是写写数据库,管理员账号甚么的。
我安装到最后遇到: Your configuration file or directory is not writeable, or there was a problem creating the configuration file. You'll have to upload the following code by hand. Click in the textarea to highlight all of the code.
刚开始没仔细看以为是说拿把follow里的code将configuration给覆盖了,正确的做法应该是在joomla根目录新建configuration.php,并把框框里的一堆代码写进去。
end
不要忘记删除安装文件夹
July 28

空间转移具体教程

相信很多朋友都像我这样,先在本地建环境,然后把网站建好再上传上空间.但怎么挂上网呢?下面是我转移空间所总结出来的方法,有错误,请不吝指教.
方法1:如果你在本地可以使用joomlapack,那恭喜你,转移的过程像安装joomla一样简单.
方法2:如果你像我一样倒霉,那你唯有踏踏实实地一步步来.
1.先把网站上传到空间.可以使用PHPZIP来缩短上传时间,如果不是很大直接上传就可以了.
2.备份本地数据库,用phpmyadmin把JOS_前缀的表全部导出,然后imput进新的数据库里.注意:如果有错误,请不要担心,因为初期网站数据库还是比较小,比较容易导入.出现错误多是因为和其实论坛共用数据库.如果不影响网站运作,可以忽略.
3.关键的一步,修改configuration.php.找到下面的项进行对应修改.记得要用英文半角来输入.每句后面都有分号,不要漏掉单引号
$mosConfig_absolute_path = '网站的绝对路径; 例如: D:/wwwroot/,可以用探针或直接问空间商得到
$mosConfig_cachepath = '网站绝对路径/cache';
$mosConfig_db = '数据库名';
$mosConfig_host = 'localhost'; 一般不用改,有些特殊的空间要修改,一般会提示你.
$mosConfig_live_site = '你的域名';
$mosConfig_password = '数据库密码';
$mosConfig_smtphost = 'localhost'; 一般不用改
$mosConfig_user = '数据库用户名';

做到这里,网站已经可以打开,但还有几点要注意,网站慢了很正常为,因为本地没有网速问题,挂上网后,难免会慢,但有几个组件是需要输入绝对路径了,记得要改回来,比较重要的有joomlapack,jre cache.