<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>shooting's sky &#187; zen cart</title>
	<atom:link href="http://anfirst.cn/archives/tag/zen-cart/feed" rel="self" type="application/rss+xml" />
	<link>http://anfirst.cn</link>
	<description>专心每一天</description>
	<lastBuildDate>Fri, 11 May 2012 04:49:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>有关IIS下zencart的伪静态设置</title>
		<link>http://anfirst.cn/archives/936</link>
		<comments>http://anfirst.cn/archives/936#comments</comments>
		<pubDate>Sat, 16 Jan 2010 07:27:43 +0000</pubDate>
		<dc:creator>shooting</dc:creator>
				<category><![CDATA[zencart项目]]></category>
		<category><![CDATA[学习笔记]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php编程]]></category>
		<category><![CDATA[zen cart]]></category>
		<category><![CDATA[正则]]></category>

		<guid isPermaLink="false">http://anfirst.cn/?p=936</guid>
		<description><![CDATA[公司的zencart 项目放在了window2003的服务器上，为了seo的考虑，开启了搜索引擎优化模块，可是碰到了一个问题，url的伪静态是通过网站根目录下的.htaccess文件来实现的，这需要apache的rewrite模块，可是iis中怎么实现？其实可以通过iis的ISAPI_Rewrite扩展来实现，下载一个ISAPI Rewrite的安装包，Lite免费版本ISAPI_Rewrite Lite (freeware)即可。安装运行后，打开IIS，在网站单击右键选属性，就可以看到ISAPI_Rewrite已经被加入到了ISAPI筛选器中。在ISAPI_Rewrite的安装目录下，找到 httpd.ini 在此文件中输入Rewrite的规则即可，这里的规则基本跟apache的rewrite差不多，不过在我的测试过程中，发现了一些问题，例如http.ini中不能使用%{QUERY_STRING}这样的服务器变量，也不知道是不是我服务器配置的原因，这里我对 zencart 里的.htaccess文件需要经过一些修改解决了这个问题 RewriteRule ^(.*)-p-(.*).html$ index\.php?main_page=product_info&#38;products_id=$2&#38;%{QUERY_STRING} [L] 修改为，无非是一个简单的正则替换 RewriteRule ^(.*)-p-(.*).html(\?(.*))?$ index\.php?main_page=product_info&#38;products_id=$2&#38;$4 [L]]]></description>
			<content:encoded><![CDATA[<p>公司的zencart 项目放在了window2003的服务器上，为了seo的考虑，开启了搜索引擎优化模块，可是碰到了一个问题，url的伪静态是通过网站根目录下的.htaccess文件来实现的，这需要apache的rewrite模块，可是iis中怎么实现？其实可以通过iis的ISAPI_Rewrite扩展来实现，下载一个ISAPI Rewrite的安装包，Lite免费版本ISAPI_Rewrite Lite (freeware)即可。安装运行后，打开IIS，在网站单击右键选属性，就可以看到ISAPI_Rewrite已经被加入到了ISAPI筛选器中。在ISAPI_Rewrite的安装目录下，找到 httpd.ini 在此文件中输入Rewrite的规则即可，这里的规则基本跟apache的rewrite差不多，不过在我的测试过程中，发现了一些问题，例如http.ini中不能使用%{QUERY_STRING}这样的服务器变量，也不知道是不是我服务器配置的原因，这里我对 zencart 里的.htaccess文件需要经过一些修改解决了这个问题</p>
<blockquote><p>RewriteRule ^(.*)-p-(.*).html$ index\.php?main_page=product_info&amp;products_id=$2&amp;%{QUERY_STRING} [L]</p></blockquote>
<p>修改为，无非是一个简单的正则替换</p>
<blockquote><p>RewriteRule ^(.*)-p-(.*).html<strong>(\?(.*))?</strong>$ index\.php?main_page=product_info&amp;products_id=$2&amp;<strong>$4</strong> [L]</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://anfirst.cn/archives/936/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>zen cart 中使用自定义 session</title>
		<link>http://anfirst.cn/archives/816</link>
		<comments>http://anfirst.cn/archives/816#comments</comments>
		<pubDate>Fri, 04 Sep 2009 16:07:18 +0000</pubDate>
		<dc:creator>shooting</dc:creator>
				<category><![CDATA[zencart项目]]></category>
		<category><![CDATA[全部文章]]></category>
		<category><![CDATA[学习笔记]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php编程]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[zen cart]]></category>

		<guid isPermaLink="false">http://anfirst.cn/?p=816</guid>
		<description><![CDATA[    上次给zen cart添加图片验证码功能的时候同时碰到了一个问题，自己定义的session在zen cart程序中读取不到值，后来分析了一下得出如下结论。     zen cart自定义了session的处理函数，session_save_path设在了/cache/文件夹，在include/configure.php里有个选项 define(&#8216;STORE_SESSIONS&#8217;, &#8216;db&#8217;); // use &#8216;db&#8217; for best support, or ” for file-based storage 设置session的保存方式。     不同的程序间要想共享session数据，至少要遵循以下几个条件：session_save_path 相同，session_id相同，当然session的保存方式肯定要一样，php默认的session保存方式就是文件存储，而保存目录就在系统的临时目录。     这里我们要想zen cart 读取到我们自己定义的 session变量，就需要我们在自己的程序里把session的存储目录放到zc目录下的cache文件夹，例如 session_save_path(&#8216;e:/zc/cache&#8217;)，然后修改zc/include/configure.php文件中 define(&#8216;STORE_SESSIONS&#8217;, &#8216;db&#8217;); 修改为 define(&#8216;STORE_SESSIONS&#8217;, ”);这样就让zen cart的session也以文件形式存储，就可以实现自定义session的共享了！     以上的原理适用于其他类似的不同程序间session共享的问题，其实 zen cart中使用自定义 session的最简单的方法是 直接在自己的程序最顶部 require进来zen cart 的application_top.php即可，简单固然简单，但了解原理更重要！]]></description>
			<content:encoded><![CDATA[<p>    上次给zen cart添加图片验证码功能的时候同时碰到了一个问题，自己定义的session在zen cart程序中读取不到值，后来分析了一下得出如下结论。</p>
<p>    zen cart自定义了session的处理函数，session_save_path设在了/cache/文件夹，在include/configure.php里有个选项 define(&#8216;STORE_SESSIONS&#8217;, &#8216;db&#8217;); // use &#8216;db&#8217; for best support, or ” for file-based storage 设置session的保存方式。</p>
<p>    不同的程序间要想共享session数据，至少要遵循以下几个条件：session_save_path 相同，session_id相同，当然session的保存方式肯定要一样，php默认的session保存方式就是文件存储，而保存目录就在系统的临时目录。</p>
<p>    这里我们要想zen cart 读取到我们自己定义的 session变量，就需要我们在自己的程序里把session的存储目录放到zc目录下的cache文件夹，例如 session_save_path(&#8216;e:/zc/cache&#8217;)，然后修改zc/include/configure.php文件中 define(&#8216;STORE_SESSIONS&#8217;, &#8216;db&#8217;); 修改为 define(&#8216;STORE_SESSIONS&#8217;, ”);这样就让zen cart的session也以文件形式存储，就可以实现自定义session的共享了！</p>
<p>    以上的原理适用于其他类似的不同程序间session共享的问题，其实 zen cart中使用自定义 session的最简单的方法是 直接在自己的程序最顶部 require进来zen cart 的application_top.php即可，简单固然简单，但了解原理更重要！</p>
]]></content:encoded>
			<wfw:commentRss>http://anfirst.cn/archives/816/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>php产生验证码完整案例</title>
		<link>http://anfirst.cn/archives/808</link>
		<comments>http://anfirst.cn/archives/808#comments</comments>
		<pubDate>Fri, 28 Aug 2009 05:18:11 +0000</pubDate>
		<dc:creator>shooting</dc:creator>
				<category><![CDATA[zencart项目]]></category>
		<category><![CDATA[全部文章]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php编程]]></category>
		<category><![CDATA[zen cart]]></category>
		<category><![CDATA[程序分析]]></category>
		<category><![CDATA[算法]]></category>
		<category><![CDATA[验证码]]></category>

		<guid isPermaLink="false">http://anfirst.cn/?p=808</guid>
		<description><![CDATA[今天继续开发zen cart项目，加上了验证码的功能，考虑到需要较高的安全性，自己手工写了个小程序，功能还算全面，自动检测背景和字体，并随机选取背景图片中的一块范围，随机使用字体，显示验证字符串时随机显示字体大小，字符间距，字符颜色等。以下是程序代码。 validimg.php文件 &#60;?php /** * Class for Validate image * @author  zcs * @version 1.0-20090828 */ session_start(); class validimg { //背景图片目录 var $backgroundpath = &#8216;validbg&#8217;; //生成验证码宽度 var $width =&#8217;80&#8242;; //生成验证码高度 var $height =&#8217;25&#8242;; //背景 var $background; //验证文本 var $text=&#8217;abcd&#8217;; //字体目录 var $fontpath = &#8216;validbg&#8217;; //字体 var $font=&#8217;simhei.ttf&#8217;; //字体宽度 var $font_width = &#8217;20&#8242;; function validimg($text) [...]]]></description>
			<content:encoded><![CDATA[<p>今天继续开发zen cart项目，加上了验证码的功能，考虑到需要较高的安全性，自己手工写了个小程序，功能还算全面，自动检测背景和字体，并随机选取背景图片中的一块范围，随机使用字体，显示验证字符串时随机显示字体大小，字符间距，字符颜色等。以下是程序代码。<br />
validimg.php文件</p>
<blockquote><p>&lt;?php<br />
/**<br />
* Class for Validate image<br />
* @author  zcs<br />
* @version 1.0-20090828<br />
*/</p>
<p>session_start();<br />
class validimg<br />
{<br />
//背景图片目录<br />
var $backgroundpath = &#8216;validbg&#8217;;<br />
//生成验证码宽度<br />
var $width =&#8217;80&#8242;;<br />
//生成验证码高度<br />
var $height =&#8217;25&#8242;;<br />
//背景<br />
var $background;<br />
//验证文本<br />
var $text=&#8217;abcd&#8217;;<br />
//字体目录<br />
var $fontpath = &#8216;validbg&#8217;;<br />
//字体<br />
var $font=&#8217;simhei.ttf&#8217;;<br />
//字体宽度<br />
var $font_width = &#8217;20&#8242;;</p>
<p>function validimg($text)<br />
{<br />
$this-&gt;text = $text;<br />
//随机选取一个背景文件<br />
$bgdir =  @dir($this-&gt;backgroundpath);<br />
while(false !== ($image = $bgdir -&gt;read()))<br />
{<br />
if($image != &#8216;.&#8217; &amp;&amp; $image != &#8216;..&#8217; &amp;&amp; $this-&gt;checktype($image) != false)<br />
{<br />
$backgroundarr[] = $image;</p>
<p>}<br />
}<br />
$bgdir-&gt;close();<br />
//随机选取一个字体文件<br />
$fonts =  @dir($this-&gt;fontpath);<br />
while(false !== ($font = $fonts -&gt;read()))<br />
{<br />
if($font != &#8216;.&#8217; &amp;&amp; $font != &#8216;..&#8217; &amp;&amp; $this-&gt;checktype($font,&#8217;FONT&#8217;) != false)<br />
{<br />
$fontsarr[] = $font;<br />
}<br />
}<br />
$fonts-&gt;close();<br />
$this-&gt;font = $fontsarr[array_rand($fontsarr,1)];<br />
$this-&gt;background = $backgroundarr[array_rand($backgroundarr,1)];</p>
<p>$this-&gt;output();<br />
}</p>
<p>//创建背景图像handdle<br />
function createbackground()<br />
{<br />
switch ($this-&gt;checktype($this-&gt;background))<br />
{<br />
case &#8216;jpg&#8217;:<br />
$bghanddle = @imagecreatefromjpeg( $this-&gt;backgroundpath.&#8217;/&#8217;.$this-&gt;background);<br />
break;<br />
case &#8216;gif&#8217;:<br />
$bghanddle = @imagecreatefromgif( $this-&gt;backgroundpath.&#8217;/&#8217;.$this-&gt;background);<br />
break;<br />
case &#8216;png&#8217;:<br />
$bghanddle = @imagecreatefrompng( $this-&gt;backgroundpath.&#8217;/&#8217;.$this-&gt;background);<br />
break;<br />
default:<br />
}<br />
return $bghanddle;<br />
}<br />
//检查文件类型<br />
function checktype( $image,$type = &#8216;IMAGE&#8217;)<br />
{<br />
$ext = substr( $image, strrpos($image,&#8217;.')+1);<br />
if($type == &#8216;IMAGE&#8217;)<br />
{<br />
if ($ext == &#8216;jpg&#8217; || $ext ==&#8217;gif&#8217; || $ext ==&#8217;png&#8217;)<br />
return $ext;<br />
else return false;<br />
}else if($type == &#8216;FONT&#8217;)<br />
{<br />
if ($ext == &#8216;ttf&#8217;)<br />
return $ext;<br />
else return false;<br />
}<br />
}<br />
//输出<br />
function output()<br />
{<br />
header(“content-type:image/png;”);<br />
//生成图像<br />
$img = @imagecreatetruecolor( $this-&gt;width,$this-&gt;height);<br />
$bghanddle = $this-&gt;createbackground();<br />
//从背景图像随机位置载入一块作为背景<br />
if($bghanddle)<br />
{<br />
$randx=rand(0,(imagesx($bghanddle) &#8211; $this-&gt;width));<br />
$randy=rand(0,(imagesy($bghanddle) &#8211; $this-&gt;height));<br />
}<br />
imagecopy($img,$bghanddle,0,0,$randx,$randy,$this-&gt;width,$this-&gt;height);<br />
//随机选择角度 字体大小 坐标输出文字<br />
for($i=0;$i&lt;strlen($this-&gt;text);$i++)<br />
{<br />
$angle = rand(-30,30);<br />
$fontsize = rand(15,20);<br />
$x = rand($this-&gt;font_width*$i,$this-&gt;font_width*$i+10);<br />
$color = imagecolorallocate($img, rand(0,255), rand(0,255), rand(0,255));<br />
imagettftext($img,$fontsize,$angle,$x,20,$color,$this-&gt;fontpath.&#8217;/&#8217;.$this-&gt;font,substr($this-&gt;text,$i,1));<br />
}<br />
imagepng($img);<br />
//释放资源<br />
imagedestroy($img);<br />
imagedestroy($bghanddle);<br />
}<br />
}</p>
<p>new validimg($_SESSION['valid']);<br />
?&gt;</p></blockquote>
<p>测试文件validtest.php</p>
<blockquote><p>&lt;?php<br />
/**<br />
* 验证码测试<br />
* @author  zcs<br />
*/<br />
session_start();<br />
$_SESSION['valid']= randstr();<br />
echo $_SESSION['valid'];</p>
<p>//随机生成字符串</p>
<p>function randstr($num=4)<br />
{<br />
$chars = &#8216;ABDEFGHJKLMNPQRSTVWXYabdefghijkmnpqrstvwxy23456789&#8242;;<br />
$randstr=”;<br />
for($i=0;$i&lt;$num;$i++)<br />
{<br />
$randstr.=substr($chars,rand(0,strlen($chars)),1);<br />
}<br />
return $randstr;<br />
}<br />
?&gt;<br />
&lt;img src=”validimg.php” /&gt;</p></blockquote>
<p>Demo <a href="http://anfirst.cn/case/validimg/">http://anfirst.cn/case/validimg/</a></p>
<p>代码包下载：<a href="http://anfirst.cn/wp-content/uploads/2009/08/validimg.zip">validimg</a></p>
]]></content:encoded>
			<wfw:commentRss>http://anfirst.cn/archives/808/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>zen cart 的sidebox 机制</title>
		<link>http://anfirst.cn/archives/803</link>
		<comments>http://anfirst.cn/archives/803#comments</comments>
		<pubDate>Mon, 24 Aug 2009 11:41:46 +0000</pubDate>
		<dc:creator>shooting</dc:creator>
				<category><![CDATA[zencart项目]]></category>
		<category><![CDATA[全部文章]]></category>
		<category><![CDATA[学习笔记]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php编程]]></category>
		<category><![CDATA[zen cart]]></category>
		<category><![CDATA[程序分析]]></category>

		<guid isPermaLink="false">http://anfirst.cn/?p=803</guid>
		<description><![CDATA[zen cart的左右边栏很有特色，由一块一块的sidebox拼合起来的，在模板的sidebox文件夹建立一个sidebox程序，登陆管理后台后，选择外观控制，系统会自动检测到新增加的sidebox程序，并提醒你操作。并把所有的sidebox配置信息存储在layout_boxes的表格中。 程序调用边栏是通过includes/modules 目录下的column_left.php,和column_right.php 控制。分析下源码也非常简单：首页查询layout_boxes数据表，检索出在左栏和或右栏显示的所有sidebox，再直接require 进来 layout_box_name 字段标记的sidebox名称。随便打开一个sidebox的源代码，如系统自带的includes/modules/sideboxes/banner_box.php，banner_box.php只要用来获取sidebox显示所要的数据，再通过require($template-&#62;get_template_dir(&#8216;tpl_banner_box.php&#8217;,DIR_WS_TEMPLATE, $current_page_base,&#8217;sideboxes&#8217;),载入显示这个sidebox的模板，其实这个所谓的模板就是生成一个$content的字符串，然后再require($template-&#62;get_template_dir($column_box_default, DIR_WS_TEMPLATE, $current_page_base,&#8217;common&#8217;) . &#8216;/&#8217; . $column_box_default) 再用一个显示sidebox的公共模板，在$column_box_default中打印出$content的内容，这样一个sidebox就显示完成了！ 如何添加一个自己的sidebox？其实很简单，在includes/modules/sideboxes/{模板目录}/  建立一个文件，就是一个sidebox了，可以在后台控制是否显示在默认的左右边栏和排序 。在这个文件中就输出任何内容了，当然可以按照标准的模式，再在includes/templates/{模板目录}/sideboxes 下建立一个模板文件require进来，尽量做到 M/V的分离，这样以后修改也会比较方便！]]></description>
			<content:encoded><![CDATA[<p>zen cart的左右边栏很有特色，由一块一块的sidebox拼合起来的，在模板的sidebox文件夹建立一个sidebox程序，登陆管理后台后，选择外观控制，系统会自动检测到新增加的sidebox程序，并提醒你操作。并把所有的sidebox配置信息存储在layout_boxes的表格中。</p>
<p>程序调用边栏是通过includes/modules 目录下的column_left.php,和column_right.php 控制。分析下源码也非常简单：首页查询layout_boxes数据表，检索出在左栏和或右栏显示的所有sidebox，再直接require 进来 layout_box_name 字段标记的sidebox名称。随便打开一个sidebox的源代码，如系统自带的includes/modules/sideboxes/banner_box.php，banner_box.php只要用来获取sidebox显示所要的数据，再通过require($template-&gt;get_template_dir(&#8216;tpl_banner_box.php&#8217;,DIR_WS_TEMPLATE, $current_page_base,&#8217;sideboxes&#8217;),载入显示这个sidebox的模板，其实这个所谓的模板就是生成一个$content的字符串，然后再require($template-&gt;get_template_dir($column_box_default, DIR_WS_TEMPLATE, $current_page_base,&#8217;common&#8217;) . &#8216;/&#8217; . $column_box_default) 再用一个显示sidebox的公共模板，在$column_box_default中打印出$content的内容，这样一个sidebox就显示完成了！</p>
<p>如何添加一个自己的sidebox？其实很简单，在includes/modules/sideboxes/{模板目录}/  建立一个文件，就是一个sidebox了，可以在后台控制是否显示在默认的左右边栏和排序 。在这个文件中就输出任何内容了，当然可以按照标准的模式，再在includes/templates/{模板目录}/sideboxes 下建立一个模板文件require进来，尽量做到 M/V的分离，这样以后修改也会比较方便！</p>
]]></content:encoded>
			<wfw:commentRss>http://anfirst.cn/archives/803/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>zen cart的运行过程</title>
		<link>http://anfirst.cn/archives/794</link>
		<comments>http://anfirst.cn/archives/794#comments</comments>
		<pubDate>Sun, 23 Aug 2009 15:33:39 +0000</pubDate>
		<dc:creator>shooting</dc:creator>
				<category><![CDATA[zencart项目]]></category>
		<category><![CDATA[全部文章]]></category>
		<category><![CDATA[学习笔记]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php编程]]></category>
		<category><![CDATA[zen cart]]></category>
		<category><![CDATA[程序分析]]></category>

		<guid isPermaLink="false">http://anfirst.cn/?p=794</guid>
		<description><![CDATA[zencart是典型的单入口程序，所有的程序的url都是index.php?mainpage=XX的形式，通过$_GET['mainpage']载入相应的页面程序。先说首页的输出过程如下：入口index.php-&#62;载入初始化文件application_top.php-&#62;载入首页默认变量文件mail_template_vars.php-&#62;载入公用模板控制文件tpl_main_template.php-&#62;载入方框(sidebox)控制文件column_left.php，column_left.php-&#62;载入各个sidebox的控制文件和模板-&#62;载入首页默认核心部分模板tpl_index_default.php-&#62;载入公共页面底部,到这里就完成了首页的显示。其他页面的显示则是在载入include/pages/ $_GET['mainpage']文件下的文件，基本跟首页相同，只是根据不同页面载入不同配置文件和模板。 初次接触zencart，觉得zencart的模板系统异常的复杂，其最大的特点就是覆盖机制，通过其class/template_func.php模板类的get_template_dir方法，按照预先设定的位置按顺序查找模板文件，这种机制极大的提高了模板修改的灵活性，同时避免影响其他的模板和系统程序，也方便了以后的升级，我像扩充下系统默认的模板很简单，拷贝到我自己的模板相应文件夹，想怎么改就怎么改，也不会担心会跟系统不和谐。 以上皆是根据印象所写，文件名也许错误，下次修正。]]></description>
			<content:encoded><![CDATA[<p>zencart是典型的单入口程序，所有的程序的url都是index.php?mainpage=XX的形式，通过$_GET['mainpage']载入相应的页面程序。先说首页的输出过程如下：入口index.php-&gt;载入初始化文件application_top.php-&gt;载入首页默认变量文件mail_template_vars.php-&gt;载入公用模板控制文件tpl_main_template.php-&gt;载入方框(sidebox)控制文件column_left.php，column_left.php-&gt;载入各个sidebox的控制文件和模板-&gt;载入首页默认核心部分模板tpl_index_default.php-&gt;载入公共页面底部,到这里就完成了首页的显示。其他页面的显示则是在载入include/pages/ $_GET['mainpage']文件下的文件，基本跟首页相同，只是根据不同页面载入不同配置文件和模板。</p>
<p>初次接触zencart，觉得zencart的模板系统异常的复杂，其最大的特点就是覆盖机制，通过其class/template_func.php模板类的get_template_dir方法，按照预先设定的位置按顺序查找模板文件，这种机制极大的提高了模板修改的灵活性，同时避免影响其他的模板和系统程序，也方便了以后的升级，我像扩充下系统默认的模板很简单，拷贝到我自己的模板相应文件夹，想怎么改就怎么改，也不会担心会跟系统不和谐。</p>
<p>以上皆是根据印象所写，文件名也许错误，下次修正。</p>
]]></content:encoded>
			<wfw:commentRss>http://anfirst.cn/archives/794/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>一个好用的javascript日历-spiffyCal</title>
		<link>http://anfirst.cn/archives/747</link>
		<comments>http://anfirst.cn/archives/747#comments</comments>
		<pubDate>Thu, 16 Jul 2009 08:51:56 +0000</pubDate>
		<dc:creator>shooting</dc:creator>
				<category><![CDATA[全部文章]]></category>
		<category><![CDATA[学习笔记]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[zen cart]]></category>

		<guid isPermaLink="false">http://anfirst.cn/?p=747</guid>
		<description><![CDATA[在做zencart二次开发的时候发现的一个javascript，特收藏一下 使用代码很简单 &#60;html&#62; &#60;head&#62; &#60;meta http-equiv=”content-type” content=”text/html; charset=utf-8&#8243;&#62; &#60;title&#62;Calendar&#60;/title&#62; &#60;link rel=”stylesheet” type=”text/css” href=”spiffyCal/spiffyCal_v2_1.css”&#62; &#60;script type=”text/javascript” src=”spiffyCal/spiffyCal_v2_1.js”&#62;&#60;/script&#62; &#60;script type=”text/javascript”&#62; var dateAvailable = new ctlSpiffyCalendarBox(“dateAvailable”, “new_product”, “products_date_available”,”btnDate1&#8243;,”"); &#60;/script&#62; &#60;/head&#62; &#60;body&#62; &#60;div id=”spiffycalendar” class=”text”&#62;&#60;/div&#62; &#60;form name=”new_product”&#62; &#60;table width=”100%” border=”0&#8243; cellspacing=”0&#8243; cellpadding=”4&#8243;&#62; &#60;tr class=”dataTableRow”&#62; &#60;td align=”right”&#62;上架日期：&#60;br /&#62;&#60;small&#62;(YYYY-MM-DD)&#60;/small&#62;&#60;/td&#62; &#60;td align=”left”&#62;&#38;nbsp;&#60;script type=”text/javascript”&#62;dateAvailable.writeControl(); dateAvailable.dateFormat=”yyyy-MM-dd”;&#60;/script&#62; &#60;/td&#62; &#60;/tr&#62; &#60;/table&#62; &#60;/form&#62; &#60;/body&#62; &#60;/html&#62; spiffyCal.zip下载]]></description>
			<content:encoded><![CDATA[<p>在做zencart二次开发的时候发现的一个javascript，特收藏一下<br />
使用代码很简单</p>
<blockquote><p>&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=”content-type” content=”text/html; charset=utf-8&#8243;&gt;<br />
&lt;title&gt;Calendar&lt;/title&gt;<br />
&lt;link rel=”stylesheet” type=”text/css” href=”spiffyCal/spiffyCal_v2_1.css”&gt;<br />
&lt;script type=”text/javascript” src=”spiffyCal/spiffyCal_v2_1.js”&gt;&lt;/script&gt;<br />
&lt;script type=”text/javascript”&gt;<br />
var dateAvailable = new ctlSpiffyCalendarBox(“dateAvailable”, “new_product”, “products_date_available”,”btnDate1&#8243;,”");<br />
&lt;/script&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;div id=”spiffycalendar” class=”text”&gt;&lt;/div&gt;<br />
&lt;form name=”new_product”&gt;<br />
&lt;table width=”100%” border=”0&#8243; cellspacing=”0&#8243; cellpadding=”4&#8243;&gt;<br />
&lt;tr class=”dataTableRow”&gt;<br />
&lt;td align=”right”&gt;上架日期：&lt;br /&gt;&lt;small&gt;(YYYY-MM-DD)&lt;/small&gt;&lt;/td&gt;<br />
&lt;td align=”left”&gt;&amp;nbsp;&lt;script type=”text/javascript”&gt;dateAvailable.writeControl(); dateAvailable.dateFormat=”yyyy-MM-dd”;&lt;/script&gt; &lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;/table&gt;<br />
&lt;/form&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</p></blockquote>
<p><a href="http://anfirst.cn/wp-content/uploads/2009/07/spiffycal.zip" target="_blank">spiffyCal.zip下载</a></p>
]]></content:encoded>
			<wfw:commentRss>http://anfirst.cn/archives/747/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

