pragmaMx Support Forum

pragmaMx => Türkçe (Turkish) => Language Specific Support => Kurulum & Güncelleme => Thema gestartet von: navruz in 22 Februar 2008, 12:49:35

Titel: [Çözüldü] Haber Arşivi Türkçe Karakter Çözümü
Beitrag von: navruz in 22 Februar 2008, 12:49:35
Merhaba  :)
Son sürümle birlikte oldukça faydalı değişiklikler yapılmış. Kuralı 15 gün olduğu halde hala yeni özellikler fark ediyorum. Bunun için pragmamx kodlayıcılaına teşekkürlerimi sunuyorum.

Gelelim konumuza. Orijinal adıyla Stories_Archive modülü son sürümle birlikte daha işlevsel bir hale getirilmiş durumda. Fakat haber başlıklarını veritabanından çeken bölümde htmlentities() fonksiyonu kullanılmış.Bu fonksiyon henüz Türkçe'mizin standardı olan iso-8859-9 standardını  desteklemiyor ve ş, ğ, ç gibi Türkçe karakterler bozuk olarak görünüyor.
Modülün index.php dosyasında
$row['hometext'] = preg_replace('#<(p|br)[^>]*>#i', ' ', $row['hometext']);
        $row['hometext'] = str_replace('&nbsp;', ' ', $row['hometext']);

kodunun öncesine
Zitat$row['title'] = str_replace("&ccedil;","ç",$row['title']);
$row['title'] = str_replace("&eth;","ğ",$row['title']);
$row['title'] = str_replace("&yacute;","ı",$row['title']);
$row['title'] = str_replace("&ouml;","ö",$row['title']);
$row['title'] = str_replace("&uuml;","ü",$row['title']);
$row['title'] = str_replace("&thorn;","ş",$row['title']);
$row['title'] = str_replace("&Ccedil;","Ç",$row['title']);
$row['title'] = str_replace("&Eth;","Ğ",$row['title']);
$row['title'] = str_replace("&Yacute;","İ",$row['title']);
$row['title'] = str_replace("&Ouml;","Ö",$row['title']);
$row['title'] = str_replace("&Uuml;","Ü",$row['title']);
$row['title'] = str_replace("&Thorn;","Ş",$row['title']);
kodunu ekleyerek Türkçe karakterlerin düzgün çıkmasını sağlayabilirsiniz.
Örnek : http://www.bozkir.net/HaberArsivi.html
Titel: Re: Haber Arşivi Türkçe Karakter Çözümü
Beitrag von: Sitki in 22 Februar 2008, 16:25:18
Merhaba :)

bu problemi yeni 0.1.10 sürümünün yayınlanmasından az sonra fark ettim, yani bundan bilgim var. Bunun düzeltilmesi ilk çıkacak olan patch veya sürümde yapılacaktır. Bilgi ve önermiş olduğun çözüm yolu için yinede teşekkürler.

Fakat çözüm olarak sonraki daha basit yolu izleyebilirsiniz.
/modules/Stories_Archive/index.php

Bul:
$row['title'] = '<a href="modules.php?name=News&amp;file=article&amp;sid=' . $row['sid'] . '">' . htmlentities($row['title']) . '</a>';

Değiştir:
$row['title'] = '<a href="modules.php?name=News&amp;file=article&amp;sid=' . $row['sid'] . '">' . htmlspecialchars($row['title']) . '</a>';

Bul:
$row['cat_title'] = '<a href="modules.php?name=News&amp;file=categories&amp;catid=' . $row['catid'] . '">' . htmlentities($row['cat_title']) . '</a>';

Değiştir:
$row['cat_title'] = '<a href="modules.php?name=News&amp;file=categories&amp;catid=' . $row['catid'] . '">' . htmlspecialchars($row['cat_title']) . '</a>';

Sonuçta sadece 2kez

htmlentities = htmlspecialchars

olarak değiştiriliyor. Hatta "html_entity_decode" de kullanılabilir olması lazım.
Titel: Re: Haber Arşivi Türkçe Karakter Çözümü
Beitrag von: navruz in 22 Februar 2008, 16:30:56
Merhaba :)
Evet bu yöntemide biliyorum. Açıkçası kod değiştirmek yerine bu kodları eklemenin daha kolay olacağını düşündüğüm için o kodları vermiştim. :)
Titel: Re: Haber Arşivi Türkçe Karakter Çözümü
Beitrag von: ozeraksu in 22 Februar 2008, 16:44:23
Merhaba


Ayni sorunu bende faretmiştim ama çözüldü bilgi için teşekkürler.