Destek 2008

31 Aralık 2007

Yeni Kurulum İçin Türkçe Karakter Çözümü

Kategori: Smf Simplemachines — simplemachines @ 12:02

Merhaba,

SMF ile sadece işim düştüğü zamanlarda uğraşan biriyim. Fakat şunu söylemeliyim, işim düştüğü zamanlardan kastım, forum kurmaya ihtiyacım olduğu zamanlar. Yani bana en beğendiğim forum yazılımını sorsalar, her zaman için ve her yönden SMF derim. Bu başarılı yazılım için bir katkım olacaksa ne mutlu bana!

Bu yazıda SMF’yi yeni kuracak olan arkadaÅŸlara Türkçe karakter sorunları konusunda yardımcı olmaya çalışacağım.

Şu anda internette aradığımızda, herkes farklı şeyler söylüyor. Üstelik yapılan açıklamalar herhangi bir kanıta dayanmıyor ya da bir şekilde askıda kalıyor.

Ben size anlatacağım uygulamayı denedim ve herhangi bir hata ile karşılaşmadım. Bu yüzden sunuyorum, umarım benim açıklamalarım da ileride askıya düşmez. )

Türkçe Karakter Seçimi Veritabanında Başlar

Öncelikle, SMF yazılımını kuracağımız zaman ilk olarak veritabanı oluştururuz. Hangi karakter setini kullanacağımızı veritabanına bildirmezsek, veritabanı kendi kafasına göre bir seçim yapar. (Genellikle latin1_swedish_ci olarak belirler ve bu bizim işimize yaramaz)

Fakat latin1_swedish_ci gibi Türkçe ile uzaktan yakından alakası olmayan bir  karakter setinin kullanılması elbette bizim için sorun çıkarır. Çünkü kullandığımız Türkçe dil paketinde karakter kodlaması ISO-8859-9  olarak verilmiştir.

Veritabanı karakter setlerinde bizim kullanacağımız ISO-8859-9 karakter kodlamasını destekleyen karakter seti latin5_turkish_ci karakter setidir. Dolayısıyla veritabanımızda MySQL Bağlantı Karşılaştırması ve Veritabanı Karşılaştırması ayarlarını latin5_turkish_ci olarak seçmemiz gerekiyor.

* Bu işlemleri SMF kurulumunu yapmadan yapıyoruz. Veritabanında yüklenmiş tablo ve veri olmamalı.

Şimdi işlemlere başlayalım ;

Veritabanı Türkçe Karakter Ayarlarının Yapılması

Adım 1

MySQL Bağlantı Karşılaştırması

Veritabanı yönetim aracımıza bağlandığımızda (phpMyAdmin vb.) karşımıza çıkan ekranda (phpMyAdmin Anasayfası) sunucumuzla, MySQL sürümümüzle ilgili bilgiler verilir. Bu bilgilerin arasında ;

MySQL Bağlantı Karşılaştırması seçeneğine latin5_turkish_ci değerini veriyoruz.

Adım 2

Veritabanı Karşılaştırmasının Seçilmesi

phpMyAdmin ekranında (Anasayfa) sol tarafta bulunan veritabanı listesinden  daha önceden oluÅŸturmuÅŸ olduÄŸumuz veritabanını seçiyoruz ve veritabanı ile ilgili sayfaya geldiÄŸimizde sol üstte bulunan “İşlemler” sekmesine tıklıyoruz.

İşlemler sayfasında en altta bulunan “KarşılaÅŸtırma” seçeneÄŸine latin5_turkish_ci deÄŸerini veriyoruz ve “Git” butonuna basıyoruz.

Veritabanı ile ilgili yapmamız gereken işlemler bu kadar. Sırada SMF yazılımına veritabanı bağlantısını yaptıktan sonra kullanacağı karakter setini belirtmek kaldı.

Adım 3

Veritabanıyla Bağlantının Kurulmasından Sonra Kullanılacak Karakter Setinin Dosyada Belirtilmesi

Bu işlem de diğerleri kadar basit. Yönergeleri veriyorum ;

SMF yazılımının kök dizininde (settings.php, settings_bak.php dosyalarının bulunduğu yere kök (root) dizini denir) bulunan index.php dosyasını açınız.

Bu dosyada tahminen (63-67). satırlar arasında bulunan kod bloğunu bulunuz :

