和哥们研究淘宝客,找到微购这个程序觉得挺不错的,但是地图和RSS功能不是特别完善,于是小憩一下,做了下初级的拓展,分享给大家,开源精神嘛,大家也可以去我的网站我要购物平台去看看。

1.拓展后台seoAction.class.php

  1. <?php
  2. !defined("BUILD_BATCH_COUNT")&&define("BUILD_BATCH_COUNT",200);
  3. class seoAction extends baseAction
  4. {
  5. //显示列表
  6. public function index(){
  7. $this->showindex("网站首页");
  8. }
  9. public function seller()
  10. {
  11. $this->showindex("返现商家");
  12. }
  13. public function search()
  14. {
  15. $this->showindex("逛宝贝");
  16. }
  17. public function album()
  18. {
  19. $this->showindex("专辑");
  20. }
  21. public function promo()
  22. {
  23. $this->showindex("促销活动页");
  24. }
  25. public function exchange_goods()
  26. {
  27. $this->showindex("积分商城");
  28. }
  29. public function cate()
  30. {
  31. $this->showindex("商品分类页");
  32. }
  33. public function item()
  34. {
  35. $this->showindex("商品详细页");
  36. }
  37. public function showindex($title)
  38. {
  39. $map['actionname'] = ACTION_NAME;
  40. $info = $this->seo_mod->where($map)->find();
  41. $this->assign('info',$info);
  42. $this->assign('title',$title);
  43. $this->display("index");
  44. }
  45. //修改
  46. public function edit()
  47. {
  48. $this->seo_mod->create();
  49. $status = $_POST['id'] ? $this->seo_mod->save() : $this->seo_mod->add();
  50.  
  51. if($status){
  52. $this->success("操作成功!");
  53. }else{
  54. $this->error("操作失败!");
  55. }
  56. }
  57. //伪静态设置
  58. function rewrite(){
  59. $this->assign('set',$this->setting);
  60. $this->display();
  61. }
  62. //设置seo信息
  63. function doEditSeo(){
  64. if(isset($_POST["site"]["url_model"])){
  65. $_POST["site"]["url_model"];
  66. $address = ROOT_PATH."/index/Conf/config.php";
  67. $configFile = file_get_contents($address);
  68. $newFile = str_replace("'URL_MODEL' => {$this->setting['url_model']}","'URL_MODEL' => {$_POST['site']['url_model']}",$configFile);
  69. if(!file_put_contents($address,$newFile)){
  70. $this->error("保存伪静态模式错误!请查看目录是否有修改权限");
  71. }
  72. if(unlink(ROOT_PATH."/index/Runtime/~runtime.php")){
  73. // $success = "保存数据成功";
  74. }
  75. //保存伪静态后缀
  76. if(!empty($_POST['site']['html_suffix'])&&trim($_POST['site']['html_suffix'])!='/'){
  77. $_br = "\r\n";
  78. $_tab = "\t";
  79. $_profile = '<?php'.$_br;
  80. $_profile .= $_tab."//seo后缀配置文件".$_br;
  81.  
  82. $_profile .= $_tab."return array(
  83. 'URL_HTML_SUFFIX'=>'{$_POST['site']['html_suffix']}'
  84. );".$_br;
  85.  
  86. $_profile .= $_br;
  87. $_profile .= '?>'.$_br;
  88. if (!file_put_contents(ROOT_PATH."/index/Conf/html_suffix.php", $_profile)) {
  89. $this->error("保存后缀配置文件失败,请重试!");
  90. }
  91. }else{
  92. $_br = "\r\n";
  93. $_tab = "\t";
  94. $_profile = '<?php'.$_br;
  95. $_profile .= $_tab."//seo后缀配置文件".$_br;
  96.  
  97. $_profile .= $_tab."return array(
  98.  
  99. );".$_br;
  100.  
  101. $_profile .= $_br;
  102. $_profile .= '?>'.$_br;
  103. if (!file_put_contents(ROOT_PATH."/index/Conf/html_suffix.php", $_profile)) {
  104. $this->error("保存后缀配置文件失败,请重试!");
  105. }
  106. }
  107.  
  108. $map["name"] = 'url_model';
  109. M('setting')->where($map)->setField('data',$_POST['site']['url_model']);
  110. $map["name"] = 'html_suffix';
  111. M('setting')->where($map)->setField('data',trim($_POST['site']['html_suffix']));
  112. $this->success("保存数据成功!");
  113.  
  114. }
  115. }
  116. //显示伪静态信息
  117. function showRewriteRules(){
  118. $where=array('name'=>'html_suffix');
  119. $setting_mod=D('setting');
  120. $html_suffix_rel=$setting_mod->where($where)->find();
  121. $this->assign('suffix',$html_suffix_rel['data']); //
  122.  
  123. $where=array('name'=>'url_model');
  124. $url_model_rel=$setting_mod->where($where)->find();
  125. $this->assign('url_model',$url_model_rel['data']); //
  126. $this->display();
  127. }
  128.  
  129. function sitemap(){
  130. if(!empty($_POST['dosubmit'])){
  131. vendor("sitemap.WSitemap");
  132. $_sitemap=new WSiteMap();
  133. $lastmod=date("Y-m-d");
  134. //首页
  135. $_sitemap->add($this->setting['site_domain']."/index.php",$lastmod,"always","1.0");
  136. //导航
  137. $nav_cate = M("nav")->where("is_show=1 AND in_site!='0'")->order("sort_order")->select();
  138. foreach($nav_cate as $v){
  139. if($v['system']=='1')
  140. $loc=$this->setting['site_domain']."/index.php?a=index&m=".$v['alias'];
  141. else{
  142. if($v['in_site']=='0')
  143. $loc=$v['url'];
  144. else
  145. $loc=$this->setting['site_domain']."/index.php?a=index&m=cate&cid=".$v['items_cate_id'];
  146. }
  147. $_sitemap->add($loc,$lastmod,"monthly","0.7");
  148. }
  149. //逛宝贝热门搜索
  150. $setting_cate = M('setting')->where("name='search_words'")->select();
  151. $setting = explode(",",$setting_cate[0]['data']);
  152. foreach($setting as $v)
  153. $_sitemap->add($this->setting['site_domain']."/index.php?a=index&m=search&keywords=".$v,$lastmod,"always","0.8");
  154.  
  155. //专辑分类
  156. $album_cate = M("album_cate")->where("status=1")->order("sort_order")->select();
  157. foreach($album_cate as $v)
  158. $_sitemap->add($this->setting['site_domain']."/index.php?m=album&a=index&cid=".$v['id'],$lastmod,"monthly","0.7");
  159.  
  160. //返现商家
  161. $seller_cate = M("seller_cate")->where("status=1")->order("sort")->select();
  162. foreach($seller_cate as $v)
  163. $_sitemap->add($this->setting['site_domain']."/index.php?m=seller&a=index&id=".$v['id'],$lastmod,"monthly","0.9");
  164. //读取标签
  165. $getlabel = file_get_contents("./data/label.txt");
  166. $label = explode(",",$getlabel);
  167. //所有标签
  168. $items_tags = M("items_tags")->where("status=1")->select();
  169. foreach($items_tags as $v){
  170. if(!preg_match("/\w|【|】|、|(|)|\/",$v['name'])){
  171. if(in_array($v['name'],$label))
  172. $_sitemap->add($this->setting['site_domain']."/index.php?m=cate&a=tag&id=".$v['id'],$lastmod,"always","0.9");
  173. }
  174. }
  175. $data=$_sitemap->get();
  176. //读取产品
  177. $data = str_replace('><', ">\n<", $data);
  178. //$data = iconv("GB2312", 'UTF-8',$data);
  179. $data=str_replace("&","&amp;",$data);
  180. if(file_put_contents("sitemap.xml",$_sitemap->begin().$data)){
  181. //读取商品数据
  182. $this->success("提交成功,接下来将分析大数据,请耐心等候...","/admin.php?m=seo&a=sitemap_items",1);
  183. }else{
  184. $this->error("提交失败!");
  185. }
  186. }
  187. $this->display();
  188. }
  189.  
  190. public function sitemap_items(){
  191. import('ORG.Util.Page');
  192. vendor("sitemap.WSitemap");
  193. $_sitemap=new WSiteMap();
  194. $_items=M("items");
  195. $count=!empty($_GET['count'])?$_GET['count']:0;
  196. $nowPage=!empty($_GET['p'])?$_GET['p']:0;
  197. !$count&&$count=$_items->where("status=1")->count("id");
  198. $_page=new Page($count,BUILD_BATCH_COUNT);// 实例化分页类 传入总记录数
  199. $list=$_items->order('add_time DESC')->field("id,add_time")->page($nowPage.','.$_page->listRows)->select();
  200. foreach($list as $v){
  201. $lastmod=date("Y-m-d",$v['add_time']);
  202. $_sitemap->add($this->setting['site_domain']."/index.php?a=index&m=item&id=".$v['id'],$lastmod,"daily","0.9");
  203. }
  204. //读取产品
  205. $data = str_replace('><', ">\n<", $_sitemap->get());
  206. //$data = iconv("GB2312", 'UTF-8',$data);
  207. $data=str_replace("&","&amp;",$data);
  208. if(!file_put_contents("sitemap.xml",$data,FILE_APPEND)){
  209. @file_put_contents("sitemap.xml",$_sitemap->end(),FILE_APPEND);
  210. $this->error("提交失败。","/admin.php?m=seo&a=sitemap",1);
  211. }
  212. if($nowPage>=$_page->totalPages){
  213. @file_put_contents("sitemap.xml",$_sitemap->end(),FILE_APPEND);
  214. $this->success("生成完毕,共生成条".$count."记录。","/admin.php?m=seo&a=sitemap");
  215. }else{
  216. //生成下一页
  217. $this->success("共".$_page->totalPages."页,第".($nowPage+1)."页,请耐心等候...","/admin.php?m=seo&a=sitemap_items&p=".($nowPage+1)."&count=".$count,1);
  218. }
  219. }
  220.  
  221. public function item_rss(){
  222. import('ORG.Util.Page');
  223. vendor("rss.WRss");
  224. $_rss=new WRss();
  225. $_items=M("items");
  226. $count=!empty($_GET['count'])?$_GET['count']:0;
  227. $nowPage=!empty($_GET['p'])?$_GET['p']:0;
  228. if(!$nowPage)
  229. @file_put_contents("rss.xml",$_rss->begin().$_rss->site($this->setting['site_title'],$this->setting['site_domain'],$this->setting['site_description']));
  230. !$count&&$count=$_items->where("status=1")->count("id");
  231. $_page=new Page($count,BUILD_BATCH_COUNT);// 实例化分页类 传入总记录数
  232. $list=$_items->order('add_time DESC')->field("id,title,img,seller_name,add_time")->page($nowPage.','.$_page->listRows)->select();
  233. foreach($list as $v){
  234. $lastmod=date("D d F Y h:i:s",$v['add_time']);
  235. $link=$this->setting['site_domain']."/index.php?a=index&m=item&id=".$v['id'];
  236. $_rss->add($v['title'],$link,$v['title']."<img src=\"{$v[img]}\"/>",$v['seller_name'],$lastmod,$link);
  237. }
  238. //读取产品
  239. $data = str_replace('><', ">\n<", $_rss->get());
  240. //$data = iconv("GB2312", 'UTF-8',$data);
  241. $data=str_replace("&","&amp;",$data);
  242. if(!file_put_contents("rss.xml",$data,FILE_APPEND)){
  243. @file_put_contents("rss.xml",$_rss->end(),FILE_APPEND);
  244. $this->error("提交失败。","/admin.php?m=seo&a=sitemap",1);
  245. }
  246. if($nowPage>=$_page->totalPages){
  247. @file_put_contents("rss.xml",$_rss->end(),FILE_APPEND);
  248. $this->success("生成完毕,共生成条".$count."记录。","/admin.php?m=seo&a=sitemap");
  249. }else{
  250. //生成下一页
  251. $this->success("共".$_page->totalPages."页,第".($nowPage+1)."页,请耐心等候...","/admin.php?m=seo&a=item_rss&p=".($nowPage+1)."&count=".$count,3);
  252. }
  253. }
  254.  
  255. public function ping(){
  256. $ids=$_GET['ids'];
  257. $p=isset($_GET['p'])?$_GET['p']:0;
  258. $idsArray=explode('_',$ids);
  259. $idsCount=count($idsArray);
  260. if($p<$idsCount){
  261. //百度google推送
  262. vendor("ping.WPing");
  263. $_ping=new WPing();
  264. $_items=M("items");
  265. $currentId=$idsArray[$p];
  266. $items=$_items->where("id=".$currentId)->field("title")->find();
  267. if(!$items){
  268. $this->error("记录".$currentId."不存在,将推送下一条请耐心等候...","/admin.php?m=seo&a=ping&p=".($p+1)."&ids=".$ids,1);
  269. }
  270. $link=$this->setting['site_domain']."/index.php?a=index&m=item&id=".$currentId;
  271. $_ping->method($this->setting['site_name'],$this->setting['site_domain'],$link,$this->setting['site_domain'].'/rss.xml');
  272. $sb=$_ping->baidu()?"成功":"失败";
  273. $gb=$_ping->google()?"成功":"失败";
  274. $this->success("共".$idsCount."条记录需要需要推送,当前第".($p+1)."条,百度反馈{$sb},谷歌反馈{$gb}。请耐心等候...","/admin.php?m=seo&a=ping&p=".($p+1)."&ids=".$ids,2);
  275. }else{
  276. $this->success("推送完毕,共生成条".$idsCount."记录。","/admin.php?m=seo&a=sitemap");
  277. }
  278. }
  279. function get_itmes_cate($pid){
  280. $model = M('items_cate');
  281. $map["status"] = 1;
  282. $map["pid"] = $pid;
  283. $list = $model->field('id')->where($map)->select();
  284. foreach($list as $v){
  285. $id .= $v['id'].",";
  286. }
  287. $pid = trim($id,",");
  288. $maps["status"] = 1;
  289. $maps["pid"] = array('in',$pid);
  290. $lists = $model->field('id,name')->where($maps)->select();
  291. foreach($lists as $v){
  292. $str .= "<a href='/index.php?a=index&m=cate&cid=".$v['id']."'>{$v['name']}</a>";
  293. }
  294. return $str;
  295. }
  296. function test(){
  297. $items_tags = M("items_tags")->where("status=1")->select();
  298. foreach($items_tags as $v){
  299. if(!preg_match("/\w|【|】|、|(|)|\/",$v['name'])){
  300. echo $v['name']."&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;http://www.qianbao.cn/index.php?m=cate&a=tag&id=".$v['id']."</br>";
  301. }
  302. }
  303. }
  304. }
  305. ?>

