it-swarm-tr.com

Bir modül kurulumunda postflight çağırmak mümkün mü?

Birçok modülden biraz daha karmaşık işlevler yapacağını umduğum bir modül oluşturuyorum. Ancak, modül yüklendiğinde DB değişikliği ve dosyaları taşıma gibi bazı şeyler yapmam gerekecek.

Joomla 3.3 ile çalışıyorum.

Bir modül kurulumunda postflight rutini yapmak mümkün müdür? Dokümanlara örnek veya bağlantı gösterebilir misiniz?

Teşekkürler!

4
user101289

Evet, bu mümkün ve oldukça basit. İlk olarak, modüllerinizin XML dosyasına aşağıdakileri eklemeniz gerekir:

<scriptfile>script.php</scriptfile>

Ve elbette, bununla birlikte, script.php adlı dosyayı veya çağırmak istediğiniz her şeyi oluşturmanız gerekir. Yukarıdaki koddaki dosya adını buna göre değiştirdiğinizden emin olun. Onları, dosyaya aşağıdaki kodu ekleyin:

<?php  
defined('_JEXEC') or die('Restricted access');

class com_helloWorldInstallerScript
{    
     function postflight($type, $parent) 
     {
           // all your code goes in here
     }
}

Kodunuzu, modül yüklendikten sonra yürütülecek olan postflight işlevine eklemeniz yeterlidir. Joomla ayrıca 4 yerleşik fonksiyon daha sunar:

  1. yüklemek
  2. kaldırma
  3. ön kontrol
  4. güncelleme

Bunlar da gelecek için kullanışlı olabilir. tüm bunlarla ilgili daha fazla bilgiyi burada bulabilirsiniz:

https://docs.joomla.org/J3.x:Developing_an_MVC_Component/Adding_an_install-uninstall-update_script_file

Bu yardımcı olur umarım

2
Lodder

Evet, sen de yapabilirsin.

http://docs.joomla.org/J2.5:Developing_a_MVC_Component/Adding_an_install-uninstall-update_script_file

http://docs.joomla.org/J2.5:Creating_a_simple_module/Adding_an_install-uninstall-update_script_file

Bunu "mod" kullanacak şekilde ayarlayabilir ve modülün yapılandırma dosyasında <scriptfile>path</scriptfile> (Sanırım bundan biraz farklı olabilir).

Herhangi bir veritabanı ve dosya manipülasyonu yapmak için JDatabase ve JFile/JFolder gerekir.

http://docs.joomla.org/Selecting_data_using_JDatabasehttp://docs.joomla.org/How_to_use_the_filesystem_package

Bunlar başlamanıza yardımcı olacaktır.

2
Jordan Ramstad