Özelleştirilmiş (yeni) profil alanları yaratmak

Started by Elmacik, December 12, 2005, 07:17:41 PM

Previous topic - Next topic

Elmacik

ÖNEMLİ NOT: Buradaki doküman, [unknown] isimli kullanıcı tarafından yazılmış olup, tarafımdan Türkçe'ye çevrilmiştir. Amacı; üye profillerinde, bilgi girilebilecek yeni alanlar yaratmak.
Dokümanın orijinalini burada bulabilirsiniz: http://www.unknownbrackets.com/tutorials/custom-profile
Tarafımdan bazı yerlere küçük açıklamalar konmuştur, bütünlüğü bozmamak için belirtmedim.


SMF'de profil alanını özelleştirme, yeni profil alanları ekleme

İyi bir forum sahibi olmanın en önemli özelliklerinden biri, özelleştirilebilmesidir. Büyük değişimlerin yapıldığı özelleştirmelerde kullanıcılarınızın kendilerine ait bilgilerin profillerinde saklanmasını sağlayabilir. SMF, size bunu sağlayabilecek şekilde tasarlanmış ve istediğiniz şekilde özelleştirebilme imkanları sunmaktadır.
Burada okuyacağınız bilgiler SMF forumu için hazırlanmıştır ve diğer yazılımlarla çalışmayacaktır.

İstediğiniz tam olarak nedir?

Planlamak, hepinizin bildiği gibi, herşeyin anahtarıdır. Bunun için, öncelikle bazı şeyleri bilmeniz gerekir; ne türde şeyler istiyorsunuz, nasıl görünmesini istiyorsunuz, nerede istiyorsunuz ve nasıl seçeneklere sahip olmasını istiyorsunuz.. Bu rehberde birkaç değişik örnekle kendi isteğinize uygun özellikleri nasıl üretebileceğinizi anlatacağız. (Sade yazı, listeden seçme, seçme kutuları ve büyük yazı alanlrı gibi..) Elbette daha fazlası da mümkün; biz ise başlangıç için sadece örneklendireceğiz.

Şimdi bir sonraki adım, bunlardan hangisini kullanmak istediğinizi belirlemek. Örneğin, kullanıcının bir profil alanına sadece amaca özel (kısıtlı) bilgiler girmesini istiyorsanız, işinizi seçme listesi görecektir. Bununla birlikte, mesela lakabını soracaksanız, küçük bir yazı kutusu kullanırsınız. Ya da örneğin özgeçmiş girilmesini istiyorsanız geniş bir yazı alanına ihtiyacınız olacaktır.
Daha sonra seçiminizin nereden görünmesini istediğinizi belirlemelisiniz. Örneğin yazılan özgeçmişin kullanıcının her mesajında isminin altında görülmesini muhtemelen istemezsiniz; ama profiline bakıldığında görülmesini isteyebilirsiniz. Ya da özgeçmişlerini kayıt sırasında sormak istemeyebilirsiniz, belki sonra doldurulabilecek bir özellik olarak kullanmak istersiniz..

Tema sistemi meselesi

Şimdi özelleştirilmiş profil alanları yaratmak için kullanacağımız yöntem, SMF'in bize sunduğu tema sistemidir. Bu sistem sayesinde, veritabanı üzerinde herhangi bir değişiklik yapmanıza veya girilen bilgilerin nerede saklandığı konusunda endişe duymanıza gerek kalmayacaktır. Her ne kadar böyle özelleştirilmiş alanları bir yönetim panelinden yönetmek mümkün de olsa, burada anlatacağımız metod, kontrolü elinizde tutmanız, neyin nerede ve nasıl görüneceğiniz kendinizin belirleyebilmesi açısından, daha kullanışlıdır. Ek olarak, PHP bilmenize de gerek yok; sadece kopyala/yapıştır yapmayı bilin yeter ;)

