Kullanıcı Profili

Bu formun görüntülenmesi userinfo.tpl dosyasında yapılandırılır. Bu bölümde kullanıcı profilini görüntülemek için kullanılan şablonlar özelleştirilir. HTML bilgisi olmadan bu bölümü düzenlemek önerilmez, çünkü form aracılığıyla komut dosyasına aktarılan alan adları kullanılır. Başka bir deyişle, metni istediğiniz gibi düzenleyebilirsiniz, ancak alanların adlarını değiştirmeyin, bu son derece önemlidir. Aşağıdaki etiketleri kullanabilirsiniz:

Temel Kullanıcı Bilgisi Etiketleri

Etiket Açıklama
{user-id} Kullanıcı kimliğini (ID) gösterir. Bu etiket bir şablon tasarlarken bir dizi durumda kullanılabilir, ayrıca örneğin kullanıcının son yorumlarına bağlantılar gibi kullanıcı bağlantıları oluşturmak için de kullanılabilir.
{usertitle} Kullanıcı adı.
{info} Kullanıcı hakkında kısa bilgi.
{editmail} E-posta adresi.
{fullname} Kullanıcının tam adı.
{land} Kullanıcının yaşadığı yer.
{foto} Yüklenen fotoğrafa bağlantı.
{editinfo} Profili düzenlerken mevcut özet bilgileri alanda görüntüler.
{hidemail} E-posta adresini gizlemek için onay kutusunu görüntüler.
{registration} Kullanıcının kayıt tarihi.
{lastdate} Son ziyaret tarihini görüntüler.
{registration=date format} Kullanıcının kayıt tarihini etikette belirtilen formatta görüntüler. Örneğin {registration=d} etiketi ayın gününü görüntüler, {registration=F} etiketi ayın adını görüntüler ve {registration=d-m-Y H:i} etiketi tam tarihi ve saati görüntüler.
{lastdate=date format} Kullanıcının son site ziyaretini etikette belirtilen formatta görüntüler. Örneğin {lastdate=d} etiketi ayın gününü görüntüler, {lastdate=F} etiketi ayın adını görüntüler ve {lastdate=d-m-Y H:i} etiketi tam tarihi ve saati görüntüler.
{allowed-ip} Kayda izin verilen IP.

Durum ve Grup Etiketleri

Etiket Açıklama
{status} Kullanıcı durumu (kullanıcı grubu).
{group-icon} Kullanıcının grup simgesi.
[time_limit] ve [/time_limit] Kullanıcı geçici gruptaysa kapsanan metni görüntüler.
{time_limit} Kullanıcının geçici grupta olduğu tarihe kadar olan süreyi görüntüler.
[banned] ve [/banned] Kullanıcı şu anda siteden yasaklanmışsa aralarındaki metni görüntüler.
[not-banned] ve [/not-banned] Kullanıcı siteden yasaklanmamışsa aralarındaki metni görüntüler.
{ban-description} Kullanıcının neden yasaklandığını gösterir.
{ban-date} Kullanıcının siteden yasaklandığı tarihi görüntüler.

İçerik ve Değerlendirme Etiketleri

