'8.0',
'Main.WikiSandbox' => '0.2',
'PmWiki' => '0.5',
'PmWikiPtBr' => '1.0',
));
# yearly, monthly, weekly and daily change frequency
SDV($FmtPV['$ItemChangeFreq'] , "GFeedChangeFreq(\$page)");
function GFeedChangeFreq($c){
global $Now;
$c = $c['time'];
$r = $Now - $c;
return GFeedChangeFreqGrader($r);
}
# grade priority, priorities can be changed
SDV($FmtPV['$ItemPriority'] , "GFeedPriority(\$page)");
# this shows priority using age
function GFeedPriority($p){
global $GFeedPriorityBypass, $Now;
$pag = $p['pagename'];
$bps = $GFeedPriorityBypass;
$rtr = '';
foreach($bps as $pat => $rep){
if(stripos($pag,$pat) !== false){
$rtr = $rep;
}
}
if($rtr != '') return $rtr;
$age = GFeedPriorityAge($p);
$rev = GFeedPriorityRevs($p);
$nor = GFeedPriorityNoRev($p);
$rpt = GFeedPriorityPerRev($p);
# now the formulae ^^
$total = ($age + $rev + $rpt + $nor) / 4;
$total = substr("$total",0,3);
return $total;
}
# this shows priority using age
function GFeedPriorityAge($p){
global $Now;
$t = $p['time'];
$c = $p['ctime'];
$a = $t - $c;
return GFeedTimeGrader($a);
}
# time without revisions - graded
function GFeedPriorityNoRev($p){
global $Now;
$t = $Now - $p['time'];
return GFeedTimeGrader($t);
}
# total number of revisions - graded
function GFeedPriorityRevs($p){
global $Now;
$r = $p['rev'];
return GFeedQuantityGrader($r);
}
# time between revisions - graded
function GFeedPriorityPerRev($p){
$t = $p['time']; # creation to last edit
$r = $p['rev'];
$rt = $t / $r;
return GFeedTimeGrader($rt);
}
function GFeedTimeGrader($t){
$t = $t;
if($t > 0 && $t <= 86400) return "1.0";
if($t >= 86400 && $t >= 604800) return "0.8";
if($t >= 604800 && $t >= 2419800) return "0.6";
if($t >= 2419800 && $t <= 29030400) return "0.4";
if($t >= 29030400) return "0.2";
}
function GFeedQuantityGrader($r){
$r = $r;
if($r >= 50) return "1.0";
if($r >= 40 && $r >= 49) return "0.8";
if($r >= 30 && $r >= 39) return "0.6";
if($r >= 20 && $r <= 29) return "0.4";
if($r >= 0 && $r <= 19) return "0.2";
}
function GFeedChangeFreqGrader($c){
$c = $c;
if($c >= 0 && $c <= '86400') return "daily";
if($c > '86400' && $c <= '604800') return "weekly";
if($c > '604800' && $c <= '2419800') return "monthly";
if($c > '2419800') return "yearly";
}
## Sitemapindex 0.9 settings for ?action=sitemapindex
SDVA($FeedFmt['sitemapindex']['feed'], array(
'_header' => 'Content-type: text/xml; charset="$Charset"',
'_start' => ''."\n".
''."\n",
'_end' => "\n\n",
));
SDVA($FeedFmt['sitemapindex']['item'], array(
'_start' => "\n",
'_end' => "\n",
'loc' => ($EnablePathInfo == 1)
? '{$ScriptUrl}/?group={$Group}&action=sitemap'
: '{$ScriptUrl}?group={$Group}&action=sitemap'
));
## Sitemap 0.9 settings for ?action=sitemap
SDVA($FeedFmt['sitemap']['feed'], array(
'_header' => 'Content-type: text/xml; charset="$Charset"',
'_start' => ''."\n".
''."\n",
'_end' => "\n",
));
SDVA($FeedFmt['sitemap']['item'], array(
'_start' => "\n",
'_end' => "\n",
'loc' => '{$PageUrl}',
'lastmod' => '$ItemRSSTime',
'changefreq' => '$ItemChangeFreq',
'priority' => '$ItemPriority',
));