Her zaman hatırlamanız gereken önemli bir konu: tema sisteminin doğasından ötürü, kullanacağınız kodlarda veya yazılarda tek tırnak işareti ( ' ) varsa, bunun tek başına değil de, bir ters bölü ( \ ) işaretiyle kullanılması gerekir. Ör:  Ahmet'e gittim yerine; Ahmet\'e gittim.
Yanısıra, HTML ve CSS bilmeniz, işinizi büyük ölçüde kolaylaştırır. Bunları www.w3schools.com adresinden ücretsiz öğrenebilirsiniz. (İngilizce)

Bu özelleştirmeleri yaparken, bunların sadece o an kullanımdaki temada mı yoksa tüm temalarda mı görüneceğini de seçebilmeniz mümkün. Genellikle, özelleştirilmiş profil bilgileri tüm temalarda görünsün istenecektir. Bundan dolayı burada bu yöntem üzerinde duracağız. Bununla birlikte, bazı özellikler için, tüm temalarda kullanmak istediğinizde, varsayılan temayla beraber diğer temaların da dosyalarını düzenlemeniz gerekebilir. Varsayılan temayı değiştirdiğiniz takdirde, forum sürümünüzü yükseltmeye karar verirseniz, aynı değişiklikleri tekrar yapmanız gerekecektir. Mümkünse, varsayılan temanın bir kopyasını alın, bunu düzenleyin ve kullanın, varsayılan temanın kullanılmasını da engelleyin. (Yeni bir tema oluşturmak gibi düşünebilirsiniz)

Bu özelleştirmeleri yapmak için öncelikle kendinize bir adet güçlü bir düzenleme programı bulun. Dilerseniz notepad, wordpad gibi programarı kullanabilirsiniz. Programlama diline uygun renklendirme yapmak istiyorsanız ConTEXT'i tavsiye edebilirim.

Basit bir yazı alanı eklemek

Bu, muhtemelen en basit ve en genel yöntem. Bu özelleştirmenin örneği için, kullanıcının gerçek ismini yazmasını istediğimiz bir yazı alanı oluşturacağız.
1. /Themes/sizin_temanız/Profile.template.php dosyasını açıyoruz. Eğer kullandığınız temada bu dosya yoksa, varsayılan temadan bir kopya alıp buraya koyun.

2. Bu kodu arayın:<td><input type="text" name="websiteUrl" size="50" value="', $context['member']['website']['url'], '" /></td>
Not: Bu kod sizin dosyanızda başka özelleştirmelerden dolayı biraz farklı olabilir.
Hemen altına şunu ekleyin:

</tr><tr>
<td><b>Gerçek isim: </b></td>
<td><input type="text" name="default_options[profile_gercek_isim]" size="50" value="', @$context['member']['options']['profile_gercek_isim'], '" /></td>

Not: Burada kullanılan "default_options" ifadesi, yaratacağımız yeni profil alanının tüm temalarda işlemesi içindir. Sadece o an kullanılan temada çalışması için "options" kullanın.

3. Eğer "Gerçek isim" adı altında yarattığımız bu alanın, kullanıcının profiline bakıldığında görüntülenmesini istiyorsak, bulacağız:
<td><a href="', $context['member']['website']['url'], '" target="_blank">', $context['member']['website']['title'], '</a></td>
Hemen altına ekleyeceğiz:

</tr><tr>
<td><b>Gerçek isim: </b></td>
<td>', @$context['member']['options']['profile_gercek_isim'], '</td>


Boş bırakmışlarsa bu alan görünmesin mi? O zaman onun yerine bunu kullanın:

', !empty($context['member']['options']['profile_gercek_isim']) ? '</tr><tr>
<td><b>Gerçek isim: </b></td>
<td>' . $context['member']['options']['profile_gercek_isim'] . '</td>' : '', '


4. Eğer bu "Gerçek isim" alanının, kullanıcının yolladığı her mesajda üye adı altında görünmesini istiyorsak, (örneğin yeni üye, mesajlar : 40 gibi..) bu da mümkün. Açıyoruz: /Themes/sizin_temanız/Display.template.php Arıyoruz:

// Show the member's gender icon?

Hemen üstüne, şunu ekliyoruz:

if (!empty($message['member']['options']['profile_gercek_isim']))
echo 'Gerçek isim: ', $message['member']['options']['profile_gercek_isim'], '<br />';

Bunun gibi aynı şekilde başka alanlar da ekleyebilirsiniz.

İstenilen şeyi listeden seçtirmek

Bu da yukarıdakiyle aynı yöntemdir. Yukarıdaki yönergeleri izleyin, yalnızca Profile.template.php adımında şunu kullanın:

</tr><tr>
<td><b>Evcil hayvanınız: </b></td>
<td><select name="default_options[profile_ev_hayvani]">
<option', @$context['member']['options']['profile_ev_hayvani'] == 'Kus' ? ' selected="selected"' : '', '>Kus</option>
<option', @$context['member']['options']['profile_ev_hayvani'] == 'At' ? ' selected="selected"' : '', '>At</option>
<option', @$context['member']['options']['profile_ev_hayvani'] == 'Kopek' ? ' selected="selected"' : '', '>Kopek</option>
<option', @$context['member']['options']['profile_ev_hayvani'] == 'Kedi' ? ' selected="selected"' : '', '>Kedi</option>
</select></td>

Kalan diğer basamaklarda, "profile_gercek_isim" ve "Gerçek isim" yerine "profile_ev_hayvani" ve "Ev hayvanınız" ifadelerini kullanacaksınız.

Seçme kutuları eklemek

Yine benzer şekilde, Profile.template.php basamağında, bunu ekleyin:

</tr><tr>
<td><b>Gerçek isim: </b></td>
<td><input type="checkbox" name="default_options[show_gercek_isim]" value="1"', @$context['member']['options']['show_gercek_isim'] ? ' checked="checked"' : '', ' class="check" /></td>

Şimdi profil alanında gerçek ismin görünüp görünmemesini kullanıcı kendisi seçebilir. Kullanıcının seçimine göre gerçek ismin görünmesini/görünmemesini şu şekilde ayarlayabilirsiniz:

1. Yöntem:
', !empty($options['show_gercek_isim']) ? 'Merhaba!' : '', '
2. Yöntem:

';

if (!empty($options['show_gercek_isim'])
{
echo 'Merhaba!';
}

echo '

İki yöntemde de eğer kullanıcı gerçek isim alanını doldurmuşsa, "Merhaba!" yazısını görüntüler. Üyenin gerçek ismini çağırmak için de bunu kullanacaksınız: $options['profile_gercek_isim']
Eğer Display (Konuların görüntülendiği) veya InstantMessages (Özel mesajların görüntülendiği) temalarda üyelerin gerçek isimlerini çağırmak isterseniz o zaman da kullanacağınız budur: $message['member']['options']['show_gercek_isim']

Büyük bir yazı alanı eklemek

Örneğin, kullanıcıların özgeçmişlerini yazabilecekleri bir alan oluşturmak istiyorsunuz, Profile.template.php basamağında bunu kullanın:

</tr><tr>
<td><b>Özgeçmiş: </b></td>
<td><textarea name="default_options[profile_ozgecmis]" rows="4" cols="80" class="editor">', @$context['member']['options']['profile_ozgecmis'], '</textarea></td>
Home of Elmacik

KirpiX

harika bir döküman olmuş dostum bunun linkini yada bu dökümanı sabitlemeni tavsiye ederim çoğu kişinin işine yarayacak bilgilerle dolu bu türde bir düşünce ve uygulama için kutların seni teşekkürler aydınlattığın için
MsN Durumum Şu Anda------->
http://www.locked5.com/

Elmacik

KirpiX,
Her zamanki gibi, Sıkça Sorulan Sorular bölümüne eklendi zaten ;)
Fikrin için teşekkürler.
Home of Elmacik

KirpiX

dostum belki yeri değil ama sıkca sorulan sorular--Güncellendi--Tarih şeklinde yaparsanız başlığını herzaman oraya bakmayan arkadaşlarda yeni birşey eklendiğinin farkına varmış olurlar diye düşünüyorum
MsN Durumum Şu Anda------->
http://www.locked5.com/

Fu®Kåñ

güzel calisma teprik ederim

bu kodalamari direk thmelari koyasiniz downloada öylece sunsaniz daha iyi olmazmi?
yoksa ben webmaster olucam kendim yaparsam :P

bLeDa

Quote from: YureKDoLu on December 13, 2005, 12:16:56 PM
güzel calisma teprik ederim

bu kodalamari direk thmelari koyasiniz downloada öylece sunsaniz daha iyi olmazmi?
yoksa ben webmaster olucam kendim yaparsam :P

iyide farklı tema kullanıosan elbet manuel olarak ekliceksin  :D


Elmacik,

Bu dökümanı çevirdigin çok iyi olmuş; teşekkürler.
Gerçi salonlarda senin "yıldız"dı adın,
Hakikatte fahişesin ey alçak kadın!
Ey allıklı ve düzgünlü yosma bil şunu:
Bütün millet öğrenmiştir senin fuhşunu.
Omuzun da neden seni fuzuli çeksin?
.........................................
Kinimizin şiddetiyle gebereceksin!.. 
Topal Asker - Hüseyin Nihal ATSIZ
Yeni Mekanlar

http://www.mekanbura.com  ( Paylaşım )
http://www.bulindir.net  ( Mp3 Download )

Fatih!

Elmacik sen bizim herşeyimizsin :)
teşekkürler
Tek sorunu; düşünebilmekti...

