Web sayfamız sadece phpBB 3.0.x sürümlerine destek vermektedir. Konu açmadan, ileti yazmadan önce lütfen site kuralları sayfamıza göz atınız.

[3.0.5] Hide a part of the message for Guests (1.0.0)

[3.0.5] Hide a part of the message for Guests (1.0.0)

İleti EsmerOzcan 07 Haz 2009 05:38

Eklenti: Hide a part of the message for Guests
Sürüm: 1.0.0
Yazar: EsmerÖzcan (EsmerOzcan)
Açıklama: Misafirler Mesajlarda tek Ilk 250 Karakteri görür, 250 php dosyasindan degistirilebilir.
Önizleme:

Misafirler: http://img189.imageshack.us/img189/194/guests.jpg
Üyeler: http://img192.imageshack.us/img192/4378/usersl.jpg

Uyumlu olduğu phpBB3 sürümleri:

  • phpBB 3.0.5


Özellikleri:

  • Misafirler Mesajin tek bir kismini görebilir, mesajin tümünü okumak icin ya giris yapmasi gerekir yada üye olmasi.


Dil dosyaları/eklemeleri:

  • Türkçe
  • İngilizce

Kurulum zorluğu: Kolay
Kurulum süresi: 3 Dakika
Dosya indirme: Hide a part of the message.zip [220.02 KiB]
En son EsmerOzcan tarafından, 12 Haz 2009 14:16 tarihinde değiştirildi, toplamda 1 değişiklik yapıldı.
EsmerOzcan
kullanıcı
kullanıcı

İleti: 101
Kayıt: 27 Tem 2008 02:35
Konum: Nürnberg
İsim: Özcan Akbulut
HTML: Çok iyi
CSS: Çok iyi
PHP: Çok iyi
phpBB3: Çok iyi
Sürüm: phpBB 3.1.1

Re: [3.0.5] Hide a part of the message for Guests (1.0.0)

İleti ALEXIS 07 Haz 2009 12:25

2 sorum var:

1. Neden mb_substr() (multi-byte) yerine substr() tercih ettiniz ?
2. İleti içinde bbcode varsa ve sona denk geldiğinde ne oluyor?


Ben daha önceden phpBB3 te yerleşik olan truncate_string() fonksiyonu ile bölmüşüm.

Kod: Tümünü seç
/**
* Censor title, return short title
*
* @param $title string title to censor
* @param $limit int short title character limit
*
*/
function character_limit(&$title, $limit = 0)
{
    $title = censor_text($title);
    if ($limit > 0)
    {
        return (strlen(utf8_decode($title)) > $limit + 3) ? truncate_string($title, $limit) . '...' : $title;
    }
    else
    
{
        return $title;
    }
}
 


truncate_string(), function_content.php de tanımlı.