Code:

// Connect to the MySQL database.
if (empty($db_persist))
	$db_connection = @mysql_connect($db_server, $db_user, $db_passwd);
else
	$db_connection = @mysql_pconnect($db_server, $db_user, $db_passwd);

Bu kod bloğunun altına aşağıdaki karakter seti tanımlamalarını ekleyiniz.

Code:

	mysql_query("SET NAMES 'latin5'");
	mysql_query("SET CHARACTER SET latin5");
	mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'");

Son görünüm şu şekilde olacak :

Code:

// Connect to the MySQL database.
if (empty($db_persist))
	$db_connection = @mysql_connect($db_server, $db_user, $db_passwd);
else
	$db_connection = @mysql_pconnect($db_server, $db_user, $db_passwd);

	mysql_query("SET NAMES 'latin5'");
	mysql_query("SET CHARACTER SET latin5");
	mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'");

Dosyayı kaydedip kapatınız.

İşte yapmanız gereken işlemler bunlar. Artık SMF kurulumunuzu yapabilirsiniz. Eğer bunları yaptıktan sonra hala Türkçe karakterlerde sorun yaşıyorsanız sorun ya kullandığınız temada ISO-8859-9 yerine farklı bir karakter kodlaması belirtilmesi ya da sunucunuzda Türkçe karakter desteğiyle ilgili yapılandırmanın yanlış olmasıdır.

* Bu iÅŸlemleri yaptıktan sonra veritabanından “Dışarı Aktar” komutu ile tüm tabloların SQL döküm verisini yedekleyebilir, Türkçe karakter konusunda da herhangi bir sıkıntı yaÅŸamazsınız.

Yardımcı olması dileğiyle,
Sevgi ve Saygılarımı Sunarım.

Ahmet OÄŸuzhan DOÄžAN

*Özel hayatımdaki yoğunluktan dolayı bir süre başlığı takip edemeyeceğim. Söylediklerimi uyguladığınız halde sorun yaşıyor ve bana bildirmek istiyorsanız bu başlık altında yazabilir ve geç vereceğim cevaplardan dolayı kusuruma bakmayabilirsiniz. )

SSI Rehberi

Kategori: Smf Simplemachines — simplemachines @ 11:57

SSI Rehberi

(Son Güncelleme: 26.12.2007)

Merhaba arkadaÅŸlar sanırım bu yazı SMF için yazılmış ilk Türkçe rehber olacak. Bu rehberde SSI’nın ne olduÄŸunu, ne iÅŸe yaradığını ve hepsinden önemlisi SSI’yı ihtiyaçlarınızı karşılayabilecek ÅŸekilde nasıl kullanabileceÄŸinizi örnekli bir anlatımla öğrenebileceksiniz. EÄŸer rehberde bir hata fark eder, anlamadığınız bir yer olur veya herhangi baÅŸka bir sorun veya sorununuz olursa bu konuya cevap yazmaktan çekinmeyin.

Bölüm 1: Bilgi


SSI Nedir?

SSI’ın açılımı Server Side Includes’dur. Gerçek SSI’ın kendine ait bir programlama dili vardır ve sunucuda çalıştırılan kullanıcı tarafından kendi sayfalarına çağırılabilen dinamik bilgilere denir. Bizim kullancağımız SSI ise baÅŸka bir PHP dosyasında tanımlı fonksiyonlar bütünüdür. Bu fonksiyonları forum’dan deÄŸiÅŸik bilgileri istediÄŸimiz herhangi bir forum-dışı sayfaya çağırmak için kullanacağız.

Ne İşe Yarar?

SSI’yı kullanarak istediÄŸimiz herhangi bir sayfaya SMF kullanıcı giriÅŸi, Forum’dan Son konular/mesajlar, Forum’da en çok mesaj atan kiÅŸiler, Forum’da Kimler Online ve daha birçok deÄŸiÅŸik bilgiyi görüntüleyebileceÄŸiz.

Ne Gerekir?

SSI’yı kullanmak üzere ekstra hiçbir ÅŸey’e ihtiyaç yoktur, SMF’nin çalıştığı her ortamda SSI’da çalışabilir.

Kullanırken Çok Zorlanacak mıyım?

