• Merhaba Ziyaretçi,
    Sitemizden yararlanmak için buradan kayıt olunuz.
  • Değerli üyelerimiz, Bildiğiniz üzere uzunca bir süredir eklenti desteği ile kişisel sebeplerden ötürü ilgilenemiyorum. Üyelerimizi mağdur etmemek açısından burada sergilenen eklentilerimizi Xenforo.gen.tr üzerinde satışa sunma kararı aldık. Mevcut eklentilere ait kritik problem ve geliştirmeler ile ilgili belirli aralıklarla Xenforo.gen.tr üzerinden destek verilecektir.
Kaynak ikonu

XenForo Özel Sayfa İçerisinde Belirli Bir Forumu Gösterme

apocalypse

Yönetici
Yönetim Ekibi
Katılım
9 Haz 2014
Mesajlar
1,045
Reaction score
1,038
Puanları
113
Web sitesi
xenforo.web.tr
PHP Versiyonu
PHP v7.0.x
XenForo Versiyonu
XF 1.5.x
apocalypse yeni bir kaynak sundu:

Özel sayfa içinde belirli bir forumu göstermek - Kendi oluşturduğunuz sayfanın içinde belirli bir foruma ait konuları gösterebilirsiniz

XenForo Özel Sayfa İçersinde Belirli Bir Forumu Gösterme

Bundan önce belki önceki iki yazıma da göz atmak isteyebilirsiniz:

Sayfa nasıl oluşturulur?
Sayfada belirli bir yazı nasıl gösterilir?

Bu yazı oluşturduğunuz bir sayfa içinde bir forumu(ona ait konu listesini) nasıl...
Bu kaynak hakkında daha fazla bilgi...
 
Moderatörün son düzenlenenleri:

DieseL

BıçKıN Admin
Yönetici
Yönetim Ekibi
Katılım
9 Şub 2016
Mesajlar
658
Reaction score
825
Puanları
93
Konum
Tekirdağ
Web sitesi
www.xenforo.web.tr
PHP Versiyonu
PHP v7.1.x
XenForo Versiyonu
XF 1.5.x
Ellerine kollarına sağlık abi güzel bir anlatım.
umarım herkesin işine yarar, yarayacaktır :)
 

MySimS3k®

Emektar Üye
Katılım
30 Nis 2016
Mesajlar
358
Reaction score
342
Puanları
63
Yaş
41
Konum
Adana
Web sitesi
xenforo.com.tr
PHP Versiyonu
PHP v7.1.x
Çok başarılı bir anlatım olmuş emeğine sağlık kardeşim
 

lodos

Kayıtlı Üye
Katılım
17 Tem 2016
Mesajlar
27
Reaction score
25
Puanları
13
Yaş
40
PHP Versiyonu
PHP v7.1.x
XenForo Versiyonu
XF 1.5.x
Merhaba hocam siteniz ve desteğiniz için teşekkür ederim. Anlamadığım bir yer için şu soruyu soruyorum.

Kod:
$controllerResponse->params['threads'] = array();
Burada bu kodu ShowAForum.php dosyasına ekliyoruz sanırım. Ekledim ancak normal konular da halen görünmektedir. Ben sadece sabit konular görünsün istiyorum.

Şu şekilde ekledim ama olmadı:
Kod:
/* Sadece sabit konularda için bu kod kullanılmalıdır. */
        $controllerResponse->params['threads'] = array();
Bu kod tam olarak nereye nasıl eklenmelidir.
 

lodos

Kayıtlı Üye
Katılım
17 Tem 2016
Mesajlar
27
Reaction score
25
Puanları
13
Yaş
40
PHP Versiyonu
PHP v7.1.x
XenForo Versiyonu
XF 1.5.x
Bu konuda başka nasıl bir yol izlemeliyiz. Ayrıca konu sayısı da istenildiği gibi azaltılıp yada çoğaltılamıyor.
 
Son düzenleme:

apocalypse

