<?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>EshopDesktop网店系统基于Adobe Air开发的php网店系统</title>
	<atom:link href="http://www.eshopdesktop.com/index.php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.eshopdesktop.com</link>
	<description>网店系统,php网店系统,adobe air网店系统,flex商店系统,网上商城系统,网上商城程序,网上商店系统,网店软件-Eshop桌面版网店系统</description>
	<lastBuildDate>Wed, 07 Apr 2010 14:54:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>买去吧饰品批发,小饰品批发商城</title>
		<link>http://www.eshopdesktop.com/index.php/archives/278</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/278#comments</comments>
		<pubDate>Wed, 07 Apr 2010 14:54:34 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[php网店系统]]></category>
		<category><![CDATA[小饰品批发]]></category>
		<category><![CDATA[饰品批发]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=278</guid>
		<description><![CDATA[买去吧(www.buy78.com) 饰品批发商城,打造义乌最大的小饰品批发,流行饰品批发，韩国饰品批发,包包批发,十字绣批发,家居饰品批发购物商城,拥有3000平方米的大型仓库,近万种商品供你选购和批发,是您开店进货,网店找货源的最佳选择.买去吧批发商城主要经营 休闲包包批发，女士包包,男士包包批发，品牌包包批发，饰品批发，化妆品批发，十字绣批发，家居饰品批发，玩具、礼品批发，韩国饰品批发，韩国直板卡通袜子批发,围巾批发,卡通拖鞋批发等一系列义乌小商品批发,200元起批可混批，买去吧批发商城全部商品由厂家直接供货,品质保证，批发价格低，还有完善的售后服务，让你网上批发更放心，更快捷,找小商品批发,来买去吧饰品批发商城! 
]]></description>
			<content:encoded><![CDATA[<p>买去吧(<a style="color: #666666; text-decoration: none;" href="http://www.buy78.com/">www.buy78.com</a>) <strong><a style="color: #666666; text-decoration: none;" href="http://www.buy78.com/">饰品批发</a></strong>商城,打造义乌最大的<strong>小饰品批发</strong>,<strong>流行饰品批发</strong>，<strong>韩国饰品批发</strong>,<strong>包包批发</strong>,<strong>十字绣批发,家居饰品批发</strong>购物商城,拥有3000平方米的大型仓库,近万种商品供你选购和批发,是您开店进货,网店找货源的最佳选择.买去吧批发商城主要经营 休闲包包批发，女士包包,男士包包批发，品牌包包批发，饰品批发，化妆品批发，十字绣批发，家居饰品批发，玩具、礼品批发，韩国饰品批发，韩国直板卡通袜子批发,围巾批发,卡通拖鞋批发等一系列义乌小商品批发,200元起批可混批，买去吧批发商城全部商品由厂家直接供货,品质保证，批发价格低，还有完善的售后服务，让你网上批发更放心，更快捷,找小商品批发,来买去吧饰品批发商城! <a style="color: #666666; text-decoration: none;" title="买去吧饰品批发简介" href="http://www.buy78.com/data/pdfs/buy78.pdf"><img style="border: initial none initial;" src="http://www.buy78.com/Assets/images/pdf.png" border="0" alt="买去吧饰品批发商城" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/278/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2010新的开始-基于zend framework php网店系统</title>
		<link>http://www.eshopdesktop.com/index.php/archives/273</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/273#comments</comments>
		<pubDate>Thu, 21 Jan 2010 02:33:27 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Eshop网店系统]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[adobe air网店系统]]></category>
		<category><![CDATA[女生在线]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=273</guid>
		<description><![CDATA[php网店系统,女生在线]]></description>
			<content:encoded><![CDATA[<p>花了二个月的时间,改版<a href="http://www.591sp.com" target="_blank">女生在线饰品批发商城</a>,新系统基于Zend Framework 10.00,MVC模式,数据库sql server 2008,web服务器:IIS7+PHP5.2.10+FastCgi+WinCache+Memcached,有空把整个系统结构,服务器配置整理出来.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/273/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe Air 2.0 beta</title>
		<link>http://www.eshopdesktop.com/index.php/archives/271</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/271#comments</comments>
		<pubDate>Tue, 17 Nov 2009 06:25:30 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[adobe air网店系统]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=271</guid>
		<description><![CDATA[Adobe Air2网店系统]]></description>
			<content:encoded><![CDATA[<h1 style="font-weight: normal; background-color: #ffffff; color: #111111; margin-top: -7px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0.5em; padding-left: 0px; border-bottom-width: 0px; border-bottom-style: initial; border-bottom-color: initial; font-size: 1.75em; height: auto; background-image: none; line-height: 1.4em; font-family: Georgia, 'Times New Roman', Times, serif;">Adobe AIR 2 beta下载测试地址:</h1>
<p><span style="color: #000000; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; font-size: 13px;"><a href="http://labs.adobe.com/downloads/air2.html">http://labs.adobe.com/downloads/air2.html</a></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/271/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe很快开放AIR2.0的公开测试</title>
		<link>http://www.eshopdesktop.com/index.php/archives/269</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/269#comments</comments>
		<pubDate>Wed, 04 Nov 2009 04:13:45 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Eshop网店系统]]></category>
		<category><![CDATA[Adobe Air2.0]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=269</guid>
		<description><![CDATA[Adobe很快开放AIR2.0的公开测试]]></description>
			<content:encoded><![CDATA[<p><img style="clear: both; float: none; padding: 4px; margin: 4px; border: 1px solid #dddddd;" src="http://www.7yue.com/upload/AIR2Rocks.jpg" alt="" /><br />
很快，Adobe将会开放AIR2.0的公开测试下载，希望体验<a style="text-decoration: none; color: #095c83;" href="http://www.7yue.com/post/380.html" target="_blank">AIR2.0新特性</a>的朋友，可以近期留意<a style="text-decoration: none; color: #095c83;" href="http://www.adobe.com/cfusion/entitlement/index.cfm?e=labs_air2_signup" target="_blank">Adobe Labs</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/269/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PR值更新</title>
		<link>http://www.eshopdesktop.com/index.php/archives/266</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/266#comments</comments>
		<pubDate>Fri, 30 Oct 2009 02:44:49 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Eshop网店系统]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=266</guid>
		<description><![CDATA[今天听群里人说PR值更新了,查下了几个站,好象都有更新,这次几个站一下都跳到3,
www.91ef.com pr3
www.showshowbag.com pr3
www.eshopdesktop.com pr3
其中二个商城系统都是从0-3,看来PDF天生PR3,这二个商城,商品我都有生成PDF格式,特此记录下.
]]></description>
			<content:encoded><![CDATA[<p>今天听群里人说PR值更新了,查下了几个站,好象都有更新,这次几个站一下都跳到3,</p>
<p><a href="http://www.91ef.com">www.91ef.com</a> pr3</p>
<p><a href="http://www.showshowbag.com">www.showshowbag.com</a> pr3</p>
<p><a href="http://www.eshopdesktop.com">www.eshopdesktop.com</a> pr3</p>
<p>其中二个商城系统都是从0-3,看来PDF天生PR3,这二个商城,商品我都有生成PDF格式,特此记录下.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/266/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EshopDesktop v2 php网店系统预览</title>
		<link>http://www.eshopdesktop.com/index.php/archives/263</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/263#comments</comments>
		<pubDate>Thu, 22 Oct 2009 17:27:36 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Desktop网店开发]]></category>
		<category><![CDATA[Eshop网店系统]]></category>
		<category><![CDATA[adobe air网店系统]]></category>
		<category><![CDATA[flex网店系统开发]]></category>
		<category><![CDATA[EshopDesktop v2]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=263</guid>
		<description><![CDATA[EshopDesktop v2 php网店系统界面预览:

]]></description>
			<content:encoded><![CDATA[<p>EshopDesktop v2 php网店系统界面预览:</p>
<p><a href="http://www.eshopdesktop.com/wp-content/uploads/2009/10/EshopDesktopv2.jpg"><img class="aligncenter size-full wp-image-264" title="EshopDesktopv2" src="http://www.eshopdesktop.com/wp-content/uploads/2009/10/EshopDesktopv2.jpg" alt="EshopDesktopv2" width="275" height="608" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/263/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php框架Zend Framework1.9.4发布</title>
		<link>http://www.eshopdesktop.com/index.php/archives/261</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/261#comments</comments>
		<pubDate>Thu, 15 Oct 2009 15:27:36 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[php框架]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=261</guid>
		<description><![CDATA[he Zend Framework team is pleased to announce the immediate availability of     the 1.9.4 release. This release is the fourth maintenance release in the 1.9     series.
You may download it from the Zend Framework site.
For a full list of closed issues, you can visit:

 http://framework.zend.com/changelog/1.9.4 

Many thanks to [...]]]></description>
			<content:encoded><![CDATA[<p>he Zend Framework team is pleased to announce the immediate availability of     the 1.9.4 release. This release is the fourth maintenance release in the 1.9     series.</p>
<p>You may download it from the <a href="http://framework.zend.com/download/latest">Zend Framework site</a>.</p>
<p>For a full list of closed issues, you can visit:</p>
<dl>
<dd> <a href="http://framework.zend.com/changelog/1.9.4">http://framework.zend.com/changelog/1.9.4</a> </dd>
</dl>
<p>Many thanks to all the contributors who helped with this release: issue     reporters, documentation translators, and code contributors alike; the     project gets better each release as the direct result of your efforts!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/261/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ecshop网店系统好的建议收集</title>
		<link>http://www.eshopdesktop.com/index.php/archives/259</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/259#comments</comments>
		<pubDate>Thu, 15 Oct 2009 01:50:54 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[杂谈]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=259</guid>
		<description><![CDATA[
鉴于很多独立网店的网商都始于淘宝拍拍等店铺，也有很多淘宝、拍拍的网商需要开独立网店。
真的希望ECSHOP能与淘宝、拍拍等大型第三方平台的数据同步（包括库存、价格、订单进程等），，，，，并且开发能整合常见进销存软件的API接口，这样ECSHOP就将多店整合在一起了，达到一个后台处理多店事务。。这样就大大解放了我们的劳动力，同时为我国电子商务进程作出了莫大的贡献！！
比如：同样是促销商品A和B
A的单价1元，数量100件；B的单价100元，数量50件；
如果有人要购买A商品100件的话，后台必须要限制，不可能好事都让他一人占了。
而如果有人要购买B商品的话，当然表示欢迎，还可送点什么别的东西他。

3.  论对于一个购物网站的重要性不言而喻。在电子商务中,用户的评论已被证实是提升销售的有效手段。
建议EC程序能支持会员对产品进行评论可以获得积分。现在烧包、京东等众多B2C基本上都有此机制鼓励用户会员评论。
下面引用一段“购物网站留言和评论的价值及设计”
4.  下面探讨购物网站评论的价值及设计
评论，我所认为的应是顾客购买产品后，再回到网站发表对产品的评价。目前，购物网站大多是把留言和评论是放在一起的，也就是咨询和购买后的点评没有独立设计，这显然是不符合用户的行为的。虽有些网站分别设计了两类功能，但评价是很少的。现分析一下评论的几个方面：
1，对产品质量及包装的评论，产品的质量和包装是硬性的，看得着，摸得着，可以用评语来体现或用反馈奖励来体现（不对外展示）；
2，对网站服务的评论，包括售前、售中、售后这一过程的各各方面。可以用服务等级或打分的形式加上评语来体现；
3，对产品的使用感受，产品使用过程中的效果及易用性等等，如化妆品类产品，使用感受就很重要了。可以用使用感受等级或打分的形式加上评语来体现。
根据以上三点，我们在设计时，可以对不同产品性质来设计不同的评价选项及规则，可以参考大众点评网。
那如何吸引顾客购买产品后回到网站来评价呢？
1，购买产品后回到网站点评，赠积分，可升级会员等级或兑换赠品或抽奖等等；
2、顾客收到产品后三天或一周内没有登录网站点评，系统自动发送邮件告诉用户不要错过点评的机会哦；
3、点评互动，顾客点评了商品，其它顾客可以回复点评，参与讨论，并可以增加一些web2.0元素在里面，如赞同、有用、评论太有才了、踩一脚支持。可以参考1号店的参与讨论
然后网站可按最后回复点评或回复最多点评排序，把最好的、有价值的评论显示在顾客浏览最前面。

关于减库存的时机问题，能否增加“付款成功时候减库存”？
前台：当用户下单付款成功后减库存；
后台：手动点击“付款”时减库存，对应的“设为未付款”（或“取消”生成退款申请）时再增加库存
说实话，供货商根本就不用你的后台！
人家有自己的一套进销存管理系统，而且供货商往往不止给你一个人供货，人家入库出库什么的都有统一的单据，再使用你的供货商系统完全是给自己添加麻烦。我的站就有自己写的一个供货商管理，开始的时候供货商还登陆使用一下，时间长了就再不用了。
只有一种情况例外，就是你做的足够强、足够大，大到可以要求供货商必须按照你的要求来走就ok了，呵呵。。。

]]></description>
			<content:encoded><![CDATA[<ol>
<li>鉴于很多独立网店的网商都始于淘宝拍拍等店铺，也有很多淘宝、拍拍的网商需要开独立网店。
<p>真的希望ECSHOP能与淘宝、拍拍等大型第三方平台的数据同步（包括库存、价格、订单进程等），，，，，并且开发能整合常见进销存软件的API接口，这样ECSHOP就将多店整合在一起了，达到一个后台处理多店事务。。这样就大大解放了我们的劳动力，同时为我国电子商务进程作出了莫大的贡献！！</li>
<li>比如：同样是促销商品A和B<br />
A的单价1元，数量100件；B的单价100元，数量50件；<br />
如果有人要购买A商品100件的话，后台必须要限制，不可能好事都让他一人占了。<br />
而如果有人要购买B商品的话，当然表示欢迎，还可送点什么别的东西他。</li>
</ol>
<p align="left">3.  论对于一个购物网站的重要性不言而喻。在电子商务中,用户的评论已被证实是提升销售的有效手段。</p>
<p>建议EC程序能支持会员对产品进行评论可以获得积分。现在烧包、京东等众多B2C基本上都有此机制鼓励用户会员评论。</p>
<p>下面引用一段“购物网站留言和评论的价值及设计”</p>
<p align="left">4.  下面探讨购物网站评论的价值及设计</p>
<p>评论，我所认为的应是顾客购买产品后，再回到网站发表对产品的评价。目前，购物网站大多是把留言和评论是放在一起的，也就是咨询和购买后的点评没有独立设计，这显然是不符合用户的行为的。虽有些网站分别设计了两类功能，但评价是很少的。现分析一下评论的几个方面：</p>
<p>1，对产品质量及包装的评论，产品的质量和包装是硬性的，看得着，摸得着，可以用评语来体现或用反馈奖励来体现（不对外展示）；<br />
2，对网站服务的评论，包括售前、售中、售后这一过程的各各方面。可以用服务等级或打分的形式加上评语来体现；<br />
3，对产品的使用感受，产品使用过程中的效果及易用性等等，如化妆品类产品，使用感受就很重要了。可以用使用感受等级或打分的形式加上评语来体现。</p>
<p>根据以上三点，我们在设计时，可以对不同产品性质来设计不同的评价选项及规则，可以参考大众点评网。</p>
<p>那如何吸引顾客购买产品后回到网站来评价呢？</p>
<p>1，购买产品后回到网站点评，赠积分，可升级会员等级或兑换赠品或抽奖等等；<br />
2、顾客收到产品后三天或一周内没有登录网站点评，系统自动发送邮件告诉用户不要错过点评的机会哦；<br />
3、点评互动，顾客点评了商品，其它顾客可以回复点评，参与讨论，并可以增加一些web2.0元素在里面，如赞同、有用、评论太有才了、踩一脚支持。可以参考1号店的参与讨论</p>
<p>然后网站可按最后回复点评或回复最多点评排序，把最好的、有价值的评论显示在顾客浏览最前面。</p>
<ol>
<li>关于减库存的时机问题，能否增加“付款成功时候减库存”？<br />
前台：当用户下单付款成功后减库存；<br />
后台：手动点击“付款”时减库存，对应的“设为未付款”（或“取消”生成退款申请）时再增加库存</li>
<li>说实话，供货商根本就不用你的后台！<br />
人家有自己的一套进销存管理系统，而且供货商往往不止给你一个人供货，人家入库出库什么的都有统一的单据，再使用你的供货商系统完全是给自己添加麻烦。我的站就有自己写的一个供货商管理，开始的时候供货商还登陆使用一下，时间长了就再不用了。<br />
只有一种情况例外，就是你做的足够强、足够大，大到可以要求供货商必须按照你的要求来走就ok了，呵呵。。。</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/259/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>基于Adobe air+php网店系统EshopDesktop v2.0重构</title>
		<link>http://www.eshopdesktop.com/index.php/archives/256</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/256#comments</comments>
		<pubDate>Mon, 12 Oct 2009 17:50:27 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Desktop网店开发]]></category>
		<category><![CDATA[Eshop网店系统]]></category>
		<category><![CDATA[adobe air网店系统]]></category>
		<category><![CDATA[cairngorm]]></category>
		<category><![CDATA[flex网店系统开发]]></category>
		<category><![CDATA[php网店系统]]></category>
		<category><![CDATA[EshopDesktopv2.0]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=256</guid>
		<description><![CDATA[打算重构EshopDesktop php网店系统,前一个版本始终未推出,由于前面几个网上商城应用都是定制化的,比较花时间,而且几个站都相当大,
工作量不少,花费了不少精力,导致本来打算10月份放出的,迟迟未推出,干脆直接重架EshopDesktop网店系统，直接从V2.0开发，基于Air2.0+cairngorm3开发，Air2.0加入了不少新功能，而且在项目中急需的功能，cairngorm3年底也要出来了，解决了在cairngorm2很多莫名其妙的问题，今年就把宝压在EshopDesktop网店系统上。
前面几个站应用：
1.男士衬衫网
2.秀秀包，时尚包包网
3.中饰网购,饰品批发平台
这几个网店系统都在试营中，没有100%完成。
]]></description>
			<content:encoded><![CDATA[<p>打算重构EshopDesktop php网店系统,前一个版本始终未推出,由于前面几个网上商城应用都是定制化的,比较花时间,而且几个站都相当大,</p>
<p>工作量不少,花费了不少精力,导致本来打算10月份放出的,迟迟未推出,干脆直接重架EshopDesktop网店系统，直接从V2.0开发，基于Air2.0+cairngorm3开发，Air2.0加入了不少新功能，而且在项目中急需的功能，cairngorm3年底也要出来了，解决了在cairngorm2很多莫名其妙的问题，今年就把宝压在EshopDesktop网店系统上。</p>
<p>前面几个站应用：</p>
<p>1.<a title="男士衬衫网" href="http://www.91ef.com">男士衬衫网</a></p>
<p>2.<a title="包包网" href="http://www.showshowbag.com">秀秀包，时尚包包网</a></p>
<p>3.<a title="中饰网购,饰品批发平台" href="http://www.8008sp.com">中饰网购,饰品批发平台</a></p>
<p>这几个网店系统都在试营中，没有100%完成。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/256/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe Air2.0令人兴奋的功能</title>
		<link>http://www.eshopdesktop.com/index.php/archives/254</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/254#comments</comments>
		<pubDate>Fri, 09 Oct 2009 13:50:17 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Eshop网店系统]]></category>
		<category><![CDATA[Adobe Air2.0]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=254</guid>
		<description><![CDATA[MAX09的大会上，Adobe透露了AIR2.0的计划，其路线图是将在明年上半年推出，而新的功能，我替各位总结一下：
1.性能提升。更快速的运行速度及更好的利用系统资源。当AIR应用隐藏在后台时，空闲状态将降低CPU使用率为0%。减少AIR runtime的核心尺寸。降低JS在AIR中的运行消耗
2.Native Process APIs，本地进程应用编程接口。开发者现在可以启动并与系统本地进程交互，方法是通过标准输入输出设备。使用Java和.NET与本地库通讯，包括类似于本地文件搜索。开发者能够创建操作系统特定的安装包，包括支持系统本身安装包格式。
3.内置开放文档本地处理机制。开放的，流行的文档格式，例如pdf,psd,doc,ppt,mp3等本地文件格式应用软件的关联，比如，在AIR应用中打开一个doc时，将会自动启动word软件。
4.大容量存储设备检测API。检测大容量存储设备，如基于usb接口的大容量flash存储设备，以此便于AIR应用实现自动同步照片，视频和音频文件的功能。
5.对屏幕阅读提供更好的支持。方便Flash,Flex内容开发的AIR应用可以更好的支持读者在不同的设备上浏览阅读内容。
6.本地Microphone API。不用通过FMS，即可操作客户端Mic进行录音等操作。
7.多点触摸及动作识别。
8.支持HTM5和CSS的全新Webkit引擎
9.更快速的JS 引擎
10. Sockets 服务器 P2P通讯支持
11.UDP网络通讯支持。可以通过AIR实现类似使用UDP通讯的QQ类型的IM应用
12.更强力的拖拽支持。比如拖拽到不同区域的不同功能对应，想想拖拽一个doc到word图标上和到回收站图标上的功能。
还有其他的功能，会在MAX大会后，通过Adobe的Platform 博客陆续发布出来。
这些功能真的令人兴奋,我打算重构EshopDesktop网店系统,打算Flex4+Air2.0.
]]></description>
			<content:encoded><![CDATA[<p>MAX09的大会上，Adobe透露了AIR2.0的计划，其路线图是将在明年上半年推出，而新的功能，我替各位总结一下：</p>
<p>1.性能提升。更快速的运行速度及更好的利用系统资源。当AIR应用隐藏在后台时，空闲状态将降低CPU使用率为0%。减少AIR runtime的核心尺寸。降低JS在AIR中的运行消耗<br />
2.Native Process APIs，本地进程应用编程接口。开发者现在可以启动并与系统本地进程交互，方法是通过标准输入输出设备。使用Java和.NET与本地库通讯，包括类似于本地文件搜索。开发者能够创建操作系统特定的安装包，包括支持系统本身安装包格式。<br />
3.内置开放文档本地处理机制。开放的，流行的文档格式，例如pdf,psd,doc,ppt,mp3等本地文件格式应用软件的关联，比如，在AIR应用中打开一个doc时，将会自动启动word软件。<br />
4.大容量存储设备检测API。检测大容量存储设备，如基于usb接口的大容量flash存储设备，以此便于AIR应用实现自动同步照片，视频和音频文件的功能。<br />
5.对屏幕阅读提供更好的支持。方便Flash,Flex内容开发的AIR应用可以更好的支持读者在不同的设备上浏览阅读内容。<br />
6.本地Microphone API。不用通过FMS，即可操作客户端Mic进行录音等操作。<br />
7.多点触摸及动作识别。<br />
8.支持HTM5和CSS的全新Webkit引擎<br />
9.更快速的JS 引擎<br />
10. Sockets 服务器 P2P通讯支持<br />
11.UDP网络通讯支持。可以通过AIR实现类似使用UDP通讯的QQ类型的IM应用<br />
12.更强力的拖拽支持。比如拖拽到不同区域的不同功能对应，想想拖拽一个doc到word图标上和到回收站图标上的功能。</p>
<p>还有其他的功能，会在MAX大会后，通过Adobe的Platform 博客陆续发布出来。</p>
<p>这些功能真的令人兴奋,我打算重构EshopDesktop网店系统,打算Flex4+Air2.0.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/254/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>基于EshopDesktop网店系统包包博客上线！</title>
		<link>http://www.eshopdesktop.com/index.php/archives/252</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/252#comments</comments>
		<pubDate>Fri, 09 Oct 2009 03:21:52 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Eshop网店系统]]></category>
		<category><![CDATA[包包]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=252</guid>
		<description><![CDATA[包包博客网，秀秀包与你分享包包最新动态，包包流行趋势，包包品牌故事，包包图片，发掘最新流行包包，秀秀包，我包我秀！
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.showshowbag.com/blog">包包</a>博客网，秀秀包与你分享包包最新动态，包包流行趋势，包包品牌故事，包包图片，发掘最新流行包包，秀秀包，我包我秀！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/252/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>基于EshopDesktop网店系统中饰商城饰品批发平台上线测试!</title>
		<link>http://www.eshopdesktop.com/index.php/archives/250</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/250#comments</comments>
		<pubDate>Tue, 06 Oct 2009 08:06:43 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Eshop网店系统]]></category>
		<category><![CDATA[adobe air网店系统]]></category>
		<category><![CDATA[flex网店系统开发]]></category>
		<category><![CDATA[中饰商城系统]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=250</guid>
		<description><![CDATA[   中饰商城饰品批发中心实际就是世界流行饰品的整合分销中心！整合中国最优秀的厂家品牌产品，通过中饰商城最先进的电子商务平台技术分销给全球中小饰品采购商，帮助企业搭建一批终端客户，一来能给企业带来销售收益，二来能拉近企业终端消费者之间的距离，即时的信息反馈让企业迅速调整品牌定位和产品体系！同时，中饰商城还解决了多个小采购商捆绑抱团给企业下单，满足了工厂最低下单数量才可排单生产的需求！最主要的是中饰商城让国内外中小采购商越过层层中间商采购到又便宜、质量又好的最新流行饰品产品！让采购随时随地，让采购就像在自己家里那里便捷！畅通提升价值！
        是一个可以让中小采购商即时采购现成小批量混批平台，也是一个可以最小批量最便捷产品下单平台！满足全球中小饰品采购商的需求！
       已于昨日正式上线调试！欢迎广大会员测试！ 
]]></description>
			<content:encoded><![CDATA[<p>   中饰商城<a href="http://mall.jewelchina.com">饰品批发中心</a>实际就是世界流行饰品的整合分销中心！整合中国最优秀的厂家品牌产品，通过中饰商城最先进的电子商务平台技术分销给全球中小饰品采购商，帮助企业搭建一批终端客户，一来能给企业带来销售收益，二来能拉近企业终端消费者之间的距离，即时的信息反馈让企业迅速调整品牌定位和产品体系！同时，中饰商城还解决了多个小采购商捆绑抱团给企业下单，满足了工厂最低下单数量才可排单生产的需求！最主要的是中饰商城让国内外中小采购商越过层层中间商采购到又便宜、质量又好的最新流行饰品产品！让采购随时随地，让采购就像在自己家里那里便捷！畅通提升价值！<br />
        是一个可以让中小采购商即时采购现成小批量混批平台，也是一个可以最小批量最便捷产品下单平台！满足全球中小饰品采购商的需求！<br />
       已于昨日正式上线调试！欢迎广大会员测试！ </p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/250/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>flex air qq消息提醒</title>
		<link>http://www.eshopdesktop.com/index.php/archives/240</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/240#comments</comments>
		<pubDate>Tue, 25 Aug 2009 01:18:06 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[adobe air网店系统]]></category>
		<category><![CDATA[qq消息提醒]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=240</guid>
		<description><![CDATA[EshopDesktop网店系统仿QQ消息提醒功能分享:
先看下效果图:

实例代码如下:

public static function palyHandle(e:Event):void{&#160;&#160; &#160; &#160; &#160; &#160;	var sound:Sound = e.target as Sound;&#160;&#160; &#160; &#160; &#160; &#160;	sound.play();&#160;&#160; &#160; &#160; &#160; &#160;	 trace('play msg alert');&#160;&#160; &#160; &#160; &#160; &#160;}&#160;&#160; &#160; &#160; &#160; &#160;private static function errorHandle(e:ErrorEvent):void{&#160;&#160; &#160; &#160; &#160; &#160;	trace(e.text);&#160;&#160; &#160; &#160; &#160; &#160;}&#160;&#160; &#160; &#160; &#160; &#160;public static function showNotification(title:String, content:String, showDetail:Boolean = false):void{&#160;&#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>EshopDesktop网店系统仿QQ消息提醒功能分享:<br />
先看下效果图:<br />
<a href="http://www.eshopdesktop.com/wp-content/uploads/2009/08/msg.png"><img class="alignnone size-medium wp-image-241" title="msg" src="http://www.eshopdesktop.com/wp-content/uploads/2009/08/msg-300x286.png" alt="msg"  /></a></p>
<p>实例代码如下:<br />
<font color="#333333"></p>
<div class="hl-surround"><div class="hl-main">public static function palyHandle(e:Event):void{<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;	var sound:Sound = e.target as Sound;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;	sound.play();<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;	 trace('play msg alert');<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;private static function errorHandle(e:ErrorEvent):void{<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;	trace(e.text);<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;public static function showNotification(title:String, content:String, showDetail:Boolean = false):void{<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;	&nbsp; &nbsp;//播放声音<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;	&nbsp; &nbsp;if(AppModel.getInstance().setting.sound==1){<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;	&nbsp; &nbsp;	&nbsp; &nbsp;trace('start play msg alert');<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;	&nbsp; &nbsp;	&nbsp; &nbsp;var url:URLRequest = new URLRequest('/Assets/Sound/newalert.mp3');<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;	&nbsp; &nbsp;	&nbsp; &nbsp;var voice:Sound =new Sound(url);<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;	&nbsp; &nbsp;	&nbsp; &nbsp;voice.addEventListener(Event.COMPLETE, palyHandle);<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;	&nbsp; &nbsp;	&nbsp; &nbsp;voice.addEventListener(IOErrorEvent.IO_ERROR, errorHandle)<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;	&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;	&nbsp; &nbsp; var notice:Notification = new Notification();<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;	&nbsp; &nbsp; notice.alwaysInFront = true;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;	&nbsp; &nbsp; notice.showStatusBar = false;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;	&nbsp; &nbsp; notice.msgTitle = title;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;	&nbsp; &nbsp; notice.msgContent = content;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;	&nbsp; &nbsp; notice.showDetail = showDetail;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;	&nbsp; &nbsp; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;	&nbsp; &nbsp; notice.open();<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;	&nbsp; &nbsp; var mainScreen:Screen = Screen.mainScreen;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;	&nbsp; &nbsp; var winMove:Move&nbsp; = new Move();<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;	&nbsp; &nbsp; winMove.target = notice;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;winMove.xTo = winMove.xFrom = mainScreen.visibleBounds.width - notice.width - 10;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;winMove.yFrom = mainScreen.visibleBounds.height;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;winMove.yTo = mainScreen.visibleBounds.height - notice.height -3; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;winMove.duration = 1000;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;winMove.play();<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br />窗体控件:<br />&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;<br />&lt;mx:Window xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; layout=&quot;absolute&quot;&nbsp; width=&quot;250&quot; height=&quot;185&quot; <br />	paddingBottom=&quot;0&quot;&nbsp; paddingTop=&quot;0&quot;&nbsp; status=&quot;false&quot;<br />&nbsp;&nbsp; &nbsp; showFlexChrome=&quot;false&quot;&nbsp; transparent=&quot;true&quot; systemChrome=&quot;none&quot;&nbsp; &nbsp;title=&quot;消息提醒：&quot;<br />&nbsp;&nbsp; &nbsp;showStatusBar=&quot;false&quot; showTitleBar=&quot;false&quot; verticalScrollPolicy=&quot;off&quot;&nbsp; horizontalAlign=&quot;center&quot;<br />horizontalScrollPolicy=&quot;off&quot; showGripper=&quot;false&quot; paddingLeft=&quot;5&quot; paddingRight=&quot;5&quot; borderStyle=&quot;none&quot;&gt; <br />&nbsp;&nbsp; &nbsp;&lt;mx:Script&gt;<br />&nbsp;&nbsp; &nbsp;	&lt;![CDATA[<br />&nbsp;&nbsp; &nbsp;		import Eshop.Units.WindowsEffect;<br />&nbsp;&nbsp; &nbsp;		import mx.core.Application;<br />&nbsp;&nbsp; &nbsp;		[Bindable]<br />&nbsp;&nbsp; &nbsp;		private var _msgTitle:String='消息提示：';<br />&nbsp;&nbsp; &nbsp;		[Bindable]<br />&nbsp;&nbsp; &nbsp;		private var _msgContent:String = '';<br />&nbsp;&nbsp; &nbsp;		[Bindable]<br />&nbsp;&nbsp; &nbsp;		private var _showDetail:Boolean = false;<br />&nbsp;&nbsp; &nbsp;		<br />&nbsp;&nbsp; &nbsp;		public function set msgTitle(value:String):void{<br />&nbsp;&nbsp; &nbsp;			_msgTitle = value;<br />&nbsp;&nbsp; &nbsp;		}<br />&nbsp;&nbsp; &nbsp;		public function get msgTitle():String{<br />&nbsp;&nbsp; &nbsp;			return _msgTitle;<br />&nbsp;&nbsp; &nbsp;		}<br />&nbsp;&nbsp; &nbsp;		public function set msgContent(value:String):void{<br />&nbsp;&nbsp; &nbsp;			_msgContent = value;<br />&nbsp;&nbsp; &nbsp;		}<br />&nbsp;&nbsp; &nbsp;		public function set showDetail(value:Boolean):void{<br />&nbsp;&nbsp; &nbsp;			_showDetail = value;<br />&nbsp;&nbsp; &nbsp;		}<br />&nbsp;&nbsp; &nbsp;		private function closeWin():void{<br />&nbsp;&nbsp; &nbsp;			WindowsEffect.close(this);<br />&nbsp;&nbsp; &nbsp;		}<br />&nbsp;&nbsp; &nbsp;		private function startMove():void{<br />&nbsp;&nbsp; &nbsp;			this.nativeWindow.startMove();<br />&nbsp;&nbsp; &nbsp;		}<br />&nbsp;&nbsp; &nbsp;	]]&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/mx:Script&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;mx:Image width=&quot;250&quot;&nbsp; height=&quot;185&quot; source=&quot;Skin/Default/images/titleWindow.png&quot;/&gt;<br />&nbsp;&nbsp; &nbsp;&lt;mx:HBox horizontalGap=&quot;0&quot; mouseDown=&quot;startMove()&quot; width=&quot;100%&quot; height=&quot;35&quot; verticalAlign=&quot;middle&quot; paddingLeft=&quot;5&quot;&gt;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;mx:Label text=&quot;{_msgTitle}&quot; fontWeight=&quot;bold&quot; width=&quot;220&quot; color=&quot;#FFFFFF&quot;/&gt;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;mx:Image width=&quot;16&quot; toolTip=&quot;关闭窗口&quot; height=&quot;16&quot; buttonMode=&quot;true&quot;&nbsp; useHandCursor=&quot;true&quot;&nbsp; click=&quot;closeWin()&quot; source=&quot;@Embed(source='/Icons/cancel.png')&quot;/&gt;<br />&nbsp;&nbsp; &nbsp;	<br />&nbsp;&nbsp; &nbsp;&lt;/mx:HBox&gt;<br />&nbsp;&nbsp; &nbsp;&lt;mx:HBox width=&quot;100%&quot; top=&quot;36&quot; height=&quot;110&quot; textAlign=&quot;center&quot; paddingLeft=&quot;3&quot; paddingRight=&quot;3&quot; horizontalAlign=&quot;center&quot;&gt;<br />&nbsp;&nbsp; &nbsp;	&lt;mx:HBox width=&quot;100%&quot; top=&quot;36&quot; backgroundColor=&quot;#F2F2F2&quot;<br />&nbsp;&nbsp; &nbsp;	 height=&quot;100%&quot; horizontalAlign=&quot;center&quot;&nbsp; paddingLeft=&quot;5&quot; paddingRight=&quot;5&quot;&gt;<br />&nbsp;&nbsp; &nbsp;	&lt;mx:Text&nbsp; &nbsp;color=&quot;#333333&quot;&nbsp; textAlign=&quot;left&quot;&nbsp; htmlText='{_msgContent}' width=&quot;100%&quot; height=&quot;100%&quot;/&gt;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;/mx:HBox&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/mx:HBox&gt;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;&lt;mx:HBox width=&quot;100%&quot; top=&quot;150&quot; height=&quot;30&quot;&nbsp; paddingRight=&quot;10&quot; verticalAlign=&quot;middle&quot; horizontalAlign=&quot;right&quot; horizontalGap=&quot;0&quot;&gt;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;mx:Button label=&quot;查看详细&quot; visible=&quot;{_showDetail}&quot;/&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/mx:HBox&gt;<br />&lt;/mx:Window&gt;</div></div>
<p></font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/240/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EshopDesktop网店系统特点</title>
		<link>http://www.eshopdesktop.com/index.php/archives/235</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/235#comments</comments>
		<pubDate>Mon, 17 Aug 2009 11:05:08 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Memcached]]></category>
		<category><![CDATA[php网店系统]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=235</guid>
		<description><![CDATA[
1、Eshop Desktop网店系统，客户端基于Adobe公司Air开发的网店系统，,后端采用PHP官方Zend公司的开源框架系统Zend Framework系统,EshopDesktop网店系统全面采用PHP5面向对象开发,基于Zend Framework MVC模式，使用模板与程序分离的方式构建。EshopDesktop网店系统是目前国内首款RIA网店系统的实现。
2、Eshop Desktop网店系统是一款脱离浏览器方式的Air网络桌面应用软件，比传统web的优势在于，有客户端的优势；可以脱机运行，在需要的时候偶尔连接网络，提高用户的交互操作体验,EshopDesktop网店系统基于Adobe公司AMF传送协议,加快操作响应,节约宽带资源,同时提高网站后台的安全性。
3、Eshop Desktop网店系统集成淘宝商城开放平台API,您无须通过第三方工具，直接可以发布商品到您的淘宝网店，解决您自身商店系统跟淘宝商城无法结合的问题，做到真正的与淘宝商城无缝的结合。
4、Eshop Desktop网店系统集成GoogleAPI,您可以通过Google开放API，直接发布商品到google购物搜索平台。前台采用Google Gears加速，让你的商店系统在离线状态也可以浏览。
5、Eshop Desktop网店系统集成在线客服系统,您无须购买第三方在线客服系统,EshopDesktop自身是基本Air的网络桌面应用，可以很好的结合客服系统，有效的提高客户转化率。您可以在线给商品拍照，录制视频,直接发布等&#8230;Eshop Desktop打造真正一体化管理全新的网店系统。
]]></description>
			<content:encoded><![CDATA[<div class="EshopDesktopFeatures">
<p><strong>1、</strong><a href="http://www.eshopdesktop.com/eshopdesktop">Eshop Desktop网店系统</a>，客户端基于Adobe公司Air开发的网店系统，,后端采用PHP官方Zend公司的开源框架系统Zend Framework系统,EshopDesktop网店系统全面采用PHP5面向对象开发,基于Zend Framework MVC模式，使用模板与程序分离的方式构建。EshopDesktop网店系统是目前国内首款RIA网店系统的实现。<BR/><br />
<strong>2、</strong>Eshop Desktop网店系统是一款脱离浏览器方式的Air<strong>网络桌面应用软件</strong>，比传统web的优势在于，有客户端的优势；可以脱机运行，在需要的时候偶尔连接网络，提高用户的交互操作体验,EshopDesktop网店系统基于Adobe公司AMF传送协议,加快操作响应,节约宽带资源,同时提高网站后台的安全性。<BR/><br />
<strong>3、</strong>Eshop Desktop网店系统集成<strong>淘宝商城开放平台</strong>API,您无须通过第三方工具，直接可以发布商品到您的淘宝网店，解决您自身商店系统跟淘宝商城无法结合的问题，做到真正的与淘宝商城无缝的结合。<BR/><br />
<strong>4、</strong>Eshop Desktop网店系统集成<strong>Google</strong>API,您可以通过Google开放API，直接发布商品到google购物搜索平台。前台采用Google Gears加速，让你的商店系统在离线状态也可以浏览。<BR/><br />
<strong>5、</strong>Eshop Desktop网店系统集成<strong>在线客服系统</strong>,您无须购买第三方在线客服系统,EshopDesktop自身是基本Air的网络桌面应用，可以很好的结合客服系统，有效的提高客户转化率。您可以在线给商品拍照，录制视频,直接发布等&#8230;Eshop Desktop打造真正一体化管理全新的网店系统。</div>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/235/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EshopDesktop网店系统官方主页即将上线!</title>
		<link>http://www.eshopdesktop.com/index.php/archives/232</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/232#comments</comments>
		<pubDate>Sat, 15 Aug 2009 23:16:38 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[php网店系统]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=232</guid>
		<description><![CDATA[EshopDesktop网店系统官方主页即将上线!
]]></description>
			<content:encoded><![CDATA[<p>EshopDesktop<a title="EshopDesktop网店系统" href="http://www.eshopdesktop.com/EshopDesktop" target="_blank">网店系统官方主页</a>即将上线!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/232/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>热烈庆祝男士衬衫品牌-CanGet 凯恩凯特商城平台上线!</title>
		<link>http://www.eshopdesktop.com/index.php/archives/225</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/225#comments</comments>
		<pubDate>Wed, 12 Aug 2009 17:59:29 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[php网店系统]]></category>
		<category><![CDATA[杂谈]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=225</guid>
		<description><![CDATA[CanGet凯恩凯特男士衬衫品牌，能达利衬衫集团直销衬衫品牌★全场包邮-货到付款★为您提供男士衬衫网上直销。
产品有休闲衬衫,长袖衬衫,短袖衬衫,格子衬衫,保暖衬衫,正装衬衫,牛津纺免烫衬衫,纯棉衬衫,衬衫批发,衬衫定做/定制。

]]></description>
			<content:encoded><![CDATA[<pre id="line1"><span class="attribute-value">热烈庆祝男士衬衫品牌-CanGet 凯恩凯特商城平台上线!
  CanGet凯恩凯特<a href="http://www.91ef.com">男士衬衫</a>品牌，能达利衬衫集团直销衬衫品牌★全场包邮-货到付款★为您提供男士衬衫网上直销。
产品有休闲衬衫,长袖衬衫,短袖衬衫,格子衬衫,保暖衬衫,正装衬衫,牛津纺免烫衬衫,纯棉衬衫,衬衫批发,衬衫定做/定制。
  </span></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/225/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>flex分页组件-EshopDesktop网店系统开发心得分享(四)</title>
		<link>http://www.eshopdesktop.com/index.php/archives/209</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/209#comments</comments>
		<pubDate>Sun, 09 Aug 2009 16:31:53 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Desktop网店开发]]></category>
		<category><![CDATA[Eshop网店系统]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[Memcached]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[adobe air网店系统]]></category>
		<category><![CDATA[flex网店系统开发]]></category>
		<category><![CDATA[php网店系统]]></category>
		<category><![CDATA[网店系统资源]]></category>
		<category><![CDATA[网店系统分页组件]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=209</guid>
		<description><![CDATA[EshopDesktop网店系统分页组件]]></description>
			<content:encoded><![CDATA[<p>EshopDesktop网店系统分页组件:</p>
<p>1.Event事件代码 :</p>
<p>package Eshop.Event<br />
{<br />
import flash.events.Event;</p>
<p>public class PageChangeEvent extends Event<br />
{<br />
public static const EVENT_NAME:String = &#8216;PageChangeEvent&#8217;;<br />
public var currentPage:int = 1;<br />
public function PageChangeEvent(type:String, bubbles:Boolean=true, cancelable:Boolean=false)<br />
{<br />
//TODO: implement function<br />
super(type, bubbles, cancelable);<br />
}</p>
<p>}<br />
}</p>
<p>组件代码:</p>
<p>[Event(name='PageChangeEvent')]</p>
<p><![CDATA[<br />
import Eshop.Event.PageChangeEvent;<br />
[Bindable]<br />
private var _itemTotalCount:int = 0;<br />
[Bindable]<br />
private var _currentPage:int = 1;<br />
[Bindable]<br />
private var _pageCount:int = 1;<br />
[Bindable]<br />
private var _firstItemNumber:int = 0;<br />
[Bindable]<br />
private var _lastItemNumber:int = 0;</p>
<p>public  function set itemTotalCount(value:int):void{<br />
_itemTotalCount = value;<br />
}<br />
public  function get itemTotalCount():int{<br />
return _itemTotalCount;<br />
}<br />
public function set currentPage(value:int):void{<br />
_currentPage = value;<br />
}<br />
public function get currentPage():int{<br />
return _currentPage;<br />
}<br />
public function set pageCount(value:int):void{<br />
_pageCount = value;<br />
}<br />
public function getPageCount():int{<br />
return _pageCount;<br />
}<br />
public function set firstItemNumber(value:int):void{<br />
_firstItemNumber = value;<br />
}<br />
public function get firstItemNumber():int{<br />
return _firstItemNumber;<br />
}<br />
public function get lastItemNumber():int{<br />
return _lastItemNumber;<br />
}<br />
public function set lastItemNumber(value:int):void{<br />
_lastItemNumber = value;<br />
}<br />
private function firstClickHandle(e:MouseEvent):void{<br />
var event:PageChangeEvent = new PageChangeEvent(PageChangeEvent.EVENT_NAME);<br />
_currentPage = 1;<br />
event.currentPage = _currentPage;<br />
dispatchEvent(event);<br />
}<br />
private function preClickHandle(e:MouseEvent):void{<br />
var event:PageChangeEvent = new PageChangeEvent(PageChangeEvent.EVENT_NAME);<br />
if(_currentPage>1){<br />
_currentPage  ;<br />
event.currentPage = _currentPage;<br />
}<br />
else{<br />
_currentPage = 1;<br />
event.currentPage = _currentPage;<br />
}<br />
dispatchEvent(event);<br />
}<br />
private function nextClickHandle(e:MouseEvent):void{<br />
var event:PageChangeEvent = new PageChangeEvent(PageChangeEvent.EVENT_NAME);<br />
if(_currentPage</p>
<this._pageCount){<br />
_currentPage ++;<br />
event.currentPage = _currentPage;<br />
}<br />
else{<br />
_currentPage = _pageCount;<br />
event.currentPage = _currentPage;<br />
}<br />
dispatchEvent(event);<br />
}<br />
private function lastClickHandle(e:MouseEvent):void{<br />
var event:PageChangeEvent = new PageChangeEvent(PageChangeEvent.EVENT_NAME);<br />
_currentPage = this._pageCount;<br />
event.currentPage = this._pageCount;<br />
dispatchEvent(event);<br />
}<br />
private function jumpHandle(e:Event):void{<br />
var event:PageChangeEvent = new PageChangeEvent(PageChangeEvent.EVENT_NAME);<br />
_currentPage = this.pageNT.value;<br />
event.currentPage = _currentPage;<br />
dispatchEvent(event);<br />
}<br />
]]&gt;
<div class="hl-surround"><div class="hl-main">调用示例:</div></div>
<blockquote><p>//鉴听分页内容<br />
this.MemberPager.addEventListener(PageChangeEvent.EVENT_NAME, pageChangeHandle);<br />
private function pageChangeHandle(e:PageChangeEvent):void{<br />
trace(e.currentPage);<br />
this.currentPage = e.currentPage;<br />
this.loadData();<br />
}</p></blockquote>
<p>效果图:<br />
<a href="http://www.eshopdesktop.com/wp-content/uploads/2009/08/page.jpg"><img class="alignnone size-medium wp-image-213" title="page" src="http://www.eshopdesktop.com/wp-content/uploads/2009/08/page-300x64.jpg" alt="page" width="300" height="64" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/209/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>十款经典PHP网店系统全面比较(转)</title>
		<link>http://www.eshopdesktop.com/index.php/archives/205</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/205#comments</comments>
		<pubDate>Tue, 04 Aug 2009 05:51:54 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[adobe air网店系统]]></category>
		<category><![CDATA[php网店系统]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=205</guid>
		<description><![CDATA[
一、EshopDesktop
Eshop Desktop网店系统，是一款基于Adobe Air开发的网店系统，是目前国内首款网络桌面版php网店系统。该php网店系统基于zend framework框架的mvc三层架构设计,
采用memcache高速内存缓存系统，客户端基于Adobe Air系统,提高用户体验，与淘宝网上商城无缝结合，集成google API,在线客服系统。
二、OXID eSalesOXID eSales是一个开源的e-commerce系统，采用PHP开发，使用MySQL来存储数据。OXID eSales拥有一个模块化和基于标准的架构，从而使它更便于定制。该系统拥有所有e-commerce系统应具备的功能包括：B2C、B2B。强大的一 体化市场营销。集成内容管理系统(CMS)。搜索引擎优化的友好网址。
三、Magento
Magento是一项新的专业开放源代码的电子商务解决方案，提供前所未有的灵活性和控制。
四、PrestaShop
PrestaShop是一个功能丰富，基于PHP5开发的Web2.0网上购物系统。PrestaShop具有可定制，稳定等特点。整个系统只有5.8MB，易于快速安装。
五、ShopNC
基于MVC成熟规范，面向企业SOA的高端WEB应用服务开发平台，完善的开发者技术文档支持，内容涉及应用服务器、建模、业务流程、接口、整合等。提供自主研发框架、模块化的程序代码设计和企业级高复杂度、高可用性系统开发咨询和人员培训。
六、OpenCart
OpenCart是新一代基于PHP开发的开源在线购物车系统。OpenCart具有易于使用，功能丰富，搜索引擎友好和漂亮简洁的操作界面等特点。
七、ECSHOP
ECSHOP是一款开源免费的网上独立建店系统，由专业的开发团队升级维护，并为您提供及时高效的技术支持，您还可以根据自己的商务特征对ECSHOP进行定制，增加自己商城的特色功能。
八、Zen Cart
Zen Cart是一个用户友好，开源的购物车系统。它具有：易于安装、多种消费者模式、不限目录深度、多种销售与折扣模式、多种展示方式、XHTML模板系统、多横幅广告控制器、newsletter管理器等特点。
九、osCommerce
osCommerce 是一套基于GNU GPL授权的开源在线购物电子商务解决方案。该系统具有易于操作的可视化安装界面、完善的前台商品展示和户在线购物车功能、强大的后台管理和维护功能模块 简单易用、70,000人的官方社区用户和活跃的论坛、121,300家已经注册的在线商店的解决方案3,000个成熟的插件供你选择。
十、Php-MultiShop
Php- MultiShop是一个基于PhpNuke与osCommerce的虚拟购物商场。它可被用作具有任何类型内容(如新闻，论坛，事件等)的门户网站和一 个或多个独立的网店。每个商店将有它们自已的域名，并且具有一个典型电子商务所应拥有的全部功能与个性。每个商店完全可以自主管理好像是独立于该电子商 场。
要做电子商务，你可以选择在淘宝，拍拍，Ebay或是最新的百度有啊，而如果要自己搭建平台，当然首先要选择一个合适的电子商务管理系统。这里是10款PHP开源的电子商务管理系统。如果你想做CMS网站，则请阅读 10款基于PHP的免费CMS推荐。
来源：http://www.315zg.cn/article/168.html 作者：xmmei
]]></description>
			<content:encoded><![CDATA[<div id="content" class="content">
<p><strong>一、</strong><a href="http://www.eshopdesktop.com" target="_blank"><strong>EshopDesktop</strong></a></p>
<p>Eshop Desktop网店系统，是一款基于Adobe Air开发的网店系统，是目前国内首款网络桌面版php网店系统。该php网店系统基于zend framework框架的mvc三层架构设计,<br />
采用memcache高速内存缓存系统，客户端基于Adobe Air系统,提高用户体验，与淘宝网上商城无缝结合，集成google API,在线客服系统。</p>
<p><strong>二、</strong><a href="http://www.oxid-esales.com/" target="_blank"><strong>OXID eSales</strong></a>OXID eSales是一个开源的e-commerce<strong style="color: black; background-color: #ff9999;">系统</strong>，采用<strong style="color: black; background-color: #ffff66;">PHP</strong>开发，使用MySQL来存储数据。OXID eSales拥有一个模块化和基于标准的架构，从而使它更便于定制。该<strong style="color: black; background-color: #ff9999;">系统</strong>拥有所有e-commerce<strong style="color: black; background-color: #ff9999;">系统</strong>应具备的功能包括：B2C、B2B。强大的一 体化市场营销。集成内容管理<strong style="color: black; background-color: #ff9999;">系统</strong>(CMS)。搜索引擎优化的友好网址。</p>
<p><strong>三、</strong><a href="http://www.magentocommerce.com/" target="_blank"><strong>Magento</strong></a></p>
<p>Magento是一项新的专业开放源代码的电子商务解决方案，提供前所未有的灵活性和控制。</p>
<p><strong>四、</strong><a href="http://www.prestashop.com/" target="_blank"><strong>PrestaShop</strong></a></p>
<p>PrestaShop是一个功能丰富，基于PHP5开发的Web2.0网上购物<strong style="color: black; background-color: #ff9999;">系统</strong>。PrestaShop具有可定制，稳定等特点。整个<strong style="color: black; background-color: #ff9999;">系统</strong>只有5.8MB，易于快速安装。</p>
<p><strong>五、</strong><a href="http://www.shopnc.net/" target="_blank"><strong>ShopNC</strong></a></p>
<p>基于MVC成熟规范，面向企业SOA的高端WEB应用服务开发平台，完善的开发者技术文档支持，内容涉及应用服务器、建模、业务流程、接口、整合等。提供自主研发框架、模块化的程序代码设计和企业级高复杂度、高可用性<strong style="color: black; background-color: #ff9999;">系统</strong>开发咨询和人员培训。</p>
<p><strong>六、</strong><a href="http://www.opencart.com/" target="_blank"><strong>OpenCart</strong></a></p>
<p>OpenCart是新一代基于<strong style="color: black; background-color: #ffff66;">PHP</strong>开发的开源在线购物车<strong style="color: black; background-color: #ff9999;">系统</strong>。OpenCart具有易于使用，功能丰富，搜索引擎友好和漂亮简洁的操作界面等特点。</p>
<p><strong>七、</strong><a href="http://www.ecshop.com/" target="_blank"><strong>ECSHOP</strong></a></p>
<p>ECSHOP是一款开源免费的网上独立建<strong style="color: black; background-color: #99ff99;">店</strong><strong style="color: black; background-color: #ff9999;">系统</strong>，由专业的开发团队升级维护，并为您提供及时高效的技术支持，您还可以根据自己的商务特征对ECSHOP进行定制，增加自己商城的特色功能。</p>
<p><strong>八、</strong><a href="http://www.zen-cart.cn/" target="_blank"><strong>Zen Cart</strong></a></p>
<p>Zen Cart是一个用户友好，开源的购物车<strong style="color: black; background-color: #ff9999;">系统</strong>。它具有：易于安装、多种消费者模式、不限目录深度、多种销售与折扣模式、多种展示方式、XHTML模板<strong style="color: black; background-color: #ff9999;">系统</strong>、多横幅广告控制器、newsletter管理器等特点。<br />
<strong>九、</strong><a href="http://www.oscommerce.com/" target="_blank"><strong>osCommerce</strong></a></p>
<p>osCommerce 是一套基于GNU GPL授权的开源在线购物电子商务解决方案。该<strong style="color: black; background-color: #ff9999;">系统</strong>具有易于操作的可视化安装界面、完善的前台商品展示和户在线购物车功能、强大的后台管理和维护功能模块 简单易用、70,000人的官方社区用户和活跃的论坛、121,300家已经注册的在线商店的解决方案3,000个成熟的插件供你选择。</p>
<p><strong>十、</strong><a href="http://php-multishop.com/" target="_blank"><strong><strong style="color: black; background-color: #ffff66;">Php</strong>-MultiShop</strong></a></p>
<p><strong style="color: black; background-color: #ffff66;">Php</strong>- MultiShop是一个基于PhpNuke与osCommerce的虚拟购物商场。它可被用作具有任何类型内容(如新闻，论坛，事件等)的门户网站和一 个或多个独立的<strong style="color: black; background-color: #a0ffff;">网</strong><strong style="color: black; background-color: #99ff99;">店</strong>。每个商店将有它们自已的域名，并且具有一个典型电子商务所应拥有的全部功能与个性。每个商店完全可以自主管理好像是独立于该电子商 场。</p>
<p>要做电子商务，你可以选择在淘宝，拍拍，Ebay或是最新的百度有啊，而如果要自己搭建平台，当然首先要选择一个合适的电子商务管理<strong style="color: black; background-color: #ff9999;">系统</strong>。这里是10款<strong style="color: black; background-color: #ffff66;">PHP</strong>开源的电子商务管理<strong style="color: black; background-color: #ff9999;">系统</strong>。如果你想做CMS网站，则请阅读 10款基于<strong style="color: black; background-color: #ffff66;">PHP</strong>的免费CMS推荐。</div>
<p><span>来源：http://www.315zg.cn/article/168.html</span> <span>作者：xmmei</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/205/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>adobe air+php在线拍照-EshopDesktop网店系统开发心得分享(三)</title>
		<link>http://www.eshopdesktop.com/index.php/archives/197</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/197#comments</comments>
		<pubDate>Mon, 03 Aug 2009 19:16:04 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Desktop网店开发]]></category>
		<category><![CDATA[Eshop网店系统]]></category>
		<category><![CDATA[Memcached]]></category>
		<category><![CDATA[adobe air网店系统]]></category>
		<category><![CDATA[flex网店系统开发]]></category>
		<category><![CDATA[php网店系统]]></category>
		<category><![CDATA[杂谈]]></category>
		<category><![CDATA[网店系统资源]]></category>
		<category><![CDATA[flex在线]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=197</guid>
		<description><![CDATA[今天为EshopDesktop网店系统管理员修改资料可以在线拍照,保存为头像的功能:
后端为php,php支持二进制直接保存图片,也可以用GD2截剪图片.
flex代码如下:
layout=&#8221;absolute&#8221; width=&#8221;304&#8243; height=&#8221;316&#8243;   title=&#8221;我的摄像头&#8221; xmlns:ac=&#8221;com.adobe.ac.*&#8221;&#62;

import Eshop.Model.AdminUserModel;
import Eshop.Event.SaveAdminFaceEvent;
import mx.graphics.ImageSnapshot;
import Eshop.Units.MessageBox;
import mx.managers.PopUpManager;
import flash.media.Camera;
private function closeWin():void{
//关闭摄像头
Camera.getCamera(null);
myVideo.attachCamera(null);
//关闭窗口
PopUpManager.removePopUp(this);
}
//显示摄像头
private function showCamera():void{
try{
var camera:Camera= Camera.getCamera();
camera.setMode(300, 240, 20);
camera.setKeyFrameInterval(28);
camera.setQuality(40000, 100);
myVideo.attachCamera(camera);
var names:Array = Camera.names;
this.title ='我的摄像头：' +names[0];
}
catch(error:Error){
MessageBox.error(error.message);
}
}
private function capture():void{
var index:int = cameraStack.selectedIndex;
if(index==1){
//切找到摄相头
cameraStack.selectedIndex = 0;
saveBtn.enabled = false;
captureBtn.label ='拍照';
}
else{
captureBtn.label ='摄像头';
//浏览
var bd:BitmapData = new BitmapData(myVideo.width, myVideo.height);
var m:Matrix = new Matrix();
bd.draw( myVideo, m );
cameraStack.selectedIndex = 1;
preview.source = new Bitmap(bd);
saveBtn.enabled [...]]]></description>
			<content:encoded><![CDATA[<p>今天为EshopDesktop网店系统管理员修改资料可以在线拍照,保存为头像的功能:</p>
<p>后端为php,php支持二进制直接保存图片,也可以用GD2截剪图片.<br />
flex代码如下:</p>
<p>layout=&#8221;absolute&#8221; width=&#8221;304&#8243; height=&#8221;316&#8243;   title=&#8221;我的摄像头&#8221; xmlns:ac=&#8221;com.adobe.ac.*&#8221;&gt;</p>
<p><![CDATA[<br />
import Eshop.Model.AdminUserModel;<br />
import Eshop.Event.SaveAdminFaceEvent;<br />
import mx.graphics.ImageSnapshot;<br />
import Eshop.Units.MessageBox;<br />
import mx.managers.PopUpManager;<br />
import flash.media.Camera;<br />
private function closeWin():void{<br />
//关闭摄像头<br />
Camera.getCamera(null);<br />
myVideo.attachCamera(null);<br />
//关闭窗口<br />
PopUpManager.removePopUp(this);<br />
}<br />
//显示摄像头<br />
private function showCamera():void{<br />
try{<br />
var camera:Camera= Camera.getCamera();<br />
camera.setMode(300, 240, 20);<br />
camera.setKeyFrameInterval(28);<br />
camera.setQuality(40000, 100);<br />
myVideo.attachCamera(camera);<br />
var names:Array = Camera.names;<br />
this.title ='我的摄像头：' +names[0];</p>
<p>}<br />
catch(error:Error){<br />
MessageBox.error(error.message);<br />
}</p>
<p>}<br />
private function capture():void{</p>
<p>var index:int = cameraStack.selectedIndex;</p>
<p>if(index==1){<br />
//切找到摄相头<br />
cameraStack.selectedIndex = 0;<br />
saveBtn.enabled = false;<br />
captureBtn.label ='拍照';<br />
}<br />
else{<br />
captureBtn.label ='摄像头';<br />
//浏览<br />
var bd:BitmapData = new BitmapData(myVideo.width, myVideo.height);<br />
var m:Matrix = new Matrix();<br />
bd.draw( myVideo, m );<br />
cameraStack.selectedIndex = 1;<br />
preview.source = new Bitmap(bd);<br />
saveBtn.enabled = true;</p>
<p>}</p>
<p>}<br />
//保存到服务器<br />
private function saveFace():void{<br />
cursorManager.setBusyCursor();</p>
<p>var snapshot:ImageSnapshot = ImageSnapshot.captureImage(preview);</p>
<p>var e:SaveAdminFaceEvent = new SaveAdminFaceEvent();<br />
e.imgData = snapshot.data;<br />
e.adminId = AdminUserModel.getInstance().loginUser.Id;<br />
e.dispatch();</p>
<p>}<br />
private function saveFaceResult(result:Boolean):void{<br />
if(result){<br />
MessageBox.info('保存成功!');<br />
AdminUserModel.getInstance().saveFaceResult = false;<br />
}<br />
}<br />
]]&gt;</p>
<p>效果图:<br />
<a href="http://www.eshopdesktop.com/wp-content/uploads/2009/08/eshopdesktop.jpg"><img class="alignnone size-full wp-image-200" title="eshopdesktop" src="http://www.eshopdesktop.com/wp-content/uploads/2009/08/eshopdesktop.jpg" alt="eshopdesktop" width="299" height="225" /></a></p>
<p><a href="http://www.eshopdesktop.com/wp-content/uploads/2009/08/eshopdesktop2.jpg"><img class="alignnone size-medium wp-image-203" title="eshopdesktop2" src="http://www.eshopdesktop.com/wp-content/uploads/2009/08/eshopdesktop2-300x224.jpg" alt="eshopdesktop2" width="300" height="224" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/197/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php框架Zend Framework memcached后端缓存支持tag标签扩展</title>
		<link>http://www.eshopdesktop.com/index.php/archives/194</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/194#comments</comments>
		<pubDate>Sun, 02 Aug 2009 10:18:06 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Eshop网店系统]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=194</guid>
		<description><![CDATA[让Zend Framework memcached后端缓存系统支持Tag扩展:

]]></description>
			<content:encoded><![CDATA[<p>让Zend Framework memcached后端缓存系统支持Tag扩展:
<php>
<?php<br />
/**<br />
 * Zend Framework<br />
 *<br />
 * LICENSE<br />
 *<br />
 * This source file is subject to the new BSD license that is bundled<br />
 * with this package in the file LICENSE.txt.<br />
 * It is also available through the world-wide-web at this URL:<br />
 * http://framework.zend.com/license/new-bsd<br />
 * If you did not receive a copy of the license and are unable to<br />
 * obtain it through the world-wide-web, please send an email<br />
 * to license@zend.com so we can send you a copy immediately.<br />
 *<br />
 * @category   Zend<br />
 * @package    Zend_Cache<br />
 * @subpackage Zend_Cache_Backend<br />
 * @copyright  Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)<br />
 * @license    http://framework.zend.com/license/new-bsd     New BSD License<br />
 */</p>
<p>/**<br />
 * @see Zend_Cache_Backend_Interface<br />
 */<br />
require_once 'Zend/Cache/Backend/Interface.php';</p>
<p>/**<br />
 * @see Zend_Cache_Backend<br />
 */<br />
require_once 'Zend/Cache/Backend.php';</p>
<p>/**<br />
 * @package    Zend_Cache<br />
 * @subpackage Zend_Cache_Backend<br />
 * @copyright  Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)<br />
 * @license    http://framework.zend.com/license/new-bsd     New BSD License<br />
 */<br />
class Eshop_Cache_Backend_Memcached extends Zend_Cache_Backend implements Zend_Cache_Backend_Interface<br />
{<br />
    /**<br />
     * Default Host IP Address or DNS<br />
     */<br />
    const DEFAULT_HOST       = '127.0.0.1';</p>
<p>    /**<br />
     * Default port<br />
     */<br />
    const DEFAULT_PORT       = 11211;</p>
<p>    /**<br />
     * Persistent<br />
     */<br />
    const DEFAULT_PERSISTENT = true;</p>
<p>    const _METADATA_CACHE_ID = 'internal_memcached_metadata';<br />
    const EMULATED_TAGS_KEY = 'Tags';<br />
    /**<br />
     * Available options<br />
     *<br />
     * =====> (array) servers :<br />
     * an array of memcached server ; each memcached server is described by an associative array :<br />
     * &#8216;host&#8217; => (string) : the name of the memcached server<br />
     * &#8216;port&#8217; => (int) : the port of the memcached server<br />
     * &#8216;persistent&#8217; => (bool) : use or not persistent connections to this memcached server<br />
     *<br />
     * =====> (boolean) compression :<br />
     * true if you want to use on-the-fly compression<br />
     *<br />
     * @var array available options<br />
     */<br />
    protected $_options = array(<br />
        &#8217;servers&#8217; => array(array(<br />
            &#8216;host&#8217; => Zend_Cache_Backend_Memcached::DEFAULT_HOST,<br />
            &#8216;port&#8217; => Zend_Cache_Backend_Memcached::DEFAULT_PORT,<br />
            &#8216;persistent&#8217; => Zend_Cache_Backend_Memcached::DEFAULT_PERSISTENT<br />
        )),<br />
        &#8216;compression&#8217; => false,<br />
        &#8216;emulateTags&#8217; => true,<br />
        &#8216;tag_prefix&#8217; =>&#8217;AirShop_&#8217;<br />
    );</p>
<p>    /**<br />
     * Memcache object<br />
     *<br />
     * @var mixed memcache object<br />
     */<br />
    private $_memcache = null;</p>
<p>    /**<br />
     * Metadata store object<br />
     *<br />
     * @var mixed memcache object<br />
     */<br />
    private $_medatadaBackend;</p>
<p>    /**<br />
     * Use metadata functionality?<br />
     *<br />
     * @var boolean<br />
     */<br />
    private $_useMetadata = false;</p>
<p>    /**<br />
     * Constructor<br />
     *<br />
     * @param array $options associative array of options<br />
     * @throws Zend_Cache_Exception<br />
     * @return void<br />
     */<br />
    public function __construct(array $options = array())<br />
    {<br />
        if (!extension_loaded(&#8217;memcache&#8217;)) {<br />
            Zend_Cache::throwException(&#8217;The memcache extension must be loaded for using this backend !&#8217;);<br />
        }<br />
        parent::__construct($options);<br />
        if($this->_memcache == null){<br />
        	$this->_memcache = new Memcache;<br />
        }<br />
        foreach ($this->_options['servers'] as $server) {<br />
            if (!array_key_exists(&#8217;persistent&#8217;, $server)) {<br />
                $server['persistent'] = Zend_Cache_Backend_Memcached::DEFAULT_PERSISTENT;<br />
            }<br />
            if (!array_key_exists(&#8217;port&#8217;, $server)) {<br />
                $server['port'] = Zend_Cache_Backend_Memcached::DEFAULT_PORT;<br />
            }<br />
            $this->_memcache->addServer($server['host'], $server['port'], $server['persistent']);<br />
        }</p>
<p>    }</p>
<p>    /**<br />
     * Test if a cache is available for the given id and (if yes) return it (false else)<br />
     *<br />
     * @param  string  $id                     Cache id<br />
     * @param  boolean $doNotTestCacheValidity If set to true, the cache validity won&#8217;t be tested<br />
     * @return string|false cached datas<br />
     */<br />
    public function load($id, $doNotTestCacheValidity = false)<br />
    {<br />
        // WARNING : $doNotTestCacheValidity is not supported !!!<br />
        if ($doNotTestCacheValidity) {<br />
            $this->_log(&#8221;Zend_Cache_Backend_Memcached::load() : \$doNotTestCacheValidity=true is unsupported by the Memcached backend&#8221;);<br />
        }<br />
        $tmp = $this->_memcache->get($id);<br />
        if (is_array($tmp)) {<br />
            return $tmp[0];<br />
        }<br />
        return false;<br />
    }</p>
<p>    /**<br />
     * Test if a cache is available or not (for the given id)<br />
     *<br />
     * @param  string $id Cache id<br />
     * @return mixed|false (a cache is not available) or &#8220;last modified&#8221; timestamp (int) of the available cache record<br />
     */<br />
    public function test($id)<br />
    {<br />
        $tmp = $this->_memcache->get($id);<br />
        if (is_array($tmp)) {<br />
            return $tmp[1];<br />
        }<br />
        return false;<br />
    }<br />
    private function _tag(array $tags){<br />
    	if(!empty($tags)){<br />
    		foreach($tags as $key => $val){<br />
    			$tags[$key] = $this->_options['tag_prefix'] . self::EMULATED_TAGS_KEY . &#8216;_&#8217; . $val;<br />
    		}<br />
    	}<br />
    	return $tags;<br />
    }<br />
    /**<br />
     * Save some string datas into a cache record<br />
     *<br />
     * Note : $data is always &#8220;string&#8221; (serialization is done by the<br />
     * core not by the backend)<br />
     *<br />
     * @param  string $data             Datas to cache<br />
     * @param  string $id               Cache id<br />
     * @param  array  $tags             Array of strings, the cache record will be tagged by each string entry<br />
     * @param  int    $specificLifetime If != false, set a specific lifetime for this cache record (null => infinite lifetime)<br />
     * @return boolean True if no problem<br />
     */<br />
    public function save($data, $id, $tags = array(), $specificLifetime=0)<br />
    {<br />
       // $tags = $this->_tag($tags);<br />
    	$lifetime = $this->getLifetime($specificLifetime);<br />
    	if ($this->_options['compression']) {<br />
            $flag = MEMCACHE_COMPRESSED;<br />
        } else {<br />
            $flag = 0;<br />
        }<br />
        if (!($result = $this->_memcache->add($id, array($data, time(), $lifetime), $flag, $lifetime))) {<br />
            $result = $this->_memcache->set($id, array($data, time(), $lifetime), $flag, $lifetime);<br />
        }</p>
<p>        if($result &#038;&#038; count($tags) > 0)<br />
        {<br />
        	if(true)<br />
        	{<br />
				$tag_list = $this->_memcache->get($this->_options['tag_prefix'] . self::EMULATED_TAGS_KEY);</p>
<p>				$tag_list = (is_array($tag_list) ? $tag_list : array());<br />
				$tag_keys = explode(&#8217;,', $this->_options['tag_prefix'] .self::EMULATED_TAGS_KEY . &#8216;_&#8217; . implode(&#8217;,&#8217; . $this->_options['tag_prefix'] .self::EMULATED_TAGS_KEY . &#8216;_&#8217;, $tags));</p>
<p>				$found_tags = $this->_memcache->get($tag_keys);</p>
<p>				$tag_keys = array_merge(array_flip($tag_keys), $found_tags);<br />
				unset($found_tags);</p>
<p>				foreach($tag_keys as $tag=>$data)<br />
				{<br />
					if(!is_array($data))<br />
					{<br />
						$data = array();<br />
					}<br />
					$data[] = $id;</p>
<p>					$this->_memcache->set($tag, array_unique($data), $flag, 0);<br />
				}<br />
				$new_tags = array_diff($tags, $tag_list);<br />
				if(count($new_tags) > 0)<br />
				{<br />
					$tag_list = array_merge($tag_list, array_values($tags));<br />
					$this->_memcache->set($this->_options['tag_prefix'] .self::EMULATED_TAGS_KEY, $tag_list, $flag, 0);<br />
				}<br />
        	}<br />
        	else<br />
        	{<br />
	            if ($this->_directives['logging']) {<br />
	                Zend_Log::log(&#8221;Zend_Cache_Backend_Memcached::save() : tags are unsupported by the Memcached backend&#8221;, Zend_Log::LEVEL_WARNING);<br />
	            }<br />
        	}<br />
        }<br />
        return $result;<br />
    }</p>
<p>    /**<br />
     * Fetch and return metadata from metadata backend<br />
     *<br />
     * @return array<br />
     */<br />
    private function _getMetadata()<br />
    {<br />
        $metadata = $this->_memcache->get(  $this->_options['tag_prefix'] . Eshop_Cache_Backend_Memcached::EMULATED_TAGS_KEY );<br />
        if( $metadata === false )<br />
        {<br />
            $metadata = array();<br />
        }</p>
<p>        return $metadata;<br />
    }<br />
    public function getAllTags(){<br />
    	return $this->_getMetadata();<br />
    }</p>
<p>    /**<br />
     * Save metadata to metadata backend<br />
     *<br />
     * @param unknown_type $metadata<br />
     * @return boolean True if no problem<br />
     */<br />
    private function _saveMetadata( $metadata )<br />
    {<br />
        return $this->_medatadaBackend->save( $metadata, Eshop_Cache_Backend_Memcached::_METADATA_CACHE_ID, array(), 3153600000 );<br />
    }</p>
<p>    /**<br />
     * Remove a cache record<br />
     *<br />
     * @param  string $id Cache id<br />
     * @return boolean True if no problem<br />
     */<br />
    public function remove($id)<br />
    {<br />
        return $this->_memcache->delete($id);<br />
    }</p>
<p>    /**<br />
     * Clean some cache records<br />
     *<br />
     * Available modes are :<br />
     * &#8216;all&#8217; (default)  => remove all cache entries ($tags is not used)<br />
     * &#8216;old&#8217;            => remove too old cache entries ($tags is not used)<br />
     * &#8216;matchingTag&#8217;    => remove cache entries matching all given tags<br />
     *                     ($tags can be an array of strings or a single string)<br />
     * &#8216;matchingAnyTag&#8217;    => remove cache entries matching any given tags<br />
     *                     ($tags can be an array of strings or a single string)<br />
     * &#8216;notMatchingTag&#8217; => remove cache entries not matching one of the given tags<br />
     *                     ($tags can be an array of strings or a single string)<br />
     *<br />
     * @param  string $mode Clean mode<br />
     * @param  array  $tags Array of tags<br />
     * @return boolean True if no problem<br />
     */<br />
    public function clean($mode = &#8216;all&#8217;, $tags = array())<br />
    {<br />
        //$tags = $this->_tag($tags);<br />
    	if ($this->_options['compression']) {<br />
            $flag = MEMCACHE_COMPRESSED;<br />
        } else {<br />
            $flag = 0;<br />
        }</p>
<p>        if ($mode==Zend_Cache::CLEANING_MODE_ALL) {<br />
            return $this->_memcache->flush();<br />
        }<br />
        if ($mode==Zend_Cache::CLEANING_MODE_OLD) {<br />
            if ($this->_directives['logging']) {<br />
                Zend_Log::log(&#8221;Zend_Cache_Backend_Memcached::clean() : CLEANING_MODE_OLD is unsupported by the Memcached backend&#8221;, Zend_Log::LEVEL_WARNING);<br />
            }<br />
        }<br />
        if ($mode==Zend_Cache::CLEANING_MODE_MATCHING_TAG) {<br />
        	if(count($tags) > 0 &#038;&#038; $this->_options['emulateTags'])<br />
        	{</p>
<p>        		$tag_list = $this->_memcache->get($this->_options['tag_prefix'] .self::EMULATED_TAGS_KEY);</p>
<p>				$tag_list = (is_array($tag_list) ? $tag_list : array());<br />
				$tags = array_intersect($tag_list, $tags);<br />
				$tag_keys = explode(&#8217;,', $this->_options['tag_prefix'] .self::EMULATED_TAGS_KEY . &#8216;_&#8217; . implode(&#8217;,&#8217; . $this->_options['tag_prefix'] .self::EMULATED_TAGS_KEY . &#8216;_&#8217;, $tags));</p>
<p>				$tag_keys = $this->_memcache->get($tag_keys);<br />
				foreach($tag_keys as $tag)<br />
				{<br />
					if(is_array($tag))<br />
					{<br />
						foreach($tag as $key)<br />
						{<br />
							$this->_memcache->delete($key);<br />
						}<br />
					}<br />
				}<br />
				$tag_list = array_diff($tag_list, $tags);<br />
				$this->_memcache->set($this->_options['tag_prefix'] .self::EMULATED_TAGS_KEY, $tag_list, $flag, 0);<br />
        	}<br />
        	elseif ($this->_directives['logging']) {<br />
                Zend_Log::log(&#8221;Zend_Cache_Backend_Memcached::clean() : tags are unsupported by the Memcached backend&#8221;, Zend_Log::LEVEL_WARNING);<br />
            }<br />
        }<br />
        if ($mode==Zend_Cache::CLEANING_MODE_NOT_MATCHING_TAG) {<br />
        	if($this->_options['emulateTags'])<br />
        	{<br />
				$tag_list = $this->_memcache->get($this->_options['tag_prefix'] .self::EMULATED_TAGS_KEY);<br />
				$tag_list = (is_array($tag_list) ? $tag_list : array());<br />
				$tags = array_diff($tag_list, $tags);<br />
				$tag_keys = explode(&#8217;,', $this->_options['tag_prefix'] .self::EMULATED_TAGS_KEY . &#8216;_&#8217; . implode(&#8217;,&#8217; . $this->_options['tag_prefix'] .self::EMULATED_TAGS_KEY . &#8216;_&#8217;, $tags));<br />
				$tag_keys = $this->_memcache->get($tag_keys);<br />
				foreach($tag_keys as $tag)<br />
				{<br />
					if(is_array($tag))<br />
					{<br />
						foreach($tag as $key)<br />
						{<br />
							$this->_memcache->delete($key);<br />
						}<br />
					}<br />
				}<br />
				$tag_list = array_diff($tag_list, $tags);<br />
				$this->_memcache->set($this->_options['tag_prefix'] .self::EMULATED_TAGS_KEY, $tag_list, $flag, 0);<br />
        	}<br />
            elseif ($this->_directives['logging']) {<br />
                Zend_Log::log(&#8221;Zend_Cache_Backend_Memcached::clean() : tags are unsupported by the Memcached backend&#8221;, Zend_Log::LEVEL_WARNING);<br />
            }<br />
        }<br />
    }</p>
<p>    /**<br />
     * Clean some cache records (private method used for recursive stuff)<br />
     *<br />
     * Available modes are :<br />
     * Zend_Cache::CLEANING_MODE_MATCHING_TAG     => remove cache entries matching all given tags<br />
     *                                               ($tags can be an array of strings or a single string)<br />
     * Zend_Cache::CLEANING_MODE_NOT_MATCHING_TAG => remove cache entries not {matching one of the given tags}<br />
     *                                               ($tags can be an array of strings or a single string)<br />
     *<br />
     * @param  string $mode Clean mode<br />
     * @param  array  $tags Array of tags<br />
     * @throws Zend_Cache_Exception<br />
     * @return boolean True if no problem<br />
     */<br />
    private function _clean( $mode = Zend_Cache::CLEANING_MODE_ALL , $tags = array() )<br />
    {<br />
        $result = true;</p>
<p>        $metadata = $this->_getMetadata();</p>
<p>        foreach( $metadata as $id => $metaTags )<br />
        {<br />
            switch( $mode ) {</p>
<p>                case Zend_Cache::CLEANING_MODE_MATCHING_ANY_TAG :<br />
                    $matching = false;<br />
                    foreach( $tags as $tag )<br />
                    {<br />
                        if( in_array( $tag, $metaTags ) )<br />
                        {<br />
                            $result = ( $result ) &#038;&#038; $this->remove( $id );<br />
                            unset( $metadata[$id] );<br />
                            break 2;<br />
                        }<br />
                    }<br />
                break;</p>
<p>                case Zend_Cache::CLEANING_MODE_MATCHING_TAG :<br />
                    $matching = true;<br />
                    foreach( $tags as $tag )<br />
                    {<br />
                        if(  ! in_array( $tag, $metaTags ) )<br />
                        {<br />
                            $matching = false;<br />
                            break;<br />
                        }<br />
                    }<br />
                    if( $matching )<br />
                    {<br />
                        $result = ( $result ) &#038;&#038; ( $this->remove( $id ) );<br />
                        unset( $metadata[$id] );<br />
                    }<br />
                break;<br />
                case Zend_Cache::CLEANING_MODE_NOT_MATCHING_TAG :<br />
                    $matching = false;<br />
                    foreach( $tags as $tag )<br />
                    {<br />
                        if( in_array( $tag, $metaTags ) )<br />
                        {<br />
                            $matching = true;<br />
                            break;<br />
                        }<br />
                    }<br />
                    if(  ! $matching )<br />
                    {<br />
                        $result = ( $result ) &#038;&#038; $this->remove( $id );<br />
                        unset( $metadata[$id] );<br />
                    }<br />
                break;<br />
                default :<br />
                    Zend_Cache::throwException( &#8216;Invalid mode for clean() method&#8217; );<br />
                break;<br />
            }<br />
        }</p>
<p>        $this->_saveMetadata( $metadata );</p>
<p>        return $result;<br />
    }</p>
<p>    /**<br />
     * Return true if the automatic cleaning is available for the backend<br />
     *<br />
     * @return boolean<br />
     */<br />
    public function isAutomaticCleaningAvailable()<br />
    {<br />
        return false;<br />
    }</p>
<p>    /**<br />
     * Set the frontend directives<br />
     *<br />
     * @param  array $directives Assoc of directives<br />
     * @throws Zend_Cache_Exception<br />
     * @return void<br />
     */<br />
    public function setDirectives($directives)<br />
    {<br />
        parent::setDirectives($directives);<br />
        $lifetime = $this->getLifetime(false);<br />
        if ($lifetime > 2592000) {<br />
            #聽ZF-3490 : For the memcached backend, there is a lifetime limit of 30 days (2592000 seconds)<br />
            $this->_log(&#8217;memcached backend has a limit of 30 days (2592000 seconds) for the lifetime&#8217;);<br />
        }<br />
    }<br />
    //删除分页内容<br />
    public function cleanPageItemCache(){<br />
    	$tag_list = $this->getAllTags();<br />
    	$tag_list = $this->_tag($tag_list);<br />
    	if(!empty($tag_list)){<br />
    		foreach($tag_list as $tag){</p>
<p>    			$ids = $this->_memcache->get($tag);<br />
    			if(!empty($ids)){<br />
    				foreach ($ids as $id){<br />
    					preg_match(&#8217;|&#8217;.Zend_Paginator::CACHE_TAG_PREFIX.&#8221;(\d+).*|&#8221;, $id, $page);<br />
    					if(!empty($page[0])){<br />
    						$this->_memcache->delete($this->_options['tag_prefix'] . $page[0]);<br />
    					}</p>
<p>    				}<br />
    			}<br />
    		}<br />
    	}<br />
    }<br />
}
</php>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/194/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EshopDesktop网店系统开发心得分享(一)</title>
		<link>http://www.eshopdesktop.com/index.php/archives/181</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/181#comments</comments>
		<pubDate>Thu, 30 Jul 2009 18:28:46 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Eshop网店系统]]></category>
		<category><![CDATA[flex网店系统开发]]></category>
		<category><![CDATA[php网店系统]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=181</guid>
		<description><![CDATA[Air+Zend +Amf开发网店系统占用内存过高问题]]></description>
			<content:encoded><![CDATA[<p>Adobe Air占用内存过高问题:</p>
<p>正在用Air+Zend Framework +Amf开发网店系统，我在开发过程地遇到好些问题，特别是内存占用的问题，我界面设计是左侧菜单+ 右侧动态Tab,我每开启一个Tab，内存急剧的增长，还有用popumanager时，每点开一个窗口，关闭后，内存也不会释放，该系统基于cairngorm框架，我想可能是model层占用内存较大，实际不然，model层的数据都来自服务器端数据，不会太大，而且分页之类的也不是一次性读取，google了一下，找到几个国外朋友也有类似情况，现有的几个基于Air的IM系统占用内存也比较大，暂时没有找到好的解决办法，唯一的办法就是在代码上下功夫，不知道有朋友遇到同样问题不？</p>
<p><a href="http://www.eshopdesktop.com/wp-content/uploads/2009/07/mydocument.pdf">pdf格式浏览：EshopDesktop网店系统开发心得分享</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/181/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于网店系统在线客服体验</title>
		<link>http://www.eshopdesktop.com/index.php/archives/172</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/172#comments</comments>
		<pubDate>Tue, 28 Jul 2009 19:19:37 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[php网店系统]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=172</guid>
		<description><![CDATA[网店系统在线客服体验]]></description>
			<content:encoded><![CDATA[<p>前几天女朋友在一直捣腾她的<a href="http://www.52pgou.com">饰品批发</a>购物平台,她自己申请了一个免费的在线客服系统挂上去了，今天听她说效果很明显，之前她只有放QQ，好象询问的人不是很多，没想到，挂上这个客服系统后，咨询的人明显多了，而且就这二天，客户留言也不少，看来这个客服系统还真比QQ之类的IM管用，之前我一直很反感这个在线客服系统，每次打开网站都主动的请求对话，很反感，也许个人习惯问题，我一直不太赞同这个用这个客服系统。</p>
<p>由此看来网上商城集一个在线客服系统是有必要的，正好自己正在开发中的<a title="网店系统" href="http://www.eshopdesktop.com" target="_blank">php网店系统</a>，可以考虑集成进去，刚好现开发中的网店系统是基于adobe air客户端，做这个客服系统，AIR有优势，不用每次都打开网页，有时候不小心关掉了网页，会话也中断了，打算用PHP SOCKET做后台鉴听，前台用Flex xml socket，开发起来都很方便，考虑到自己的一些业务逻辑，还是集成一个MINI型的自己的聊天系统，基本功能用就行，也不算是重复造轮子,至少自己可以边做边学习一点东西。</p>
<p>期待我的Eshop Desktop上线！哈，坚持，坚持！</p>
<p><a href="http://www.eshopdesktop.com/wp-content/uploads/2009/07/e7bd91e5ba97e7b3bbe7bb9fe4bd93e9aa8c.pdf">网店系统体验pdf格式浏览</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/172/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>flex DateField 显示中文格式日期</title>
		<link>http://www.eshopdesktop.com/index.php/archives/167</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/167#comments</comments>
		<pubDate>Sun, 26 Jul 2009 17:35:59 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Eshop网店系统]]></category>
		<category><![CDATA[flex网店系统开发]]></category>
		<category><![CDATA[php网店系统]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=167</guid>
		<description><![CDATA[在做网店系统商品促销时用到DateField:
&#60;mx:DateField width=&#34;96&#34;&#160; enabled=&#34;false&#34;&#160; dayNames='[&#34;日&#34;, &#34;一&#34;, &#34;二&#34;, &#34;三&#34;, &#34;四&#34;, &#34;五&#34;, &#34;六&#34;]'&#160;&#160; &#160;monthNames='[&#34;一月&#34;,&#34;二月&#34;,&#34;三月&#34;,&#34;四月&#34;,&#34;五月&#34;,&#34;六月&#34;,&#34;七月&#34;,&#34;八月&#34;,&#34;九月&#34;,&#34;十月&#34;,&#34;十一月&#34;,&#34;十二月&#34;]' formatString=&#34;YYYY-MM-DD&#34; id=&#34;PromoteEnd&#34;/&#62;
]]></description>
			<content:encoded><![CDATA[<p>在做网店系统商品促销时用到DateField:
<div class="hl-surround"><div class="hl-main">&lt;mx:DateField width=&quot;96&quot;&nbsp; enabled=&quot;false&quot;&nbsp; dayNames='[&quot;日&quot;, &quot;一&quot;, &quot;二&quot;, &quot;三&quot;, &quot;四&quot;, &quot;五&quot;, &quot;六&quot;]'<br />&nbsp;&nbsp; &nbsp;monthNames='[&quot;一月&quot;,&quot;二月&quot;,&quot;三月&quot;,&quot;四月&quot;,&quot;五月&quot;,&quot;六月&quot;,&quot;七月&quot;,&quot;八月&quot;,&quot;九月&quot;,&quot;十月&quot;,&quot;十一月&quot;,&quot;十二月&quot;]' formatString=&quot;YYYY-MM-DD&quot; id=&quot;PromoteEnd&quot;/&gt;</div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/167/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eshop Desktop网店系统简介</title>
		<link>http://www.eshopdesktop.com/index.php/archives/164</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/164#comments</comments>
		<pubDate>Sun, 19 Jul 2009 15:35:40 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Eshop网店系统]]></category>
		<category><![CDATA[Eshop Desktop网店系统简介]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=164</guid>
		<description><![CDATA[ Eshop Desktop网店系统简介:
 Eshop Desktop网店系统，是一款基于Adobe Air开发的网店系统，是目前国内首款网络桌面版php网店系统。 该系统基于php+zend framework框架的mvc三层架构设计,采用memcache高速内存缓存，客户端基于Adobe Air系统,提高用户体验，集成淘宝API，google API,在线客服系统。 Eshop Desktop打造全新概念的商店系统。
Eshop Desktop网店系统，专注于网店系统开发，关注电子商务未来！
Eshop Desktop网店系统简介pdf浏览
]]></description>
			<content:encoded><![CDATA[<div><span><span style="font-family: 'Courier New';"><span style="font-size: small;"> Eshop Desktop网店系统简介:</span></span></span></div>
<div><span><span style="font-family: 'Courier New';"><span style="font-size: small;"> Eshop Desktop网店系统，是一款基于Adobe Air开发的网店系统，是目前国内首款网络桌面版php网店系统。 该系统基于php+zend framework框架的mvc三层架构设计,采用memcache高速内存缓存，客户端基于Adobe Air系统,提高用户体验，集成淘宝API，google API,在线客服系统。 Eshop Desktop打造全新概念的商店系统。</span></span></span></div>
<div>Eshop Desktop网店系统，专注于网店系统开发，关注电子商务未来！</div>
<div><a href="http://www.eshopdesktop.com/wp-content/uploads/2009/07/eshop_desktop_adobe_air__.pdf">Eshop Desktop网店系统简介pdf浏览</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/164/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>商店系统概念</title>
		<link>http://www.eshopdesktop.com/index.php/archives/159</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/159#comments</comments>
		<pubDate>Sun, 19 Jul 2009 15:00:44 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Eshop网店系统]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=159</guid>
		<description><![CDATA[网店系统全称网上商店系统，可以分为asp网店系统、php网店系统等。asp和 php都是服务器端脚本语言，asp是微软的，php是免费的。asp做的商店系统主要运行在iis服务器上，一般用access或mssql做为数据 库，php做的网店系统主要运行在Apache服务器上，一般用mysql做为数据库，mysql和Apache也是免费的。
php非常适合web开发，现在已经成为全世界范围内web开发的首选语言。由于国内的版权意识不强，高校教育体系落后，asp在国内比php流行，但以后的发展趋势web开发首选php。
因为php、mysql、Apache没有版权限制，php又非常适合web开发，最近几年涌现出很多基于php+mysql的开源系统，网店系统 做为一种最典型的web应用，当然也不例外，国外的php网店系统有osc、zen cart、x-cart、opencart、magento、phpshop等，国内的php网店系统有mvmmall网店系统、eshop desktop air桌面网店系统,ecshop网店系统 等。
由于国情不同，国内的开源运动和国外相比，要变味许多，特点是号称免费，实际不免费，甚至代码还要加密。国内的php网店系统中，shopex网店系统核心代码就是加密的，mvmmall网店系统、ecshop网店系统号称免费，实际是有版权的，并不免费。网店系统概念pdf浏览
]]></description>
			<content:encoded><![CDATA[<p>网店系统全称网上商店系统，可以分为asp网店系统、php网店系统等。asp和 php都是服务器端脚本语言，asp是微软的，php是免费的。asp做的商店系统主要运行在iis服务器上，一般用access或mssql做为数据 库，php做的网店系统主要运行在Apache服务器上，一般用mysql做为数据库，mysql和Apache也是免费的。</p>
<p>php非常适合web开发，现在已经成为全世界范围内web开发的首选语言。由于国内的版权意识不强，高校教育体系落后，asp在国内比php流行，但以后的发展趋势web开发首选php。</p>
<p>因为php、mysql、Apache没有版权限制，php又非常适合web开发，最近几年涌现出很多基于php+mysql的开源系统，网店系统 做为一种最典型的web应用，当然也不例外，国外的php网店系统有osc、zen cart、x-cart、opencart、magento、phpshop等，国内的php网店系统有mvmmall网店系统、eshop desktop air桌面<a href="http://www.eshopdesktop.com">网店系统</a>,ecshop网店系统 等。</p>
<p>由于国情不同，国内的开源运动和国外相比，要变味许多，特点是号称免费，实际不免费，甚至代码还要加密。国内的php网店系统中，shopex网店系统核心代码就是加密的，mvmmall网店系统、ecshop网店系统号称免费，实际是有版权的，并不免费。<a href="http://www.eshopdesktop.com/wp-content/uploads/2009/07/e7bd91e5ba97e7b3bbe7bb9f.pdf">网店系统概念pdf浏览</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/159/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php框架Zend Framework 1.9预览版发布</title>
		<link>http://www.eshopdesktop.com/index.php/archives/155</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/155#comments</comments>
		<pubDate>Sat, 18 Jul 2009 01:12:54 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Eshop网店系统]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[php框架]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=155</guid>
		<description><![CDATA[
The Zend Framework team announces the immediate availability of a preview     release of version 1.9.0:

http://framework.zend.com/download/latest

Note that because these packages are not stable, they will not be     found on the zend.com CDN; please scroll to the bottom of the above page to     find links [...]]]></description>
			<content:encoded><![CDATA[<div class="article-body">
<p>The Zend Framework team announces the immediate availability of a preview     release of version 1.9.0:</p>
<dl>
<dd><a href="http://framework.zend.com/download/latest">http://framework.zend.com/download/latest</a></dd>
</dl>
<p>Note that because these packages are <em>not</em> stable, they will not be     found on the zend.com CDN; please scroll to the bottom of the above page to     find links to this release.</p>
<p>This preview release showcases many of the new features that will be     available in the upcoming stable release:</p>
<ul>
<li>
<div class="hl-surround"><div class="hl-main">Zend_Rest_Route</div></div>
<p>,
<div class="hl-surround"><div class="hl-main">Zend_Rest_Controller</div></div>
<p>, and
<div class="hl-surround"><div class="hl-main">Zend_Controller_Plugin_PutHandler</div></div>
<p>, which aid in providing     RESTful resources via the MVC layer.</li>
<li>
<div class="hl-surround"><div class="hl-main">Zend_Feed_Reader</div></div>
<p>, which provides a common API to RSS and     Atom feeds, as well as extensions to each format, caching, and a slew of     other functionality.</li>
<li>
<div class="hl-surround"><div class="hl-main">Zend_Queue</div></div>
<p> and
<div class="hl-surround"><div class="hl-main">Zend_Service_Amazon_Sqs</div></div>
<p>, which     provide the ability to use local and remote messaging and queue services for     offloading asynchronous processes.</li>
<li>
<div class="hl-surround"><div class="hl-main">Zend_Db_Table</div></div>
<p> updates to allow using
<div class="hl-surround"><div class="hl-main">Zend_Db_Table</div></div>
<p> as a concrete class by passing it one or more     table definitions via the constructor.</li>
<li>Annotation processing support for
<div class="hl-surround"><div class="hl-main">Zend_Pdf</div></div>
<p>, as well as     performance improvements.</li>
<li>
<div class="hl-surround"><div class="hl-main">Zend_Dojo</div></div>
<p> custom build layer support.</li>
<li>Numerous
<div class="hl-surround"><div class="hl-main">Zend_Ldap</div></div>
<p> improvements.</li>
<li>
<div class="hl-surround"><div class="hl-main">Zend_Log_Writer_Syslog</div></div>
<p>, a
<div class="hl-surround"><div class="hl-main">Zend_Log</div></div>
<p> writer for     writing to your system log.</li>
<li>Several new view helpers, including
<div class="hl-surround"><div class="hl-main">Zend_View_Helper_BaseUrl</div></div>
<p>.</li>
</ul>
<p>The 1.9.0 release is shaping up quickly, and we expect to launch a beta late     next week, with a stable release a week or so later.</p>
<p>Again, this is a preview release; do not use it in production environments.     Do, however, test it thoroughly and let us know what is and is not working     for you so we can deliver a solid release with 1.9.0!</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/155/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe AIR与传统软件的区别</title>
		<link>http://www.eshopdesktop.com/index.php/archives/152</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/152#comments</comments>
		<pubDate>Wed, 15 Jul 2009 18:38:10 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Desktop网店开发]]></category>
		<category><![CDATA[Eshop网店系统]]></category>
		<category><![CDATA[adobe air网店系统]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=152</guid>
		<description><![CDATA[Adobe AIR技术优势
AIR被媒体誉为2007年最值得关注的技术，就像当时的ajax一样，将被广泛的关注。
现在来看看Air的优势在哪里？要明白其优势，需要先清楚下列的几个问题。
一、目前网络应用的几种形式
网路应用纷繁复杂，但我想大概可以划分为下列几种类型：
web访问方式-如大量的网站服务应用，直接通过ie和firefox等浏览器，借助统一标准的http协议获得服务，虽然浏览器也是客户端，但对用户来说已是标准配置，而且用户访问的web服务与浏览器无关，所以可以和下面的桌面软件分开来说；
优点是：与操作系统平台无关，与浏览器无关，在不同的操作系统环境下，用不同的浏览器，访问同一个网站获得的服务是一样的。
缺点是：用户的交互操作及用户体验，比不上桌面应用程序；可提供的web服务形式比较受单一协议的限制。
局限于操作系统的桌面（或客户端）程序-如bt下载、im软件等，种类繁杂，协议众多，需要下载安装才能获得服务的。
优点是：用户的交互操作体验，只要想做就可以做的很到位，因为许多操作是在本地，不用网络链 接，所以操作响应即时，虽然目前web的ajax技术使这一问题有了改观，但依然不如客户端来的方便；另外提供的网络服务形式不象web受单一协议的局 限，甚至可以做自己的协议。
缺点是：受平台的限制，需要在不同的操作系统下多次开发，不能通用，比如现在的国内的电子杂 志，大多都是打包成windows的exe文件，在mac和linux下就无法使用观看；另外由于流氓软件、病毒木马的原因，一般网民都比较抵制下载客户 端程序，除了知名度较高的一些应用，如im软件，下载软件等，一般的应用都比较难于普及；而且下载本身对用户也是一个门槛。
跨平台的客户端应用程序-主要是sun倡导的java技术，一次开发跨平台执行。
其优势：除了具有桌面程序所有的一切优点外，跨平台性是其最大的优势。
缺点：除了具有桌面程序所有的一切缺点外，其技术本身要求下载一个虚拟机安装，对大多数网民来说也是一个门槛。
二、Adobe AIR技术的特点
从Adobe官方的宣传来看，其特点有下列几点：
1、本地运行-类似桌面应用程序。
2、跨平台-类似java技术，在不同的操作系统上有对应的虚拟机支持，目前已经有windows和mac，linux。
3、开发是基于现有的web技术，如Flash / Flex / ActionScript / HTML / JavaScript / CSS / Ajax /PDF，对于开发人员，不需要学习c、c++、java之类的底层开发语言，不需要学习具体操作系统底层API的开发；这降低了开发门槛，使现有的做 web开发的技术人员，依赖其原本就很熟悉的开发模式，稍加训练就可以开发良好丰富的富客户端应用。
Adobe Air和目前其他几种网络应用形式比较
优势比较：
1、比web的优势在于，有客户端的优势；可以脱机运行，在需要的时候偶尔连接网络。
2、比传统的客户端优势，在于跨平台，和低开发成本，比如这一特性可以使现有的国内电子杂志系统，轻松实现跨平台。
3、比java跨平台的优势在于，其flash技术本身的带来的更吸引人的交互表现。
Adobe Air会存在的问题缺点：
1、其虚拟机的下载安装，会是一个推广的门槛。
2、毕竟采用的大多是web 开发技术，虽然在桌面端有些api扩展，但肯定也不能完全替代传统客户端的开发。
]]></description>
			<content:encoded><![CDATA[<p><strong>Adobe AIR技术优势</strong></p>
<p>AIR被媒体誉为2007年最值得关注的技术，就像当时的ajax一样，将被广泛的关注。<br />
现在来看看Air的优势在哪里？要明白其优势，需要先清楚下列的几个问题。<br />
一、目前网络应用的几种形式<br />
网路应用纷繁复杂，但我想大概可以划分为下列几种类型：<br />
web访问方式-如大量的网站服务应用，直接通过ie和firefox等浏览器，借助统一标准的http协议获得服务，虽然浏览器也是客户端，但对用户来说已是标准配置，而且用户访问的web服务与浏览器无关，所以可以和下面的桌面软件分开来说；<br />
优点是：与操作系统平台无关，与浏览器无关，在不同的操作系统环境下，用不同的浏览器，访问同一个网站获得的服务是一样的。<br />
缺点是：用户的交互操作及用户体验，比不上桌面应用程序；可提供的web服务形式比较受单一协议的限制。<br />
局限于操作系统的桌面（或客户端）程序-如bt下载、im软件等，种类繁杂，协议众多，需要下载安装才能获得服务的。<br />
优点是：用户的交互操作体验，只要想做就可以做的很到位，因为许多操作是在本地，不用网络链 接，所以操作响应即时，虽然目前web的ajax技术使这一问题有了改观，但依然不如客户端来的方便；另外提供的网络服务形式不象web受单一协议的局 限，甚至可以做自己的协议。<br />
缺点是：受平台的限制，需要在不同的操作系统下多次开发，不能通用，比如现在的国内的电子杂 志，大多都是打包成windows的exe文件，在mac和linux下就无法使用观看；另外由于流氓软件、病毒木马的原因，一般网民都比较抵制下载客户 端程序，除了知名度较高的一些应用，如im软件，下载软件等，一般的应用都比较难于普及；而且下载本身对用户也是一个门槛。<br />
跨平台的客户端应用程序-主要是sun倡导的java技术，一次开发跨平台执行。<br />
其优势：除了具有<a href="http://www.eshopdesktop.com">桌面程序</a>所有的一切优点外，跨平台性是其最大的优势。<br />
缺点：除了具有桌面程序所有的一切缺点外，其技术本身要求下载一个虚拟机安装，对大多数网民来说也是一个门槛。<br />
二、Adobe AIR技术的特点<br />
从Adobe官方的宣传来看，其特点有下列几点：<br />
1、本地运行-类似桌面应用程序。<br />
2、跨平台-类似java技术，在不同的操作系统上有对应的虚拟机支持，目前已经有windows和mac，linux。<br />
3、开发是基于现有的web技术，如Flash / Flex / ActionScript / HTML / JavaScript / CSS / Ajax /PDF，对于开发人员，不需要学习c、c++、java之类的底层开发语言，不需要学习具体操作系统底层API的开发；这降低了开发门槛，使现有的做 web开发的技术人员，依赖其原本就很熟悉的开发模式，稍加训练就可以开发良好丰富的富客户端应用。<br />
Adobe Air和目前其他几种网络应用形式比较<br />
优势比较：<br />
1、比web的优势在于，有客户端的优势；可以脱机运行，在需要的时候偶尔连接网络。<br />
2、比传统的客户端优势，在于跨平台，和低开发成本，比如这一特性可以使现有的国内电子杂志系统，轻松实现跨平台。<br />
3、比java跨平台的优势在于，其flash技术本身的带来的更吸引人的交互表现。<br />
Adobe Air会存在的问题缺点：<br />
1、其虚拟机的下载安装，会是一个推广的门槛。<br />
2、毕竟采用的大多是web 开发技术，虽然在桌面端有些api扩展，但肯定也不能完全替代传统客户端的开发。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/152/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>推荐一个jquery slider</title>
		<link>http://www.eshopdesktop.com/index.php/archives/139</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/139#comments</comments>
		<pubDate>Tue, 14 Jul 2009 01:09:44 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Eshop网店系统]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[jquery slider]]></category>
		<category><![CDATA[商店系统]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=139</guid>
		<description><![CDATA[http://www.filamentgroup.com/lab/developing_an_accessible_slider/,我在做商店系统有用到过，调用很方便。
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.filamentgroup.com/lab/developing_an_accessible_slider/" target="_blank">http://www.filamentgroup.com/lab/developing_an_accessible_slider/</a>,我在做商店系统有用到过，调用很方便。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/139/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php用飞信发短信</title>
		<link>http://www.eshopdesktop.com/index.php/archives/127</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/127#comments</comments>
		<pubDate>Sat, 11 Jul 2009 14:59:42 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Desktop网店开发]]></category>
		<category><![CDATA[Eshop网店系统]]></category>
		<category><![CDATA[Memcached]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[php网店系统]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=127</guid>
		<description><![CDATA[在做商店系统时,考虑到下单,或有新进会员自动发短消息提示功能，飞信自带发信接口，很方便，唯一的缺陷就是如果不是飞信好友，第一次发短信要客户验证通过。php代码如下：
/*** 中国移动飞信类* @author fishman* @example Eshop_IM_Fetion::factory('139xxxxxxxx', '0000')-&#38;gt;send('139xxxxxxx','test')* @copyright www.eshopdesktop.com*/class Eshop_IM_Fetion {/*** 发信人手机号* @var string*/protected $_mobile = '';/*** 飞信密码* @var string*/protected $_password = '';/*** 接受者* @var string*/protected $_sendTo ='';/*** @var string*/protected $_url = 'http://sms.api.bz';/*** @var string*/protected $_path = '/fetion.php';/**** @var Zend_Http_Response*/protected $_response = '';/*** Reference to REST client object** @var Zend_Rest_Client*/protected $_rest;function __construct($mobile, $password) {$this-&#38;gt;_mobile = [...]]]></description>
			<content:encoded><![CDATA[<p>在做商店系统时,考虑到下单,或有新进会员自动发短消息提示功能，飞信自带发信接口，很方便，唯一的缺陷就是如果不是飞信好友，第一次发短信要客户验证通过。php代码如下：</p>
<div class="hl-surround"><div class="hl-main">/**<br />* 中国移动飞信类<br />* @author fishman<br />* @example Eshop_IM_Fetion::factory('139xxxxxxxx', '0000')-&amp;gt;send('139xxxxxxx','test')<br />* @copyright www.eshopdesktop.com<br />*/<br />class Eshop_IM_Fetion {<br />/**<br />* 发信人手机号<br />* @var string<br />*/<br />protected $_mobile = '';<br />/**<br />* 飞信密码<br />* @var string<br />*/<br />protected $_password = '';<br />/**<br />* 接受者<br />* @var string<br />*/<br />protected $_sendTo ='';<br />/**<br />* @var string<br />*/<br />protected $_url = 'http://sms.api.bz';<br />/**<br />* @var string<br />*/<br />protected $_path = '/fetion.php';<br />/**<br />*<br />* @var Zend_Http_Response<br />*/<br />protected $_response = '';<br />/**<br />* Reference to REST client object<br />*<br />* @var Zend_Rest_Client<br />*/<br />protected $_rest;<br />function __construct($mobile, $password) {<br />$this-&amp;gt;_mobile = $mobile;<br />$this-&amp;gt;_password = $password;<br />if(null == $this-&amp;gt;_rest){<br />$this-&amp;gt;_rest = new Zend_Rest_Client($this-&amp;gt;_url);<br />}<br />}<br />/**<br />* @return Eshop_IM_Fetion<br />*/<br />public static function factory($mobile, $password){<br />return new self($mobile, $password);<br />}<br />/**<br />*<br />* 发送短消息<br />* 短信内容最大长度为180个汉字，超过180个汉字不发送<br />* @param $sendTo 接受手机号码<br />* @param $msg 短信内容<br />* @return string 返回响应结果<br />*/<br />public function send($sendTo, $msg){<br />//验证号码<br />if(!$this-&amp;gt;_validMobile($sendTo)){<br />throw new Exception('只支持移动手机号码！');<br />}<br />//验证内容<br />if(strlen($msg)&amp;gt;360){<br />throw new Exception('短信内容最大长度为180个汉字，超过180个汉字不发送。');<br />}<br />//发送信息<br />$this-&amp;gt;_send($sendTo, $msg);<br />return $this-&amp;gt;_response-&amp;gt;getBody();<br />}<br />/**<br />*<br />* 发送消息<br />* @param string $sendTo 接受手机号码<br />* @param text $msg 短信内容<br />* @return Zend_Http_Response<br />*/<br />protected function _send($sendTo, $msg){<br />$this-&amp;gt;_sendTo = $sendTo;<br />$params = array(<br />'username'&nbsp; &nbsp; =&amp;gt; $this-&amp;gt;_mobile,<br />'password'&nbsp; &nbsp; =&amp;gt; $this-&amp;gt;_password,<br />'sendto'&nbsp; &nbsp; &nbsp; =&amp;gt; $this-&amp;gt;_sendTo,<br />'message'&nbsp; &nbsp; &nbsp;=&amp;gt; $msg<br />);<br />$this-&amp;gt;_response = $this-&amp;gt;_rest-&amp;gt;restGet($this-&amp;gt;_path, $params);<br />return $this-&amp;gt;_response;<br />}<br />/**<br />*<br />* 验证是否移动号码<br />* @return bool<br />*/<br />protected function _validMobile($mobile){<br />return preg_match('/1(34|35|36|37|38|39|58|59)[0-9]{8}/', $mobile);<br />}<br />}</div></div>
<p><a href="http://www.eshopdesktop.com/wp-content/uploads/2009/07/phpe794a8e9a39ee4bfa1e58f91e79fade4bfa1.pdf">php用飞信发短信</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/127/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>zend framework在IIS6 rewrite应用</title>
		<link>http://www.eshopdesktop.com/index.php/archives/115</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/115#comments</comments>
		<pubDate>Sat, 11 Jul 2009 06:49:55 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Eshop网店系统]]></category>
		<category><![CDATA[php网店系统]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=115</guid>
		<description><![CDATA[最近优化公司的网店系统,打算把前台全部换成MVC模式，本来系统就是基于ZF的，所以系统前台全部修改MVC模式工作量也不算大。
公司的web环境是IIS6+ISAPI_rewrite,现有的几个asp站点都是用ISAPI_rewrite lite版,由于新系统是分销模式php网店系统，所有的域名都指到无主机头上，为了不影响其它原来站点，我必须单独设置这个站点，但ISAPI_rewrite lite免费版不支持单站独立设置rewrite,收费版买不起,破解都是骗人的根本不能用.
怎么办？google一下,找到Ionic&#8217;s Isapi Rewrite Filter，完全开源，完全免费,下载下来后按照网上做法顺利的完成安装，支持单站设置，只不过有点麻烦，具体怎么设置google可以找得到。
下面是Ionic&#8217;s Isapi Rewrite规则：
;排除要过滤的目录RewriteRule ^(/shopmanage&#124;/includes&#124;admin&#124;/info.php&#124;).* $0 [U,I,L];所有的请求转向index.phpRewriteRule ^/(.*(js&#124;ico&#124;gif&#124;jpg&#124;png&#124;flv&#124;swf&#124;css))$ /$1 [L,I,U]RewriteRule ^(.*)$ /index.php [L,I,U]
这样iis6+zf+mvc就可以正常运行了。我觉得这个方案完全要比ISAPI_rewrite好，当然在IIS7下面更方便了，已经内置rewrite了，而IIS7+FastCGI结合的更好了,哈哈，这是后话。

]]></description>
			<content:encoded><![CDATA[<div>最近优化公司的<a href="http://www.eshopdesktop.com">网店系统</a>,打算把前台全部换成MVC模式，本来系统就是基于ZF的，所以系统前台全部修改MVC模式工作量也不算大。</div>
<div>公司的web环境是IIS6+<span style="font-family: arial;">ISAPI_rewrite,现有的几个asp站点都是用<span style="font-size: x-small;">ISAPI_</span><span><span>rewrite lite版,由于新系统是分销模式<a href="http://www.eshopdesktop.com">php网店系统</a>，所有的域名都指到无主机头上，为了不影响其它原来站点，我必须单独设置这个站点，但</span></span></span><span style="font-family: arial;"><span><span>ISAPI_</span><span style="font-size: small;"><span>rewrite lite</span></span></span></span><span style="font-family: arial;"><span style="font-size: small;"><span style="font-size: small;"><span>免费版不支持单站独立设置rewrite,收费版买不起,破解都是骗人的根本不能用.</span></span></span></span></div>
<div>怎么办？google一下,找到<a href="http://www.codeplex.com/IIRF" target="_blank">Ionic&#8217;s Isapi Rewrite Filter</a>，完全开源，完全免费,下载下来后按照网上做法顺利的完成安装，支持单站设置，只不过有点麻烦，具体怎么设置google可以找得到。</div>
<div>下面是<a href="http://www.codeplex.com/IIRF" target="_blank">Ionic&#8217;s Isapi Rewrite</a>规则：</div>
<div class="hl-surround"><div class="hl-main">;排除要过滤的目录<br />RewriteRule ^(/shopmanage|/includes|admin|/info.php|).* $0 [U,I,L]<br />;所有的请求转向index.php<br />RewriteRule ^/(.*(js|ico|gif|jpg|png|flv|swf|css))$ /$1 [L,I,U]<br />RewriteRule ^(.*)$ /index.php [L,I,U]</div></div>
<div>这样iis6+zf+mvc就可以正常运行了。我觉得这个方案完全要比<span style="font-family: arial;">ISAPI_rewrite好，当然在IIS7下面更方便了，已经内置rewrite了，而IIS7+FastCGI结合的更好了,哈哈，这是后话。<br />
</span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/115/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eshop Desktop网店系统换界面啦!</title>
		<link>http://www.eshopdesktop.com/index.php/archives/93</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/93#comments</comments>
		<pubDate>Fri, 10 Jul 2009 17:29:30 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Desktop网店开发]]></category>
		<category><![CDATA[Eshop网店系统]]></category>
		<category><![CDATA[杂谈]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=93</guid>
		<description><![CDATA[今天抽空把Eshop Desktop网店系统界面换了个,之前界面的跟人家交换友情连接,有人说我页面太乱,其实并不是页面乱,是我写的一些东西乱.也没有用心去打理她,从现在开始我要用心写点东西了,把自己的一些想法和心得记录下来,记录自己的成长过程.坚持每天更新博客。
其实每次都会想起来写点什么，有时候自己的一些想法，和自己想说的话，想把它记录下来，就是不知道如何组织语言，亏对自己以前是文史类的，好久没有搞文字游戏了，以至少现在要写点东西真是言尽词穷,看来以后要多写写了。
]]></description>
			<content:encoded><![CDATA[<p>今天抽空把Eshop Desktop<a href="http://www.eshopdesktop.com">网店系统</a>界面换了个,之前界面的跟人家交换友情连接,有人说我页面太乱,其实并不是页面乱,是我写的一些东西乱.也没有用心去打理她,从现在开始我要用心写点东西了,把自己的一些想法和心得记录下来,记录自己的成长过程.坚持每天更新博客。</p>
<p>其实每次都会想起来写点什么，有时候自己的一些想法，和自己想说的话，想把它记录下来，就是不知道如何组织语言，亏对自己以前是文史类的，好久没有搞文字游戏了，以至少现在要写点东西真是言尽词穷,看来以后要多写写了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/93/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>恭喜PR值升为2了!</title>
		<link>http://www.eshopdesktop.com/index.php/archives/89</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/89#comments</comments>
		<pubDate>Thu, 09 Jul 2009 08:36:43 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Eshop网店系统]]></category>
		<category><![CDATA[桌面版商店系统]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=89</guid>
		<description><![CDATA[eshopdesktop本来打算做Eshop Desktop软件的官方主页，起初设想用Adobe Air +Zend Amf开发一套网络桌面版商店系统。无耐自己的时间和能力有限，到现在一起都没有成形，也就先挂了一个wodpress，自己也懒得写点东西，也不会写，哈哈。就这样半年也没有更新，一直放在这儿没有理会她，今天一看，PR2值竞然到2了，兴奋中(某些人肯定又要偷偷笑我了，PR2，有什么高兴的）。google这个PR值也给的太慷慨了。虽然只有2，但这也是一个好兆头，这也成为我要把这个设想变为现实的动力了，我会努力的。
eshop desktop网店系统简介：网店系统,网上商店程序.
]]></description>
			<content:encoded><![CDATA[<p>eshopdesktop本来打算做Eshop Desktop软件的官方主页，起初设想用Adobe Air +Zend Amf开发一套网络桌面版<a href="http://www.eshopdesktop.com">商店系统</a>。无耐自己的时间和能力有限，到现在一起都没有成形，也就先挂了一个wodpress，自己也懒得写点东西，也不会写，哈哈。就这样半年也没有更新，一直放在这儿没有理会她，今天一看，PR2值竞然到2了，兴奋中(某些人肯定又要偷偷笑我了，PR2，有什么高兴的）。google这个PR值也给的太慷慨了。虽然只有2，但这也是一个好兆头，这也成为我要把这个设想变为现实的动力了，我会努力的。</p>
<p>eshop desktop网店系统简介：<a href="http://www.eshopdesktop.com/wp-content/uploads/2009/07/e7bd91e5ba97e7b3bbe7bb9fe7bd91e4b88ae59586e5ba97e7a88be5ba8f.pdf">网店系统,网上商店程序.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/89/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Eshop Desktop网店系统设想!</title>
		<link>http://www.eshopdesktop.com/index.php/archives/86</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/86#comments</comments>
		<pubDate>Thu, 09 Jul 2009 08:20:38 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Eshop网店系统]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=86</guid>
		<description><![CDATA[Eshop Desktop网店系统]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.eshopdesktop.com">Eshop Desktop网店系统</a>，是一款基于Adobe Air开发的网店系统，是目前国内首款网络桌面版网店程序。该系统基于<a href="http://framework.zend.com">zend framework</a>框架的mvc三层架构设计,采用memcache高速内存缓存，客户端基于Adobe Air,提高用户体验，集成淘宝API，google API,在线客服系统。Eshop Desktop打造全新概念的商店系统。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/86/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>基于Adobe Air 网络商店程序Eshop Desktop即将上线!</title>
		<link>http://www.eshopdesktop.com/index.php/archives/82</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/82#comments</comments>
		<pubDate>Fri, 29 May 2009 17:58:51 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Desktop网店开发]]></category>
		<category><![CDATA[Eshop网店系统]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[adobe air网店系统]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=82</guid>
		<description><![CDATA[桌面版,网上商城系统,网上商城程序,网上商店系统]]></description>
			<content:encoded><![CDATA[<p>Eshop桌面版是一款基于Adobe Air<a href="http://www.eshopdesktop.com">网店系统</a>，先发个Logo预览下：</p>
<div id="attachment_83" class="wp-caption alignnone" style="width: 338px"><a href="http://www.eshopdesktop.com/wp-content/uploads/2009/05/logo.png"><img class="size-full wp-image-83" title="logo" src="http://www.eshopdesktop.com/wp-content/uploads/2009/05/logo.png" alt="Eshop" width="328" height="128" /></a><p class="wp-caption-text">Eshop</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/82/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>jquery 4屏图片切换代码</title>
		<link>http://www.eshopdesktop.com/index.php/archives/78</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/78#comments</comments>
		<pubDate>Mon, 13 Apr 2009 20:39:52 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Desktop网店开发]]></category>
		<category><![CDATA[Eshop网店系统]]></category>
		<category><![CDATA[Jquery]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=78</guid>
		<description><![CDATA[
css文件：
/* CSS Document For funswitcher by trance */.fcnt{ display:block; height:250px; width:480px;padding:0px;margin:0px;position:relative; overflow:hidden;float:left;}.fcnt .mimg{ float:left; width:380px; height:250px; overflow:hidden;margin:0px;padding:0px;}.fcnt .mimg div{ display:none;margin:0px;padding:0px;float:left}.mimg img{ width:380px; height:250px;border:0px;margin:0px;padding:0px;}.fcnt ul{ float:right; width:100px; height:250px;margin:0px;padding:0px;margin-top:8px;}.fcnt li{display:block; height:55px; width:90px; margin-bottom:5px;margin-left:5px; cursor:pointer; overflow:hidden;list-style-type:none}.fcnt li img{ width:90px; height:55px;filter:alpha(opacity=50);  -moz-opacity: 0.7; opacity: 0.7}.fcnt li.cur img{ margin-top:8px;width:85px; height:50px; margin:0px 0 0 0px;filter:alpha(opacity=100);  -moz-opacity: 1; opacity: 1;  }#tri{ margin-top:8px;position:absolute; [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #0000ee; text-decoration: underline;"><br />
</span>css文件：</p>
<div class="hl-surround"><div class="hl-main">/* CSS Document For funswitcher by trance */<br /><br />.fcnt{ display:block; height:250px; width:480px;padding:0px;margin:0px;position:relative; overflow:hidden;float:left;}<br /><br />.fcnt .mimg{ float:left; width:380px; height:250px; overflow:hidden;margin:0px;padding:0px;}<br /><br />.fcnt .mimg div{ display:none;margin:0px;padding:0px;float:left}<br /><br />.mimg img{ width:380px; height:250px;border:0px;margin:0px;padding:0px;}<br /><br />.fcnt ul{ float:right; width:100px; height:250px;margin:0px;padding:0px;margin-top:8px;}<br /><br />.fcnt li{display:block; height:55px; width:90px; margin-bottom:5px;margin-left:5px; cursor:pointer; overflow:hidden;list-style-type:none}<br /><br />.fcnt li img{ width:90px; height:55px;filter:alpha(opacity=50);  -moz-opacity: 0.7; opacity: 0.7}<br /><br />.fcnt li.cur img{ margin-top:8px;width:85px; height:50px; margin:0px 0 0 0px;filter:alpha(opacity=100);  -moz-opacity: 1; opacity: 1;  }<br /><br />#tri{ margin-top:8px;position:absolute; top:0; right:5px; z-index:1110; width:91px; height:57px;background: url(/Public/Images/ifocus_btn_bg.gif) no-repeat; opacity:1; -moz-opacity:1; filter:alpha(opacity=100); cursor:pointer;}<br /><br />.fcnt dl{position:absolute; left:0; bottom:0; width:380px; height:30px; background:#000; opacity:0.5; -moz-opacity:0.5; filter:alpha(opacity=45);padding:0px;margin:0px;display:none;color:#FFFFFF;}<br /><br />.fcnt dt{line-height:30px; text-align:left; font-size:12px;color:#FFFFFF;padding-left:5px;}<br /><br />js文件：<br /><br />//Javascript Document For funswitcher by trance<br /><br />$(document).ready(function(){<br /><br />//幻灯片<br /><br />var j=1;<br /><br />var MyTime=false;<br /><br />var fot=200;//当前图片消失时间<br /><br />var fin=300;//新图片呈现时间<br /><br />var amt=300;//三角标志滑动时间<br /><br />var speed=3000;//自动播放间隔<br /><br />var maxpic=4;//切换图片个数<br /><br />&lt;span&gt; &lt;/span&gt;$(&quot;#ppt&quot;).find(&quot;li&quot;).each(function(i){<br /><br />&lt;span&gt; &lt;/span&gt;$(&quot;#ppt&quot;).find(&quot;li&quot;).eq(i).mouseover(function(){&lt;span&gt; &lt;/span&gt;<br /><br />&lt;span&gt; &lt;/span&gt;var cur=$(&quot;#mpc&quot;).find(&quot;div:visible&quot;).prevAll().length;<br /><br />&lt;span&gt; &lt;/span&gt;if(i!==cur){<br /><br />&lt;span&gt; &lt;/span&gt;j=i;&lt;span&gt; &lt;/span&gt;<br /><br />&lt;span&gt; &lt;/span&gt;$(&quot;#mpc&quot;).find(&quot;div:visible&quot;).fadeOut(fot,function(){<br /><br />&lt;span&gt; &lt;/span&gt;$(&quot;#mpc&quot;).find(&quot;div&quot;).eq(i).fadeIn(fin);});<br /><br />&lt;span&gt; &lt;/span&gt;$(&quot;#tri&quot;).animate({&quot;top&quot;:i*60+&quot;px&quot;},amt,current(this,&quot;li&quot;));<br /><br />&lt;span&gt; &lt;/span&gt;$(&quot;#ppt&quot;).find(&quot;dl:visible&quot;).slideUp(fot,function(){<br /><br />&lt;span&gt; &lt;/span&gt;$(&quot;#ppt&quot;).find(&quot;dl&quot;).eq(i).slideDown(fin);<br /><br />&lt;span&gt; &lt;/span&gt;});&lt;span&gt; &lt;/span&gt;<br /><br />&lt;span&gt; &lt;/span&gt;}&lt;span&gt; &lt;/span&gt;<br /><br />&lt;span&gt; &lt;/span&gt;})&lt;span&gt; &lt;/span&gt;<br /><br />&lt;span&gt; &lt;/span&gt;})<br /><br />//标记当前&lt;span&gt; &lt;/span&gt;<br /><br />function current(ele,tag){<br /><br />&lt;span&gt; &lt;/span&gt;$(ele).addClass(&quot;cur&quot;).siblings(tag).removeClass(&quot;cur&quot;);<br /><br />&lt;span&gt; &lt;/span&gt;}&lt;span&gt; &lt;/span&gt;<br /><br />//自动播放 不需要的话可以删除这一段&lt;span&gt; &lt;/span&gt;<br /><br />$('#imgnav').hover(function(){<br /><br />&lt;span&gt; &lt;/span&gt; if(MyTime){<br /><br />&lt;span&gt; &lt;/span&gt; clearInterval(MyTime);<br /><br />&lt;span&gt; &lt;/span&gt; }<br /><br />&lt;span&gt; &lt;/span&gt; },function(){<br /><br />&lt;span&gt; &lt;/span&gt; MyTime = setInterval(function(){<br /><br />&lt;span&gt; &lt;/span&gt; $(&quot;#ppt&quot;).find(&quot;li&quot;).eq(j).mouseover();<br /><br />&lt;span&gt; &lt;/span&gt;j++;<br /><br />&lt;span&gt; &lt;/span&gt;if(j==maxpic){j=0;}<br /><br />&lt;span&gt; &lt;/span&gt; } , speed);<br /><br />&lt;span&gt; &lt;/span&gt; });<br /><br />&lt;span&gt; &lt;/span&gt; //自动开始<br /><br />&lt;span&gt; &lt;/span&gt; var MyTime = setInterval(function(){<br /><br />&lt;span&gt; &lt;/span&gt;$(&quot;#ppt&quot;).find(&quot;li&quot;).eq(j).mouseover();<br /><br />&lt;span&gt; &lt;/span&gt;j++;<br /><br />&lt;span&gt; &lt;/span&gt;if(j==maxpic){j=0;}<br /><br />&lt;span&gt; &lt;/span&gt; } , speed);<br /><br />})</div></div>
<p>html代码：</p>
<div class="hl-surround"><div class="hl-main">&amp;lt;link href=&quot;/Public/Css/Ifocus.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;  /&amp;gt;&amp;lt;div class=&quot;fcnt&quot; id=&quot;ppt&quot;&amp;gt;<br /><br />&lt;span&gt; &lt;/span&gt;&amp;lt;div class=&quot;mimg&quot; id=&quot;mpc&quot;&amp;gt;<br /><br />&lt;span&gt; &lt;/span&gt;&amp;lt;div style=&quot;display:block&quot;&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;&amp;lt;img src=&quot;/data/images/sincol.net_2.jpg&quot; alt=&quot;&quot; /&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;<br /><br />&amp;lt;div&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;&amp;lt;img src=&quot;/data/images/sincol.net_1.jpg&quot; alt=&quot;&quot; /&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;<br /><br />&amp;lt;div&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;&amp;lt;img src=&quot;/data/images/sincol.net_3.jpg&quot; alt=&quot;&quot; /&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;<br /><br />&amp;lt;div&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;&amp;lt;img src=&quot;/data/images/sincol.net_4.jpg&quot; alt=&quot;&quot; /&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;<br /><br />&amp;lt;/div&amp;gt;<br /><br />&amp;lt;dl style=&quot;display:block&quot;&amp;gt;<br /><br />&lt;span&gt; &lt;/span&gt;&amp;lt;dt&amp;gt;Merry Christmas!!圣诞快乐 圣诞快乐&amp;lt;/dt&amp;gt;<br /><br />&amp;lt;/dl&amp;gt;<br /><br />&amp;lt;dl&amp;gt;<br /><br />&lt;span&gt; &lt;/span&gt;&amp;lt;dt&amp;gt;圣诞快乐 圣诞快乐Merry Christmas!!&amp;lt;/dt&amp;gt;<br /><br />&amp;lt;/dl&amp;gt;<br /><br />&amp;lt;dl&amp;gt;<br /><br />&lt;span&gt; &lt;/span&gt;&amp;lt;dt&amp;gt;Merry Christmas!!圣诞快乐 圣诞快乐&amp;lt;/dt&amp;gt;<br /><br />&amp;lt;/dl&amp;gt;<br /><br />&amp;lt;dl&amp;gt;<br /><br />&lt;span&gt; &lt;/span&gt;&amp;lt;dt&amp;gt;圣诞快乐 圣诞快乐Merry Christmas!!&amp;lt;/dt&amp;gt;<br /><br />&amp;lt;/dl&amp;gt;<br /><br />&amp;lt;div id=&quot;tri&quot;&amp;gt;&amp;lt;/div&amp;gt;<br /><br />&amp;lt;ul&amp;gt;<br /><br />&lt;span&gt; &lt;/span&gt;&amp;lt;li class=&quot;cur&quot;&amp;gt;&amp;lt;img src=&quot;/data/images/sincol.net_2.jpg&quot; alt=&quot;&quot; /&amp;gt;&amp;lt;/li&amp;gt;<br /><br />&amp;lt;li&amp;gt;&amp;lt;img src=&quot;/data/images/sincol.net_1.jpg&quot; alt=&quot;&quot; /&amp;gt;&amp;lt;/li&amp;gt;<br /><br />&amp;lt;li&amp;gt;&amp;lt;img src=&quot;/data/images/sincol.net_3.jpg&quot; alt=&quot;&quot; /&amp;gt;&amp;lt;/li&amp;gt;<br /><br />&amp;lt;li&amp;gt;&amp;lt;img src=&quot;/data/images/sincol.net_4.jpg&quot; alt=&quot;&quot; /&amp;gt;&amp;lt;/li&amp;gt;<br /><br />&amp;lt;/ul&amp;gt;<br /><br />&amp;lt;/div&amp;gt;<br /><br />{insert_script files=&quot;/Scripts/iFocus.js&quot;}<br /><br />&amp;lt;!--ifocus end--&amp;gt;<br /><br />&amp;lt;!-- 首页大广告 --&amp;gt;</div></div>
<p>效果图片：</p>
<p><a href="http://www.eshopdesktop.com/wp-content/uploads/2009/04/jquery.jpg"><img class="size-full wp-image-80" title="jquery" src="http://www.eshopdesktop.com/wp-content/uploads/2009/04/jquery.jpg" alt="eshop" width="515" height="271" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/78/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>adobe air 打印</title>
		<link>http://www.eshopdesktop.com/index.php/archives/74</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/74#comments</comments>
		<pubDate>Tue, 31 Mar 2009 14:24:13 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[adobe air网店系统]]></category>
		<category><![CDATA[adobe air]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=74</guid>
		<description><![CDATA[一个adobe air 打印例，安装后可查看源程序。adobe air printer
]]></description>
			<content:encoded><![CDATA[<p>一个adobe air 打印例，安装后可查看源程序。<a href="http://www.eshopdesktop.com/wp-content/uploads/2009/03/ts-ledger.air">adobe air printer</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/74/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jquery实现全选与反选</title>
		<link>http://www.eshopdesktop.com/index.php/archives/71</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/71#comments</comments>
		<pubDate>Mon, 30 Mar 2009 18:12:49 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Jquery]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=71</guid>
		<description><![CDATA[$(function() {
$(&#8221;#checkAll&#8221;).click(function() {
if ($(this).attr(&#8221;checked&#8221;) == true) { // 全选
   $(&#8221;input[name='ids[]&#8216;]&#8221;).each(function() {
   $(this).attr(&#8221;checked&#8221;, true);
  });
} else { // 取消全选
   $(&#8221;input[name='ids[]&#8216;]&#8221;).each(function() {
   $(this).attr(&#8221;checked&#8221;, false);
  });
}
});
});
]]></description>
			<content:encoded><![CDATA[<p>$(function() {<br />
$(&#8221;#checkAll&#8221;).click(function() {<br />
if ($(this).attr(&#8221;checked&#8221;) == true) { // 全选<br />
   $(&#8221;input[name='ids[]&#8216;]&#8221;).each(function() {<br />
   $(this).attr(&#8221;checked&#8221;, true);<br />
  });<br />
} else { // 取消全选<br />
   $(&#8221;input[name='ids[]&#8216;]&#8221;).each(function() {<br />
   $(this).attr(&#8221;checked&#8221;, false);<br />
  });<br />
}<br />
});<br />
});</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/71/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eshop Desktop开发</title>
		<link>http://www.eshopdesktop.com/index.php/archives/67</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/67#comments</comments>
		<pubDate>Thu, 26 Mar 2009 05:06:32 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Desktop网店开发]]></category>
		<category><![CDATA[adobe air网店系统]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=67</guid>
		<description><![CDATA[Eshop网络桌面版商店系统]]></description>
			<content:encoded><![CDATA[<p>最近忙于公司项目开发，Eshop Desktop一直没有时间弄，本来去年年底就打算就ADOBE AIR结合PHP zend framework开发一套</p>
<p>桌面版商城系统，也算是边学边弄吧，到现在AIR这个东西用起来还很吃力，相关的文档太少了，过年特意去买几本书看看，大都是FLEX方面的，Air方面的目前国内还很少，而且都讲的很浅，都是一些入门的，我在实际开过很过程遇到很多问题都是在google找的，baidu根本找不到，也很少人真正用于项目中去，可能大家都在摸索中，即使是这样我还是要坚持我自己的想法，要把这个系统做出来，就当是学习吧。。。</p>
<p>^_^</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/67/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>zend router 映射成html页面</title>
		<link>http://www.eshopdesktop.com/index.php/archives/64</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/64#comments</comments>
		<pubDate>Fri, 13 Mar 2009 19:08:55 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=64</guid>
		<description><![CDATA[;产品列表
routes.goods.type = &#8220;Zend_Controller_Router_Route_Regex&#8221;
routes.goods.route = &#8220;goods/list-(.*)-(.*)-(.*)-(.*)-(.*)-(.*)-(?:(\d+))?-(?:(.+))?\.html&#8221;
routes.goods.defaults.controller = &#8220;goods&#8221;
routes.goods.defaults.action = &#8220;index&#8221;
routes.goods.map.1 = &#8220;isNew&#8221;
routes.goods.map.2 = &#8220;isHot&#8221;
routes.goods.map.3 = &#8220;isPromotion&#8221;
routes.goods.map.4 = &#8220;cateId&#8221;
routes.goods.map.5 = &#8220;page&#8221;
routes.goods.map.6 = &#8220;keyword&#8221;
routes.goods.map.7 = &#8220;listModel&#8221;
routes.goods.map.8 = &#8220;order&#8221;
routes.goods.reverse= &#8220;goods/list-%d-%d-%d-%d-%d-%s-%d-%s.html&#8221;
]]></description>
			<content:encoded><![CDATA[<p>;产品列表</p>
<p>routes.goods.type = &#8220;Zend_Controller_Router_Route_Regex&#8221;</p>
<p>routes.goods.route = &#8220;goods/list-(.*)-(.*)-(.*)-(.*)-(.*)-(.*)-(?:(\d+))?-(?:(.+))?\.html&#8221;</p>
<p>routes.goods.defaults.controller = &#8220;goods&#8221;</p>
<p>routes.goods.defaults.action = &#8220;index&#8221;</p>
<p>routes.goods.map.1 = &#8220;isNew&#8221;</p>
<p>routes.goods.map.2 = &#8220;isHot&#8221;</p>
<p>routes.goods.map.3 = &#8220;isPromotion&#8221;</p>
<p>routes.goods.map.4 = &#8220;cateId&#8221;</p>
<p>routes.goods.map.5 = &#8220;page&#8221;</p>
<p>routes.goods.map.6 = &#8220;keyword&#8221;</p>
<p>routes.goods.map.7 = &#8220;listModel&#8221;</p>
<p>routes.goods.map.8 = &#8220;order&#8221;</p>
<p>routes.goods.reverse= &#8220;goods/list-%d-%d-%d-%d-%d-%s-%d-%s.html&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/64/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend_Db PDO msyql设置字符集</title>
		<link>http://www.eshopdesktop.com/index.php/archives/62</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/62#comments</comments>
		<pubDate>Fri, 06 Mar 2009 14:46:21 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=62</guid>
		<description><![CDATA[之前一直是在查询之前发送一条命令：
set names &#8216;utf8&#8242;;
原来可以设置参数：
$pdoParams = array(PDO::MYSQL_ATTR_INIT_COMMAND =&#62; &#8216;SET NAMES UTF8;&#8217;);
 
$params = array(
&#8216;host&#8217; =&#62; &#8216;localhost&#8217;,
&#8216;username&#8217; =&#62; &#8216;username&#8217;,
&#8216;password&#8217; =&#62; &#8216;password&#8217;,
&#8216;dbname&#8217; =&#62; &#8216;dbname&#8217;,
&#8216;driver_options&#8217; =&#62; $pdoParams
);
try {
$db = Zend_Db::factory(&#8217;PDO_MYSQL&#8217;, $params);
Zend_Db_Table_Abstract::setDefaultAdapter($db);
} catch (Exception $e) {
exit($e-&#62;getMessage());
}
Zend_Registry::set(&#8217;dbAdapter&#8217;, $db);
注意：
/* Configures PDO to execute the &#8216;SET NAMES UTF8;&#8217; SQL query just before        any other query. If no query [...]]]></description>
			<content:encoded><![CDATA[<p>之前一直是在查询之前发送一条命令：</p>
<p>set names &#8216;utf8&#8242;;</p>
<p>原来可以设置参数：</p>
<p>$pdoParams = array(PDO::MYSQL_ATTR_INIT_COMMAND =&gt; &#8216;SET NAMES UTF8;&#8217;);</p>
<p> </p>
<p>$params = array(<br />
&#8216;host&#8217; =&gt; &#8216;localhost&#8217;,<br />
&#8216;username&#8217; =&gt; &#8216;username&#8217;,<br />
&#8216;password&#8217; =&gt; &#8216;password&#8217;,<br />
&#8216;dbname&#8217; =&gt; &#8216;dbname&#8217;,<br />
&#8216;driver_options&#8217; =&gt; $pdoParams<br />
);</p>
<p>try {<br />
$db = Zend_Db::factory(&#8217;PDO_MYSQL&#8217;, $params);<br />
Zend_Db_Table_Abstract::setDefaultAdapter($db);<br />
} catch (Exception $e) {<br />
exit($e-&gt;getMessage());<br />
}</p>
<p>Zend_Registry::set(&#8217;dbAdapter&#8217;, $db);</p>
<p>注意：</p>
<p>/* Configures PDO to execute the &#8216;SET NAMES UTF8;&#8217; SQL query just before        any other query. If no query is executed on your page, this will not be        executed. */</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/62/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Memcached tag for Zend Framework</title>
		<link>http://www.eshopdesktop.com/index.php/archives/60</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/60#comments</comments>
		<pubDate>Sat, 21 Feb 2009 14:44:19 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[memcached tag]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=60</guid>
		<description><![CDATA[ 
Example of use: 
         $frontendOptions = array (&#8217;automatic_serialization&#8217; =&#62; true ); 
         $memcachedMetadataFileBackendOptions = array (&#8217;cache_dir&#8217; =&#62; 
APPLICATION_PATH . &#8216;temp/memcached&#8216; ); 
         $memcachedOptions = array( 
             &#8217;metadatabackend&#8217; =&#62; array( 
                 &#8217;backend&#8217; =&#62; &#8216;File&#8217;, 
  [...]]]></description>
			<content:encoded><![CDATA[<p> </p>
<p><span>Example of use: </span></p>
<p><span>         $frontendOptions = array (&#8217;automatic_serialization&#8217; =&gt; true ); </span><br />
<span>         $<strong class="highlight">memcachedMetadataFileBackendOptions</strong> = array (&#8217;cache_dir&#8217; =&gt; </span><br />
<span>APPLICATION_PATH . &#8216;temp/<strong class="highlight">memcached</strong>&#8216; ); </span></p>
<p><span>         $<strong class="highlight">memcachedOptions</strong> = array( </span><br />
<span>             &#8217;metadatabackend&#8217; =&gt; array( </span><br />
<span>                 &#8217;backend&#8217; =&gt; &#8216;File&#8217;, </span><br />
<span>                 &#8217;options&#8217; =&gt; $<strong class="highlight">memcachedMetadataFileBackendOptions</strong> </span><br />
<span>             ), </span><br />
<span>          &#8217;servers&#8217; =&gt; array(array(&#8217;host&#8217; =&gt; &#8216;localhost&#8217;,'port&#8217; =&gt; </span><br />
<span>11211, &#8216;persistent&#8217; =&gt; true)) </span><br />
<span>         ); </span></p>
<p><span>         $cache = Zend_Cache::factory ( &#8216;Mao_Cache_Core&#8217;, </span><br />
<span>&#8216;Mao_Cache_Backend_Memcached&#8217;, $frontendOptions, $<strong class="highlight">memcachedOptions</strong>, </span><br />
<span>true, true ); </span></p>
<p><span>         $cache-&gt;save( &#8216;test2&#8242;, &#8216;test2&#8242;, array(&#8217;<strong class="highlight">tags</strong>&#8216;, &#8216;<strong class="highlight">tag2</strong>&#8216;), 9090); </span><br />
<span>         $cache-&gt;save( &#8216;test1&#8242;, &#8216;test1&#8242;, array(&#8217;<strong class="highlight">tags</strong>&#8216;, &#8216;<strong class="highlight">tag1</strong>&#8216;), 9090); </span></p>
<p><span>         $cache-&gt;clean(Mao_Cache::CLEANING_MODE_MATCHING_ANY_TAG, </span><br />
<span>array(&#8217;<strong class="highlight">tag1</strong>&#8216;)); </span></p>
<p><span>         echo &#8216;&lt;pre&gt;T1: &#8216;; var_dump( $cache-&gt;load(&#8217;test1&#8242;) ); echo &#8216;&lt;/pre&gt;&#8217;; </span><br />
<span>         echo &#8216;&lt;pre&gt;T2: &#8216;; var_dump( $cache-&gt;load(&#8217;test2&#8242;) ); echo &#8216;&lt;/pre&gt;&#8217;; </span></p>
<p><span>All files are here: </span><a rel="nofollow" href="http://www.gazeta.ie/xxx/Mao_Cache.zip" target="_top"><span>http://www.gazeta.ie/xxx/Mao_Cache.zip</span></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/60/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>flex datagrid checkbox全选/反选</title>
		<link>http://www.eshopdesktop.com/index.php/archives/58</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/58#comments</comments>
		<pubDate>Fri, 20 Feb 2009 19:13:04 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Desktop网店开发]]></category>
		<category><![CDATA[adobe air网店系统]]></category>
		<category><![CDATA[flex网店系统开发]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=58</guid>
		<description><![CDATA[&#60;mx:CheckBox id = &#8220;selectAll&#8221; label=&#8221;Select/Deselect All&#8221; click=&#8221;selectAllCheckboxes();&#8221; left=&#8221;10&#8243; top=&#8221;175&#8243;/&#62;
private function selectAllCheckboxes():void{
    
                var allRows:int = gridData.length;
                
                for (var i:int = 0; i &#60; allRows; i++){
                    if (selectAll.selected == true){
                        trace (&#8221;Checked is true&#8221;);
                        [...]]]></description>
			<content:encoded><![CDATA[<p>&lt;mx:CheckBox id = &#8220;selectAll&#8221; label=&#8221;Select/Deselect All&#8221; click=&#8221;selectAllCheckboxes();&#8221; left=&#8221;10&#8243; top=&#8221;175&#8243;/&gt;</p>
<p>private function selectAllCheckboxes():void{<br />
    <br />
                var allRows:int = gridData.length;<br />
                <br />
                for (var i:int = 0; i &lt; allRows; i++){<br />
                    if (selectAll.selected == true){<br />
                        trace (&#8221;Checked is true&#8221;);<br />
                        gridData[i].checked = true;<br />
                    }else{<br />
                        trace (&#8221;Checked is false&#8221;);<br />
                        gridData[i].checked = false;<br />
                    }<br />
                }<br />
                <br />
                //After the loop, reset the data provider to refresh the check boxes<br />
                myDataGrid.dataProvider = gridData;<br />
            }</p>
<p> </p>
<p>&lt;mx:DataGridColumn  editable=&#8221;false&#8221; width=&#8221;60&#8243; headerText=&#8221;编号&#8221; dataField=&#8221;ArticleId&#8221;&gt;</p>
<p><span> </span>&lt;mx:itemRenderer&gt;</p>
<p>          &lt;mx:Component&gt;</p>
<p>             &lt;mx:HBox horizontalAlign=&#8221;center&#8221; width=&#8221;100%&#8221;&gt;</p>
<p>             <span> </span>&lt;mx:CheckBox/&gt;&lt;mx:Label text=&#8221;{data.ArticleId}&#8221;/&gt;</p>
<p>             &lt;/mx:HBox&gt;</p>
<p>          &lt;/mx:Component&gt;<span> </span></p>
<p>   &lt;/mx:itemRenderer&gt;</p>
<p><span> </span>&lt;/mx:DataGridColumn&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/58/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Filtering a Flex Tree using an ArrayCollection</title>
		<link>http://www.eshopdesktop.com/index.php/archives/53</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/53#comments</comments>
		<pubDate>Wed, 18 Feb 2009 05:46:44 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[flex网店系统开发]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=53</guid>
		<description><![CDATA[lex Trees can be difficult to filter because of their hierarchical nature. One possible way to do it is to use an ArraryCollection as your dataProvider, with each node having a “children” property that is also an ArrayCollection.
The tricky part in filtering the Tree is making sure the children are filtered in addition to the [...]]]></description>
			<content:encoded><![CDATA[<div><span class="Apple-style-span" style="word-spacing: 0px; font: 12px/18px Verdana; text-transform: none; text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; text-align: left; orphans: 2; widows: 2; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0;">lex Trees can be difficult to filter because of their hierarchical nature. One possible way to do it is to use an ArraryCollection as your dataProvider, with each node having a “children” property that is also an ArrayCollection.</span></div>
<div><span class="Apple-style-span" style="word-spacing: 0px; font: 12px/18px Verdana; text-transform: none; text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; text-align: left; orphans: 2; widows: 2; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0;">The tricky part in filtering the Tree is making sure the children are filtered in addition to the root nodes.  So, in the example below, I have created a function that will loop through each node and its children recursively.</span></div>
<div><span class="Apple-style-span" style="word-spacing: 0px; font: 12px/18px Verdana; text-transform: none; text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; text-align: left; orphans: 2; widows: 2; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0;">It is important to note that the filtering takes place from the bottom up, meaning that a node’s children are always filtered before the node itself.  This is important, because normally a filter removes everything that does not match a certain criteria.  In our case, to remain in the collection, a node must match a certain criteria OR have children that do.</span></div>
<p> </p>
<p><span class="Apple-style-span" style="word-spacing: 0px; font: 12px/18px Verdana; text-transform: none;  text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; text-align: left; orphans: 2; widows: 2; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0;"></p>
<div class="code" style="font-size: 1.2em; overflow-x: auto; color: #000000; line-height: 150%; font-family: monospace; background-color: #e4ebf3; border: #255265 5px double; padding: 8px;">&lt;?xml version=”1.0″ encoding=”utf-8″?&gt;<br />
<span class="mxmlComponent" style="color: #0000ff;">&lt;mx:Application</span><span class="Apple-converted-space"> </span>xmlns:mx=”<span class="asString" style="font-weight: bold; color: #990000;">http://www.adobe.com/2006/mxml</span>”</div>
<p style="margin: 0px;"> </p>
<div class="indent" style="padding-left: 25px;">layout=”<span class="asString" style="font-weight: bold; color: #990000;">absolute</span>“<span class="mxmlComponent" style="color: #0000ff;">&gt;</span></div>
<p style="margin: 0px;"> </p>
<div class="indent" style="padding-left: 25px;">&lt;![CDATA[<br />
<span class="asReserved" style="font-weight: bold; color: #0033ff;">import</span><span class="Apple-converted-space"> </span>vo.Person;<br />
<span class="asReserved" style="font-weight: bold; color: #0033ff;">import</span><span class="Apple-converted-space"> </span>mx.collections.ArrayCollection;</div>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;">[<span class="asReserved" style="font-weight: bold; color: #0033ff;">Bindable</span>]<br />
<span class="asReserved" style="font-weight: bold; color: #0033ff;">private</span><span class="Apple-converted-space"> </span><span class="asVar" style="font-weight: bold; color: #6699cc;">var</span><span class="Apple-converted-space"> </span>people:ArrayCollection =<span class="Apple-converted-space"> </span><span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>ArrayCollection([</p>
<div class="indent" style="padding-left: 25px;"><span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>Person("<span class="asString" style="font-weight: bold; color: #990000;">Grandma Susan</span>",<span class="Apple-converted-space"> </span><span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>ArrayCollection([</div>
<p style="margin: 0px;"> </p>
<div class="indent" style="padding-left: 25px;"><span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>Person("<span class="asString" style="font-weight: bold; color: #990000;">John</span>",<span class="Apple-converted-space"> </span><span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>ArrayCollection([</div>
<p style="margin: 0px;"> </p>
<div class="indent" style="padding-left: 25px;"><span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>Person("<span class="asString" style="font-weight: bold; color: #990000;">Timmy</span>"),<br />
<span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>Person("<span class="asString" style="font-weight: bold; color: #990000;">Sammy</span>"),<br />
<span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>Person("<span class="asString" style="font-weight: bold; color: #990000;">Alan</span>")</div>
<p style="margin: 0px;">])),<br />
<span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>Person(”<span class="asString" style="font-weight: bold; color: #990000;">Tiffany</span>“,<span class="Apple-converted-space"> </span><span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>ArrayCollection([</p>
<div class="indent" style="padding-left: 25px;"><span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>Person("<span class="asString" style="font-weight: bold; color: #990000;">Billy</span>"),<br />
<span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>Person("<span class="asString" style="font-weight: bold; color: #990000;">Adam</span>"),<br />
<span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>Person("<span class="asString" style="font-weight: bold; color: #990000;">Graham</span>"),<br />
<span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>Person("<span class="asString" style="font-weight: bold; color: #990000;">Vennesa</span>")</div>
<p style="margin: 0px;">])),<br />
<span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>Person(”<span class="asString" style="font-weight: bold; color: #990000;">Michael</span>“,<span class="Apple-converted-space"> </span><span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>ArrayCollection([</p>
<div class="indent" style="padding-left: 25px;"><span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>Person("<span class="asString" style="font-weight: bold; color: #990000;">Jannette</span>"),<br />
<span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>Person("<span class="asString" style="font-weight: bold; color: #990000;">Alan</span>",<span class="Apple-converted-space"> </span><span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>ArrayCollection([</div>
<p style="margin: 0px;"> </p>
<div class="indent" style="padding-left: 25px;"><span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>Person("<span class="asString" style="font-weight: bold; color: #990000;">Alice</span>"),<br />
<span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>Person("<span class="asString" style="font-weight: bold; color: #990000;">Jane</span>")</div>
<p style="margin: 0px;">]))</p>
<p style="margin: 0px;">])),<br />
<span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>Person(”<span class="asString" style="font-weight: bold; color: #990000;">Peter</span>“),</p>
<div class="indent" style="padding-left: 25px;"><span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>Person(”<span class="asString" style="font-weight: bold; color: #990000;">Cindy</span>“,<span class="Apple-converted-space"> </span><span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>ArrayCollection([</div>
<p style="margin: 0px;"> </p>
<div class="indent" style="padding-left: 25px;"><span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>Person("<span class="asString" style="font-weight: bold; color: #990000;">Paul</span>"),<br />
<span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>Person("<span class="asString" style="font-weight: bold; color: #990000;">David</span>"),<br />
<span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>Person("<span class="asString" style="font-weight: bold; color: #990000;">Joseph</span>"),<br />
<span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>Person("<span class="asString" style="font-weight: bold; color: #990000;">Cameron</span>"),<br />
<span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>Person("<span class="asString" style="font-weight: bold; color: #990000;">Debra</span>"),<br />
<span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>Person("<span class="asString" style="font-weight: bold; color: #990000;">Polly</span>")</div>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;">]))</p>
<p style="margin: 0px;">]))</p>
<p style="margin: 0px;">]);</p>
<p style="margin: 0px;"><span class="asReserved" style="font-weight: bold; color: #0033ff;">private</span><span class="Apple-converted-space"> </span><span class="asFunction" style="font-weight: bold; color: #339966;">function</span><span class="Apple-converted-space"> </span>refreshData():<span class="asReserved" style="font-weight: bold; color: #0033ff;">void</span>{</p>
<div class="indent" style="padding-left: 25px;"><span class="asComment" style="color: #009900; font-style: italic;">//reset the root node to its original unfiltered data</span><br />
people[0].children =<span class="Apple-converted-space"> </span><span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>ArrayCollection(people[0].children.source);<br />
<span class="asComment" style="color: #009900; font-style: italic;">//start the recursion at the root node</span><br />
refreshRecursiveChildren(people.source[0]);<br />
<span class="asComment" style="color: #009900; font-style: italic;">//update the Tree after the data has been filtered</span><br />
personsTree.invalidateList();</div>
<p style="margin: 0px;">}</p>
<p style="margin: 0px;"><span class="asReserved" style="font-weight: bold; color: #0033ff;">private</span><span class="Apple-converted-space"> </span><span class="asFunction" style="font-weight: bold; color: #339966;">function</span><span class="Apple-converted-space"> </span>refreshRecursiveChildren(person:Person):<span class="asReserved" style="font-weight: bold; color: #0033ff;">void</span>{</p>
<div class="indent" style="padding-left: 25px;"><span class="asReserved" style="font-weight: bold; color: #0033ff;">if</span>(person.children){</div>
<p style="margin: 0px;"> </p>
<div class="indent" style="padding-left: 25px;"><span class="asComment" style="color: #009900; font-style: italic;">//loop through each child and filter its children</span><br />
<span class="asReserved" style="font-weight: bold; color: #0033ff;">for each</span>(<span class="asVar" style="font-weight: bold; color: #6699cc;">var</span><span class="Apple-converted-space"> </span>_person:Person<span class="Apple-converted-space"> </span><span class="asReserved" style="font-weight: bold; color: #0033ff;">in</span><span class="Apple-converted-space"> </span>person.children.source){</div>
<p style="margin: 0px;"> </p>
<div class="indent" style="padding-left: 25px;">refreshRecursiveChildren(_person);</div>
<p style="margin: 0px;">}<br />
<span class="asComment" style="color: #009900; font-style: italic;">//reset each “children” ArrayCollection to its original unfiltered data</span><br />
person.children =<span class="Apple-converted-space"> </span><span class="asReserved" style="font-weight: bold; color: #0033ff;">new</span><span class="Apple-converted-space"> </span>ArrayCollection(person.children.source);<br />
<span class="asComment" style="color: #009900; font-style: italic;">//set the filterfunction for the newly updated node</span><br />
person.children.filterFunction = filterData;<br />
<span class="asComment" style="color: #009900; font-style: italic;">//run the fitlerFunction</span><br />
person.children.refresh();</p>
<p style="margin: 0px;">}</p>
<p style="margin: 0px;">}</p>
<p style="margin: 0px;"><span class="asReserved" style="font-weight: bold; color: #0033ff;">public</span><span class="Apple-converted-space"> </span><span class="asFunction" style="font-weight: bold; color: #339966;">function</span><span class="Apple-converted-space"> </span>filterData(item:Object):Boolean{</p>
<div class="indent" style="padding-left: 25px;"><span class="asComment" style="color: #009900; font-style: italic;">//get the string to filter the nodes by</span><br />
<span class="asVar" style="font-weight: bold; color: #6699cc;">var</span><span class="Apple-converted-space"> </span>searchString:String = iNameFilter.text;<br />
<span class="asComment" style="color: #009900; font-style: italic;">//if string is found in node return true.<br />
//since the recursive filtering takes place from bottom up, if<br />
//a collection still has children after filtering, also return true</span><br />
<span class="asReserved" style="font-weight: bold; color: #0033ff;">if</span>(searchString.length == 0</div>
<div class="indent" style="padding-left: 25px;">|| item.name.toLowerCase().indexOf(searchString.toLowerCase()) &gt;= 0)<br />
<span class="asReserved" style="font-weight: bold; color: #0033ff;">return true</span>;</div>
<p style="margin: 0px;"><span class="asReserved" style="font-weight: bold; color: #0033ff;">else if</span>(item.children !=<span class="Apple-converted-space"> </span><span class="asReserved" style="font-weight: bold; color: #0033ff;">null</span><span class="Apple-converted-space"> </span>&amp;&amp; item.children.length &gt; 0)</p>
<div class="indent" style="padding-left: 25px;"><span class="asReserved" style="font-weight: bold; color: #0033ff;">return true</span>;</div>
<p style="margin: 0px;"><span class="asReserved" style="font-weight: bold; color: #0033ff;">return false</span>;</p>
<p style="margin: 0px;">}<br />
]]&gt;</p>
<p style="margin: 0px;"><span class="mxmlSpecialString" style="color: #006633;">&lt;/mx:Script&gt;</span></p>
<p style="margin: 0px;"><span class="mxmlComponent" style="color: #0000ff;">&lt;mx:VBox</span><span class="Apple-converted-space"> </span>width=”<span class="mxmlString" style="color: #990000;">100%</span>” height=”<span class="mxmlString" style="color: #990000;">100%</span>“</p>
<div class="indent4" style="padding-left: 100px;">paddingTop=”<span class="mxmlString" style="color: #990000;">10</span>“<br />
paddingBottom=”<span class="mxmlString" style="color: #990000;">10</span>“<br />
paddingLeft=”<span class="mxmlString" style="color: #990000;">5</span>“<br />
paddingRight=”<span class="mxmlString" style="color: #990000;">5</span>“<span class="mxmlComponent" style="color: #0000ff;">&gt;</span></div>
<div class="indent" style="padding-left: 25px;"><span class="mxmlComponent" style="color: #0000ff;">&lt;mx:Tree</span><span class="Apple-converted-space"> </span>id=”<span class="mxmlString" style="color: #990000;">personsTree</span>“</div>
<p style="margin: 0px;"> </p>
<div class="indent4" style="padding-left: 100px;">dataProvider=”<span class="mxmlString" style="color: #990000;">{people}</span>“<br />
labelField=”<span class="mxmlString" style="color: #990000;">name</span>“<br />
width=”<span class="mxmlString" style="color: #990000;">100%</span>“<br />
height=”<span class="mxmlString" style="color: #990000;">100%</span>”<span class="Apple-converted-space"> </span><span class="mxmlComponent" style="color: #0000ff;">/&gt;</span></div>
<p style="margin: 0px;"><span class="mxmlComponent" style="color: #0000ff;">&lt;mx:HBox&gt;</span></p>
<div class="indent" style="padding-left: 25px;"><span class="mxmlComponent" style="color: #0000ff;">&lt;mx:Label</span><span class="Apple-converted-space"> </span>text=”<span class="mxmlString" style="color: #990000;">Filter the Tree:</span>”<span class="Apple-converted-space"> </span><span class="mxmlComponent" style="color: #0000ff;">/&gt;</span><br />
<span class="mxmlComponent" style="color: #0000ff;">&lt;mx:TextInput</span><span class="Apple-converted-space"> </span>id=”<span class="mxmlString" style="color: #990000;">iNameFilter</span>” change=”<span class="mxmlString" style="color: #990000;">refreshData()</span>”<span class="Apple-converted-space"> </span><span class="mxmlComponent" style="color: #0000ff;">/&gt;</span></div>
<p style="margin: 0px;"><span class="mxmlComponent" style="color: #0000ff;">&lt;/mx:HBox&gt;</span></p>
<p style="margin: 0px;"><span class="mxmlComponent" style="color: #0000ff;">&lt;/mx:VBox&gt;<br />
</span></p>
<p style="margin: 0px;"><span class="mxmlComponent" style="color: #0000ff;">&lt;/mx:Application&gt;</span></p>
<div style="text-align: center">
<p>You may right-click and select “View Source”<span class="Apple-converted-space"> </span><br />
to view the full source code for the following example.</p>
<p> </p>
<p>&lt;mx:Script&gt;</p>
<p> </p>
<p> </p>
<p> </p></div>
<p></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/53/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resources, tutorials and collections of Adobe AIR applications</title>
		<link>http://www.eshopdesktop.com/index.php/archives/49</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/49#comments</comments>
		<pubDate>Sat, 07 Feb 2009 12:30:49 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[adobe air网店系统]]></category>
		<category><![CDATA[adobe air]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=49</guid>
		<description><![CDATA[

Airapps Wiki
A collection of Adobe® AIR™ applications out in the wild that the community can update.


RIAForge
An online community site, built using their own products and targeted to support developers building open source projects for our products and platform.


Apollo Hunter
A community to share and download Adobe AIR applications with no cost.


O2Apps
The ultimate resource for enthusiasts of [...]]]></description>
			<content:encoded><![CDATA[<ol>
<li>
<h4><a href="http://www.robertnyman.com/gmdesk/">Airapps Wiki</a></h4>
<p>A collection of Adobe® AIR™ applications out in the wild that the community can update.</p>
<p><img src="http://hongkiat.s3.amazonaws.com/adobe_air/airapps.jpg" alt="airapps" width="400" height="182" /></li>
<li>
<h4><a href="http://www.riaforge.org/index.cfm?event=page.category&amp;id=11">RIAForge</a></h4>
<p>An online community site, built using their own products and targeted to support developers building open source projects for our products and platform.</p>
<p><img src="http://hongkiat.s3.amazonaws.com/adobe_air/riaforge.jpg" alt="riaforge" width="400" height="253" /></li>
<li>
<h4><a href="http://apollohunter.com/">Apollo Hunter</a></h4>
<p>A community to share and download Adobe AIR applications with no cost.</p>
<p><img src="http://hongkiat.s3.amazonaws.com/adobe_air/apollo_hunter.jpg" alt="apollo_hunter" width="400" height="215" /></li>
<li>
<h4><a href="http://www.o2apps.com/">O2Apps</a></h4>
<p>The ultimate resource for enthusiasts of Adobe AIR.</p>
<p><img src="http://hongkiat.s3.amazonaws.com/adobe_air/o2apps.jpg" alt="o2apps" width="400" height="202" /></li>
<li>
<h4><a href="http://www.adobe.com/cfusion/exchange/index.cfm?event=productHome&amp;exc=24">Adobe AIR Marketplace</a></h4>
<p><strong>Adobe AIR Marketplace</strong> is a place where AIR developers can publish their Adobe AIR applications for users to download.</p>
<p><img src="http://hongkiat.s3.amazonaws.com/adobe_air/adobe_air_marketplace.jpg" alt="adobe_air_marketplace" width="400" height="222" /></li>
<li>
<h4><a href="http://www.adobeairtutorials.com/">Adobe Air Tutorials</a></h4>
<p>Adobe AIR Tutorials. Articles, resources, tutorials, and downloads.</p>
<p><img src="http://hongkiat.s3.amazonaws.com/adobe_air/adobe_air_tutorials.jpg" alt="adobe_air_tutorials" width="400" height="276" /></li>
<li>
<h4><a href="http://refreshingapps.com/">Refreshing Apps</a></h4>
<p>Adobe AIR application showcase and resources.</p>
<p><img src="http://hongkiat.s3.amazonaws.com/adobe_air/refreshingapps.jpg" alt="refreshingapps" width="400" height="260" /></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/49/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>flex皮肤资源</title>
		<link>http://www.eshopdesktop.com/index.php/archives/46</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/46#comments</comments>
		<pubDate>Thu, 15 Jan 2009 05:23:13 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[flex网店系统开发]]></category>
		<category><![CDATA[flex皮肤]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=46</guid>
		<description><![CDATA[http://www.scalenine.com/
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.scalenine.com/">http://www.scalenine.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/46/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eshop开发心得一：flex ArrayCollection tree自动选中子节点</title>
		<link>http://www.eshopdesktop.com/index.php/archives/40</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/40#comments</comments>
		<pubDate>Mon, 12 Jan 2009 07:11:25 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Desktop网店开发]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=40</guid>
		<description><![CDATA[ArrayCollection作为tree数据源,在编辑类别的时候要自动选中编辑的子节点,代码如下:
&#60;?xml version=&#34;1.0&#34; encoding=&#34;utf-8&#34;?&#62;&#60;mx:Canvas xmlns:mx=&#34;http://www.adobe.com/2006/mxml&#34; 	backgroundColor=&#34;#333333&#34;&#160; verticalScrollPolicy=&#34;off&#34; defaultButton=&#34;{okBtn}&#34; creationComplete=&#34;init()&#34;&#160; width=&#34;100%&#34; height=&#34;100%&#34;&#62;&#160;&#160; &#160;&#60;mx:Script&#62;&#160;&#160; &#160;	&#60;![CDATA[&#160;&#160; &#160;		import mx.utils.ObjectUtil;&#160;&#160; &#160;		import mx.collections.ArrayCollection;&#160;&#160; &#160;		import Eshop.Event.SaveCategoryEvent;&#160;&#160; &#160;		import Eshop.Units.MessageBox;&#160;&#160; &#160;		import mx.utils.StringUtil;&#160;&#160; &#160;		import Eshop.Event.CategoryEvent;&#160;&#160; &#160;		import Eshop.Model.GoodsModel;&#160;&#160; &#160;		[Bindable]&#160;&#160; &#160;		private var model:GoodsModel = GoodsModel.getInstance();&#160;&#160; &#160;		private function init():void{&#160;&#160; &#160;			if(model.category==null){&#160;&#160; &#160;				var e:CategoryEvent = new CategoryEvent();&#160;&#160; &#160;				e.dispatch();&#160;&#160; &#160;			}&#160;&#160; &#160;			//新增子节点选中&#160;&#160; &#160;			if(model.parentId&#62;0){&#160;&#160; &#160;				this.expandTree();&#160;&#160; &#160;			}&#160;&#160; &#160;		}&#160;&#160; &#160;		&#160;&#160; &#160;		private function expandTree():void{&#160;&#160; &#160;			var item:Object = [...]]]></description>
			<content:encoded><![CDATA[<p>ArrayCollection作为tree数据源,在编辑类别的时候要自动选中编辑的子节点,代码如下:</p>
<div class="hl-surround"><div class="hl-main">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;<br />&lt;mx:Canvas xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; <br />	backgroundColor=&quot;#333333&quot;&nbsp; verticalScrollPolicy=&quot;off&quot; defaultButton=&quot;{okBtn}&quot; creationComplete=&quot;init()&quot;&nbsp; width=&quot;100%&quot; height=&quot;100%&quot;&gt;<br />&nbsp;&nbsp; &nbsp;&lt;mx:Script&gt;<br />&nbsp;&nbsp; &nbsp;	&lt;![CDATA[<br />&nbsp;&nbsp; &nbsp;		import mx.utils.ObjectUtil;<br />&nbsp;&nbsp; &nbsp;		import mx.collections.ArrayCollection;<br />&nbsp;&nbsp; &nbsp;		import Eshop.Event.SaveCategoryEvent;<br />&nbsp;&nbsp; &nbsp;		import Eshop.Units.MessageBox;<br />&nbsp;&nbsp; &nbsp;		import mx.utils.StringUtil;<br />&nbsp;&nbsp; &nbsp;		import Eshop.Event.CategoryEvent;<br />&nbsp;&nbsp; &nbsp;		import Eshop.Model.GoodsModel;<br />&nbsp;&nbsp; &nbsp;		[Bindable]<br />&nbsp;&nbsp; &nbsp;		private var model:GoodsModel = GoodsModel.getInstance();<br />&nbsp;&nbsp; &nbsp;		private function init():void{<br />&nbsp;&nbsp; &nbsp;			if(model.category==null){<br />&nbsp;&nbsp; &nbsp;				var e:CategoryEvent = new CategoryEvent();<br />&nbsp;&nbsp; &nbsp;				e.dispatch();<br />&nbsp;&nbsp; &nbsp;			}<br />&nbsp;&nbsp; &nbsp;			//新增子节点选中<br />&nbsp;&nbsp; &nbsp;			if(model.parentId&gt;0){<br />&nbsp;&nbsp; &nbsp;				this.expandTree();<br />&nbsp;&nbsp; &nbsp;			}<br />&nbsp;&nbsp; &nbsp;		}<br />&nbsp;&nbsp; &nbsp;		<br />&nbsp;&nbsp; &nbsp;		private function expandTree():void{<br />&nbsp;&nbsp; &nbsp;			var item:Object = this.getItem(model.parentId, model.category);<br />&nbsp;&nbsp; &nbsp;			trace(ObjectUtil.toString(item));<br />&nbsp;&nbsp; &nbsp;			this.expandTreei(item);<br />&nbsp;&nbsp; &nbsp;			this.ParentTree.selectedItem = item;<br />&nbsp;&nbsp; &nbsp;		}<br />&nbsp;&nbsp; &nbsp;		public function getItem(id:uint, datas:ArrayCollection):Object{<br />&nbsp;&nbsp; &nbsp;			for(var i:Number=0;i&lt;datas.length;i++){<br />&nbsp;&nbsp; &nbsp;				var item:Object = datas.getItemAt(i);<br />&nbsp;&nbsp; &nbsp;				if(item.Id==id){<br />&nbsp;&nbsp; &nbsp;					return item;<br />&nbsp;&nbsp; &nbsp;				}<br />&nbsp;&nbsp; &nbsp;				if(item.children!=null){<br />&nbsp;&nbsp; &nbsp;					//如果没有找到，继续查找<br />&nbsp;&nbsp; &nbsp;					var item2:Object = getItem(id, new ArrayCollection(item.children));<br />&nbsp;&nbsp; &nbsp;					if(item2!=null){<br />&nbsp;&nbsp; &nbsp;						return item2;<br />&nbsp;&nbsp; &nbsp;					}<br />&nbsp;&nbsp; &nbsp;				}<br />&nbsp;&nbsp; &nbsp;			}<br />&nbsp;&nbsp; &nbsp;			return null;<br />&nbsp;&nbsp; &nbsp;		}<br />&nbsp;&nbsp; &nbsp;		private function expandTreei(item:Object):void{<br />&nbsp;&nbsp; &nbsp;			if(item &amp;&amp; !this.ParentTree.isItemOpen(item)){<br />&nbsp;&nbsp; &nbsp;				this.ParentTree.expandItem(item, true);<br />&nbsp;&nbsp; &nbsp;				var treeParent:Object = this.getItem(item.ParentId, model.category);<br />&nbsp;&nbsp; &nbsp;				this.expandTreei(treeParent);<br />&nbsp;&nbsp; &nbsp;			}<br />&nbsp;&nbsp; &nbsp;			<br />&nbsp;&nbsp; &nbsp;		}<br />&nbsp;&nbsp; &nbsp;		private function saveCategory(e:MouseEvent):void{<br />&nbsp;&nbsp; &nbsp;			var datas:Object={};<br />&nbsp;&nbsp; &nbsp;			if(StringUtil.trim(this.Name.text)==&quot;&quot;){<br />&nbsp;&nbsp; &nbsp;				MessageBox.warning(&quot;请输入名称！&quot;, &quot;输入提示：&quot;);<br />&nbsp;&nbsp; &nbsp;				this.Name.setFocus();<br />&nbsp;&nbsp; &nbsp;				return ;<br />&nbsp;&nbsp; &nbsp;			}<br />&nbsp;&nbsp; &nbsp;		&nbsp; &nbsp; if(ParentTree.selectedItem == null &amp;&amp; this.IsTop.selected==false){<br />&nbsp;&nbsp; &nbsp;		&nbsp; &nbsp; 	MessageBox.warning(&quot;请选择上级分类!&quot;, &quot;输入提示：&quot;);<br />&nbsp;&nbsp; &nbsp;		&nbsp; &nbsp; 	return;<br />&nbsp;&nbsp; &nbsp;		&nbsp; &nbsp; }<br />&nbsp;&nbsp; &nbsp;		&nbsp; &nbsp; if(this.IsTop.selected){<br />&nbsp;&nbsp; &nbsp;		&nbsp; &nbsp; 	datas.ParentId=0;<br />&nbsp;&nbsp; &nbsp;		&nbsp; &nbsp; }<br />&nbsp;&nbsp; &nbsp;		&nbsp; &nbsp; else{<br />&nbsp;&nbsp; &nbsp;		&nbsp; &nbsp; 	datas.ParentId=this.ParentTree.selectedItem.Id;<br />&nbsp;&nbsp; &nbsp;		&nbsp; &nbsp; }<br />&nbsp;&nbsp; &nbsp;		&nbsp; &nbsp; datas.Name=StringUtil.trim(this.Name.text);<br />&nbsp;&nbsp; &nbsp;		&nbsp; &nbsp; datas.IsShow=this.IsShow.selectedValue;<br />&nbsp;&nbsp; &nbsp;		&nbsp; &nbsp; datas.Keyword = StringUtil.trim(this.Keyword.text);<br />&nbsp;&nbsp; &nbsp;		&nbsp; &nbsp; datas.Description = StringUtil.trim(this.Description.text);<br />&nbsp;&nbsp; &nbsp;		&nbsp; &nbsp; datas.Orders = this.Orders.value;<br />&nbsp;&nbsp; &nbsp;		&nbsp; &nbsp; datas.Unit = this.Unit.text;<br />&nbsp;&nbsp; &nbsp;		&nbsp; &nbsp; var e2:SaveCategoryEvent = new SaveCategoryEvent();<br />&nbsp;&nbsp; &nbsp;		&nbsp; &nbsp; e2.datas = datas;<br />&nbsp;&nbsp; &nbsp;		&nbsp; &nbsp; e2.dispatch();<br />&nbsp;&nbsp; &nbsp;		}<br />&nbsp;&nbsp; &nbsp;		private function resetData():void{<br />&nbsp;&nbsp; &nbsp;			this.Name.text='';<br />&nbsp;&nbsp; &nbsp;			this.IsTop.selected=true;<br />&nbsp;&nbsp; &nbsp;			this.Unit.text='';<br />&nbsp;&nbsp; &nbsp;			this.Orders.value=0;<br />&nbsp;&nbsp; &nbsp;			this.IsShow.selectedValue=1;<br />&nbsp;&nbsp; &nbsp;			this.Keyword.text='';<br />&nbsp;&nbsp; &nbsp;			this.Description.text='';<br />&nbsp;&nbsp; &nbsp;		}<br />&nbsp;&nbsp; &nbsp;		<br />&nbsp;&nbsp; &nbsp;	]]&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/mx:Script&gt;<br />	&lt;mx:Form x=&quot;0&quot; y=&quot;0&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;<br />		&lt;mx:FormItem label=&quot;分类名称：&quot; required=&quot;true&quot;&gt;<br />			&lt;mx:TextInput width=&quot;200&quot; id=&quot;Name&quot;/&gt;<br />		&lt;/mx:FormItem&gt;<br />		&lt;mx:FormItem label=&quot;上级分类：&quot; required=&quot;true&quot;&gt;<br />			&lt;mx:Tree width=&quot;200&quot;&nbsp; labelField=&quot;Name&quot;&nbsp; dataProvider=&quot;{model.category}&quot; id=&quot;ParentTree&quot;&gt;&lt;/mx:Tree&gt;<br />			&lt;mx:CheckBox label=&quot;顶级分类&quot;&nbsp; id=&quot;IsTop&quot; selected=&quot;false&quot;/&gt;<br />		&lt;/mx:FormItem&gt;<br />		&lt;mx:FormItem label=&quot;数量单位：&quot;&gt;<br />			&lt;mx:TextInput width=&quot;200&quot; id=&quot;Unit&quot;/&gt;<br />		&lt;/mx:FormItem&gt;<br />		&lt;mx:FormItem label=&quot;排序：&quot;&gt;<br />			&lt;mx:NumericStepper width=&quot;68&quot; id=&quot;Orders&quot; minimum=&quot;0&quot; maximum=&quot;1000&quot; stepSize=&quot;1&quot;/&gt;<br />		&lt;/mx:FormItem&gt;<br />		&lt;mx:FormItem label=&quot;是否显示：&quot; width=&quot;280&quot;&gt;<br />			&lt;mx:HBox&gt;<br />				&lt;mx:RadioButtonGroup id=&quot;IsShow&quot;/&gt;<br />		&nbsp; &nbsp; &nbsp; &nbsp; &lt;mx:RadioButton label=&quot;显示&quot; value=&quot;1&quot; selected=&quot;true&quot; groupName=&quot;IsShow&quot; width=&quot;63&quot;/&gt;<br />		&nbsp; &nbsp; &nbsp; &nbsp; &lt;mx:RadioButton label=&quot;隐藏&quot; value=&quot;0&quot; groupName=&quot;IsShow&quot; width=&quot;61&quot;/&gt;<br />			&lt;/mx:HBox&gt;<br />		&lt;/mx:FormItem&gt;<br />		&lt;mx:FormItem label=&quot;关键字：&quot;&gt;<br />			&lt;mx:TextInput width=&quot;201&quot; id=&quot;Keyword&quot;/&gt;<br />		&lt;/mx:FormItem&gt;<br />		&lt;mx:FormItem label=&quot;描述：&quot;&gt;<br />			&lt;mx:TextArea width=&quot;202&quot; height=&quot;60&quot; id=&quot;Description&quot;/&gt;<br />		&lt;/mx:FormItem&gt;<br />		&lt;mx:HBox horizontalAlign=&quot;center&quot; width=&quot;279&quot;&gt;<br />			&lt;mx:Button label=&quot;新增分类&quot; id=&quot;okBtn&quot; click=&quot;saveCategory(event)&quot;/&gt;<br />			&lt;mx:Button label=&quot;重置&quot; id=&quot;resetBtn&quot; width=&quot;68&quot; click=&quot;resetData()&quot;/&gt;<br />		&lt;/mx:HBox&gt;<br />		<br />	&lt;/mx:Form&gt;<br />	<br />&lt;/mx:Canvas&gt;</div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/40/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[FLEX]dataProvide中&#8221;unable to bind&#8221; 的解决方法</title>
		<link>http://www.eshopdesktop.com/index.php/archives/38</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/38#comments</comments>
		<pubDate>Sun, 11 Jan 2009 03:39:36 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[flex网店系统开发]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=38</guid>
		<description><![CDATA[2008-08-11 by 笑看风云
来自：http://zhongguo168a.javaeye.com/admin/blogs/226719
最近出现了“unable to bind”的错误，之前搜过一次，没有找到答案，这次再搜了一下google，总算找到了答案。现分享给大家吧~
function resultHandler(result:Array) {
   for(var i:String in result) result[i] = new ObjectProxy(result[i]);
   targetArrayCollection = new ArrayCollection(result);
}
解决办法的代码能看懂吗？如果看不懂的请留言，我会详细解析。
付原文：
I found out what was happening to cause the &#8220;unable to bind&#8221; warning in the
scenario that I described (see below). I eventually stumbled onto this
solution after trying many different searches in Google:
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;
This is [...]]]></description>
			<content:encoded><![CDATA[<p>2008-08-11 by 笑看风云<br />
来自：http://zhongguo168a.javaeye.com/admin/blogs/226719</p>
<p>最近出现了“unable to bind”的错误，之前搜过一次，没有找到答案，这次再搜了一下google，总算找到了答案。现分享给大家吧~</p>
<p>function resultHandler(result:Array) {<br />
   for(var i:String in result) result[i] = new ObjectProxy(result[i]);<br />
   targetArrayCollection = new ArrayCollection(result);<br />
}<br />
解决办法的代码能看懂吗？如果看不懂的请留言，我会详细解析。</p>
<p>付原文：</p>
<p>I found out what was happening to cause the &#8220;unable to bind&#8221; warning in the<br />
scenario that I described (see below). I eventually stumbled onto this<br />
solution after trying many different searches in Google:</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>This is a solution for the common warning: &#8220;unable to bind to property &#8216;XXX&#8217;<br />
on class &#8216;Object&#8217; (class is not an IEventDispatcher)&#8221;</p>
<p>This problem occurs frequently when transferring complex objects using AMF<br />
when the object returned from the server contains an array or array<br />
collection of more objects.</p>
<p>One symptom of this problem is that it occurs after converting the data<br />
request from an HTTPService call to a Remote Object call.</p>
<p>It turns out that Flex does not handle data returned from the AMF data<br />
service in quite the same way as HTTPService and WebService results. With<br />
these two later services Flex will automatically wrap Arrays in<br />
ArrayCollection and Objects in ObjectProxy wrappers so binding will work. </p>
<p>The solution is to do this same thing manually, with code similar to the<br />
following:</p>
<p>function resultHandler(result:Array) {<br />
   for(var i:String in result) result[i] = new ObjectProxy(result[i]);<br />
   targetArrayCollection = new ArrayCollection(result);<br />
}</p>
<p>Note: It may be the case that the result object is already an<br />
ArrayCollection yet the Objects in ObjectProxy wrappers. In this case you<br />
only need to include the for loop to implement ObjectProxy for all objects<br />
in the ArrayCollection.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>I also discovered that if you add an object (i.e., one that you create<br />
yourself) to the ArrayCollection, then you&#8217;ll also need to create an<br />
ObjectProxy for the new object or you&#8217;ll get the same &#8220;unable to bind&#8221;<br />
warnings.</p>
<p>Hope this helps save someone else the hours I spent trying to find a<br />
solution <img src='http://www.eshopdesktop.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Paul</p>
<p>&#8212;<br />
Paul Whitelock<br />
Denver, Colorado</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/38/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>flex 动态创建自定义组件</title>
		<link>http://www.eshopdesktop.com/index.php/archives/34</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/34#comments</comments>
		<pubDate>Wed, 07 Jan 2009 15:28:20 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Desktop网店开发]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=34</guid>
		<description><![CDATA[flex 动态创建自定义组件：
组件名保存在数据字段中，左侧list 菜单，点击在右侧TabNavigator显示，根据类名创建组件，代码例下：
 
public static function createControl(className:String):UIComponent{    var newObject:UIComponent = null;    var objectClass:Class = getDefinitionByName(className) as Class;    if(objectClass != null){    newObject = UIComponent(new objectClass());    }    return newObject;&#60;span&#62; &#60;/span&#62;}
]]></description>
			<content:encoded><![CDATA[<p>flex 动态创建自定义组件：</p>
<p>组件名保存在数据字段中，左侧list 菜单，点击在右侧TabNavigator显示，根据类名创建组件，代码例下：</p>
<p> 
<div class="hl-surround"><div class="hl-main">public static function createControl(className:String):UIComponent{<br /><br />    var newObject:UIComponent = null;<br /><br />    var objectClass:Class = getDefinitionByName(className) as Class;<br /><br />    if(objectClass != null){<br /><br />    newObject = UIComponent(new objectClass());<br /><br />    }<br /><br />    return newObject;<br /><br />&lt;span&gt; &lt;/span&gt;}</div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/34/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eshop Desktop商城开发正式启动!</title>
		<link>http://www.eshopdesktop.com/index.php/archives/31</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/31#comments</comments>
		<pubDate>Wed, 07 Jan 2009 05:35:23 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Desktop网店开发]]></category>
		<category><![CDATA[Eshop Desktop]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=31</guid>
		<description><![CDATA[Eshop Desktop商城开发正式启动!
开发语言：
客户端：Adobe Air Flex+cairngorm
后端：php + Zend Framework1.7
数据库：mysql5.0++
开发一环境：win32
预期在2009年发布aphal1演示版。
]]></description>
			<content:encoded><![CDATA[<p>Eshop Desktop商城开发正式启动!</p>
<p>开发语言：</p>
<p>客户端：Adobe Air Flex+cairngorm</p>
<p>后端：php + Zend Framework1.7</p>
<p>数据库：mysql5.0++</p>
<p>开发一环境：win32</p>
<p>预期在2009年发布aphal1演示版。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/31/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend_Cache 的 簡易使用教學(转)</title>
		<link>http://www.eshopdesktop.com/index.php/archives/24</link>
		<comments>http://www.eshopdesktop.com/index.php/archives/24#comments</comments>
		<pubDate>Wed, 07 Jan 2009 02:44:04 +0000</pubDate>
		<dc:creator>fishman</dc:creator>
				<category><![CDATA[Memcached]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[zend_cache]]></category>

		<guid isPermaLink="false">http://www.eshopdesktop.com/?p=24</guid>
		<description><![CDATA[Zend_Cache 是 Zend Framework ( 簡稱ZF ) 內的物件之一
Zend Framework 是瑩光老大極力推薦的東西
未來的學籍系統也將以ZF為底進行開發
癈話不多說，首先來
建置我的 Zend Framework 工作環境
因為我不將它放在工作目錄內，打放直接放到某目錄下，
這樣未來開發的各組程式，都可以直接取用這個函式庫/框架物件！
所以先建好一個空目錄，再將整包下載的ZF在裡面解開(下載 ZF 1.7版)
就這樣，您的程式可以取用這些別人開發好的輪子了
各程式要如何使用Zend Framework 這些物件呢？
因為這個 ZF 內彼此的物件有時會相互引用，
所以如果您只簡單的 include  &#8220;/var/www/html/tool/Zend/Zend_Cache.php&#8221;;
十個物件有九個不會動，那一個會動的，八成是您眼花看錯的！
所以得不能像以前的作法。這時
我們要先設定include_path
它是指程式找不到想載入的檔案時，應該還可以在那些地方找到
假設我的ZF放在 /var/www/html/tool 目錄下 的 Zend 資料夾
我的 include_path 就要如此設定
set_include_path(&#8217;.&#8217; . PATH_SEPARATOR . &#8216;/var/www/html/tool&#8217;); 
(PATH_SEPARATOR指分隔符號;在linux下是:冒號,win下是分號;
不管他是什麼號,讓程式自己判斷,所以就用..PATH_SEPARATOR路徑分隔符號)
不管您如何開發系統，大多會具有一個設定檔( 如 config.php )
您該把那一行放到設定檔的最前面。
ZF準備好了！搜尋位置也確定了！ 
這時就緒了！我們可以向前行了。
堅決支持自由軟體，出發吧！

1.載入 Zend_Cache 物件
require_once &#8220;Zend/Cache.php&#8221;;
它會在目前路徑下找不到,接著跑到/var/www/html/tool 目錄下去找
果然看到有個Zend的資料夾，並發現了Zend_Cache.php 這個檔案
而這個檔案未來也會載入相關的物件,也會依這個模式,找到相關的物件
2.設定好物件前端啟始參數
$FrontendOptions['lifetime'] =7200;// cache 存在多久要自動消失 ( 生命期)
$FrontendOptions['automatic_serialization']= true;//使用序列化方式
&#8230;
&#8230;
3.設定好物件後端啟始參數
$BackendOptions['cache_dir'] =&#8217;/tmp&#8217;;//Cache 下來的東東放那裡
&#8230;.
&#8230;
它的參數很多，您自行研究去吧？ 
說句老實話，我只會這一些些，夠我用就好了,您就別笑了！
4.啟始物 Zend_Cache 物件
$cache = Zend_Cache::factory(&#8217;Core&#8217;, &#8216;File&#8217;, $FrontendOptions, $BackendOptions);
Core [...]]]></description>
			<content:encoded><![CDATA[<div id="logcontent_8" class="Content-body" style="table-layout: fixed; word-break: break-all;"><span class="Apple-style-span" style="font-family: Tahoma;"><span style="font-weight: bold;">Zend_Cache 是 Zend Framework ( 簡稱ZF ) 內的物件之一</span></p>
<p>Zend Framework 是瑩光老大極力推薦的東西</p>
<p>未來的學籍系統也將以ZF為底進行開發</p>
<p>癈話不多說，首先來</p>
<p><span style="font-weight: bold;">建置我的 Zend Framework 工作環境</span></p>
<p>因為我不將它放在工作目錄內，打放直接放到某目錄下，</p>
<p>這樣未來開發的各組程式，都可以直接取用這個函式庫/框架物件！</p>
<p>所以先建好一個空目錄，再將整包下載的ZF<span style="font-weight: bold; color: #0000ff;">在裡面</span>解開(<a style="color: #6c8c37; text-decoration: none;" href="http://framework.zend.com/download" target="_blank">下載 ZF 1.7版</a>)</p>
<p>就這樣，您的程式可以取用這些別人開發好的輪子了</p>
<p><span style="font-weight: bold;">各程式要如何使用Zend Framework 這些物件呢？</span></p>
<p>因為這個 ZF 內彼此的物件有時會相互引用，</p>
<p>所以如果您只簡單的 include  &#8220;/var/www/html/tool/Zend/Zend_Cache.php&#8221;;</p>
<p><span style="font-weight: bold;">十</span>個物件有九個不會動，那一個會動的，八成是您眼花看錯的！</p>
<p>所以得不能像以前的作法。這時</p>
<p><span style="font-weight: bold;">我們要先設定include_path</span></p>
<p>它是指程式找不到想載入的檔案時，應該還可以在那些地方找到</p>
<p>假設我的ZF放在 /var/www/html/tool 目錄下 的 Zend 資料夾</p>
<p>我的 include_path 就要如此設定</p>
<p><span style="font-weight: bold;">set_include_path(&#8217;.&#8217; . PATH_SEPARATOR . &#8216;/var/www/html/tool&#8217;); </span><br />
<span style="color: #666699;">(PATH_SEPARATOR指分隔符號;在linux下是:冒號,win下是分號;</span><br />
<span style="color: #666699;">不管他是什麼號,讓程式自己判斷,所以就用..PATH_SEPARATOR路徑分隔符號)</span></p>
<p>不管您如何開發系統，大多會具有一個設定檔( 如 config.php )</p>
<p>您該把那一行放到設定檔的最前面。</p>
<p><span style="font-weight: bold; font-size: x-large; background-color: #800000;">ZF準備好了！搜尋位置也確定了！ <br />
這時就緒了！我們可以向前行了。<br />
堅決支持自由軟體，出發吧！<br />
</span><br />
<span style="font-weight: bold;">1.載入 Zend_Cache 物件</span><br />
require_once &#8220;Zend/Cache.php&#8221;;<br />
<span style="font-weight: bold; color: #808080;">它會在目前路徑下找不到,接著跑到/var/www/html/tool 目錄下去找</span><br />
<span style="font-weight: bold; color: #808080;">果然看到有個Zend的資料夾，並發現了Zend_Cache.php 這個檔案</span><br />
<span style="font-weight: bold; color: #808080;">而這個檔案未來也會載入相關的物件,也會依這個模式,找到相關的物件</span></p>
<p><span style="font-weight: bold;">2.設定好物件前端啟始參數</span><br />
$FrontendOptions['lifetime'] =7200;// cache 存在多久要自動消失 ( 生命期)<br />
$FrontendOptions['automatic_serialization']= true;//使用序列化方式<br />
&#8230;<br />
&#8230;</p>
<p><span style="font-weight: bold;">3.設定好物件後端啟始參數</span><br />
$BackendOptions['cache_dir'] =&#8217;/tmp&#8217;;//Cache 下來的東東放那裡<br />
&#8230;.<br />
&#8230;<br />
<span style="font-weight: bold; color: #808080;">它的參數很多，您自行研究去吧？ </span><br />
<span style="font-weight: bold; color: #808080;">說句老實話，我只會這一些些，夠我用就好了,您就別笑了！</span></p>
<p><span style="font-weight: bold;">4.啟始物 Zend_Cache 物件</span><br />
$cache = Zend_Cache::factory(&#8217;Core&#8217;, &#8216;File&#8217;, $FrontendOptions, $BackendOptions);<br />
<span style="font-weight: bold; color: #808080;">Core 老實說我不懂，您知道請教我, File 是指用檔案方式儲存 cache</span></p>
<p><span style="font-weight: bold;">5.讀取 / 儲存 Cache 資料</span></p>
<p><span style="color: #000000;">讀取寫法</span><span style="color: #800000;"><span style="color: #000000;">：</span>$cache-&gt;load(&#8217;</span><span style="color: #800000;">自訂的儲存名稱</span><span style="color: #800000;">&#8216;) ;</span><br />
<span style="color: #800000;"><span style="color: #000000;">儲存寫法：</span>$cache-&gt;save(&#8217;</span><span style="color: #800000;">自訂的儲存名稱</span><span style="color: #800000;">&#8216;) ;</span></p>
<p>    $info=$cache-&gt;load(&#8217;test_info&#8217;) ;// 取用 cache 內的 test_info 資料<br />
    if($info==false) { //如果從 Cache 傳回來的資料是空的<br />
        // 就到資料庫內去撈<br />
        $SQL=&#8221; SELECT * FROM `test`  where test_id=&#8217;$id&#8217; &#8220;;<br />
        $rs = $CONN-&gt;Execute($SQL) or die($SQL);<br />
        $info= &amp;$rs-&gt;GetArray();<br />
          //將撈到的資料再存到 Cache 內<br />
        $cache-&gt;save($info,&#8217;test_info&#8217;);<br />
        }</p>
<p><span style="font-weight: bold;">5.刪除 Cache 資料</span><br />
<span style="color: #800000;"><span style="color: #000000;">刪除寫法：</span>$cache-&gt;remove(&#8217;自訂的儲存名稱&#8217;);</span></p>
<p>有時侯我們有寫資料到資料庫內，這時應把舊的 Cache 資料 刪除 <br />
如果不刪除，它也會依您設定的<span style="font-weight: bold;">生命期</span>自動刪除。</p>
<p>      //資料庫資料更新<br />
       $SQL=&#8221;REPLACE INTO   `test` set word=&#8217;$work&#8217; where test_id=&#8217;$id&#8217; &#8220;;<br />
        $rs = $CONN-&gt;Execute($SQL) or die($SQL);<br />
       $cache-&gt;remove(&#8217;test_info&#8217;);</p>
<p><span style="color: #0000ff;">這樣簡易的用法，就有很多應用的地方了。</span></p>
<p><span style="color: #0000ff;">因為我們不會只有一組程式用到  cache 可能 很多地方都會用到</span></p>
<p><span style="color: #0000ff;">複雜的用法還有像下面這樣的，不過我看不太懂</span></p>
<p><span style="color: #800000;">$cache-&gt;save($children,&#8217;cache_children_&#8217;.$category,array(&#8217;category&#8217;,'frontend&#8217;));</span></p>
<p><span style="color: #0000ff;">所以在指定名稱時，要有自己的一套方式</span></p>
<p><span style="color: #0000ff;">我的命名用法：專案(或用資料庫)名稱_程式(或資料表)名稱</span></p>
<p><span style="color: #0000ff;">反正規則只要自已記好，別隨便訂一個，到處相互干擾就可以了。</span></span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.eshopdesktop.com/index.php/archives/24/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
