Tam Sürümünü Görmek İçin : Bir konuk defterinde neler olmalı?
PHP ile bir konuk defteri yazmaya başladım. Saolsun Hunter kardeşimin takıldığım yerlerdeki desteğiyle ve Turok'unda bir noktadaki yardımı ile bir şeylere benzedi.
Defterin özellikleri arasında admin paneli ile kolay edit ve silme işlemleri, hazır smileyler görsel editörle yazıyı şekillendirme bunu yaparken bazı html taglarının kullanılması, ve imaj ekleme bu imajı thumbnail haline getirme tıklanınca popup açılması gibi durumlar var...
Başka neler olabilir ve bu klasik defter görüntüsü dışında neler yapılabilir fikirlerinizi almak istiyorum...
http://www.eylem.info/kd/kd.php
Daha fazla ne olabilirki? Konuk defteri dediğin sade ve işlevsel olur. Şu hali ilede sade ve işlevsel..
Ama genede bikaç şey yazayım
*sayfalama numaraları bir select box içine alınabilir.
*arama özelliği eklenebilir
*çoklu dil desteği eklenir
*skin desteği eklenir
*her mesajla birlikte site için birde oy verilebilir
ama daha fazla uğraşıcam diyorsan forum yaz...
Aslında arama olayı vardı kaldırdım sadece admin panelinde arama var. Select box lu konuk defterlerinide nedense hiç sevmiyorum... çoklu dil desteği aklımda ama bunu proje.ceviz.net te beraber yaparız diye düşündüm skin destegi iyi fikir ama template olarak yazmadım defteri o yuzden ancak içine iki ayrı sayfa yerleştirir admin panelinden seçtirebilirim uygunmudur? Site için oylamanın o kadar önemi yok gerekirse anket ekleriz :)
Forum mutlaka yazacağım ama ben daha 15 günlük php newbiesiyim :)
Yazdılkarın için teşekkür ederim...
Başka ne olabilir biliyor musun?
Örneğin mesajları ziyaretçi adına veya tarihe göre sıralama özelliği olabilir... Sanırım sıralama sondan başa doğru olacağı için varsayılan sıralama türü tarihe göredir... Yine de ziyaretçi adına göre bir sıralama yapma olanağı aynı ziyaretçinin belli aralıklarla mesajlar yazdığı yoğun bir ziyaretçi defteri için uygun olabilir...
Aklıma geldikçe bi şeyler karalarım Şahin...
Kolay gelsin!
Selam,
Ömerosmanoglu arkadaşın ziyaretçi defterinde gördüğüm, sonra uygulamaya başladığım bana çok hoş gelen bir özelliği tavsiye edeyim.
Her mesaj için admine bir cevap hakkı verebilirsin. Böylece ziyaretçiye teşekkür etmek, tavsiyelerin yanında sorulabilecek sorulara aynı bölümde cevap vermek, küçük açıklamalarla ziyaretçiyi gereken alana yönlendirmek mümkün olabiliyor.
Kolay gelsin
Sahın abı bak nedıycem.. Artık ıyıden ıyıye ınanmaya basladım.. Oturup bırlıkte (tum ceviz.net cemaatı) bır forum yazabılırız bence :)
Nedersın? Eger su ıs userınde bıraz daha calısalım, ıyıce pıselım dersen onada eyvallah.. Bu durumda bır template yapısı hazırlıyabılırız.. Boylece sıkın ve dıl destegı de kendılıgınden gelır.. Bunun yanında her mesaj ıcın hıt ve ratıng olcumude yapabılırız.. Tek yapmamız gereken tabloya bı alan daha eklemek..
Admınler ıcın daha konforlu bır panel eklemekte mumkun.. Tabı herseyden once su proje.ceviz.net aktıf hale getırmek gerekıyor...
Sıralama olayınıda düşündüm ama bilmiyorum ki gerek var mı admine edit panelinden cevap yazma hakkı zaten var Sgurel önerilerinize teşekkürler.
Biraz daha bekleyelim Ertugrul yoksa bu iş ikimizin başına kalır ikimizinde en boş anında başlayalım bu işe :)
Bıde tasarımda cıgır acmaya nedersın sahın abı :) Ne bılıyım gercek bır defter goruntusu kullanmak gıbı arka planda.. Solda su sprıallerden olur mesela.. Sagda ıse mesaj yaz admin panelı gıbı ayraclar.. Hanı telefon defterlerınde oldugu gıbı :) Hatta sayfalama lınklerınıde buna gore hazırlarız :) Sayfanın en altında..
Bırde sıtenın bırınde gormustum gercı defter sadece flashtan ıbarettı ama ozellestırebılır avatarlar kullanılmıstı.. Yanı cım adam gıbı dusunun.. Sevımlı bı surat uzerıne ekleyebılecegınız farklı gozler kaslar kulaklar vs.. Cok sacma ama ıyı dusunup tasarlanabılırse ortaya cok hıs bır defter cıkabılır :)
Neyse daha fazla sacmalamadan burda kesıyım :)
Ok kardeş alalım bunu proje bölümüne birlikte yapalım çok zor değil ve dediğin gibi süper bir defter yapalım ilk iş lang dosyalarını oluşturalım ki bu kadar emek Türkiye ile sınırlı kalmasın hotscriptse falan ekleriz.
Ama sen kodları gördün template eklemek zormu bu aşamadan sonra? 3 tane standart template ekleriz biri dediğin gibi olur biri şu anki standart hali olur biride görsel bir şey olur.
Olmaz sanırım.. Ama baslarken ıyı dusunmek lazım.. Oylekı burda harcıycagımız emegı ılerde de degerlendırebılırım.. Yanı sınıflarla calısalım mesela.. Bu sayade dıledıgımız heryere tasırız kodları..
Ben bu aksam ılk denemelere baslıyım.. Bakalım ne cıkacak.. Ama bana fıkır vermesı adına bı kac template ornegı gonderebılırsen ıyı olur abı.. Bakalım adamlar nasıl yapmıs.. Belkı amerıkaya tekrar kesfetmek zorunda kalmayız :)
Evet ılk template yapımı gelıstırmıs bulunmaktayım abı :) Artık defterımız kabuk ve dıl degıstırebılıyor.. Ama herseyı belırlı bı standarda oturtabılmek ıcın eskı kodlar uzerınde epey ugrasmak gereklı.. O yuzden sımdılık sadece kayıtları lıstelıyor.. Aramızda tartısıp ısı dahada olgunlastırabılmek ıcın kalan kısmına sımdılık dokunmadım..
Neyse ıs mantıgı denılen kısım su kodlardan olusuyor..
kdshow.php
<?
///////////////////////////////////////////////////////////////////////
// TR5 Konuk Defteri 1.01 (PHP/MySQL)
// Copyright (c)2003 F. Sahin GUR
// URL: http://www.tr5.net
//
// This program is free software. You can
// redistribute it and/or modify it under the
// terms of the GNU General Public License
// as published by the Free Software Foundation
///////////////////////////////////////////////////////////////////////
ob_start();
include("Include/Globals.php");
include("Include/Header.php");
include('Include/Function.php');
$file = pgtemp."post.htm";
if($hand = @fopen($file,"r"))
{
# Blokları Al
$temp = fread($hand,filesize($file));
preg_match_all("'<!--Begin: Post Header-->(.*?)<!--End: Post Header-->'si",$temp,$header);
$header = $header[1][0];
preg_match_all("'<!--Begin: Post Bit-->(.*?)<!--End: Post Bit-->'si",$temp,$bit);
$bit = $bit[1][0];
fclose ($hand);
# Baslıgı Bas (Post Header)
$find = array("'\{:headname:\}'si","'\{:headpost:\}'si");
$repl = array($Sheadname,$Sheadpost);
$header = preg_replace($find,$repl,$header);
echo $header."\r\n";
# Mesajları Bas (Post Bit)
$harf = $_GET["letter"];
include("Include/pager.inc");
$Sayfala = new Sayfala();
$Sayfala->SSet(dbtable,"*","isim like '%$harf%'","",pagermax);
$i = 0;
while($kayit = $Sayfala->SSonuc())
{
($i % 2) ? $rowcolor = $Crowa : $rowcolor = $Crowb;
$find = array(
"'\[:id:\]'si",
"'\[:name:\]'si",
"'\[:country:\]'si",
"'\[:mail:\]'si",
"'\[:website:\]'si",
"'\[:time:\]'si",
"'\[:post:\]'si",
"'\{:sendmail:\}'si",
"'\{:website:\}'si",
"'\{:altname:\}'si",
"'\{:altcountry:\}'si",
"'\{:altsendmail:\}'si",
"'\{:altwebsite:\}'si",
"'\{:alttime:\}'si",
"'\{:altpost:\}'si",
"'\{:altid:\}'si",
"'\{:altip:\}'si",
"'\{:altedit:\}'si",
"'\{:alttrash:\}'si",
"'\{:rowcolor:\}'si",
"'Images/'"
);
$repl = array
(
$kayit["id"],
@htmlspecialchars(ucwords(strtolower(trim($kayit["isim"])))),
@htmlspecialchars(ucwords(strtolower(trim($kayit["yer"])))),
@htmlspecialchars(strtolower(trim($kayit["email"]))),
@htmlspecialchars(strtolower(trim($kayit["web"]))),
@time2date($kayit["tarih"]),
donustur($kayit["mesaj"]),
$Ssendmail,
$Swebsite,
$Saltname,
$Saltcountry,
$Saltsendmail,
$Saltwebsite,
$Salttime,
$Saltpost,
str_replace("%id",$kayit["id"],$Saltid),
str_replace("%ip",$kayit["host"],$Saltip),
$Saltedit,
$Salttrash,
$rowcolor,
pgtemp."Images/"
);
$post = preg_replace($find,$repl,$bit);
echo $post."\r\n"; $i++;
}
# Sayfalama Linklerini Bas (Pager)
$file = pgtemp."pager.htm";
if($hand = @fopen($file,"r"))
{
$temp = fread($hand,filesize($file));
preg_match_all("'<!--Begin: Pager-->(.*?)<!--End: Pager-->'si",$temp,$pager);
$pager = $pager[1][0];
fclose($hand);
$find = array("'\[:message:\]'si","'\[:links:\]'si");
$repl = array($Sayfala->SMesaj(),$Sayfala->SLinkler());
$pager = preg_replace($find,$repl,$pager);
echo $pager."\r\n";
}
else
{
# Hata Fonksiyonu..
}
}
else
{
# Hata Fonksiyonu..
}
include("include/footer.php");
?>
Sızınde gorebıldıgınız gıbı kodlar yarı ıngılızce yarı turkce yazılmıs :) Ama yınede ıs goruyor :) Tum proje gormek ıcın http://www.gazetebogaz.com/Ceviz/Download/kd5.zip dosyasını ındırıp ıncelıyebılırsınız..
Indırdıgınız dosya ıcınde yer alan /Temp/Default dızını mevcut template dosyalarını barındırıyor.. Bunlar sımdılık:
1. header.htm : Sayfa bası..
2. post.htm : Kayıtları lısteleme sablonu
3. pager.htm : Sayfa numarları sablonu
4. footer.htm : Sayfa sonu..
5. Config.inc : Dıl degıskenlerı ve cesıtlı tercıhler..
Dılersenız htm dosyalardakı bloklara (<!-- ... -->) ve yer tutuculara ({: ... :} yada [: ... :] gıbı) dokunmadan kendı kabugunuzu hazırlayabılır yada config.inc dosyasını duzenlıyerek dılı degıstırebılırsınız..
Neyse daha fazla uzatmadan baglıyım.. Eger gelınen noktada bı tavsıyenız yada elestırınız varsa lutfen bızımle paylasın :) Inanın cok yardımı olucaktır..
Not: Herseyden once kd5.sql'ı verıtabanına gırmeyı unutmayın..
Bırde herseyden once bır kodlama standartı belırlememız gerekıyo sanırım.. Hemde cok gec olmadan bıan once.. Ornegın degıskenler turkcemı olucak ıngılızcemı? Yada acıklamalar?
Ayrac olarak _ kullanacakmıyız ($row_color gıbı).. Kullanmıycaksak kelımlerın ılk harflerı buyuk olucakmı? ($RowColor gıbı..)
Daha onemlısı fonskıyon/sınıf ısımlerı nasıl olucak?
1. CN_Convert_Tag() : Yanı CN (Ceviz Net) ıle baslıyan ve ayrac olarak _ kullanan ıngılızce ısımler..
2. CN_tag_donustur() : Yukardakıne benzer ama turkce ısımler ve tumu kucuk harfle baslayan kelımeler..
3. CNTagConvert() : Ayrac yok kelımeler buyuk harfle baslıyor..
4. KDConvertTag() : CN yerine KD (Konuk Defterı) yanı local proje kısaltmasını kullanan ısımler..
5. donustur() : ...
Bana kalırsa bunları bır an once kararlastıralım.. Yoksa bırımızın basladıgı bı ısı bı dıgerımız takıp edemez.. Ote yandan sımdı bı standart belırlersek yavas yavas genıs ve tekrar kullanılabılır bır ceviz.net kutuphanesı olusturabılırız..
Ne dersınız? Fıkırlerınız neler?
Dedim ya kardeş bunu proje bölümünde ele alacağız
yalnız şu anki sendeki hali ile bendeki hali çok farklı
sana admin panelinide göndereyim sendekine uyarla onuda o şekilde geliştirmeye açalım :)
Forum Yazılımı : vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.