xlang

Elmacik çeviri için teşekkürler :D  bu profile eklediklerimizi üyenin kaydolurken doldurmasını nasıl sağlayabiliriz acaba?

UnS

içinde profil.theme dosyası olmayan temalar bu sayfayı default'tan mı alıyolar acaba ben nasıl düzenliyecem bunu  :D :-\

mssgoogle

Eline koluna sağlık hocam çok faydalı bir döküman Teşekkür ederim.
İnsanın Kendisi Değil! Kaderi Güzel Olucak Be Abi ;)Http://wWw.Ehadi.Net | Http://Forum.Ehadi.Net | Http://Arama.Ehadi.Net |
Paylaşmak için doğru adrestesin! http://www.ehadi.net

forsakenlad

Tebrikler, eminim birçok kullanıcıya yardımcı olacaktır ;)
Eren "forsakenlad" Yaşarkurt
SMF Friend & Former Team Member

Sbri

Bütün bu özelleştirilmiş profillerin uye listesinde de görümtülenms iiçin ne yapmalıyız?

ToKMaK

bunun birde üye olurken, seçenek eklemeyide yazılırsa eminim çok işe yarıcak mesala üye olurken sadece mail ve k.adı istiyor oraya şehir, doğum tarihi, vs... gibi istekleri eklemek...


