@Asimavi; Hazırladığım uygulamayı kullanabilmen için
PHP sürümün
5.3.3 ve üzeri olması gerekmektedir.
*
Composer kurulumu ve kullanımı hakkında bilgin yoksa
şu konuyu okuyabilirsin.
* Uygulamanın çalışan halini bu bağlantıdan
indirebilirsin.
composer.json;
{
"minimum-stability": "dev",
"require": {
"imsaintx/utils": "dev-master",
"thepixeldeveloper/sitemap": "dev-master"
}
}sitemap.php;
<?php
# Kütüphanelerimizi yükleyelim.
require("vendor/autoload.php");
# Tarih/Zaman'ı yerelleştirelim.
date_default_timezone_set("Europe/Istanbul");
# Kütüphaneleri dahil edelim.
use \Tools\Utils;
use \Sitemap\Collection;
use \Sitemap\Sitemap\SitemapEntry;
# Doküman tipini "text/xml" yapalım.
Utils::utf8_header("text/xml");
# Veritabanı ayarları
# MySQL host adresi
define("DB_HOST", "127.0.0.1");
# MySQL portu (Varsayılan: 3306)
define("DB_PORT", 3306);
# MySQL kullanıcı adı
define("DB_USER", "root");
# MySQL şifresi
define("DB_PASS", "root");
# MySQL veritabanı ismi
define("DB_NAME", "test");
try
{
# PDO aracılığıyla MySQL veritabanımıza bağlanalım.
$PDO = new PDO(
sprintf("mysql:host=%s;port=%s;dbname=%s", DB_HOST, DB_PORT, DB_NAME),
DB_USER,
DB_PASS
);
# Hata oluşturma modunu `Exception` olarak değiştirelim.
$PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
# `test` veritabanımızdaki `news` tablomuzdaki içerikleri alalım.
$statement = $PDO->prepare("SELECT * FROM `news` ORDER BY `ID` DESC");
$statement->execute();
# Öğeleri $items değişkenimize alalım.
$items = $statement->fetchAll(PDO::FETCH_ASSOC);
# Sitemap'ı oluşturmaya başlayalım.
$collection = new Collection();
$collection->setFormatter(new \Sitemap\Formatter\XML\URLSet);
$pages = array(
array(
"loc" => "http://saintx.net/",
"changefreq" => "daily",
"priority" => "0.500",
# Son modifikasyon zamanını son yayımlanan yazıya konumlandıralım.
"lastmod" => $items[0]["published_at"]
),
array(
"loc" => "http://saintx.net/hakkimda",
"changefreq" => "daily",
"priority" => "0.800",
# Son modifikasyon zamanını son yayımlanan yazıya konumlandıralım.
"lastmod" => $items[0]["published_at"]
),
array(
"loc" => "http://saintx.net/iletisim",
"changefreq" => "daily",
"priority" => "0.800",
# Son modifikasyon zamanını son yayımlanan yazıya konumlandıralım.
"lastmod" => $items[0]["published_at"]
)
);
# Statik sayfalarımızı Sitemap'a dahil edelim.
foreach($pages as $page)
{
$item = new SitemapEntry();
$item->setLocation($page["loc"]);
$item->setChangeFreq($page["changefreq"]);
$item->setPriority($page["priority"]);
$item->setLastMod(date("c", $page["lastmod"]));
$collection->addSitemap($item);
}
# Yazılarımızı Sitemap'a dahil edelim.
foreach($items as $post)
{
$item = new SitemapEntry();
$item->setLocation("http://saintx.net/post/" . Utils::slugify($post["title"]) . ".html");
$item->setChangeFreq("daily");
$item->setPriority("0.500");
$item->setLastMod(date("c", $post["published_at"]));
$collection->addSitemap($item);
}
# Sitemap'ı ekrana yazdıralım.
exit($collection->output());
}
catch(PDOException $e)
{
# Bağlantı vb. hata varsa ekrana yazdıralım.
exit(iconv("ISO-8859-9", "UTF-8", $e->getMessage()));
}Anlamadığın veya takıldığın yerler olursa mesajına beni etiketleyerek sorunu yöneltirsen sevinirim.