Yönetici
Yönetim Ekibi
Katılım
9 Haz 2014
Mesajlar
1,045
Reaction score
1,038
Puanları
113
Web sitesi
xenforo.web.tr
PHP Versiyonu
PHP v7.0.x
XenForo Versiyonu
XF 1.5.x
Bu konuda başka nasıl bir yol izlemeliyiz. Ayrıca konu sayısı da istenildiği gibi azaltılıp yada çoğaltılamıyor.
Sadece sabit konular gösterilecekse kullanılacak kod:
PHP:
<?php
class ShowAForum
{
public static function showAForumInPage(XenForo_ControllerPublic_Abstract $controller, XenForo_ControllerResponse_Abstract &$response)
{
/* Ziyaretçi parametlerini getir */
$visitor = XenForo_Visitor::getInstance();

/* Yeni bir istek oluştur */
$request = new Zend_Controller_Request_Http();

/* Gösterilecek forumun idsi. Bu örnekte, id si 2 olan forumu göstereceğiz */
$request->setParam('node_id', 2);

/* Yeni bir yanıt oluştur */
$responseForum = new Zend_Controller_Response_Http();

/* yeni ControllerPublic örneği alındığında kullanmak için yeni rota eşleştirici(RouteMatch)*/
$routeMatch = new XenForo_RouteMatch();

/* Çağırmak istediğimiz aksiyonu tutacak kontrolörümüz (controller): XenForo_ControllerPublic_Forum */
$controllerForum = new XenForo_ControllerPublic_Forum($request, $responseForum, $routeMatch);

/* actionIndex ile Controller e ön sevk*/
$controllerForum->preDispatch('forum', get_class($controllerForum));

/* Controllerdeki actionIndex’i çağır. Bu aksiyon konuların listesini gösterir. (bu istediğimiz şeydir) */
$controllerResponse = $controllerForum->{'actionForum'}();

/* Controller cevabındaki ‘visitor’ olarak adlandırılan parametreyi ata. Bu parametre thread_list şablonunda kullanılacaktır. */
$controllerResponse->params['visitor'] = $visitor->toArray();

        /*
        * Sadece sabit konuları göstermek istediğimizden dolayı parametreden gelen konuları boş bir diziye ekleyerek sıfırlamış olduk.
        * Parametrede stickThreads kaldığından sadece sabit konular gösterilecektir.
        */
//        $threadsToShow = 4;
//        $controllerResponse->params['threads'] = array_slice($controllerResponse->params['threads'], 0, $threadsToShow - 1);
        $controllerResponse->params['threads'] = array();

/* 'totalThreads' parametresini sıfılayalım çünkü totalThreads ın sayısı şablonda gösterilmeyecektir */
unset($controllerResponse->params['totalThreads']);

/* Konuları gösterecek şablonu gerekli olan tüm parametrelerle birlikte oluşturalım, */
$threadList = new XenForo_Template_Public('thread_list', $controllerResponse->params);

/* Sayfamızda kullanacağımızdan 'forum' parametresine işlenmiş şablonu atayalım */
$response->params['forum'] = $threadList;

/* orijinal yanıtı yeni 'forum' parametresiyle sayfaya gönderelim */
return $response;
}
}
?>
Hangi değişkenleri silip neleri eklediğime iki kodu karşılaştırarak bakabilirsiniz.
 
Son düzenleme:

lodos

Kayıtlı Üye
Katılım
17 Tem 2016
Mesajlar
27
Reaction score
25
Puanları
13
Yaş
40
PHP Versiyonu
PHP v7.1.x
XenForo Versiyonu
XF 1.5.x
Hocam burada sizin verdiğiniz yukarıdaki kodu kullandım ama sabit yerine normal konuları göstermektedir. Yine yanlış bişiy yapıyor muyum diye kodları karşılaştırdım. şöyle bir değişiklik vardır.