追加系统Vendar需要的库文件RSS、Sitemap、Ping

/includes/thinkphp/Extend/Vendar/ping/WPing.php

  1. <?php
  2. /**
  3. +------------------------------------------------------------------------------
  4. * 通知搜索引擎过来抓去最新发布的内容。秒收不是梦
  5. * 目前仅支持Google和Baidu
  6. +------------------------------------------------------------------------------
  7. */
  8. class WPing {
  9. public $method, $callback;
  10. public function method($site_name,$site_url,$update_url,$update_rss) {
  11. $this->method = "
  12. <?xml version=\"1.0\" encoding=\"UTF-8\"?>
  13. <methodCall>
  14. <methodName>weblogUpdates.extendedPing</methodName>
  15. <params>
  16. <param><value>{$site_name}</value></param>
  17. <param><value>{$site_url}</value></param>
  18. <param><value>{$update_url}</value></param>
  19. <param><value>{$update_rss}</value></param>
  20. </params>
  21. </methodCall>";
  22. return $this->method;
  23. }
  24.  
  25. public function _post($url, $postvar) {
  26. $ch=curl_init ();
  27. $headers=array ("POST " . $url . " HTTP/1.0", "Content-type: text/xml;charset=\"utf-8\"", "Accept: text/xml", "Content-length: " . strlen ( $postvar ) );
  28. curl_setopt($ch,CURLOPT_URL,$url);
  29. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  30. curl_setopt($ch,CURLOPT_POST,1);
  31. curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
  32. curl_setopt($ch,CURLOPT_POSTFIELDS,$postvar);
  33. $res=curl_exec($ch);
  34. curl_close($ch);
  35. return $res;
  36. }
  37.  
  38. public function google() {
  39. $this->callback = $this->_post ( 'http://blogsearch.google.com/ping/RPC2', $this->method );
  40. return strpos ( $this->callback, "<boolean>0</boolean>" ) ? true : false;
  41. }
  42.  
  43. public function baidu() {
  44. $this->callback = $this->_post ( 'http://ping.baidu.com/ping/RPC2', $this->method );
  45. return strpos ( $this->callback, "<int>0</int>" ) ? true : false;
  46. }
  47.  
  48. }
  49. ?>

