Вот собственно сам код:
foreach ( $packageNames as $key => $packageName ){
$parentName = $packageName == 'modResource' ? "parent" : "resource_id";
$select = array('id','alias','editedon','createdon',$parentName);
if( $packageName != 'modResource' ){
$modelpath = $modx->getOption('core_path') . 'components/' . $packageName . '/model/';
$modx->addPackage($packageName, $modelpath);
}
else{
$select = array_merge( $select, array('context_key','isfolder') );
}
$where=array( 'published' => 1 );
if($config['excludeModResIds'] && $packageName == 'modResource'){
$ids=array('id:NOT IN' => explode(',',$config['excludeModResIds'] ));
array_push($where,$ids);
}
if($config['excludeModContIds']&& $packageName == 'modResource'){
$ids=array('parent:NOT IN' => explode(',',$config['excludeModContIds'] ));
array_push($where,$ids);
}
$resources = getMapQuery($classNames[$key],$select,$where);
if(!empty($resources)){
foreach ( $resources as $resource ){
if(!empty($resource['alias'])){
if (!isset($resource['context_key'])) {
$resource['context_key'] = !empty( $contexts[$key] ) ? $contexts[$key] : $contexts[0];
}
if ( $resource[$parentName] != 0 ){
$url = $modx->makeUrl($resource,'','modResource','full');
}
else{
$url = $config['site_url'];
}
$url .=substr($url, -1)=='/' ? $resource['alias'] : '/'.$resource['alias'];
$url .= !empty( $resource['isfolder'] ) ? $config['containerSuffix'] : $config['urlSuffix'];
if ($packageName == 'modResource'&& $resource['id']==$config['site_start']){
$url=$config['site_url'];
}
$date = !empty( $resource['editedon'] ) ? $resource['editedon'] : $resource['createdon'];
$date = strftime( '%Y-%m-%d', $date );
$date = date("Y-m-d", strtotime($date));
/* Get the date difference */
$datediff = datediff("d", $date, date("Y-m-d"));
if ($datediff <=1) {
$priority = '1.0';
$update = 'daily';
} elseif (($datediff >1) && ($datediff<=7)) {
$priority = '0.75';
$update = 'weekly';
} elseif (($datediff >7) && ($datediff<=30)) {
$priority = '0.50';
$update = 'weekly';
} else {
$priority = '0.25';
$update = 'monthly';
}
$output .= "
<url>
<loc>{$url}</loc>
<lastmod>{$date}</lastmod>
<priority>{$priority}</priority>
<changefreq>{$update}</changefreq>
</url>";
}
}
}
}
Комментарии (0)