Kesinlikle hayır burada uygulayacağımız örnekli anlatım sayesinde copy&paste yapmayı bilen, basit HTML bilgisine sahip herkes SSI kullanrak kolayca sitelerine profosyonel bir görünüm kazandırabilirler.


Bölüm 2: Kullanım


SSI kullanmak için öncelikle ihtiyacımız olan ÅŸey, SSI’yı kullanacağımız sayfanın uzantısının PHP olması. EÄŸer böyle deÄŸilse, lütfen ilk olarak uzantıyı PHP yapın. İkinci olaraksa SSI.php’nin sayfada önceden tanımlanması. Bunun için ilk olarak http://forumunuzunadresi/ssi_examples.php (forumunuzunadresi örnektir burayı forum’unuzun yüklü olduÄŸu tam konum ile deÄŸiÅŸtirin) adresine gidin ve aÅŸağıda kırmızı ile iÅŸaretlenmiÅŸ satırı kopyalayın:

Ve SSI verilerinin gözükmesini istediÄŸiniz sayfanın 1′nci satırına, <html> tag’inden önce gelecek ÅŸekilde yapıştırın, örn:

Code:

<?php require("/home/forsaken/public_html/forum/SSI.php"); ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title>Örnek Sayfa</title>
</head>
<body>
İçerik
</body>
</html>

Tamam artık bu sayfada gözükmesini istediÄŸimiz herhangi bir yerde SSI verilerini gösterebiliriz, bir deneme yapalım mesela, <body></body> tag’lerinin arasına SSI verisinin gözükmesini istediÄŸiniz yere saşğıdaki kodu girin:

Code:

<?php ssi_topPoster(); ?>

Bu kod forum’unuzda en çok mesaj atmış kiÅŸiyi gösterecektir. Bir dahaki bölümde örnekli anlatımlarıyla tek tek her SSI fonksiyonun ne iÅŸe yaradığını ve kullanımını öğreneceksiniz


Bölüm 3: Örnekler


Son Konular - ssi_recentTopics(); ve Son Mesajlar - ssi_recentPosts();

(Son Konular için geçerli kodların hepsi Son Mesajlar içinde geçerlidir, yapmanız gereken sadece ssi_recentTopics()’i, ssi_recentPosts(); ile deÄŸiÅŸtirmektir)

İsmindende anlaşılacağı gibi bu fonksiyon forumunuzdaki son konuları, bulundukları kategori, yazarları ve açılış zamanları ile birlikte, sayfanızın istediÄŸiniz bir yerinde gösterir. Bu SSI fonksiyonunu direk ssi_recentTopics(); olarak girdiÄŸinizde karşınıza ssi_examples.php’dede görebileceÄŸiniz varsayılan özellikleriyle çıkar. Haydi bu fonksiyonu biraz özelleÅŸtirelim:

Code:

<?php
     ssi_recentTopics($num_recent = 8, $exclude_boards = null, $output_method = 'echo');
?>

Bu girdi yine default özellikleriyle gösterecektir, burada $num_recent’i deÄŸiÅŸtirirerek gösterilmesini istediÄŸiniz son konu sayısını ayarlayabilir $exclude_boards = null’ı $exclude_boards = array() yaparak, parantezler içine yazacağınız Board Id’lerle o bölümlerden son konuların gösterilmesini engelleyebilirsiniz, örneÄŸin benim forum’umda 1 duyurular ve 4 test bölümü (bunlardan gelen son konuları göstermek istemiyorum), ve ayrıca son 5 mesajı göstermek istiyorum, bunun için yazmam gereken kod:

Code:

<?php
     ssi_recentTopics($num_recent = 5, $exclude_boards = array(1,4), $output_method = 'echo');
?>

Bu kadar basit, artık şık bir son konular bölümüne sahibim )

Anket - ssi_showPoll();

ssi_showPoll(); fonksiyonu forum’dan seçeceÄŸimiz bir anketi php tabanlı herhangi bir sayfada görüntülememize olanak saÄŸlamaktadır. Kullanımı aÅŸağıdaki ÅŸekildedir:

Code:

<?php
     ssi_showPoll($topic = null, $output_method = 'echo')
?>

Burada null adlı yere göstermek istediÄŸimiz anketin konu id’sini girdiÄŸimizde, istenilen anket devamlı olarak görüntülenecektir. Konu id’si, bulunduÄŸunuz konunun URL’sine bakılarak öğrenilebilir, örneÄŸin bu konunun id’si:

