Profil kısmına yeni sayfa eklemek

Başlatan cambaz1047, 03 Mar 2021 18:17

« önceki - sonraki »

0 Üye ve 2 Ziyaretçi konuyu incelemekte.

*

  1. 3

  2. 2

  3. 1

Merhaba. Profil kısmında özet dediğimizde sol altta istatistikler,iletileri göster kısmı çıkıyor. Bu sayfalar yeni sayfayı index.php?action=yenisayfa şeklinde değilde index.php?action=profile;area=statistics;u=2 şeklinde açıyor. Bende bu şekilde yeni bir sayfa oluşturmak istiyorum. Profil.template kısmına bilgileri girerek sayfayı burda oluşturmak istiyorum. Bunu nasıl yapabilirim ?

*

  1. 1,109

  2. 104

  3. 315
index.php?action=stats diye bir sayfa bölümü var.Diğer türlü ;u=ProfilID ile kullanıcı istatisliği geliyor.

Mantık olarak yeni bir sayfa yapıcaksınız ve "index.php?action=profile;area=statistics;u=2" gibi bir görünüm istiyorsanız.

Sources/Profile-View.php ; "function statPanel($memID)"
Themes/default/Profile.template.php ; "function template_statPanel()"
Sources/Profile.php
'statistics' => array(
'label' => $txt['statPanel'],
'file' => 'Profile-View.php',
'function' => 'statPanel',
'permission' => array(
'own' => 'profile_view_own',
'any' => 'profile_view_any',
),
),
Burda belirtilmiş.
Altdaki kodda ise Profile.template.php eklenmiş.
// Set the template for this area and add the profile layer.
$context['sub_template'] = $profile_include_data['function'];
$context['template_layers'][] = 'profile';

Sayfa oluşturmak için hazır modlar var : https://smf.konusal.com/index.php?topic=1290.msg6037#msg6037
Php kodu kullanabiliyorsunuz.

Sources/Profile-View.php ; "function statPanel($memID)", Themes/default/Profile.template.php ; "function template_statPanel()" burdaki kodları alığ MemID kendiniz belirterek sayfalar oluşturabilirsiniz.Kodda değişiklik yaparak multi İD ekliyebilirsiniz.Örnek konu : https://stackoverflow.com/questions/20762424/select-multiple-ids-from-a-table  Smf'de ise
WHERE id_member_started = {int:current_member}WHERE id_member_started IN ({current_member})olarak deneyerek ulaşabilirsiniz.

*

  1. 3

  2. 2

  3. 1
Açıkcası benim sorunum şu. index.php?action=profile;area=panel şeklinde görünmesini istiyorum. Sebebini şöyle açıklayayım. Smf harici başka bir veritabanı bağladım siteme. Diğer veritabanı ile smf kullanıcı adı eşleştiğinde veriler gözüküyor. Kendi bağladığım veritabanında göstermek istediğim içerikler gözüküyor anlayacağınız. Bunu şu şekilde yapıyorum.

$nick = $context['user']['name'];  Bu kod ile smf kullanıcı adını nick isimli değişkene atıyorum.

@$arat = mysql_num_rows(mysql_query("SELECT * FROM `hesaplar` WHERE `forumnick` = '$nick' "));Bu kod sayesinde ise kendi veritabanımda kişinin forum ismi ekli ise bilgiyi aratıyor. Eşleşince yeni fonksiyonlar ekliyorum bu sayede kendi veritabanımdaki bilgi ile forum üyesini birleştirmiş oluyorum. Sorun şu ki başka bir sayfada veritabanımdan veri çekmek istiyorum. Bunun için yine aynı 2 kodu taban almam gerekiyor. Fakat kendi oluşturduğum sayfada ['user']['name'] şeklinde forum kullanıcı adını çekemiyorum. Smf sayfa oluşturucu modlar üzerinde de, kendim sayfa oluşturduğumda da çekemiyorum. Sadece display ve index template dosyalarında bu içerik var sanırım. Eğer bu username içeriğini kendi oluşturduğum başka sayfada çekebilirsem hiç bir sorunum kalmayacak açıkcası.

*

  1. 1,109

  2. 104

  3. 315
04 Mar 2021 17:28 #3 Son düzenlenme: 04 Mar 2021 18:45 CeeMoo

Basit bir mantık ile ; Forum kullanıcı id lerini diğer DB ile eşleştirin, daha sonra smf forumdan veri çekerken Diğer db "smf_kull_id" ile varsa bilgileri anasayfada gösterebilirsiniz. WHERE smf_kull_id = '$MEMId' ile olur.

Diğer türlü yeni bir sayfa vb.. değişiklikler sistemi yükseltince sıkıntı olabilir.


Profile-view.php ; function summary($memID)  içinde kullanın 242 satırın hemen öncesindeki $smcFunc['db_query'] inceleyin ve Profile.template.php içinde 124 satırdan hemen öncesinde kullanabilirsiniz.function template_summary().


MENU ×