/includes/thinkphp/Extend/Vendar/rss/WRss.php

  1. <?php
  2. class WRss{
  3. private $urls="";
  4. public function add($title,$link,$description,$author,$pubDate,$guid=0,$share=true){
  5. !empty($title)&&$tmp.="<title>{$title}</title>";
  6. !empty($link)&&$tmp.="<link>{$link}</link>";
  7. !empty($description)&&$tmp.="<description>{$description}</description>";
  8. !empty($author)&&$tmp.="<author>{$author}</author>";
  9. !empty($pubDate)&&$tmp.="<pubDate>{$pubDate}</pubDate>";
  10. !empty($guid)&&$tmp.="<guid>{$guid}</guid >";
  11. $this->urls.="<item>".$tmp."</item>";
  12. }
  13.  
  14. public function get($charset="UTF-8"){
  15. return $this->urls;
  16. }
  17.  
  18. public function begin(){
  19. return '<?xml version="1.0" encoding="UTF-8"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0"><channel>';
  20. }
  21.  
  22. public function end(){
  23. return "</channel></rss>";
  24. }
  25.  
  26. public function site($title,$link,$description,$managingEditor="mengdj@outlook.com",$webMaster="mengdj@outlook.com"){
  27. return "<title>{$title}</title><link>{$link}</link><description>{$description}</description><managingEditor>{$managingEditor}</managingEditor><webMaster>{$webMaster}</webMaster>";
  28. }
  29. }
  30. ?>