Bu ilk yaptığımız kodlar
Kod:
/*
Konuların sayısını sınırla. Bu örnekte biz yanlızca 4 konuyu görüntülemekle sınırlayacağız: 0,1,2,3,4
XenForo_ControllerPublic_Forum ‘teki actionIndex alabileceği tüm konuları getirecektir, fakat artık biz sınırladık.
*/
$threadsToShow = 4;
$controllerResponse->params['threads'] = array_slice($controllerResponse->params['threads'], 0, $threadsToShow - 1);
Buda sizin değiştirdiğiniz kodlar.
Kod:
/*
*Sabit konuları şablona göndermek için $threadList = new XenForo_Template_Public('thread_list', $controllerResponse->params); kodundan önce eklemeliyiz.Çünkü parametreler o aşamadan sonra sunulamaz.
*/
$controllerResponse->params['stickyThreads'] = array();
burada sanırım küçük bir hata vardır.
 

apocalypse

Yönetici
Yönetim Ekibi
Katılım
9 Haz 2014
Mesajlar
1,045
Reaction score
1,038
Puanları
113
Web sitesi
xenforo.web.tr
PHP Versiyonu
PHP v7.0.x
XenForo Versiyonu
XF 1.5.x
Haklısınız bi hata var,bikaç saat içinde kaynağı güncelleyeceğim.
 

lodos

Kayıtlı Üye
Katılım
17 Tem 2016
Mesajlar
27
Reaction score
25
Puanları
13
Yaş
40
PHP Versiyonu
PHP v7.1.x
XenForo Versiyonu
XF 1.5.x
Evet mümkünse bu kodu kullanmak istiyorum.
Saygılar.
 

apocalypse

Yönetici
Yönetim Ekibi
Katılım
9 Haz 2014
Mesajlar
1,045
Reaction score
1,038
Puanları
113
Web sitesi
xenforo.web.tr
PHP Versiyonu
PHP v7.0.x
XenForo Versiyonu
XF 1.5.x

lodos

Kayıtlı Üye
Katılım
17 Tem 2016
Mesajlar
27
Reaction score
25
Puanları
13
Yaş
40
PHP Versiyonu
PHP v7.1.x
XenForo Versiyonu
XF 1.5.x
Evet teşekkürler şimdi düzelmiştir. Bunu kaynak alanında da günceller iseniz daha sonra diğer üyeler için faydalı olabilir.
 

lodos

Kayıtlı Üye
Katılım
17 Tem 2016
Mesajlar
27
Reaction score
25
Puanları
13
Yaş
40
PHP Versiyonu
PHP v7.1.x
XenForo Versiyonu
XF 1.5.x
Hocam birde bu sabit konulara bir sınır getirebiliyor muyuz?
Kod:
$threadsToShow = 4;
Sanırım bu kod ile belirlenmekte ama herhangi bir fonksiyonu yok. Birde bunu sınırlayabilir iseniz çok makbule geçecektir.
 

apocalypse

