Bir makaleye cevap olarak gönderilen mesaj sayısını görüntülemek

Bir makaleye bağlı olan forumun mesaj sayısını görüntülemek için bir makaleye bağlı FORUMS tipinde bir döngü oluşturmalı ve sonuç adedini saymalıyız.

Bir döngünün elemanlarının sayısını bilmek çok kolaydır : #TOTAL_BOUCLE komutunu kullanmak yeter. Ama bu komutun kullanımı bayağı bir cambazlık gerektiri.

Tüm mesajları seçtiğinden emin olmak

İlk incelik: makaleye bağlı tüm mesajları istiyoruz: mesajlara verilen cevaplar, cevaplara verilen diğer cevaplar...

<BOUCLE_forum(FORUMS) {id_article}> tipinde basit bir döngü sadece makaleye verilen direkt cevapları seçer. Bu mesajlara verilen cevaplara da ulaşmak istiyorsak bu döngünün içine ikinci bir döngü ekleriz ama burada yapmak istediğimiz bu değil.
Hepsini saymak için döngünün makaleye bağlı tüm mesajları hiyerarşiyi dikkate almadan seçmesini istiyoruz. Bunun için, isminden de anlaşıldığı üzere tüm forumu görüntüleyen {plat} kriterini belirtmek gerekir. Bu da bize şunu verir: <BOUCLE_forum(FORUMS) {id_article} {plat}>

Sadece toplamı görüntülemek

Şimdi içerdiği elemanları nasıl sayacağımızı görelim. Buradaki zorluk bu döngünün hiçbir şey görüntülememesi gerektiğidir! Ne mesajları ne de başlıklarını görüntülememelidir ve ayrıca boşluk veya satır başı da göstermemelidir (aksi halde sonuçta elde edeceğiniz HTML kod onlarca boş satır içerir). Bunu sağlamak için döngüyü açan ve kapayan iki etiket arasında hiç boşluk bırakılmaz : <BOUCLE_forum(FORUMS) {id_article} {plat}></BOUCLE_forum>.

Böylece döngünün içi hiçbir şey görüntülemez ama döngüden sonra sonuç adedi görüntülenmelidir. #TOTAL_BOUCLE komutu hem döngü içinde hem de sonraki koşullu metinde (eğer eleman içeriyorsa döngüden sonra görüntülenecek metin) ve koşullu alternatif metinde (eğer döngü boş ise görüntülenecek metin) kullanılabilir .

İyi nalaşılması gereken bir incelik de şudur : koşullu alternatif metin döngü hiçbir cevap bulamazsa görüntülenecektir ; yani döngü bazı elemanları seçse (burada forum mesajları) ama hiçbir görüntüleme içermese de bu koşullu alternatif metin görüntülenecektir.

Yani #TOTAL_BOUCLE koşullu alternatif metnin içine yerleştirilmelidir. Eğer makaleye bağlı hiçbir forum mesajı yoksa #TOTAL_BOUCLE boş olacaktır ve bu durumda (« N forum mesajı var ») metni görüntülenmeyecektir.

<BOUCLE_combien(FORUMS) {id_article} {plat}></BOUCLE_combien>
[Il y a (#TOTAL_BOUCLE) message(s) de forum.]
<//B_combien>

Bu son paragraf Türkçe’de bir anlam taşımamaktadır, sadece Fransızca için dikkate alınmalıdır

Fransızca’da bir mesaj (Un message) biçiminde; iki mesaj ise (Deux messages) biçiminde yazılmaktadır. Türkçede ise mesaj sözcüğü çoğul olarak yazılmaz.

Bir mesaj, birçok mesaj...

Eğer mevcutsa mesaj adedini görüntüleriz. Ama daha iyi bir iş çıkarmak istiyoruz : «mesaj» sözcüğünün tekil veuya çoğula uyum sağlamasını istiyoruz.

#TOTAL_BOUCLE değerine bağlı olarak «mesaj»’ı uyumlu hale getirmek için için (SPIP 1.8, 1.8.1 ile gelen) |=={...} ve |?{...,...} test filtrelerini kullanacağız : [(#TOTAL_BOUCLE|=={1}|?{message,messages})]

Bu da bize şunu verir :

<BOUCLE_combien(FORUMS) {id_article} {plat}></BOUCLE_combien>
[ (#TOTAL_BOUCLE) [(#TOTAL_BOUCLE|=={1}|?{message,messages})] 
<//B_combien>

Yazar : mega Publié le : Mis à jour : 21/03/23

Traductions : català, English, Español, français, italiano, Nederlands, Türkçe