http://www.simplemachines.org/community/index.php?topic=47018.0

47018 dir. Eğer bu konu ile bir anket ilişkilendirilmiş olsaydı, bu anketi görüntülemek için kullanmamız gereken kod aşağıdaki gibi olurdu:

Code:

<?php
     ssi_showPoll($topic = 47018, $output_method = 'echo')
?>

Son Anket - ssi_recentPoll(); ve En Popüler Anket - ssi_topPoll();

Bu fonksiyonlarımızın ortak özelliÄŸi forumdan herhangi bir PHP sayfaya anket çağırabilmemize olanak saÄŸlamalarıdır. ssi_recentPoll(); adlı fonksiyon, forum’a gönderilmiÅŸ en son anketi görüntülerken; ssi_topPoll(); fonksiyonu ÅŸimdiye kadar tüm kullanıcılar tarafından en çok oy atılmış anketi görüntülememize olanak saÄŸlamaktadır.

Son Anket - ssi_recentPoll(); un örnek kullanımı:

Code:

<?php ssi_recentPoll(); ?>

En Popüler Anket - ssi_topPoll(); un örnek kullanımı:

Code:

<?php ssi_topPoll(); ?>

SMF’de konu baÅŸlıklarını keywords’da gösterme

Kategori: Smf Simplemachines — simplemachines @ 11:51

SMF’de konu baÅŸlıklarını keywords’da gösterme

Google Botlarının forumunuzu Tam içeriğe göre listelemesi ve konu başlıklarını Anahtar Kelime olarak tanıması için ufak bi Değişiklik yapmamız gerekiyor

kullandığınız temada index.template.php içinde bu kodu bulun

Code:

function template_main_above()
{
        global $context, $settings, $options, $scripturl, $txt, $modSettings;

ve hemen altına bu kodları ekleyin

Code:

$stop_words=  array("I "," a "," about "," an "," are "," as "," at "," be "," by "," com "," de "," en "," for "," from "," how ","How "," in "," is"," it "," la "," of "," on "," or ","Or "," that "," the ","The "," this "," to "," was "," what "," when "," where "," who ","Who "," will "," with "," und "," the "," www ","!",".","?","=","-");
        $keywords_ = str_replace($stop_words," ",$context['page_title']);
        $keywords_ =  preg_replace ( "/\s\s+/" , " " , $keywords_);
        $keywords_ = str_replace(" ",", ",trim($keywords_));

bu koduda metaların arasına yerleştirin

Code:

<meta name="keywords" content="'.$keywords_.'" />

Örnek olarak
SEGMENTASYON YÖNTEMİ İLE İKİ BOYUTLU GÖRÜNTÜ ÜZERİNE AĞIRLIK MERKEZİNİN HESABI
diye bi konumuz warsa keywords bu şekilde çıkar
<meta name=”keywords” content=”SEGMENTASYON, YÖNTEMİ, İLE, İKİ, BOYUTLU, GÖRÜNTÜ, ÜZERİNE, AÄžIRLIK, MERKEZİNİN, HESABI” />

google botu ve diğer spiderların sitendeki tüm içeriği indexlemesi ve dolaşabilmesi için gereken komutlar

<META NAME=”googlebot” CONTENT=”index, follow”>
bu meta google botu tüm içeriği indexlesin demek

<meta name=”robots” content=”all”>
bu meta tüm botlar sitede dolaşabilir demek

<META NAME=”robots” CONTENT=”index, follow”>
bu meta tüm spiderlar tüm içeriği indexlesin demek

<META NAME=”REVISIT-AFTER” CONTENT=”1 Days”>
bu meta ise siteni ziyaret eden botu bir gün sonra tekrar gelmesini sağlar

ayrıca bu metaları kullandığınızda robotlar için izin belgesi olan robots.txt dosyasını kullanmanıza gerek kalmaz ve siteniz daha hızlı ve tam içeriğe göre listelenir.  ;)

Not: sitemap.xml hazırlayıp google tanıtırsanız siteniz çok daha hızlı ve kolay indexlenir

Mesajın içine eklenen resim [img], nasıl otomatik boyut alır?

Kategori: Smf Simplemachines — simplemachines @ 11:46

 Mesajın içine eklenen resim [img], nasıl otomatik boyut alır?