Etiket Açıklama
{comm-num} Yorum sayısı.
{news-num} Haber sayısı.
{comments} Kullanıcının tüm yorumlarına bağlantı.
{news} Kullanıcı tarafından yayınlanan tüm haberlere bağlantı.
{rate} Kullanıcının makalelerinin mevcut değerlendirmesi (makale değerlendirmesine göre otomatik olarak oluşturulur).
{commentsrate} Bu kullanıcının tüm yorumlarının toplam değerlendirmesini görüntüler.
{ratingscore} Kullanıcının tüm yayınlarının ortalama puanını, kesirli değeri koruyarak birden beşe kadar görüntüler. Örneğin, değerlendirmeye bağlı olarak, 1.6 veya 4.2 vb. olabilir.
{commentsratingscore} Tüm kullanıcı yorumlarının ortalama değerlendirmesinin sayısını, kesirli değeri koruyarak birden beşe kadar görüntüler. Örneğin, değerlendirmeye bağlı olarak, 1.6 veya 4.2 vb. olabilir.
[rating-type-1] ve [/rating-type-1] Komut dosyası ayarlarında makaleler için ilk 'Rating' türü etkinleştirildiyse kapsanan metni görüntüler.
[rating-type-2] ve [/rating-type-2] Komut dosyası ayarlarında makaleler için ikinci değerlendirme türü 'Likes only' etkinleştirildiyse kapsanan metni görüntüler.
[rating-type-3] ve [/rating-type-3] Komut dosyası ayarlarında makaleler için üçüncü değerlendirme türü 'Like' or 'Dislike' etkinleştirildiyse kapsanan metni görüntüler.
[comments-rating-type-1] ve [/comments-rating-type-1] Komut dosyası ayarlarında yorumlar için ilk 'Rating' türü etkinleştirildiyse kapsanan metni görüntüler.
[comments-rating-type-2] ve [/comments-rating-type-2] Komut dosyası ayarlarında yorumlar için ikinci değerlendirme türü 'Likes only' etkinleştirildiyse kapsanan metni görüntüler.
[comments-rating-type-3] ve [/comments-rating-type-3] Komut dosyası ayarlarında yorumlar için üçüncü değerlendirme türü 'Like' or 'Dislike' etkinleştirildiyse kapsanan metni görüntüler.
[rss] ve [/rss] Kullanıcının tüm haberlerinin RSS beslemesine profilde bağlantı.

Koşullu İçerik Etiketleri

Etiket Açıklama
[fullname] ve [/fullname] Kullanıcının tam adı ayarlanmışsa kapsanan metni görüntüler.
[not-fullname] ve [/not-fullname] Kullanıcının tam adı belirlenmemişse kapsanan metni görüntüler.
[land] ve [/land] Kullanıcının yaşadığı yer belirlenmişse kapsanan metni görüntüler.
[not-land] ve [/not-land] Kullanıcının yaşadığı yer belirlenmemişse kapsanan metni görüntüler.
[news-num] ve [/news-num] Kullanıcı web sitesinde haber yayınladıysa kapsanan metni görüntüler.
[not-news-num] ve [/not-news-num] Kullanıcı web sitesinde haber yayınlamadıysa kapsanan metni görüntüler.
[comm-num] ve [/comm-num] Kullanıcı web sitesinde yorum bıraktıysa kapsanan metni görüntüler.
[not-comm-num] ve [/not-comm-num] Kullanıcı web sitesinde yorum bırakmadıysa kapsanan metni görüntüler.
[online] ve [/online] Kullanıcı çevrimiçiyse kapsanan metni görüntüler (son ziyaretten itibaren 20 dakika).
[offline] ve [/offline] Kullanıcı çevrimdışıysa kapsanan metni görüntüler.
[profile-user-group=X] ve [/profile-user-group] Profili görüntülenen kullanıcının grubu X grubuna aitse kapsanan metin görüntülenir, burada X grup numarasıdır. Gruplar ayrıca virgülle listelenebilir.
[not-profile-user-group=X] ve [/not-profile-user-group] Profili görüntülenen kullanıcının grubu X grubuna ait değilse kapsanan metin görüntülenir, burada X grup numarasıdır.
[own-profile] ve [/own-profile] Kullanıcı sitede kendi profilini görüntülüyorsa aralarındaki metni görüntülerler.
[not-own-profile] ve [/not-own-profile] Kullanıcı sitede başka birinin profilini görüntülüyorsa aralarındaki metni görüntülerler.
[not-logged] ve [/not-logged] Kullanıcı kendi profilini görüntülerse veya Yönetici ise kapsanan kodu görüntüler. Ziyaretçilerin kendi profillerini düzenlemelerine izin vermek için kullanılır.
[signature] ve [/signature] Kullanıcı imzayı ayarlamışsa kapsanan metni görüntüler.
{signature} Kullanıcının imzasını görüntüler.
{editsignature} Kullanıcının imzasını düzenleme için biçimlendirilmiş olarak görüntüler.
[delete] ve [/delete] Kullanıcı gruplarının ayarlarına göre buna izin veriliyorsa, kullanıcının kendi profilini sitede silmek için bir bağlantı olarak aralarındaki metni görüntüler.

