Uutiset:

Wondering if this will always be free?  See why free is better.

Main Menu
Advertisement:

Karma Modunu Teşekkür Moduna Çevirme

Aloittaja mktek, kesäkuu 10, 2009, 12:20:04 IP

« edellinen - seuraava »

mktek

Merhaba dostlar,

Sıkışınca çareyi sizde aramaya karar verdim.

Üyelerin mesajlara teşekkür etmesini ve edilen bu teşekkürlerin mesajın atında görünmesini istiyorum. Bunu karşılayan çok çok gelişmiş, hatta bana göre gereksiz denecek kadar gelişmiş ve karışık Thank-O-Matic modu var. Sitemin kodlarının ihtiyaçlarımdan fazlasıyla kirlenmesini istemiyorum.

Birçok kişinin beklediği bu temel ihtiyacı karşılayabilecek bir düzenlemeye giriştim ama gerisini getiremedim. Eğer sizlerin desteği ile bunu tamamlarsak bir çok kişinin isteğinin yerine geleceğine inanıyorum.

Hedef ne?
Var olan karma özelliğini kullanıp teşekkür modu oluşturacağız.

1- Yönetim panelinde "karma" bölümünde "Alkış etiketi" kısmına "Teşekkür et" yazdık. Karma ceza etiketi kısmını boş bıraktık. Bu şekilde üyelerin ceza etiketine ulaşmamasını sağlamış olduk. İsterseniz burada daha ayrıntılı olanını inceleyebilirsiniz.

2- Hangi mesajlara kimlerin teşekkür ettiğinin kaydını tutabilmek için veritabanında "smf_log_tesekkur" tablosu oluşturduk. Tabloda aşağıdaki alanları hazırladık:

id: teşekkür kaydına verilen otomatik numara,
id_mesaj: teşekkür edilen mesajın ID numarasını burada tutacağız.
tsk_eden: teşekkür eden üyenin adını burada tutacağız.
id_tsk_eden: teşekkür eden üyenin ID numarasını burada tutacağız.
tarih: teşekkür tarihini buraya yazacağız.

3- Olumlu karmaya tıklandığında yukarıdaki veritabanına kayıt ekleyeceğiz. Bunun için sources/karma.php dosyasını açıyoruz.

// Figure out where to go back to.... the topic?

Bu kodun hemen üstüne şunları ekliyoruz:


