yada diğer konu başlıkları linklerine bakarsak, daha önce tıkladıklarımız mavi, tıklamadıklarımızı siyah görüyoruz (bu style). Menü de aynen böyle.
senin sorduğun ise, konu başlıklarının bazılarını bold, bazılarını ise plain görüyoruz. Bold olanlar son ziyaretimizden itibaren yeni mesaj alanlar.
Daha önce ziyaret ettiğimiz (mavi) ama yeni mesaj olanları (bold) ise mavi-bold görüyoruz.
bunun mantığından bahsediyorsun sanırım?
Kullanicinin son tiklamasinin zamanini kaydetmek bir cözüm olabilir mi acaba? içinde atilma tarihi bu zamandan daha büyük mesaj olan konulara yeni mesaj atildigi varsayilir. Her konuya da bir son mesaj atilma tarihi kaydedilir. Forum görüntülenirken son msj tarihi kullanicinin son tiklama tarihinden büyük olanlar kalin görüntülenir.
Not: 1- tarih ve zaman esanlamli olarak kullanilmistir, yani tarih dedigim 24.09.2004 17:11:07 seklinde bir datestamp. 2- Son tiklamaya sadece bir konunun tiklandigi durumlar dahil. Mesela profil bilgisi ya da özel mesaj tiklamalari buna dahil olmayacak.
quote:
Orjinalden alıntı: leonheart Yalniz sanirim bahsedilen olayda bir konunun okunup okunmadigindan bahsediyoruz degil mi yani bir mesajin degil ? Son tikladigimiz ani baz alsak bile diyelim ki kullanici bir konunun içindeyken yeni bir mesaj atildi konuya. Bu durumda nasil belirleyebiliriz? Daha dogrusu tam anlamadigim bizim sorumuz ne ? Bir forum konusunda bizim en son girisimizden sonra yeni mesaj atilip atilmadigini mi belirlemeye calisiyoruz yoksa kullanicinin hic girmemis oldugu konulari mi belirlemeye calisiyoruz. Eger kullanici girse de girmese de yeni mesajlarin oldugu konular belirlenecekse kullanicinin hic girmedigi konular okunmamis mesajlarla dolu görünecektir. Oysa kullanici bu konuya hic girmemek istiyor olabilir. Ayrica burda var dediginiz olay tam olarak bizim bahsettigimiz olay mi?
ewet bahsettiğimiz konu okunup okunmadığı. son ani unutun. ornegin bir konu içindeyim konunun adı a olsun. ben konuyu acmadan en son okunan mesaj a.b21 olsun. ben bu konuyu goruntuledıgım zaman, okundu table ına gidicek benım idmi konunun id sini (a) ve konuyu acarken en son mesajın idsini yazsın (b21). a konusuna yeni bir mesaj atıldığı zaman bu su sekılde gozukecek: a.b22 ben tum konuların oldugu sayfaya dondugum zaman otomatık olarak kontrol yapılacak. kontrolde benım id ve konunun id sinin yazıldı satır select ıle acılacak oradaki mesaj id si alınacak (b21) daha sonra forum table ına gıdılecek konu id sine gore (a) select ıle ve like komutu ile a konusa ait tum mesajlar acılacak, move.last komutu son kayda gidilecek (b22) ve okundu table ından aldıgımız değer ile (b21) ile karsılastırılacak. farklı ise konu okunmadı olarak gozukecek. değerler aynı ise konu okundu gozukecek...
diğer bir sorunda kullanıcı o konuyu hiç okumak ıstemıyorsa bır alternatif "hepsini okundu olarak isaretle" secenegını secer. ama okumak ıstemedıgı konuya yenı mesaj gelınce yine okunmadı olarak gozukecektır. tum forumlardakı işleyiş böyledir. am aillaki yoel birsey yapmak ıstersek yanı ıstemedıgımız bır konuyu goruntulemek ıstemezsek o zaman ayrı bir table acarıs. "gosterme" butonuna tıkladıgında konunun id sini ve kullanıcının id sini alır gidero table a yazar. forum her gırdıgımde de bır kontrol koyarak o konunun o kullanıcıya gozukmemesını saglayabılırız. ama dedigim gibi şimdiye kada hic bir forumda gormedım ben bu secenegi.
bakın yeni bir forum özelligi olabilir bu. ne dersiniz?
quote:
Orjinalden alıntı: freede ya simdi adam online oluyo db de user bölümüne "giristarihi" ac sonra girdiginde "rs" le o zamani kayit et ondan sonra bide forum vede cevaplara "sonyazimtarihi" yap giristarihinden itibaren son yazilan konular vede cevaplar i bold yap sanirim uygun ben okula gidiyim bi bos kaliyim kendi forumumda denicem...
bekliyoruz :)
quote:
Orjinalden alıntı: gurol Hayır, gerekmez. tarih ve saati birlikte tutan değişken ve bunların karşılaştırılması yapılabiliyor.
evet o zaman değerleri bir ara yapmanız gerekir. ayrıca eğerki access ın tarif formatlarını karşılaştıracak olursanız unutulmaması gereken bir konu günün yada ayın ilk karakteri 0 ise, gün ve ayın yerleri değiştirilmeli. aksi durumda select işleminde tarifleri kullanamazsınız. bu da ek bir bilgi olsun. ama dediğimiz okundu bilgisi için tarih ve saate ihtiyacımız yok sanırım.
quote:
makurdoglu
... kontrolde benım id ve konunun id sinin yazıldı satır select ıle acılacak oradaki mesaj id si alınacak (b21) daha sonra forum table ına gıdılecek konu id sine gore (a) select ıle ve like komutu ile a konusa ait tum mesajlar acılacak, move.last komutu son kayda gidilecek (b22) ve okundu table ından aldıgımız değer ile (b21) ile karsılastırılacak. farklı ise konu okunmadı olarak gozukecek. değerler aynı ise konu okundu gozukecek...
Yani hangi konularin kalin görüntülenecegi belirlenirken o konulardaki tüm mesajlar okunacak. Biraz uzun sürmez mi bu, bir forumda onlarca konu oldugunu düsünürsek ve ayni anda görüntüleyen onlarca kisi ?
quote:
Orjinalden alıntı: leonheart
Yani hangi konularin kalin görüntülenecegi belirlenirken o konulardaki tüm mesajlar okunacak. Biraz uzun sürmez mi bu, bir forumda onlarca konu oldugunu düsünürsek ve ayni anda görüntüleyen onlarca kisi ?
tüm mesajlar okunmayacak pratiklikde burada. bize sadece son atılan mesaj gerek. zaten select ile o konuya ait mesajları açınca (açmakdan kastım hepsının okunması degil) move.last komutu ile son eklenen mesaja gitmiş oluyoruz. bu nedenle uzun sürmeyecektir.
ayni anda görüntülenme olayına gelince. recordset kullandığınız zaman işleminizden sonra recordseti kapatmayı unutmazsanız çok problem olmayacaktır. recordsetleri açık bırakmak demek db nin damarlarını tıkamak demektir :)
makurdoglu, yukarda anlamadığım bir nokta var;
- bilmediğin bir şeyi mi soruyorsun? - biliyorsun fakat geliştirmek istiyorsun? - bize birşeyler öğretebilmek için "bulmaca" türü mantık mı geliştiriyorsun?
Eğer sonuncu ise, ben ve birkaç kişi daha yanılgı içinde sana yardım etme amaçlı cevap vermekteler, haberin olsun.
Ben olsam şöyle yapardım;
son ziyaret tarihinden büyüklerin arasından tıklarını cıkarttığın küme "yeni mesaj" olarak görünür.
son siyaret tarihini server'a database'de, tıkladıklarını (çıkacaklar) cookie olarak client'e tuttururum.
quote:
Orjinalden alıntı: gurol
makurdoglu, yukarda anlamadığım bir nokta var;
- bilmediğin bir şeyi mi soruyorsun? - biliyorsun fakat geliştirmek istiyorsun? - bize birşeyler öğretebilmek için "bulmaca" türü mantık mı geliştiriyorsun?
Eğer sonuncu ise, ben ve birkaç kişi daha yanılgı içinde sana yardım etme amaçlı cevap vermekteler, haberin olsun.
- tam olarak bildiğimi sanmıyorum. konu hakkında bir mantık kuruyorum ama her zaman daha iyi bir mantığında olabileceğini biliyorum - bildiğimi sanıyorum ve evet geliştirmek istiyorum - birşeyler öğretebilmek yanlış bir tabir olur. hep beraber birşeyler öğrenelim istiyorum. ben öyle düşünmüyorum yanlışlar olmadan doğruları bulamayız. en basit örneği leonheart belki isteyerek belki istemeyerek hiç bir forumda olmayan ama eklenebilecek bir özellik ortaya attı. kullanıcının bir konuyu tamamiyle kendi ekranına gelen listeden kaldırma olayı...
quote:
Orjinalden alıntı: gurol
Ben olsam şöyle yapardım;
son ziyaret tarihinden büyüklerin arasından tıklarını cıkarttığın küme "yeni mesaj" olarak görünür.
son siyaret tarihini server'a database'de, tıkladıklarını (çıkacaklar) cookie olarak client'e tuttururum.
anladığım kadarıyla cookie yönetimini kullanacak olursak her mesaj için kullanıcının makinasına bir cookie atıyoruz dimi? yada her mesaj için diyelim... peki kullanıcı başka bir makinadan bağlanırsa?
Hayır, her mesaj için ayrı kuki tutmak pek ekonomik olmaz. tek kukide "-328719-382720-238719-" gibi mesajlar sıra ile tutabilir, instr ile yoklanır replace ile çıkartılır.
evet, başka makinadan bağlanırsa son bağlantı tarihinden itibaren yeni mesajlar okunmamış görünür.
Aslında herşey server'da tutulabilir. Fakat yoğunluk durumunda bu boşa yük getirir. Her mesajın ayrı ayrı okunup okunmadığını tutmak bence gereksiz. Login zamanına göre yada (sizin tarafınızdan) atılan sonmesajın zamanına göre yada son okuma tıklaması zamanına göre listelenen yeni tüm mesajlar okunmamış/yeni gösterilir. Zaten tıklanmış/tıklanmamış link farkından insan okuduklarını farkedebiliyor. Mesela ben bu forumda önce mavi linklere (daha önce kendi tıkladığım) bakarım sonra diğer mesajlara bakarım.
Site boyutları özellikle DHaber gibi 5-10 bin kullanıcı günde 3-5bin mesaj düzeyine gelmişse, server'e elden geldiğince az yük getiren tip kodlama yapmak gerekir. Yoksa dedicated bile olsa server yavaş hissedilir, hdiskler dolar taşar vs...
Fazladan özellik ve istatistik tutmak kimi şartlar altında yıpratıcı yoğunluk demektir ve bence gereksiz.
yanlış anlamadıysam demek ki konular üzerinde hem fikiriz...
yeni mesaja git
Yeni mesajları sizin için sürekli kontrol ediyoruz, bir mesaj yazılırsa otomatik yükleyeceğiz.Bir Daha Gösterme