/includes/thinkphp/Extend/Vendar/sitemap/WSitemap.php

  1. <?php
  2. class WSiteMap{
  3. private $urls="";
  4. public function add($loc,$lastmod,$changefreq=0,$priority=0){
  5. !empty($loc)&&$tmp.="<loc>{$loc}</loc>";
  6. !empty($loc)&&$tmp.="<lastmod>{$lastmod}</lastmod>";
  7. !empty($loc)&&$tmp.="<changefreq>{$changefreq}</changefreq>";
  8. !empty($loc)&&$tmp.="<priority>{$priority}</priority>";
  9. $this->urls.="<url>".$tmp."</url>";
  10. }
  11.  
  12. public function get($charset="UTF-8"){
  13. return $this->urls;
  14. }
  15.  
  16. public function begin(){
  17. return '<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
  18. }
  19.  
  20. public function end(){
  21. return "</urlset>";
  22. }
  23. }
  24. ?>

另外修改了thinkphp默认的Page类文件,其实也就开放了一个统计页数的属性

修改完成后再后台添加对应的菜单就可以了,祝你好运。另外还有个拍拍平台采集插件,需要的可联系我。¥5元免费使用升级,哈哈...,当是资助开发了。

文件以及目录可在此处下载:http://files.cnblogs.com/mengdejun/wyao.in.zip