Kod: Tümünü seç
/**
* Truncates string while retaining special characters if going over the max length
* The default max length is 60 at the moment
* The maximum storage length is there to fit the string within the given length. The string may be further truncated due to html entities.
* For example: string given is 'a "quote"' (length: 9), would be a stored as 'a "quote"' (length: 19)
*
* @param string $string The text to truncate to the given length. String is specialchared.
* @param int $max_length Maximum length of string (multibyte character count as 1 char / Html entity count as 1 char)
* @param int $max_store_length Maximum character length of string (multibyte character count as 1 char / Html entity count as entity chars).
* @param bool $allow_reply Allow Re: in front of string
* @param string $append String to be appended
*/
function truncate_string($string, $max_length = 60, $max_store_length = 255, $allow_reply = true, $append = '')
{
...
 
ALEXIS
yönetici
yönetici

Kullanıcı avatarı

İleti: 3628
Kayıt: 03 Arl 2006 08:57
HTML: Çok iyi
CSS: İyi
PHP: İyi
phpBB3: Çok iyi
Sürüm: phpBB 3

Re: [3.0.5] Hide a part of the message for Guests (1.0.0)

İleti EsmerOzcan 07 Haz 2009 14:07

Merhaba Alexis,

1. mb_substr() hic aklima gelmedi aradaki farkida anlamis degilim sizn bu verdiginiz kodu denedim 3 karakter daha uzun oldu yoksa bir fark yok :S

2. bbcode olursa ve sonuna denk gelirse son harf veya kelime tamamen gizleniyor, örnegin bu sekilde olmuyor

Kod: Tümünü seç
[size=150][/s



yani böyle yarim kalmiyor :)
EsmerOzcan
kullanıcı
kullanıcı

İleti: 101
Kayıt: 27 Tem 2008 02:35
Konum: Nürnberg
İsim: Özcan Akbulut
HTML: Çok iyi
CSS: Çok iyi
PHP: Çok iyi
phpBB3: Çok iyi
Sürüm: phpBB 3.1.1

Re: [3.0.5] Hide a part of the message for Guests (1.0.0)

İleti ALEXIS 07 Haz 2009 17:34

utf8 karakterlerde genelde multi-byte fonksiyonları kullanıyoruz.

bbcode olayını sordum çünkü bunu engelleyecek bir kod göremedim. bbcodeler sona denk geldiğinde çöküyor.

Gösterdiğiniz gibi kalmasına zaten imkan yok, müdahale noktanız bbcode lerin işlenip html olduğu bir yerde. Mesaj daha işlenmeden müdahale edip bölmeniz gerekiyor, bölme esnasında bölüm noktasına bbcode denk gelirse kelime ve bbcode yi otomatik tamamlayıp öyle bölmelisiniz. Bu işlemi yapmak için en az 100-150 satırlık yeni bir fonksiyon yazmanız gerekiyor, bu iş ile portal yazarken çok uğraştım. Başardım ama portaldan yıllar sonra :?
ALEXIS
yönetici
yönetici

Kullanıcı avatarı

İleti: 3628
Kayıt: 03 Arl 2006 08:57
HTML: Çok iyi
CSS: İyi
PHP: İyi
phpBB3: Çok iyi
Sürüm: phpBB 3

Re: [3.0.5] Hide a part of the message for Guests (1.0.0)

İleti EsmerOzcan 07 Haz 2009 23:21

ilk sürüm oldugu icin böyle idare edelim zamanla gellistiririm 150-200 satirlik kod yazmak... :D

aslinda ykp kontrollü de yapacaktim, karakter sayisi ve modun calisip calismamasi ayarlanabilincekti fakat basaramadim bi türlü, hepsini insallah ilerleyen sürümlerde uygulicam :)
EsmerOzcan
kullanıcı
kullanıcı

İleti: 101
Kayıt: 27 Tem 2008 02:35
Konum: Nürnberg
İsim: Özcan Akbulut
HTML: Çok iyi
CSS: Çok iyi
PHP: Çok iyi
phpBB3: Çok iyi
Sürüm: phpBB 3.1.1

Re: [3.0.5] Hide a part of the message for Guests (1.0.0)

İleti ALEXIS 08 Haz 2009 07:47

Sonuç olarak bu fikri daha önce görmediğimdem özgün olduğunu düşünüyorum. Zamanın varsa çok daha iyisini yapabilirsin.

Alt yapısının düzgün olması ACP desteğinden daha önemli. ACP de yaptığın tek şey bilgileri config tablosuna girmek ve değiştirmek, sonra da bunu $config['degisken'] olarak kullanmak.

Başka kolay bir alternetif daha var, bbcodeleri tamamen temizlemek.

En iyi müdahale noktası mesajın ilk değişkene aktarıldığı yer:
Kod: Tümünü seç

    
// Parse the message and subject
    
$message censor_text($row['post_text']); 

Bu satırdan hemen sonra veritabanından gelen saf mesaja müdahale edebilirsin. Bu satırdan heman sonra da bbcode ve ifadeler biçimleme kodlarını görebilirsin..
ALEXIS
yönetici
yönetici

Kullanıcı avatarı

İleti: 3628
Kayıt: 03 Arl 2006 08:57
HTML: Çok iyi
CSS: İyi
PHP: İyi
phpBB3: Çok iyi
Sürüm: phpBB 3

Re: [3.0.5] Hide a part of the message for Guests (1.0.0)

İleti EsmerOzcan 08 Haz 2009 14:15

tesekkürler alexis öneri ve fikirlerin icin isime yaricak :)
EsmerOzcan
kullanıcı
kullanıcı

İleti: 101
Kayıt: 27 Tem 2008 02:35
Konum: Nürnberg
İsim: Özcan Akbulut
HTML: Çok iyi
CSS: Çok iyi
PHP: Çok iyi
phpBB3: Çok iyi
Sürüm: phpBB 3.1.1


Eklenti Tanıtımları, Duyurular, Güncellemeler


Kimler çevrimiçi

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 2 misafir

cron