Php ve drupalde bu mümkünmüdür?

Events happening in the community are now at Drupal community events on www.drupal.org.
kurgun's picture

Merhaba,

İlk Soru=
A kullanıcı B kullanıcısına veri göndermek istemektedir.

A kullanıcısı veriyi gönder tuşuna bastığında, veri veritabanında bekleyecek ve B kullanıcısına gönderilmeyecek ve B kullanıcısının bu veriden haberi olmayacak.

Eğer B kullanıcısı da A kullanıcısına veri göndermek isterse, B kullanıcısına bir uyarı ekranı gelecek ve A kullanıcısının göndermiş olduğu veri B kullanıcısına gönderilecek.

Bu esnada B kullanıcısının göndermiş olduğu veri de A kullanıcısına ulaştırılmış olacak.

Örnek = Ahmet bir ürün için Mehmet'e fiyat teklifi verir.Bunun için "Teklif ver" butonuna basar.
Bu teklif Mehmet'e görünmez. Ancak Mehmet'de Ahmet'in ürünü için "Teklif ver" butonuna basar ise bu iki kişi birbirleri arasında özel mesaj yolu ile mesajlaşır ve fiyatları kendi aralarında konuşurlar.

İkinci Soru="Teklif ver" butonu için bir grup oluşturup kısıtlama yapmak istiyorum. 1. grup teklif veremez. 2. grup 10 teklif verebilir. 3. grup 20 teklif verebilir.
Grup oluşturduktan sonra teklif sayısına göre böyle bir kısıtlama yapabilirmiyim.

İstediğim yapıyı php ve drupalde yapabilirmiyim?
Böyle bir modül varmıdır?
Yok ise ücretli olarak yazabilecek olan varmı?

Comments

Modül yoktur, ama mümkün

keremito's picture

Merhaba,
İstediğiniz şey mümkün fakat fazla spesifik bir talep olduğu için biraz kafa yormak gerekiyor. Bir içerik türü ile veriyi ve kime/kimlere (https://drupal.org/project/references) gideceğini belirleyebilirsiniz, ondan sonrasını rules modülü ile çözebilirsiniz sanıyorum. Rules ile biri veri gönderirken diğer tarafın da gönderip göndermediğine bakıp ona göre veriyi yollatabilirsiniz. Eğer karşı taraftan veri gelmemişse benim yarattığım içerik unpublish olarak kalabilir.. Eğer karşı taraftan veri gelirse iki içerik de yayınlanır...

Bunlar elbette benim yaklaşımım, drupalde bir meseleyi çözmenin başka yolları da her zaman vardır..

kolay gelsin..

güncelleme.

kurgun's picture

Yazıyı güncelleyip, örnek verdim ve 2. bir soru ekledim. Yardımcı olabilirseniz sevinirim.

Kısa cevap: yapabilirsin ama doğrudan eklentisi yok

pembeci's picture

Rules eklentisini tam teçhizat kullanmamış olsam da üzerine okuduklarımdan anladığım kadarıyla keremito'nun önerdiği yolu izleyip 1. soruda istediğini elde etmen mümkün. Elini hiç php'ye değdirmeden en iyi şansın da bu muhtemelen. Yalnız, Rules çok güçlü olduğu için terminolojisini, neyi nasıl yapabileceğini önce iyi bir kavraman gerekecektir bu tip bir workflow'u onunla oturtman için. Değer mi vakit harcamaya? Bence değer, Rules eklentisini çözebilirsen elindeki Drupal 10 kaplan gücünden 20 kaplan gücüne sıçrayacaktır başka projelerin için de.

Aşağıdakiler sana Latince gelebilir ama eklenti yazdıracak olursan veya bu gruptan heveslisi çıkarsa diye ekleyeyim dedim.

Şayet özel eklenti yazma/yazdırma yolunu tercih edecek olursan bir ihtimal Messaging framework'den yola çıkıp istediğini elde edebilirsin. Bu da son derece güçlü ve esnek bir API. İçine (koduna) tam hakim değilim ama sayfalarından anladığım istediğini yapacak altyapıyı sana sunuyor ve plug-in'lerini inceleyerek neyi nasıl yapacağını sıfırdan keşfetmek zorunda kalmazsın.

Yok sıfırdan yazalım denirse de çok zor değil. Teklif içerik tipine programmatically controled bir durum alanı (field) eklemen gerekir (boolean değer taşıyacağından keremito'nun önerdiği gibi published/unpublish status alanını da kullabilirsin ama çeşitli hook'ların yan etkilerine maruz kalabilir içerik tipin o zaman, biraz dikkat gerekebilir). Bir de teklifin muhatabıyla ilgili bir user reference alanına ihtiyaç var tabii. Durum alanının değeri için eklenti kodun içerik tipi ilk eklendiğinde default olarak pending/beklemede sayarak ekler. Sonra kontrol etmek gerekir acaba başka bir kullanıcı daha önce statüsü yine pending olan ve muhatabı bu içerik tipini ekleyen kullanıcı olan bir karşılıklı teklif vermiş mi diye? Şayet bulunursa böyle bir teklif iki düğümün de statüsü pending'den processed gibi bir duruma çevrilir ve istediğini gerçekleştirecek bir action tetiklenir.

  1. soruda istediğin de elbet mümkün ve yine birden çok yolu var. Şayet grupların sayısı böyle az ve değerler (teklif limitleri) değişken değilse en kestirme yoluı herhalde birkaç farklı rol tanımlayıp roller üzerinden istediğini elde etmek olur (yine Rules kullanılabilir veya özel eklenti çıkmışsa ortaya ona birkaç if attırılır). Yok grupların sayısı çok ve teklif limitleri değişkenlik gösteriyorsa benim bildiklerim içinde Userpoints eklentisini projene adapte etmen en temiz ve ucu açık şekilde işini görecektir.

Arkadaşlar ikinize de çok

kurgun's picture

Arkadaşlar ikinize de çok teşekkür ederim.
Bahsettiğiniz modüller üzerinde çalışmaya başladım, umarım sonuç iyi olur.