php源码zend加密和解密方案:http://re.paipai.com/tws/...

wego微购RSS、Sitemap、Ping、腾讯拍拍网购采集插件的更多相关文章

  1. 让wego微购购物分享系统采集拍拍数据功能之腾讯paipai功能采集插件

    wego是一款很不错的导购系统,无论前后台设计风格和功能都还不错,可有时我们的确需要一些自定义的功能,毕竟万千世界,大家都做一样的东西,采集同样的数据,能不烦吗?哈哈,今天就奉献上一个wego拍拍采集 ...

  2. 高性能高可用的微服务框架TarsGo的腾讯实践

    conference/2.3 高性能高可用的微服务框架TarsGo的腾讯实践 - 陈明杰.pdf at master · gopherchina/conferencehttps://github.co ...

  3. Ionic2中集成腾讯Bugly之自定义插件

    Ionic2混合开发,入坑系列:Ionic2中集成腾讯Bugly之自定义插件 1.编写Bugly.js代码 var exec = require('cordova/exec'); module.exp ...

  4. JeeWx全新版本发布!捷微二代微信活动平台1.0发布!活动插件持续开源更新!

    JeeWx捷微二代微信活动平台 (专业微信营销活动平台,活动插件持续更新ing~)    终于等到你!还好我没放弃! 在团队持续多年的努力下,Jeewx微信管家和H5活动平台不断更新迭代,积累了许许多 ...

  5. 腾讯用过的插件jQuery twentytwenty 效果对比

    在线实例 左右对比 上下对比 使用方法 <div class="twentytwenty-container">     <img src="/api/ ...

  6. 智芯微版本的智能配变融合终端交流采集APP

    1.  交采APP基本原理 通过SPI总线周期性的召测交流采集底板的“实时数据”,对“实时数据”变换.加工.统计分析得到“分析数据”和“统计数据”后,通过MQTT总线把这些数据同步到“数据中心”供其他 ...

  7. 深度观察:腾讯收购大众点评背景下的O2O大格局

    [亿欧导读] 腾讯入股大众点评获得20%股权,详情解读:①大众点评:独立自主为底线,要钱大于要流量:②腾讯:承认原生活服务O2O失败,丰富移动支付应用场景:③美团承受压力,拉手窝窝继续苦等买家:④BA ...

  8. 腾讯ISUX网页前端代码分析

    看了一下腾讯ISUX网页,无论是pc端还是移动端,展示都挺好看的,先对其代码进行分析如下: 1,先看前三行代码 <!DOCTYPE html> <!-- 腾讯 ISUX 是腾讯集团核 ...

  9. 【BUG】wego购物分享系统未登陆分享宝贝时查看宝贝自动新增产品数据

    1.登录微购http://demo.wego360.com/站. 2.分享宝贝功能检索第三方平台商品数据. 1.登录微购http://demo.wego360.com/站. 2.分享宝贝功能检索第三方 ...