Clough

Güzel döküman hazırlayana ve çevirene teşekkürler.

Ayrıca nacizane fikrim bu profilde oluşturulan bölümler , kulllanıcı mesaj attığında avatarının altında yazsa güzel olurdu.

Elmacik

Dokümanı okumadın yani? :)
Bunu da yapmak mümkün ve içinde ona da değinilmiş ;)
Home of Elmacik

ASi ve MAVi

ya ben 2 şey soracam:

1- kayıt esnasında doğum tarihi ve cinsiyet girmeyi zorunlu yapacaz

2- girilen bilgileri profillere yazdıracaz

bunu yapmak için çok uğraştım ama beceremedim

bi fikri olan var mı ?

Elmacik

Kayıt sırasında cinsiyet ve doğum tarihini zorunlu yapmak için bir iki gün önce bir konu tartıştık ortaya güzel bir sonuç çıktı.
Biraz bakıver bulursun eminim.
Seni aramızda yeniden görmek güzel :)
Home of Elmacik

ASi ve MAVi

teşekkürler kardeş :)

bahsettiğin konuyu arattırdım ama bulamadım maselef :(

bu yeni sisteme bi türlü alışamadım ben :D

badman

Eline saglık cok guzel bir dokuman birsey sorucaktım davetle uyelik oluyormu acaba mesela yeni biri uye olurken davet kodu istenecek felan
LİNUX HOSTİNG'DE OLAYYY!!

  • 10 gb web alanı
  • 50 gb trafik
  • Sınırsız ftp,veritabanı,email hesabı
  • cPanel Hosting Yönetim Paneli
  • Haftalık yedekleme
  • GD Desteği
  • ionCube Loader
  • ve birçok özelliker....
YILLIK SADECE 100 YTL KAMPANYA BİTMEDEN YETİŞİN!

İletişim&msn : [email protected]

Advertisement: