it-swarm-tr.com

Görünümlü / görevli form gönderimi gerçekten nasıl çalışır?

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?

5
Bogdan

@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

3
David Fritsch

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.installcontrollers/install.php içindeki install() yöntemi

2
Riccardo Zorn