Beyaz.Net İpucu
Smarty fonksiyon kullanma
smarty code yazılımında kendi yazdığımız bir fonksiyonu kullanmak için, smarty i kurduğumuz root dizininde pages klasoru içindeki çağıracağımız php sayfaya fonksiyonumuzu ekliyoruz. Yine bu sayfa içerisinde fonksiyonumuzu kullanıp bir değere atıyoruz.
Sonrasında templates klasoru içinde kullandığımız sayfada bu değeri {} işaretleri arasında yazıyoruz. Örnek :
pages/news.php
function UrlSeo($phrase)
{
$result = $phrase;
$result = str_replace('İ', 'I', $result);
$result = str_replace('Ü', 'U', $result);
$result = str_replace('Ç', 'C', $result);
$result = str_replace('Ğ', 'G', $result);
$result = str_replace('Ş', 'S', $result);
$result = str_replace('Ö', 'O', $result);
$result = str_replace('İ', 'i', $result);
$result = str_replace('Ü', 'u', $result);
$result = str_replace('Ç', 'c', $result);
$result = str_replace('Ğ', 'g', $result);
$result = str_replace('Ş', 's', $result);
$result = str_replace('Ç', 'c', $result);
$result = str_replace('Ö', 'o', $result);
$result = str_replace('ı', 'i', $result);
$result = str_replace('ü', 'u', $result);
$result = str_replace('ç', 'c', $result);
$result = str_replace('ğ', 'g', $result);
$result = str_replace('ş', 's', $result);
$result = str_replace('ç', 'c', $result);
$result = str_replace('ö', 'o', $result);
$result = strtolower($result);
$result = preg_replace("/[^a-z0-9\s-]/", "", $result);
$result = trim(preg_replace("/\s+/", " ", $result));
$result = trim(substr($result, 0, 45));
$result = preg_replace("/\s/", "-", $result);
return $result;
}
news.php sayfasında değerleri gönderdiğimiz alanın bir üst satırında haberleri çektiği alan yer almaktadır. O satırın altında çektiği verileri bir değere atalım.
$html = '';
foreach ($items as $item)
{
$html .= "<h1 style='font-size:1.5em;' class='haberlerbaslik'><a class='haberlerbaslik' href='".UrlSeo($item->baslik_tr)."-".$item->id."-haber'>".$item->baslik_tr."</a></h1><div><p>".$item->ozet_tr."</p></div><hr />";
}
Değeri de .tpl sayfasına gönderelim.
$theme->assign('html', $html);
templates/home/news.tpl sayfasında da o değeri çağıralım.
{$html}
Bu örnekte seo ya uygun link oluştururken link formatında oluşturmaya çalıştık.
Sonrasında templates klasoru içinde kullandığımız sayfada bu değeri {} işaretleri arasında yazıyoruz. Örnek :
pages/news.php
function UrlSeo($phrase)
{
$result = $phrase;
$result = str_replace('İ', 'I', $result);
$result = str_replace('Ü', 'U', $result);
$result = str_replace('Ç', 'C', $result);
$result = str_replace('Ğ', 'G', $result);
$result = str_replace('Ş', 'S', $result);
$result = str_replace('Ö', 'O', $result);
$result = str_replace('İ', 'i', $result);
$result = str_replace('Ü', 'u', $result);
$result = str_replace('Ç', 'c', $result);
$result = str_replace('Ğ', 'g', $result);
$result = str_replace('Ş', 's', $result);
$result = str_replace('Ç', 'c', $result);
$result = str_replace('Ö', 'o', $result);
$result = str_replace('ı', 'i', $result);
$result = str_replace('ü', 'u', $result);
$result = str_replace('ç', 'c', $result);
$result = str_replace('ğ', 'g', $result);
$result = str_replace('ş', 's', $result);
$result = str_replace('ç', 'c', $result);
$result = str_replace('ö', 'o', $result);
$result = strtolower($result);
$result = preg_replace("/[^a-z0-9\s-]/", "", $result);
$result = trim(preg_replace("/\s+/", " ", $result));
$result = trim(substr($result, 0, 45));
$result = preg_replace("/\s/", "-", $result);
return $result;
}
news.php sayfasında değerleri gönderdiğimiz alanın bir üst satırında haberleri çektiği alan yer almaktadır. O satırın altında çektiği verileri bir değere atalım.
$html = '';
foreach ($items as $item)
{
$html .= "<h1 style='font-size:1.5em;' class='haberlerbaslik'><a class='haberlerbaslik' href='".UrlSeo($item->baslik_tr)."-".$item->id."-haber'>".$item->baslik_tr."</a></h1><div><p>".$item->ozet_tr."</p></div><hr />";
}
Değeri de .tpl sayfasına gönderelim.
$theme->assign('html', $html);
templates/home/news.tpl sayfasında da o değeri çağıralım.
{$html}
Bu örnekte seo ya uygun link oluştururken link formatında oluşturmaya çalıştık.