Yönetici
Yönetim Ekibi
Katılım
9 Haz 2014
Mesajlar
1,045
Reaction score
1,038
Puanları
113
Web sitesi
xenforo.web.tr
PHP Versiyonu
PHP v7.0.x
XenForo Versiyonu
XF 1.5.x
Bu kodu kullanabilirsiniz.
PHP:
<?php
class ShowAForum
{
public static function showAForumInPage(XenForo_ControllerPublic_Abstract $controller, XenForo_ControllerResponse_Abstract &$response)
{
/* Ziyaretçi parametlerini getir */
$visitor = XenForo_Visitor::getInstance();

/* Yeni bir istek oluştur */
$request = new Zend_Controller_Request_Http();

/* Gösterilecek forumun idsi. Bu örnekte, id si 2 olan forumu göstereceğiz */
$request->setParam('node_id', 2);

/* Yeni bir yanıt oluştur */
$responseForum = new Zend_Controller_Response_Http();

/* yeni ControllerPublic örneği alındığında kullanmak için yeni rota eşleştirici(RouteMatch)*/
$routeMatch = new XenForo_RouteMatch();

/* Çağırmak istediğimiz aksiyonu tutacak kontrolörümüz (controller): XenForo_ControllerPublic_Forum */
$controllerForum = new XenForo_ControllerPublic_Forum($request, $responseForum, $routeMatch);

/* actionIndex ile Controller e ön sevk*/
$controllerForum->preDispatch('forum', get_class($controllerForum));

/* Controllerdeki actionIndex’i çağır. Bu aksiyon konuların listesini gösterir. (bu istediğimiz şeydir) */
$controllerResponse = $controllerForum->{'actionForum'}();

/* Controller cevabındaki ‘visitor’ olarak adlandırılan parametreyi ata. Bu parametre thread_list şablonunda kullanılacaktır. */
$controllerResponse->params['visitor'] = $visitor->toArray();

        /*
        * Sadece sabit konuları göstermek istediğimizden dolayı parametreden gelen konuları boş bir diziye ekleyerek sıfırlamış olduk.
        * Parametrede stickThreads kaldığından sadece sabit konular gösterilecektir.
        */
        $controllerResponse->params['threads'] = array();
        $stickythreadsToShow = 4;
        $controllerResponse->params['stickyThreads'] = array_slice($controllerResponse->params['stickyThreads'], 0, $stickythreadsToShow- 1);

/* 'totalThreads' parametresini sıfılayalım çünkü totalThreads ın sayısı şablonda gösterilmeyecektir */
unset($controllerResponse->params['totalThreads']);

/* Konuları gösterecek şablonu gerekli olan tüm parametrelerle birlikte oluşturalım, */
$threadList = new XenForo_Template_Public('thread_list', $controllerResponse->params);

/* Sayfamızda kullanacağımızdan 'forum' parametresine işlenmiş şablonu atayalım */
$response->params['forum'] = $threadList;

/* orijinal yanıtı yeni 'forum' parametresiyle sayfaya gönderelim */
return $response;
}
}
?>
 

lodos

Kayıtlı Üye
Katılım
17 Tem 2016
Mesajlar
27
Reaction score
25
Puanları
13
Yaş
40
PHP Versiyonu
PHP v7.1.x
XenForo Versiyonu
XF 1.5.x
Hocam teşekkür ederim oldu şimdi. Ancak 4 konu seçilmesine rağmen 3 konu gösteriyor bizde bir fazlasını yazarak durumu eşitliyoruz.
Bu şekilde 3 konu görünüyor.
Kod:
$stickythreadsToShow = 4;
Böyle yapıldığında 4 konu göstermektedir.
Kod:
$stickythreadsToShow = 5;
 

apocalypse

Yönetici
Yönetim Ekibi
Katılım
9 Haz 2014
Mesajlar
1,045
Reaction score
1,038
Puanları
113
Web sitesi
xenforo.web.tr
PHP Versiyonu
PHP v7.0.x
XenForo Versiyonu
XF 1.5.x
Aslında
array_slice($controllerResponse->params['stickyThreads'], 0, $stickythreadsToShow- 1);
kodunu
array_slice($controllerResponse->params['stickyThreads'], 0, $stickythreadsToShow);
şeklinde düzenlemeniz yeterliydi.Ben gösterilecek konu sayısını dizilerin adresleme başlangıcı 0 dan başladığı için sayma sayısıyla eşdeğer hale gelsin diye -1 ekledim.Ama sizin çözümünüzde geçerli tabiki.
 

lodos

Kayıtlı Üye
Katılım
17 Tem 2016
Mesajlar
27
Reaction score
25
Puanları
13
Yaş
40
PHP Versiyonu
PHP v7.1.x
XenForo Versiyonu
XF 1.5.x
php konusunda biraz sıkıntımız var ne yalan söyleyeyim.:p Yine de ilginiz için teşekkür ederim.
 

Renksizgazete

Lisanslı Üye
Katılım
23 Haz 2016
Mesajlar
192
Reaction score
120
Puanları
43
Yaş
47
Konum
istanbul
Web sitesi
www.flatcast.biz
PHP Versiyonu
PHP v5.3.x
XenForo Versiyonu
XF 1.5.x
Hocam emeklerine saglık aciklayıcı bilgi dolu bir paylasım olmus cok tesekkürler
 
Üst