Merhaba Joomla formları hakkında bir sorum var. Joomla'nın dahili olarak nasıl çalıştığını anlamak istiyorum, özellikle com_installer
bileşeni nasıl çalıştığını bilmek. Ve default.php
dosyasında com_installer/views/install/tmpl
Klasör.
Bu dosyada form göndermek için özel düğmeler vardır. Ve düğmelerin bileşenlerin, modüllerin veya başka şeylerin kurulumunu nasıl tetiklediğiyle ilgileniyorum. Form gövdesinde bazı gizli değerler görüyorum
<input type="hidden" name="task" value="install.install" />
Dolayısıyla bu gizli değer muhtemelen bir denetleyiciyi bir yükleme denetleyicisi ve yükleme yöntemi çağırarak bir kurulumu tetikler.
Ama soru şu: Joomla bunu nasıl yapıyor? Url'yi view = install konumundan task = install.install konumuna yönlendiren kod nerede? Başka bir deyişle, Joomla gizli girişin değer formunun url'ye gitmesi gerektiğini nasıl biliyor?
@RiccardoZorn temel seviyede doğrudur. Yaygın olarak ayarlanan iki gizli form alanı vardır: seçenek ve görev.
Seçenek: com_example
Gibi bileşen adı, sayfayı bu bileşeni yüklemeye yönlendirir.
Görev: Bir denetleyici işlevi veya bir denetleyici ve çağrılacak bir işlev. Eğer bir '.' daha sonra yüklenecek denetleyiciyi belirtir ve sonra noktadan sonraki parçanın adıyla işlevi çağırır. Nokta yoksa, işlevi varsayılan denetleyicide (genellikle bileşenin temel klasöründeki controller.php) çalıştırır.
Ayrıca özellikle araç çubuğu düğmeleri hakkında soru sorarsınız. Bu, düğmelere güç vermek için Joomla tarafından otomatik olarak yüklenen biraz javascript içerir.
Düğme tıklandığında, Joomla.submitbutton()
tetiklemelidir. Bu işlev, tıklanan düğmeye göre ayarlanacak görev olan bir değer alır. Kaydet düğmesine tıklarsanız, bu genellikle görevi import.save
Olarak ayarlar. (Düğmenin aslında bu bileşende var olduğunu düşünmüyorum, ancak birçok kişi buna sahip olacak.)
submitbutton
işlevi varsayılan olarak bunu başka bir işleve submitform
iter. Bu işlev daha sonra bu görevi uygun gizli alana kaydırır. Sonunda bu formu gönderir.
Bu nedenle, bu araç çubuğu düğmeleri gönderme düğmeleri olmasa da (veya genellikle form etiketinde bile), task
gizli değerini günceller ve javascript kullanarak formu gönderir.
Temel javascript işlevlerini burada bulabilirsiniz: media/system/js/core-uncompressed.js
Görev, ya ana bileşen klasöründeki controller.php'deki bir yöntemdir (tek bir Word ise) veya denetleyicinin adı ve yöntemi bir nokta ile ayrılmış, yani install.install
controllers/install.php
içindeki install()
yöntemi