$id_mesaj = $_REQUEST['m'];
$tsk_eden = $user_info['username'];

        if (!empty($topic))
{
// Put it in the log.
db_query("
REPLACE INTO {$db_prefix}log_tesekkur
        (id_mesaj, id_tsk_eden, tsk_eden, tarih)
VALUES ($id_mesaj, $ID_MEMBER, SUBSTRING('$tsk_eden', 1, 30), " . time() . ')', __FILE__, __LINE__);
}


Buraya kadar karma ile yapılan teşekkürlerin kaydını tuttuk ama geri kalan, teşekkür edenlerin isimlerinin gösterilmesinin nasıl yapılacağını bilmiyorum.

Sources/Display.php dosyasında aşağıdaki sorguyu göndermemiz gerekiyor:


$request = db_query("
SELECT tsk_eden, id_tsk_eden
FROM {$db_prefix}log_tesekkur
WHERE id_mesaj = ID_MSG ", __FILE__, __LINE__);


Sorgunun sonuçlarını $message['tesekkur'] gibi bir değişkene aktarılabilinirse Display.template.php'de göstermek kolay olur.

Konudaki her mesaj için yukarıdaki sorgu sonuçlarını display.php'de nasıl üretebilirim?

Şimdiden teşekkürler....


mktek

Yukarıda da dediğim gibi Thank-O-Matic gereksiz ayrıntılarla dolu. Kurmadım ama incelediğim kadarıyla hangi bölüm ve konuya teşekkür edileceği bile belirlenebiliyor. Konulardaki teşekkürleri kilitleyebiliyorsunuz. vs. vs. İhtiyacı olanlar vardır ama kendi sitemde bu kadar ayrıntıya ihtiyaç duymuyorum.

Ayrıca Thank-O-Matic'in veritabanına gereksiz bilgiler yüklediğini görüyorum. Veritabanında her mesaj için fazladan 2 ayrı alan eklenmiş, her üye bilgisi için yine fazladan 2 ayrı alanda bilgi tutuluyor. Büyük siteler için bu dezavantajdır.

Benim takıldığım tek nokta, yukarıda dediğim sorgunun $message['tesekkur'] gibi bir değişkene nasıl aktarılacağı.

Eğer bir yol gösterilemezse mecburen Thank-O-Matic modunu kuracağım ve kurulumdan sonra gereksiz yerleri ayıklayacağım.

Özgür

Lainaus käyttäjältä: mktek - kesäkuu 10, 2009, 01:09:39 IP
Yukarıda da dediğim gibi Thank-O-Matic gereksiz ayrıntılarla dolu. Kurmadım ama incelediğim kadarıyla hangi bölüm ve konuya teşekkür edileceği bile belirlenebiliyor. Konulardaki teşekkürleri kilitleyebiliyorsunuz. vs. vs. İhtiyacı olanlar vardır ama kendi sitemde bu kadar ayrıntıya ihtiyaç duymuyorum.

Ayrıca Thank-O-Matic'in veritabanına gereksiz bilgiler yüklediğini görüyorum. Veritabanında her mesaj için fazladan 2 ayrı alan eklenmiş, her üye bilgisi için yine fazladan 2 ayrı alanda bilgi tutuluyor. Büyük siteler için bu dezavantajdır.

Benim takıldığım tek nokta, yukarıda dediğim sorgunun $message['tesekkur'] gibi bir değişkene nasıl aktarılacağı.

Eğer bir yol gösterilemezse mecburen Thank-O-Matic modunu kuracağım ve kurulumdan sonra gereksiz yerleri ayıklayacağım.
Bahsi geçen şeyde her mesaj için olmayacak mı? Yani yine messages tablosuna 2 ayrı sütun gerektirecek.
Neden mi?
Her mesaja edilen teşekkürü ya tesekkür diye bir tablo oıluşturup topic idleriyle saklayacaksın, yada her topic'in teşekkürlerini kendilerinin sütunlarında saklayacaksın. Başka bir yolu olduğunu sanmıyorum. Siz verilen karmalar için topic idlerine bağlı birer sütun oluşturuyorsunuz.ç Yani Thanks-o-Matic'in yaptığı işten farklı bir yanı yok. Sadece bu yaptığınız kadar kısa olacağını da sanmayın. Çünkü örneğin bu topic'e daha önce teşekkür etmiş mi diye baktırmanız gerekecek, bu bir karma özelliği için bile iki ayrı sorgu demek. Eğer daha önce teşekkür edilmediyse o mesaj için bir satır eklesin şeklinde bir fonksiyon daha.. Uzar gider bu.
So Long

Pяηѕѕ LF

1.1.21 Default

mktek

İlgilenenlere teşekkürler. Yalnız çözümü kendim buldum.

Örneğin şu mesajın altındaki teşekkür edenlere bakabilirsiniz:
http://www.egitimhane.com/konu-30727-msg533895.html#msg533895

Birkaç düzenleme daha yapayım. Sonra burada paylaşacağım.

Arveles

Lainaus käyttäjältä: mktek - kesäkuu 11, 2009, 01:44:31 IP
İlgilenenlere teşekkürler. Yalnız çözümü kendim buldum.

Örneğin şu mesajın altındaki teşekkür edenlere bakabilirsiniz:
http://www.egitimhane.com/konu-30727-msg533895.html#msg533895

Birkaç düzenleme daha yapayım. Sonra burada paylaşacağım.
Paylaşırsanız çok seviniriz..
Elveda SMF...

Advertisement: