icultivator 2013-11-14 13:32:13 7577次浏览 1条评论 2 0 0

原文:http://www.icultivator.com/p/2949.html

yii-sitemap-generator 是一个生成网站 sitemap 的 Yii 框架 扩展

如何使用

1. 下载文件解压到

/protected/extensions 文件夹下

2. 修改配置文件

/protected/config/main.php

如下

'components'=>array(
    ...
    'sitemap'=>array(
        'class'=>'ext.yii-sitemap-generator.Sitemap',
        'basePath'=>dirname(__DIR__).'/www',
        'urls'=>array(
            array('site/index','frequency'=>'always','priority'=>'1.0'),
            array('site/page','view'=>'about','frequency'=>'always','priority'=>'1.0'),
            array('site/contact','frequency'=>'weekly','priority'=>'0.2'),
            array('model'=>'Post','url'=>array('post/view','id'=>'id'),'frequency'=>'daily','priority'=>'0.2'),
        )
    ),
    ...
)

其中,URLs 的格式分为两种

1). 基于模型的 URL,如上面的

array('model'=>'Post','url'=>array('post/view','id'=>'id'),'frequency'=>'daily','priority'=>'0.2')
model表示模型的类名;

url

构建 URL,数组第一位相当与 yii 的 route,后面的参数使用 K=>V 值对,K表示参数名,V表示模型中的 V 属性值,如上面的 V id
指的是 Post 模型实例化对象的 id 属性值;

frequency

表示更新频次,与 sitemap 语法中的 changefreq 相同;

priority

表示权重,与 sitemap 中的 priority 相同。

2). 基本 URL 如上面的

array('site/page','view'=>'about','frequency'=>'always','priority'=>'1.0')

frequency 和 priority

与上面相同,注意的是,数组第一项必须为 yii 的 route

3. 在 console 中生成

创建

protected/commands/SitemapCommand.php

<?php
    
    class SitemapCommand extends CConsoleCommand {
    
        public function actionIndex() {
            $sitemap = Yii::app()->sitemap;
            $sitemap->generate();
        }
    }

运行命令 yiic sitemap
就可以生成站点 Sitemap 了,你可以创建一个cron job 定时执行这个命令,达到定时更新 sitemap 的目的
在 Controller 中生成的使用方法也是一样,直接使用
Yii::app()->sitemap
就可以返回
Sitemap
类了。
相关链接:

yii-sitemap-generator项目地址

注:本文转自 http://www.icultivator.com/p/2949.html

您需要登录后才可以评论。登录 | 立即注册