Каква е разликата между CMS компонент на Joomla и модул
Начинаещите, а понякога и по-опитните разработчици на уебсайтове, които правят първите си стъпки в създаването на сайтове за Joomla CMS, се сблъскват с две концепции, които на пръв поглед изглеждат идентични. Това са концепциите на компонента Joomla и модула Joomla.
Тези понятия, разбира се, са взаимосвързани, но имат фундаментални различия, както по отношение на функционалното им предназначение, така и по отношение на тяхното създаване и развитие. Нека да видим какво е компонент на Joomla, какво е модул на Joomla и какви са основните им разлики.
Без да навлизаме във вътрешната структура на компонентите и модулите засега, нека направим аналогия на тяхното функционално предназначение в цялостната структура на един сайт, работещ под CMS Joomla.
И така, представете си обикновена кола и от какви функционални единици се състои. Разбира се, аналогията не е пълна, но е доста подходяща за разбиране на разликата между компонентите и модулите на Joomla.
Joomla CMS компоненти и модули като автомобилни възли.
1. Основните компоненти, които са проектирани директно за движение на автомобила.
Това е двигател, скоростна кутия, шаси и др. Това може да включва и възли, които не участват пряко в движението на автомобила, но без които е или невъзможно или трудно функционирането на основните компоненти (резервоар за газ, система за запалване и др.).
Можете да замените един компонент с друг, например да поставите автоматична скоростна кутия вместо ръчна. Но не можете напълно да премахнете скоростната кутия.
Всичко това са компоненти на Joomla. Възможно е да се инсталира магазин за продукти на сайта вместо каталог, но е невъзможно да се покаже структуриран списък с продукти от базата данни без и двете.
2. Спомагателни възли, които не участват пряко в движението на автомобиласе приемат, но са необходими само като спомагателни елементи.
Това може да бъде получаване на информация за работата и състоянието на основните компоненти, създаване на по-комфортни условия за шофиране, получаване на допълнителна информация и блокове за управление на превозното средство.
Това включва всичко, което можете да видите и пипнете в колата, без да гледате под капака и да го разглобявате. Това са индикатори и броячи на предния панел, всички огледала, волан, педали, лостове, бутони и др.
Такива възли могат да се преместват от едно място на друго, някои да се премахват, други да се добавят, но колата ще се движи както преди.
3. Тялото, върху което са инсталирани и прикрепени всички възли.
Разлика #1.
CMS компонентите на Joomla са софтуерните части на сайта, които определят неговата работа и без които е невъзможна правилната работа на сайта.
Това означава, че без определени компоненти изпълнението на нужните ви функции ще бъде невъзможно. Тоест, ако сте преценили, че сайтът трябва да има книга за гости, тогава този компонент ще е задължителен. Защо не модул?
Първо, съдържанието на книгата за гости трябва да се показва в основната част на страницата, второ, съобщенията, изпратени от посетителите, трябва да бъдат обработени (проверка на валидността на имейл и url, проверка за нецензурни изрази, проверка за SQL инжекции и т.н.), и трето, съобщенията на посетителите трябва да бъдат записани в базата данни на сайта.
Всичко по-горе са преките задължения на компонентите на Joomla, но ако трябва да покажете например най-новите рецензии от тази книга за гости на главната страница, този модул ще изпълни тази работа.
По този начин модулът в по-голямата част от случаите е необходим само като спомагателен елемент къмсъществуващ компонент.
Разлика #2.
Само един компонент и само едно поле могат да показват нещо на страницата на сайта едновременно. Това поле е основното поле на страницата (най-често централната част на страницата) и само компонентът може да показва данни в него. А за модулите това поле е достъпно само при използване на специални методи.
В същото време десетки модули могат да бъдат разположени на една и съща страница и да показват абсолютно всякаква информация в тялото си (в границите на своя модул), дори по никакъв начин не свързана с текущия компонент. Освен това абсолютно всички модули на сайта могат да бъдат разположени и да извеждат информацията си в едно и също поле. Това, разбира се, е безсмислено, тъй като разработчиците на Joomla са дефинирали до 50 полета за извеждане на модули, но въпреки това в този случай няма ограничения.
Разлика #3.
Следващата разлика между компонент и модул е, че когато изпълнява функциите си, модулът не записва нищо в базата данни на сайта. Разбира се, никой не е наложил такова ограничение във възможностите, но ако подходите правилно към проблема, тогава модулът не трябва да пише нищо в базата данни сам и ако има такава нужда, тогава трябва да се свържете със съществуващия компонент на Joomla и да прехвърлите данни към него, за да пишете в базата данни.
Разлика #4.
Принципът на работа на CMS Joomla не включва механизъм за директен достъп до отделен модул от линията на браузъра и предаване на параметри към него. Модулът получава всички параметри и основни данни от базата данни на сайта. Разбира се, този факт може да бъде заобиколен и прехвърлен чрез метода GET или POST към някаква променлива, която само модулът разпознава, но според мен това няма смисъл и изглежда по-скоро като извращение.
съществува,разбира се, има и други разлики, например компонентите и модулите имат различни файлови и вътрешни структури, различни начини на управление и администриране, те се инсталират и поставят в различни папки на сайта по напълно различни начини. Но всички тези различия не отговарят на въпроса: "Защо компонент, а не модул?".
Така че, обобщавайки всичко по-горе, можем уверено да заключим, че разликите между модула и компонента са значителни и не трябва да се бъркат един с друг.
За да решите дали имате нужда от модул или компонент за конкретна задача, първо дефинирайте:
- какво точно ще се показва на всяка страница от вашия сайт и на какво място от тази страница;
- дали тази информация ще бъде основна или спомагателна и дали трябва да се показва в основното поле на сайта;
- дали ще е необходимо да се показва някаква информация в няколко раздела на сайта;
- откъде ще дойдат изходните данни;
- дали потребителят ще трябва да изпрати някакви данни на сайта.
Когато отговорите ясно на всички тези въпроси за себе си, тогава няма да е трудно да определите какво ви трябва в този случай, модул или компонент.
Всичко най-добро и успех в овладяването на CMS Joomla!