Ekstra Alan ve Abonelik Etiketleri

Etiket Açıklama
{xfields} Düzenlendiğinde profilin ekstra alanlarını görüntüler.
[xfinput_X] Formun ekstra alanlarını istenen konumda görüntüler, burada X ekstra alanın adıdır.
[xfvalue_x] Ekstra alan "x" değerini görüntüler, burada "x" ekstra alanın adıdır.
[xfgiven_x] ve [/xfgiven_x] Ekstra alan "x" boş değilse görüntülenir.
[xfnotgiven_x] ve [/xfnotgiven_x] Kullanıcı ekstra alanı ayarlanmamışsa kapsanan metni görüntüler, burada X kullanıcı profili ekstra alanının adıdır.
{timezones} Kullanılabilir zaman dilimlerinin listesini gösterir ve kullanıcının web sitesindeki profili için zaman dilimi seçmesine olanak tanır.
{ignore-list} Yoksayma listesinden kullanıcıların listesi.
[ignore] ve [/ignore] Kullanıcıyı yok sayılanlar listesine eklemek için bir bağlantı olarak kapsanan metni göster.
{news-subscribe} Yorumlardan aboneliği iptal etmek ve imzalı yayınların sayısı için bir onay kutusu görüntüler.
{unsubscribe} Kullanıcıya ait haberlere eklenen yeni yorumlarla ilgili bildirim almak için abonelik için bir onay kutusu görüntüler.
{comments-reply-subscribe} Kullanıcının yorumlarına verilen yanıtlar olan yeni yorumlarla ilgili bildirim almak için abonelik için bir onay kutusu görüntüler.
{pm} Kullanıcıya kişisel mesaj yazmak için bağlantı.
{email} Kullanıcıya e-posta mesajları yazmak için bağlantı.
{twofactor-auth} Kullanıcının İki Faktörlü Kimlik Doğrulamayı etkinleştirebileceği veya devre dışı bırakabileceği onay kutusunu görüntüler.

Sosyal Medya Etiketleri

Etiket Açıklama
{social-list} Bağlantılı sosyal ağların bir listesini ve onları bu hesaptan ayırma bağlantılarını görüntüler.
[attached-vk] ve [/attached-vk] Kullanıcının hesabı VK ağına bağlıysa kapsanan metni görüntüler.
[attached-odnoklassniki] ve [/attached-odnoklassniki] Kullanıcının hesabı Odnoklassniki ağına bağlıysa kapsanan metni görüntüler.
[attached-facebook] ve [/attached-facebook] Kullanıcının hesabı Facebook ağına bağlıysa kapsanan metni görüntüler.
[attached-google] ve [/attached-google] Kullanıcının hesabı Google ağına bağlıysa kapsanan metni görüntüler.
[attached-mailru] ve [/attached-mailru] Kullanıcının hesabı Mail.ru ağına bağlıysa kapsanan metni görüntüler.
[attached-yandex] ve [/attached-yandex] Kullanıcının hesabı Yandex ağına bağlıysa kapsanan metni görüntüler.
[detach-vk] ve [/detach-vk] Kullanıcının hesabı bağlıysa, hesabı VK sosyal ağından ayırmak için bir bağlantı olarak aralarındaki metni görüntüler.
[detach-odnoklassniki] ve [/detach-odnoklassniki] Kullanıcının hesabı bağlıysa, hesabı Odnoklassniki sosyal ağından ayırmak için bir bağlantı olarak aralarındaki metni görüntüler.
[detach-facebook] ve [/detach-facebook] Kullanıcının hesabı bağlıysa, hesabı Facebook sosyal ağından ayırmak için bir bağlantı olarak aralarındaki metni görüntüler.
[detach-google] ve [/detach-google] Kullanıcının hesabı bağlıysa, hesabı Google sosyal ağından ayırmak için bir bağlantı olarak aralarındaki metni görüntüler.
[detach-mailru] ve [/detach-mailru] Kullanıcının hesabı bağlıysa, hesabı Mail.ru sosyal ağından ayırmak için bir bağlantı olarak aralarındaki metni görüntüler.
[detach-yandex] ve [/detach-yandex] Kullanıcının hesabı bağlıysa, hesabı Yandex sosyal ağından ayırmak için bir bağlantı olarak aralarındaki metni görüntüler.