ÇÖZÜM

Admin–>Forum Seçenekleri–>Temel Özellikler–>Mesajlardaki resimlerin geniÅŸliÄŸi (0 = kapatır) ve Mesajlardaki resimleri yüksekliÄŸi (0 = kapatır) ayarlarından yapabilirsin.

Sayfa Görüntülenemiyor

Kategori: Smf Simplemachines — simplemachines @ 11:29

Forum dosyaları yerinde duruyor, sql yerinde duruyor. index.php, settings.php ve tema dosyalarını kontrol ettim yerlerindeler. Ama sayfa görüntülenemiyor hatası veriyor. index.php yerinde index.html dosyası çalışıyor. Yani hostta da öyle bir sorun yok.

ÇÖZÜM

C panel > Mysql > Repair DB  İle Çözebilirsiniz veya diğer alternatifleri araştırınız

Kimler Online’ın kaydının tutulacağı zaman limitinde deÄŸiÅŸiklik

Kategori: Smf Simplemachines — simplemachines @ 10:20

Forumda online kullanıcalı yükseltmek için Bir mod duymuÅŸtum Kimler Online’ın kaydının tutulacağı zaman limiti 500 ayarladım sonra bu 500 ü nasıl 15 dakika yappacağız bulamadım ama 15 yapacamda forumda 15 dakika gözükecek normalde tutulacak zaman 500 olacak

Çözüm

Dil Dosyalarında index.turkish.php
de bunu arayın:

Code:

$txt[140] = 'Son ' . $modSettings['lastActive'] . '
dakika içinde aktif olan üyeler';

Aşağıdaki Kısıma Yazacağınız
Sayı Ana Sayfada Görünecektir:

Code:

' . $modSettings['lastActive'] . '

Özel mesaj gelince mail gitmesi için ne yapmalıyım?

Kategori: Smf Simplemachines — simplemachines @ 10:13

Arkadaşlar sitemde özel mesaj atılınca giden kişiye mail gitmesi için hangi ayarı yapmalıyım?(Tüm üyeler için default)

ÇÖZÜM

Bu dedıgın olayı zaten smf otomatık yapar herhangı bır ayar yapmana gerek yok

tabiki aşagıdaki ayarları yapmıssan

Temel Ayarlar
E-Posta gönderim türü  (PHP standart) SMTP
SMTP sunucusu
SMTP portu
SMTP kullanıcı adı

bunu nasıl yapacagım dersen ?

admin/Sunucu Ayarları/Temel Ayarlar dan

Paket Yüklerken Hata Alıyorum

Kategori: Smf Simplemachines — simplemachines @ 07:59

Arkadaslar paket yükliyemiyorum.Forumuma reset atmadan yani silip tekrar yüklemeden önce kurmuştum.Ama şimdi yüklerken hata alıyorum
bbbneexh3.png

Çözüm

bu modu daha önce kurmuşsun ve sana seo4smf_enable adında bir satırın oldugunu soyluyor
o satırı bulup sildiğinde olay çözülecektir..

veya

Phpmuadminde sql sorgu yerinde şı kodu çalıştırırsan sorunun ortadan kalkacaktır.

Code:

delete from smf_settings where variable like ’seo4smf_%’;

Forum Saati Sürekli bozuluyor..

Kategori: Smf Simplemachines — simplemachines @ 07:33

Forum Saati Sürekli bozuluyor…

ben ayarlıyorum o bozuluo ben ayarlıorum o bozuluyor

Çözüm

ADMİN >> FORUM SEÇENEKLERİ >> VARSAYILAN ZAMAN BİÇİMİNİ ne gir aşağıdakini yaz

%d %b %Y, %H:%M:%S %a

(www.siteadi.com/Forum) yazdigimda Connection Problems

Kategori: Smf Simplemachines — simplemachines @ 04:36

http://www.siteadi.com/Forum yazinca

assagidaki hatayi aliyorum.

Connection Problems
Sorry, SMF was unable to connect to the database. This may be caused by the server being busy. Please try again later.

C Ö Z Ü L M Ü

Settings.php dosyasını not defteriyle aç ve doğru mysql bilgilerini giriniz Sorun düzelmezse diğer yolları deneyiniz

WordPress üzerine kurulmuştur.