sitemaps.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /**
  3. * @copyright Copyright(c) 2011 aircheng.com
  4. * @file
  5. * @brief
  6. * @author webning
  7. * @date 2011-01-21
  8. * @version 0.6
  9. * @note
  10. */
  11. /**
  12. * @brief SiteMaps
  13. * @class SiteMaps
  14. * @note
  15. */
  16. class SiteMaps
  17. {
  18. private $siteMapsFile;
  19. /**
  20. * @brief 构造函数
  21. */
  22. public function __construct()
  23. {
  24. $this->siteMapsFile = IWeb::$app->getBasePath().'sitemaps.xml';
  25. }
  26. /**
  27. * @brief 生成系统的siteMaps.xml文件
  28. * @param mixed $maps
  29. * @param string $xsl
  30. */
  31. function create($maps,$xsl='')
  32. {
  33. $siteMaps = new IXML();
  34. if($xsl!='')$siteMaps->setStylesheet($xsl);
  35. $siteMaps->addNode('/','sitemapindex','','xmlns=http://www.sitemaps.org/schemas/sitemap/0.9;xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance;xsi:schemaLocation=http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd');
  36. if(is_array($maps))
  37. {
  38. foreach($maps as $key => $value)
  39. {
  40. $num = $key+1;
  41. $siteMaps->addNode("/sitemapindex",'sitemap','');
  42. $siteMaps->addNode('/sitemapindex/sitemap['.$num.']','loc',$value['loc']);
  43. $siteMaps->addNode('/sitemapindex/sitemap['.$num.']','lastmod',$value['lastmod']);
  44. }
  45. }
  46. $siteMaps->save($this->siteMapsFile);
  47. }
  48. /**
  49. * @brief 创建系统的map文件
  50. * @return String
  51. */
  52. public static function create_map($items,$filename,$xsl)
  53. {
  54. $siteMaps = new IXML();
  55. if($xsl!='')$siteMaps->setStylesheet($xsl);
  56. $siteMaps->addNode('/','urlset','','xmlns=http://www.sitemaps.org/schemas/sitemap/0.9;xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance;xsi:schemaLocation=http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd');
  57. if(is_array($items))
  58. {
  59. foreach($items as $key => $value)
  60. {
  61. $num = $key+1;
  62. $siteMaps->addNode("/urlset",'url','');
  63. $siteMaps->addNode('/urlset/url['.$num.']','loc',$value['loc']);
  64. $siteMaps->addNode('/urlset/url['.$num.']','lastmod',$value['lastmod']);
  65. $siteMaps->addNode('/urlset/url['.$num.']','changefreq','monthly');
  66. $siteMaps->addNode('/urlset/url['.$num.']','priority','0.8');
  67. $siteMaps->addNode('/urlset/url['.$num.']','data','');
  68. $siteMaps->addNode('/urlset/url['.$num.']/data','display','');
  69. }
  70. }
  71. $siteMaps->save(IWeb::$app->getBasePath().$filename);
  72. }
  73. }
  74. ?>