随机推荐

  1. 不通过App Store实现ios应用分发下载安装

    最近公司的项目准备着手宣传工作了,宣传手册上要印制App的下载地址二维码,但是客户端应用还未上线,需要一种临时的方案解决应用分发下载问题,通常ios应用必须通过苹果应用商店才能下载安装,但是也可以看到 ...

  2. hihoCoder 1391 Countries【预处理+排序+优先队列】2016北京网络赛

    题目:http://hihocoder.com/problemset/problem/1391 题目大意: A和B两个国家互射导弹,每个国家都有一个防御系统,在防御系统开启的时间内可以将到达本国的导弹 ...

  3. 解决全局变量共享---C语言的extern关键字用法

    在调试程序时,有一个参数需要在多个函数之间传递,因为是作为调试参数,不想将参数引入到函数中. 很自然的想到使用全局变量来表示这个公共参数,工程代码的结构如下: main.c test.c test.h ...

  4. Strust2 初体验

    Struts2的第一个案例 首先我们需要引入架包 entity: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 package ...

  5. 遭遇OutOfMemoryError

    这几天,网店系统基础架构进行了一次大的升级,升级之后例行的进行了压力测试,以前几次大的项目发布压力测试都没有任何问题,没想到这次出事故啦,而且是内存泄露? 系统运行环境:硬件:Intel(R) Xeo ...

  6. Mongdb使用客户端

    安装Robomongo图形化管理工具 Robomongo是一个基于 Shell 的跨平台开源 MongoDB 管理工具.嵌入了 JavaScript 引擎和 MongoDB mogo . 只要你会使用 ...

  7. JavaScript中设置元素class的三种方法小结

    第一.element.setAttribute('class','abc');  第二.element.setAttribute('className', 'abc') : 第三.element.cl ...

  8. 仓库如何盘点 打印扫描一体PDA盘点机提升库存盘点效率

    仓库盘点是对仓储货品的收发结存等活动进行有效控制,保证仓储货品完好无损.帐物相符,确保生产正常进行,规范公司物料的盘点作业.盘点需人工操作,费时费力,PDA盘点机的出现大幅提升了盘点效率,减轻了工作人 ...

  9. hdu 2102 A计划-bfs

    Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...

  10. MFC 重载退出(窗口顶上最右边的x按钮)

    其实可以在*Dlg.cpp中的BEGIN_MESSAGE_MAP中对IDCANCEL和自定义函数进行匹配就可以了. 如: 自定义的退出函数是OnClose(),则在BEGIN_MESSAGE_MAP中 ...