Jump to content
Duyurular
  • IPBaccess ve bünyemizde bulunan IPB tabanlı forumlar için Sunucu değişimi yapıldı.
  • Bir kaç gün içinde mevcut siteler yeni sunucuya taşınacaktır.
  • IPBAccess Güncellendi.
Sign in to follow this  
Oscar

Action Overloader kancası ve kullanımı

Recommended Posts

Action Overloader daha profesyonel kullanım için IPB framework'ü içinde yer alan bütün uygulamaların class fonksiyonlarına erişmeyi mümkün kılar.

 

Örnek olarak benim silinen konular için yapmış olduğum uygulamada konunun hangi uygulama tarafından silindiğini buldum.

 

Neyle ilgili uygulama ?

Forum, o zaman bu uygulama admin/application/forums konumunda

 

Bu forumda işi yapan section yani modül hangisi elbette biz bunu forum arayüzünden yapıyoruz. ACP'den değil o zaman admin/application/forums içinde public modüllere bakıyoruz. public modüllerin içinde bizim işimizi yapan modülü bulduk moderate ve section'u yani çalıştırılabilir scripti de moderate.php. Şimdi hook için yolumuz belli oldu.

 

admin/application/forums/moderate bunu uygulamaya nasıl extends ediyoruz? bunu PHP'nin class yapısını bilenler anlamışlardır.

 

class ipba_recycle_bin extends public_forums_moderate_moderate
{

 

 

aynı zamanda hook içinde kullanacağımız hook dosyamızım gövdesi ortaya çıkmış oldu. Bu aşamadan sonra moderate.php dosyasının içindeki tüm class fonksiyonlara erişmemiz mümkün olur.

 

örnek olarak moderate.php içindeki kalıcı dosya silme class fonksiyonu kullanmamız gerekmişti onu da bu şekilde kullanıp görevi IPB'ye bırakmadan çıkıyoruz çünkü konuyu kalıcı olarak silmek isteyen bu fonksiyona işi bırakmıyor konuyu bir yere taşıyıp kalıcı olarak silmesine engel olup fonksiyondan çıkış yapıyoruz ki IPB devam ederek konuyu silmeye çalışmasın.

 

	protected function _deleteTopicPermanent()
	{

            // işlemler

    		$this->registry->output->redirectScreen( $this->lang->words['p_deleted'], $this->settings['base_url'] . "showforum=" . $this->forum['id'] . '&page=' . intval( $this->request['page'] ), $this->forum['name_seo'], 'showforum' );

            parent::_deleteTopicPermanent();
    } 

 

Bu da bizim hook oluşturma ekranımızda Action Overloader tanımlamamız.

 

 

 

Uygulama içinde kullanılan fonksiyonda parametre varsa aşağıdaki örnekteki gibi

 

 

 

function test ($var, $type)
{
   parent::test($var, $tye)
} 

 

Değişkenleri işlemlerini için kullanabileceksiniz bu bir avantaj ama aynı şekilde değişkenleri geri döndürmelisiniz parent satırında olduğu gibi.

 

Bütün fonksiyonlarda parametre olmayabilir bu durum kullanım yerine göre gerekli olduğu gibi gereksiz de olabilir. Örneğin bir veriyi işlersiniz ama geri bir şey döndürmeniz gerekmeyebilir.

 

Parametre olmayan fonksiyonlarda fonksiyonu çağıran bağlantı üzerindeki değişkenleri $this->request['app_rate'] ile yakalayarak kullanabilirsiniz. 

 

 

Bu aslında tam bir makale konusu ama meraklısı olanlar ve class'lar bilenler için anlaşılması için fazlasıyla yeterlidir.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  
    • 1 Posts
    • 252 Views
    • 1 Posts
    • 338 Views
    • 1 Posts
    • 358 Views

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines.