Mtawala wa Mtazamo wa Modeli (Model View Controller, MVC)
From Joomla! Documentation
Joomla inashugulika sana na patani ya mchoro wa Mtawala wa Mtazamo wa Modeli.
Ikiwa Joomla inaanza kuandaa maombi kutoka kwa mtumiaji, kama vile GET kwa ukurasa halisi, au POST inayohusiana na data ya fomu, mojawapo ya jambo la kwanza Joomla itakalofanya ni kuchambua URL na kuamua komponeti gani utakuwa na mamlaka ya kupeana maombi, na kupeana uthibiti kwa komponenti hio.
Ikiwa komponenti iliundwa kwa patani ya MVC, itapeana uthibiti kwa mtawala. Mtawala anamamlaka ya kuchambua maombi na kuamua kuwa ni modeli gani unahitaji kudhibitiwa na ombi, na ni mtazamo gani utatumika kwa kuregesha matokeo kwa mtumiaji.
Modeli inajenga gamba kwa data zinazotumiwa na komponenti. Kwa kesi nyingi, data hizi zitatoka kwa hifadhidata - ama hifadhidata ya Joomla au hifadhidata tofauti za nje - lakini modeli pia unaweza kupata data kutoka kwa vyanzo vingine, kama API ya mahuduma ya mitandao yanayoendeshwa katika seva nyingine. Modeli pia unamamlaka ya kusasisha hifadhidata wakati wa mwafaka. Kusudi ya modeli ni kujitenga na mtawala na kuangalia kutoka kwa maelezo na ni vipi data zitapatikana au zitarekebishwa.
Mtazamo una mamlaka wa kutengeza pato ambalo komponenti itatumia kwa kisakuzi. Itatoa witu kwa modeli ya taarifa yoyote inayohitajika, na itapeana fomati ya sahihi. Kwa mfano, mtazamo utaweza kuvuta orodha ya vitu vya data kutoka kwa modeli na kufunga vitu hivyo katika jedwali ya HTML.
Since Joomla is designed to be highly modular, the output from the component is generally only part of the complete web page that the user will ultimately see. Once the view has generated the output, the component hands control back to the Joomla framework which then loads and executes the template. The template combines the output from the component, and any modules that are active on the current page, so that it can be delivered to the browser as a single page.
Kwa kutoa nguvu na urahisi wa ziada kwa wachoraji wa wavuti (ambao wana maslahi ya kutengeza michoro mipya pekee, sio kuchezea msimbo wa msingi) Joomla itagawanya mtazamo wa asili kwa namna mbili: mtazamo wa kando au mpangilio. Mtazamo unaovuta data kutoka kwa modeli (kama patani ya asili ya MVC), lakini tena unapeana data kwa mpagilio, ambao una mamlaka kwa kufomati data na kuwakilisha kwa mtumiaji. Ubora wa ugawanyaji huu ni kuwa mfumo wa templeti wa Joomla unapeana mbinu rahisi kwa kubadilisha mipangilio ndani ya templeti. Haya mabadilisho ya mpangilio (yanajulikana kama "template overrides" kwa sababu ni sehemu ya templeti, hata ikiwa mpangilio (sio templeti) utabadilishwa) yatafungwa pamoja na templeti, na mchoraji wa templeti atapata uthibiti wa ujumla wa pato kutoka kwa kiini cha Joomla na viendelezo vyote vya mkono wa tatu ambavyo vitazingatia na patani ya mchoro wa MVC.