Koşullu Alanları Karşılaştırma Etiketleri

Bu özel etiketler, değerlere göre koşullu metinler görüntülemek için kullanılır:

  • [if field = "value"] text [/if] - alan 'value' parametresine eşitse metni gösterir
  • [if field != "value"] text [/if] - alan 'value' parametresine eşit değilse metni gösterir
  • [if field > "1"] text [/if] - alan 'value' parametresinden büyükse metni gösterir
  • [if field >= "2"] text [/if] - alan 'value' parametresinden büyük veya ona eşitse metni gösterir
  • [if field < "3"] text [/if] - alan 'value' parametresinden küçükse metni gösterir
  • [if field <= "4"] text [/if] - alan 'value' parametresinden küçük veya ona eşitse metni gösterir
  • [if field ~ "value"] text [/if] - alanda 'value' kelimesi varsa metni gösterir
  • [if field !~ "value"] text [/if] - alanda 'value' kelimesi yoksa metni gösterir

Birleşik kullanım:

  • [if field > "3" AND field2 < "5"] text [/if] "field" alanı üçten büyükse ve field2 5'ten küçükse metni gösterir
  • [if field > "3" OR field2 < "5"] text [/if] "field" alanı üçten büyükse veya field2 5'ten küçükse, yani koşullardan herhangi biri eşleşiyorsa metni gösterir

Alan isimleri:

  • name - Kullanıcı girişi (metin)
  • email - Kullanıcının e-posta adresi (metin)
  • user_id - Benzersiz Kullanıcı Kimliği (sayı)
  • news_num - Kullanıcı yayınlarının sayısı (sayı)
  • comm_num - Kullanıcı yorumlarının sayısı (sayı)
  • user_group - Kullanıcı grubu (sayı)
  • lastdate - Kullanıcının son ziyaret tarihi
  • reg_date - Kullanıcı kayıt tarihi
  • allow_mail - Kullanıcı siteden e-posta almaya izin verdi mi (sayı 1 veya 0)
  • info - Kullanıcının kendisi hakkında bilgisi (metin)
  • signature - Kullanıcı imzası (metin)
  • fullname - Kullanıcının tam adı (metin)
  • land - Kullanıcının yaşadığı yer (metin)
  • foto - Kullanıcının avatarına bağlantı (metin)
  • pm_all - Kullanıcının kişisel mesajlarının sayısı (sayı)
  • pm_unread - Kullanıcının okunmamış kişisel mesajlarının sayısı (sayı)
  • restricted - kullanıcıda kısıtlamalar var mı (sayı 0 - kısıtlama yok, 1 - yayın ekleme yasağı 2 - yorum ekleme yasağı 3 - yayınlar ve yorumlar için yasak)
  • restricted_days - Kısıtlamaların uygulandığı gün sayısı (sayı)
  • restricted_date - Kullanıcının yasaklandığı tarih
  • logged_ip - Kullanıcının siteyi ziyaret ettiği IP (metin)
  • timezone - Kullanıcının saat dilimi, zaman dilimi formatında, örneğin Europe/Moscow (metin)
  • news_subscribe - Kullanıcı yeni yayınlarla ilgili bildirimlere abone mi (sayı 1 veya 0)
  • comments_reply_subscribe - Kullanıcı yorumlarına verilen yanıtlarla ilgili bildirimlere abone mi (sayı 1 veya 0)
  • twofactor_auth - Kullanıcı iki faktörlü yetkilendirmeyi etkinleştirdi mi (sayı 1 veya 0)
  • cat_allow_addnews - Kullanıcının yayın eklemesine izin verilen kategoriler (kategori kimliklerinin dizisi)
  • cat_add - Yayın eklerken kullanıcının güvendiği kategoriler (kategori kimliklerinin dizisi)
  • xfield_x - Kullanıcının ek alanının değeri, burada x ek alanın adıdır. Örneğin xfield_test, test ek alanının değeridir

