Exemplo n.º 1
0
    /**
     * testAddItem
     *
     * @return  void
     */
    public function testAddItem()
    {
        $this->instance->addItem('http://windwalker.io');
        $xml = <<<XML
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
\t<url>
\t\t<loc>http://windwalker.io</loc>
\t</url>
</urlset>
XML;
        $this->assertDomStringEqualsDomString($xml, $this->instance->toString());
        $this->instance->addItem('http://windwalker.io/foo/bar/?flower=sakura&fly=bird', '1.0', ChangeFreq::DAILY, '2015-06-07 10:51:20');
        $xml = <<<XML
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
\t<url>
\t\t<loc>http://windwalker.io</loc>
\t</url>
\t<url>
\t\t<loc>http://windwalker.io/foo/bar/?flower=sakura&amp;fly=bird</loc>
\t\t<changefreq>daily</changefreq>
\t\t<priority>1.0</priority>
\t\t<lastmod>2015-06-07T10:51:20+02:00</lastmod>
\t</url>
</urlset>
XML;
        $this->assertDomStringEqualsDomString($xml, $this->instance->toString());
    }
Exemplo n.º 2
0
// Get some datas
$app = JFactory::getApplication();
$doc = JFactory::getDocument();
$linkCache = array();
$date = DateHelper::getDate('now');
// Routing for prepare some required info for languageFilter plugin
$uri = clone JUri::getInstance();
$router = $app::getRouter();
$result = $router->parse($uri);
// Locale
$locale = null;
if (JLanguageMultilang::isEnabled()) {
    $locale = JFactory::getLanguage()->getTag();
}
// Get XML parser
$sitemap = new Sitemap();
$xml = simplexml_load_string('<?xml version="1.0" encoding="utf-8"?' . '>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" />');
// Set frontpage
$sitemap->addItem(JUri::root(), '0.9', 'daily', $date);
// Build menu map
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select("*")->from("#__menu")->where("id != 1")->where("published=1")->where("access=1");
if ($locale) {
    $query->where($query->format('language IN (%q, %q)', $locale, '*'));
}
$db->setQuery($query);
$menus = $db->loadObjectList();
foreach ($menus as $menu) {
    if (!$menu->link) {
Exemplo n.º 3
0
 /**
  * onAfterWriteFiles
  *
  * @return  void
  */
 public function onAfterWriteFiles()
 {
     include_once __DIR__ . '/../../vendor/autoload.php';
     $base = realpath(__DIR__ . '/../../..');
     $items = Folder::files($base, true);
     $sitemap = new Sitemap();
     $root = Ioc::getConfig()->get('site.root');
     $sitemap->addItem($root, 1.0);
     foreach ($items as $item) {
         if (File::getExtension($item) != 'html') {
             continue;
         }
         $loc = str_replace('\\', '/', substr($item, strlen($base) + 1));
         $sitemap->addItem($root . '/' . $loc, 0.8, ChangeFreq::WEEKLY, new \DateTime());
     }
     $xml = $sitemap->toString();
     file_put_contents($base . '/sitemap.xml', $xml);
 }