Öncelikle backend/components/MyComponents.php
sayfasına aiağıda ki fonksiyonları ekliyoruz. Blog adlı tablomuzda bulunan postTitle, postTitleSeo ve created_at adlı kolonlarımızı çekerek sitemap.xml oluşturuyoruz.
public function datetime($time){
/*
unix formatında ki veriyi sitemap e göre yazacak
*/
return isset($time)? date('Y-m-d\TH:i:s+00:00',$time):\Yii::t('app','Unspecified');
}
function createSitemap(){
$xml = new \DomDocument('1.0', 'UTF-8');
$example_element = $xml->createElement('urlset');
$example_element->setAttribute("xmlns","http://www.sitemaps.org/schemas/sitemap/0.9");
/*Makalelerden önce anasayfa eklensin*/
$node1_element = $xml->createElement('url');
$example_element->appendChild($node1_element);
$subnode2_element = $xml->createElement('loc','https://www.sitename.com/');
$node1_element->appendChild($subnode2_element);
$subnode2_element = $xml->createElement('lastmod',Yii::$app->MyComponents->datetime(time()));
$node1_element->appendChild($subnode2_element);
$subnode2_element = $xml->createElement('priority','1.0');
$node1_element->appendChild($subnode2_element);
/*Makalelerden önce anasayfa eklensin*/
$posts=\backend\models\Blog::find()->all();
foreach($posts as $p=>$post){
$node1_element = $xml->createElement('url');
//$node1_element->setAttribute('id', '1');
//$node1_element->setAttribute('name', 'node 1');
$example_element->appendChild($node1_element);
$subnode2_element = $xml->createElement('loc','https://www.sitename.com/blog/'.$post->postTitleSeo.'?language='.$post->dil->dilKisaAd);
$node1_element->appendChild($subnode2_element);
$subnode2_element = $xml->createElement('lastmod',Yii::$app->MyComponents->datetime($post->created_at));
$node1_element->appendChild($subnode2_element);
$subnode2_element = $xml->createElement('priority','0.80');
$node1_element->appendChild($subnode2_element);
}
$xml->appendChild($example_element);
$xml->formatOutput = TRUE;
//echo $xml->saveXML();
$xml->save( Yii::getAlias('@frontend').'/web/sitemap.xml');
}