'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', ));