کامپوننت جوملا چیست ؟
کامپوننتها در جوملا افزونههایی هستند که همانند نرمافزارهایی مستقل به شمار میروند. هر کامپوننت میتواند خدماتی خاص و متفاوت با سایر کامپوننتها و هستهی جوملا را ارائه کند. هستهی جوملا شامل چندین کامپوننت از پیش نصب شده است. از آن جمله میتوان به کامپوننت Content برای مدیریت محتوا اشاره کرد.
به عبارت دیگر هستهی جوملا در این سیستم نقش سیستمعامل و هر کامپوننت نقش یک نرمافزار که روی این سیستم عامل نصب شده را ایفا میکنند.
کامپوننتهای جوملا اغلب دارای بخشی برای نمایش در ظاهر سایت و بخشی برای مدیریت در پشت صحنه هستند. از مشهورترین کامپوننتهای قابل نصب در جوملا میتوان به کامپوننت مدیریت محتوای K2 اشاره کرد که جایگزینی قدرتمند برای مدیریت محتوای پیشفرض جوملا به شمار میرود.
هر صفحه از ظاهر سایت در جوملا میبایست توسط یک کامپوننت به عنوان هستهی مرکزی صفحه ایجاد شود.
یکی از ویژگی های مهم در جوملا قابلیت توسعه پذیری آن است. کامپوننت ها یکی از اجزای مهم جوملا هستند که با استفاده از آنها می توانیم کارهایی را که دوست داریم بر روی محتوای مورد نظر خود انجام دهیم. به عنوان مثال برای نوشتن مطالب مورد نظرمان در جوملا، در پشت صحنه از کامپوننت مربوط به محتوا که با نام com_content شناخته می شود استفاده می کنیم. کامپوننت های خیلی زیاد دیگری هم وجود دارند که می توانید از سایت های معتبری که در حوزه حوملا فعالیت می کنند، آنها را دانلود کنید و در وب سایت خود استفاده کنید. اگر هم هیچ کدام از این کامپوننت ها نیاز شما را برطرف نکرد، می توانید خودتان دست به کار شوید و یک کامپوننت برای خودتان یا دیگران بنویسید.
در این قسمت می خواهم توضیحات مختصری در مورد ماهیت کامپوننت ها و نحوه عملکرد آنها ارائه کنم. قبل از هر چیز کمی بیشتر در مورد اصطلاح کامپوننت بحث کنیم:
همانطور که گفتم جوملا یک سیستم مدیریت محتواست که از قابلیت توسعه پذیری بسیار بالایی برخوردار است؛ یعنی شما خودتان می توانید با مهارت های برنامه نویسی خودتان، توسعه های فراوانی (با رعایت استخوان بندی اصلی ارائه شده توسط جوملا) را تهیه کنید و به قابلیت های این سیستم مدیریت محتوا بیفزایید. کامپوننت ها نیز یکی از توسعه های (Extension) موجود در جوملا هستند. اما کامپوننت مهم ترین واحد عملیاتی در جوملا است. شاید طبق گفته وب سایت جوملا، بتوانیم آنها را به عنوان نرم افزار های کوچک کاربردی (Mini-application) بنامیم. شاید بتوانیم بگوییم که جوملا یک سیستم عامل است و کامپوننت ها به عنوان نرم افزارهای کاربردی دسکتاپی عمل می کنند.
بیشتر کامپوننت ها دو بخش دارند، یکی مربوط به قسمت مدیریت (administrator) و دیگری مربوط به قسمت کاربر (site) سایت. همانطور که می توانید حدس بزنید، قسمت مربوط به طرف کاربر، محتوایی را که کاربر درخواست کرده تا مشاهده کند، نمایش می دهد. اما قسمت مربوط به مدیریت یک رابط کاربری در اختیار مدیر(ان) وب سایت قرار می دهد تا جنبه های مختلف آن کامپوننت را پیکربندی و مدیریت کنند و مسلما این قسمت فقط از طریق قسمت مدیریت قابل دسترسی است.
همانطور که در بالا گفتم، به صورت پیش فرض کامپوننت هایی در جوملا وجود دارد، مثل کامپوننت مربوط به محتوا، فرم های تماس یا لینک های وب.
دانلود افزونه و کامپوننت های جوملا
کامپوننت های جوملا از لحاظ فنی چگونه عمل می کنند؟
با استفاده از چهارچوبی که جوملا در اختیال ما قرار می دهد می توانیم کامپوننت ها را به دو صورت طراحی کنیم: یا با استفاده از مدل مسطح (Flat Model)؛ یا با استفاده از مدل MVC (Model-View-Controller) می توانیم این کار را انجام دهیم.
قبل از هر چیز بهتر است در مورد مدل MVC کمی توضیح دهم. اگر مدل MVC را به خوبی بشناسید، به راحتی می توانید همه توسعه های مربوط به جوملا را درک کنید، ویرایش کنید یا از ابتدا یکی برای خودتان بسازید!
مدل MVC چیست؟
مدل MVC در اصل یک مدل طراحی نرم افزار است که به ما این امکان را می دهد منطق مربوط به کدها و کاری که انجام می دهند را از قسمت ارائه اطلاعات جدا کنیم. پیش فرض اولیه مربوط به این مدل برنامه نویسی بر این پایه است که منطق مربوط به کدنویسی را می توانیم در یک گروه دسته بندی کنیم و سپس رابط کاربری و ارتباط با کاربر را نیز می توانیم به صورت جداگانه شخصی سازی کنیم بدون اینکه لازم باشد منطق کدنویسی را تغییر دهیم. به عبارت دیگر پیش فرض ما این است که می توانیم منطق کدنوسی را از فرایند ارائه اطلاعات به کاربر جدا کنیم.
منظور از Model چیست؟
model قسمتی از کامپوننت است که داده های مربوط به برنامه را درون خود قرار می دهد. این قسمت، روال های مورد نیاز برای مدیریت و دستکاری داده ها را با روشی منطقی در اختیار ما قرار می دهد و علاوه بر این روال های مورد نیاز برای بازیابی داده ها از مدل را برای ما فراهم می کند. به عبارت کلی، مهم ترین تکنیک دسترسی به داده ها باید در داخل مدل قرار داده شود. با استفاده از این روش، اگر قرار باشد یک برنامه کاربردی از سیستمی که داده ها را به صورت فایلهای معمولی ذخیره می کند به سیستمی منتقل شود که داده ها را در پایگاه اطلاعاتی ذخیره می کند، فقط لازم است قسمت مدل (Model) تغییر کند و نیازی به اعمال تغیرات در قسمت view یا controller نیست.
منظور از VIEW چیست؟
View در یک کامپوننت داده هایی که از model دریافت می شود را به گونه ای ارائه می کند که برای برقراری تعامل مناسب باشند. در مورد یک برنامه کاربردی تحت وب، view باید این داده ها را به صورت یک صفحه اچ تی ام ال ارائه کند تا بتوانیم آنها را در اختیار کاربر قرار دهیم. View داده ها را از model بیرون می کشد (این داده ها هم از طرف controller برای model ارسال شده است) و آنها را در اختیار الگو (Template) هایی قرار می دهد که اطلاعات را در اختیار کاربر قرار خواهند داد. View هیچ تغییراتی را بر روی داده ها انجام نمی دهد، فقط داده هایی را که از model دریافت کرده است نمایش می دهد.
منظور از controller چیست؟
کنترل کننده (Controller) مسوول این است که مشخص کند به درخواست های کاربر باید چه پاسخی داده شود. در مورد یک برنامه کاربردی تحت وب، معمولا درخواست کاربر مشاهده یک صفحه است. کنترل کننده مشخث می کند که کاربر چه درخواستی را ارائه کرده و مدل (Model) مناسب برای دستکاری صحیح اطلاعات مورد درخواست کاربر را فراخوانی می کند و این مدل، داده ها را برای view می فرستد. کنترل کننده، داده ها را در model نمایش نمی دهد، این قسمت فقط روش هایی را که مدل با استفاده از آنها داده ها را آماده می کند راه اندازی می کند؛ و سپس model را به سمت view مناسب برای نمایش داده ها راهنمایی می کند.