Örnek Kullanım

Temel Kullanıcı Profili Şablonu

<div class="userinfo">
    [not-logged]
    <div class="alert alert-info">Başkasının profilini görüntülüyorsunuz. Kendi profiliniz değil.</div>
    [/not-logged]
    
    [own-profile]
    <div class="alert alert-success">Bu sizin profiliniz. Bilgilerinizi düzenleyebilirsiniz.</div>
    [/own-profile]
    
    <div class="user-profile-box">
        <div class="user-header">
            <div class="user-avatar">
                <img src="{foto}" alt="{usertitle}">
                [online]<span class="online-status online">Çevrimiçi</span>[/online]
                [offline]<span class="online-status offline">Çevrimdışı</span>[/offline]
            </div>
            <div class="user-info">
                <h1 class="user-name">{usertitle} {group-icon}</h1>
                
                <div class="user-stats">
                    <div class="stat">
                        <span class="stat-label">Grup:</span>
                        <span class="stat-value">{status}</span>
                    </div>
                    
                    <div class="stat">
                        <span class="stat-label">Son Ziyaret:</span>
                        <span class="stat-value">{lastdate=d.m.Y H:i}</span>
                    </div>
                    
                    <div class="stat">
                        <span class="stat-label">Kayıt Tarihi:</span>
                        <span class="stat-value">{registration=d.m.Y}</span>
                    </div>
                </div>
                
                [fullname]
                <div class="user-fullname">
                    <i class="fas fa-user"></i> {fullname}
                </div>
                [/fullname]
                
                [land]
                <div class="user-location">
                    <i class="fas fa-map-marker-alt"></i> {land}
                </div>
                [/land]
            </div>
        </div>
        
        <div class="user-activity">
            <div class="activity-stat">
                <div class="activity-icon"><i class="far fa-newspaper"></i></div>
                <div class="activity-value">{news-num}</div>
                <div class="activity-label">
                    [not-news-num]Haber Yok[/not-news-num]
                    [news-num]Haber Yayınlandı[/news-num]
                </div>
                [news-num]<div class="activity-link"><a href="{news}">Haberleri Görüntüle</a></div>[/news-num]
            </div>
            
            <div class="activity-stat">
                <div class="activity-icon"><i class="far fa-comments"></i></div>
                <div class="activity-value">{comm-num}</div>
                <div class="activity-label">
                    [not-comm-num]Yorum Yok[/not-comm-num]
                    [comm-num]Yorum Yapıldı[/comm-num]
                </div>
                [comm-num]<div class="activity-link"><a href="{comments}">Yorumları Görüntüle</a></div>[/comm-num]
            </div>
            
            <div class="activity-stat">
                <div class="activity-icon"><i class="far fa-star"></i></div>
                <div class="activity-value">{rate}</div>
                <div class="activity-label">Puan</div>
            </div>
        </div>
        
        [signature]
        <div class="user-signature">
            <h4>İmza</h4>
            <div class="signature-content">{signature}</div>
        </div>
        [/signature]
        
        [not-own-profile]
        <div class="user-actions">
            <a href="{pm}" class="user-action-btn pm-btn"><i class="far fa-envelope"></i> Özel Mesaj</a>
            <a href="{email}" class="user-action-btn email-btn"><i class="far fa-envelope"></i> E-mail</a>
            [ignore]<a href="{ignore}" class="user-action-btn ignore-btn"><i class="fas fa-ban"></i> Engelle</a>[/ignore]
        </div>
        [/not-own-profile]
        
        [own-profile]
        <div class="user-edit">
            <a href="#" id="edit-profile-btn" class="btn btn-primary"><i class="fas fa-edit"></i> Profili Düzenle</a>
            [delete]<a href="{delete}" class="btn btn-danger" onclick="return confirm('Hesabınızı silmek istediğinizden emin misiniz? Bu işlem geri alınamaz!');"><i class="fas fa-trash-alt"></i> Hesabı Sil</a>[/delete]
        </div>
        
        <div id="edit-profile-form" style="display: none;">
            <h3>Profili Düzenle</h3>
            <form method="post" action="" enctype="multipart/form-data">
                <div class="form-group">
                    <label>E-mail:</label>
                    <input type="email" name="email" value="{editmail}" class="form-control">
                    <div class="form-check">
                        <input type="checkbox" name="hidemail" id="hidemail" value="1" {hidemail}>
                        <label for="hidemail">E-posta adresimi diğer kullanıcılardan gizle</label>
                    </div>
                </div>
                
                <div class="form-group">
                    <label>Tam Ad:</label>
                    <input type="text" name="fullname" value="{fullname}" class="form-control">
                </div>
                
                <div class="form-group">
                    <label>Yaşadığı Yer:</label>
                    <input type="text" name="land" value="{land}" class="form-control">
                </div>
                
                <div class="form-group">
                    <label>Hakkımda:</label>
                    <textarea name="info" class="form-control">{editinfo}</textarea>
                </div>
                
                <div class="form-group">
                    <label>İmza:</label>
                    <textarea name="signature" class="form-control">{editsignature}</textarea>
                </div>
                
                <div class="form-group">
                    <label>Profil Fotoğrafı:</label>
                    <input type="file" name="newavatar" class="form-control-file">
                    [foto]<div><img src="{foto}" style="max-width: 100px;" /></div>[/foto]
                </div>
                
                <div class="form-group">
                    <label>Zaman Dilimi:</label>
                    {timezones}
                </div>
                
                {xfields}
                
                <div class="form-group">
                    <div class="form-check">
                        {twofactor-auth}
                        <label for="twofactor-auth">İki Faktörlü Kimlik Doğrulamayı Etkinleştir</label>
                    </div>
                </div>
                
                <div class="form-group">
                    <div class="form-check">
                        {news-subscribe}
                        <label for="news-subscribe">Tüm yorum aboneliklerinden çık</label>
                    </div>
                </div>
                
                <div class="form-group">
                    <div class="form-check">
                        {comments-reply-subscribe}
                        <label for="comments-reply-subscribe">Yorumlarıma verilen yanıtlar hakkında beni bilgilendir</label>
                    </div>
                </div>
                
                <div class="social-connections">
                    <h4>Sosyal Medya Hesapları</h4>
                    {social-list}
                </div>
                
                <div class="form-submit">
                    <button type="submit" name="submit" class="btn btn-success">Değişiklikleri Kaydet</button>
                    <button type="button" id="cancel-edit" class="btn btn-secondary">İptal</button>
                </div>
            </form>
        </div>
        [/own-profile]
    </div>
</div>

<script>
document.addEventListener("DOMContentLoaded", function() {
    // Profil düzenleme formunu göster/gizle
    const editBtn = document.getElementById('edit-profile-btn');
    const editForm = document.getElementById('edit-profile-form');
    const cancelBtn = document.getElementById('cancel-edit');
    
    if(editBtn && editForm) {
        editBtn.addEventListener('click', function(e) {
            e.preventDefault();
            editForm.style.display = 'block';
            editBtn.style.display = 'none';
        });
        
        if(cancelBtn) {
            cancelBtn.addEventListener('click', function() {
                editForm.style.display = 'none';
                editBtn.style.display = 'inline-block';
            });
        }
    }
});
</script>