ПредишенСледващото

Съществуващите меню от трета страна и да изберете един от тях

Започнете с малка забележка: Считано от днес, има доста голям брой различни менюта за различна версия на Joomla. Но всеки един от тях има своя нюанс, а понякога те са "Кривото", инсталиран на сайта, или не съответства на необходимия шаблон. Нещо обхождане, нещо се е, добре. Вече знаете много добре какво имам предвид. Така че, когато наистина трябва модул меню - десен работи и не е в противоречие с желания шаблон - остава два начина: купуват готов модул или да го напишат сами.

Първият въпрос, който възниква - откъде да започнете? Но вие трябва да започнете с разбиране на това, което искаме да се получи в крайна сметка. Имаме ли нужда от динамично меню, отрупана с красиви ефекти "vyplyvaniya" или приплъзване, но които трябва да бъдат много внимателно адаптирани към всички съвременни браузъри? За да не дай боже навсякъде тя се показва, или "плуваше" не както трябва. Или да вземем един прост падащото меню, без ефекти и излишни украшения, но с гаранция за правилното функциониране на всеки браузър. Не знам за вас, но аз оценявам практичност и простота. Ето защо аз избирам втората опция. Но независимо от това по какъв начин да отида - трябва да изберете една и съща страна на менюто, от които можем изрежете нашия модул за Joomla.

Ако кликнете върху линка и вижте примери за свободен меню и уроци за създаването им и поставите на вашия уеб сайт, ще се видим отново - всички тези примери има струпани на менюто, но има и по-прости. Спрях в следващата версия - 27. Прости JQuery DROPDOWNS. вие ще видите, като кликнете върху линка. Резултатът от неговата преработка модул за Joomla момента видите на нашия сайт. Това е всичко, взех като основа за адаптиране към Joomla и тя ще покаже техниката на писане модул меню. Избрах го по две основни причини:

Какво друго ви трябва за една добра меню? )

Ние определя стъпките, необходими за адаптиране на менюто за Joomla и да го превръщат в един модул

Затова решихме в странична част на менюто, да намерите и изтеглите приемлив вариант. След това, разбира се, можете да започнете да учите кода, който причинява избраната функция на менюто. Повечето (ако не всички) примери за менюта, които се изтеглят, менюто е демонстрация на следните файлове:

Освен това, когато ние се справят с факта, че тя представлява пример на демо част на менюто, трябва да направите следните неща:

1. Напишете празен модулен "тапа" за Joomla и да го инсталирате на нашия сайт Joomla. Активирайте чрез администраторския панел и настроен на правилната позиция на шаблона.

2. Директно на сайта в рамките на определения модул приставка серия, за да вмъкнете парчета код от изтегленото пример за нас. Т.е. от "Copy-Paste" прави прехвърляне на CSS стилове, оформление, изображения и други неща. Ако CSS стилове може да се вкара директно, без първите промени в HTML-код, ще трябва да бъдат променени значително, защото искаме, а не статични елементи от менюто демо точки получат реален вътрешен меню Joomla.

3. "Bring" код в нашата шапка със състоянието на готовност, т.е. когато появата на менюто и правилното му функциониране с ядро ​​Joomla няма да бъде приемливо за нас. Тази част е най-трудното, защото тук влиза в сила, такива нюанси като правилната работа меню под максималния брой модели и познаване на вътрешното меню Joomla на устройството. Въпреки че, ако не се направи търговски модул, е възможно да не се притеснява - от главното меню, за да работи правилно дори във вашия конкретен шаблон. По този начин, на този етап, нашата празен "сляпо" модул е ​​постепенно се превръща в един модул напълно работеща меню.

4. Когато модулът е готова, тя се срязва в папка, обратно и да се превърне в пълноправен разпределение Joomla модул меню.

Може би, не мога да в тази статия, за да покрие всички нюанси на "фина настройка" на модула, тъй като във всеки случай е съвсем различен и изисква изобретателност, умения, творчески част, "визия" като модул трябва да работи, и, разбира се, по-голямо желание да направи своя модула на менюто. Въпреки това, аз ще обясня на читателя следните неща:

1. Как да получите празна титулна модул, и то модул меню направи

2. Какво да търсите при финализирането на щепсела

3. Как вътрешния изпълнението на менюто Joomla. Ние ще напише клас помощник, който позволява удобно за работа с менюто.

Инсталиране на сляпо модул за бъдещо меню

Plug (следващия модул меню) ще се нарича mod_colormenu. Вътрешната структура на фиктивния модул е ​​стандартна за повечето модули, както и ще се състои от следните файлове и директории:

Нашата щепсел - това е всъщност много проста, "празен" модул рамка за Joomla 2.5, и аз няма да предприеме, за да обясни как се пишат, за да се спести време и пространство.

Ако все още не сте запознати с писането на модули за Joomla 2.5, а след това да се намери тази информация за това как да напишете своя първи "HelloWorld" модул от нулата, можете тук.

Задайте го на сайта (за предпочитане местно), където развитието на менюто на модула ще се извършва, тъй като ние трябва да имат пълен достъп до файловете, инсталирани свещи. В този пример, аз избрах стандартната Joomla Beez_20 шаблона за челни части и инсталиране на модул в позиция позиция 1:

Адаптиране на страната на менюто под Joomla

И нашият модул-мъниче изглежда на сайта. Както можете да видите, докато той просто показва текстов низ "Това е приставка за модула на менюто":

Адаптиране на страната на менюто под Joomla

капачка за пълнене

След като успяхме да изградим една капачка на сайта, ние започваме бавно да го превърне в пълноправен единица. За да се избегнат множество инсталации, предпочитам да направя всички промени точно в мястото, където Joomla инсталирате модула. След като всичко работи както трябва, аз се опаковат на модула за файловете в архива и да направи пълен разпределение. Ние ще направим същото. Така че, отидете на Joomla уебсайт основната директория и отворете файла в нашата капачки / модули / mod_colormenu /. Първото нещо, което ще направя - е да попълните helper.php на логика файл. Нека създадем следващият клас MenuItem за съхранение на елемент от менюто:

Копирайте част от код на определението на MenuItem клас. По-горе, и го поставете директно след първия ред, който проверява разрешението за достъп до helper.php файл:

Така че, на този етап в нашата helper.php файл определени два класа - MenuItem и помощник клас - modColorMenuHelper - той някога е бил във файла, но празен, т.е. без никаква логика. Също така, вие ще забележите, че методът за да се показват () на класа MenuItem все още празна. Малко по-късно ще напише код, който ще бъде използван там.

Joomla меню с точка база данни гледка е представена в Joomla 2.5 версия в две таблици (за по-ранни версии, като 1.5 е също две маси, но в състава на областта има различен):

  • prefix_menu - в тази таблица съхранява всички елементи от менюто, и това се отнася за всички нива (под-елементи за 2-ри 3-ти меню нива и т.н., също се съхраняват в тази таблица)
  • префикс _menu_types - Тази таблица съхранява видовете меню. Например, ако мениджър меню Joomla можете да създадете ново меню, а след това те ще попаднат в тази таблица

* Prefix_ - се намира на 5 характер префикс на таблиците в базата данни. Тя се определя (генерира) в етап Joomla първоначално инсталиране и е различна за различни бази данни. Така например, в моята база данни таблица се нарича така: yrepq _menu. вие ще се нарича по различен начин.

За да разберем по-добре - на тази снимка, която показва структурата на таблицата с префикс _menu:

Адаптиране на страната на менюто под Joomla

Забележка: скрийншота можете да видите таблиците в базата данни MySQL с. Аз препоръчвам свалянето Navicat Lite програма, за да се свърже с базата данни MySQL. Тя е безплатна и ви позволява удобно да видите всички масата за Joomla. Можете да го изтеглите от нашия каталог тук

Защо ние сме определили клас MenuItem? В действителност, в обектите от този клас ще се съхранява записи от _menu на префикс маса. В Joomla вече има механизъм за достъп до менюто чрез системни повиквания. Но по мое мнение, не е много удобно. Ето защо за лесно съхранение елемент от менюто и да работят с него и ние писахме MenuItem клас. За да ви помогне да се ориентирате и да се разбере какво даден клас, ще дам описание на полетата:

Напиши заявка, съчетаващ маса меню и menu_types

Сега, когато имаме смята назначаването на поле клас, аз ще ви обясни как да пиша SQL-заявка в базата данни на Joomla, която ще обедини две таблици: меню и menu_types. Защо се съчетаят тези таблици? И, за да съответстват на всеки елемент от менюто с вида на менюто, което е било. Нека да разгледаме картината, за да се разбере по-добре как таблиците са свързани в областта menutype:

Адаптиране на страната на менюто под Joomla

Както можете да видите menutype поле, общ за двете таблици. И това ще бъде връзката между елемента от менюто и вида на менюто. към които тя отговаря. Сега ние трябва да се напише SQL-заявка и да го добавите, за да функционира в нашия клас половинка modColormenuHelper. Извикване на функция getDefMenuParams (от "получи подразбиране PARAMS меню" - се менюто с настройки по подразбиране на):

Писане метод getMenuItems за елементите от менюто

Напиши в нашия клас помощник modColormenuHelper такъв метод, който ние наричаме getMenuItems:

След този разговор, ние имаме променлива меню $. и чрез нея можем да получим информация за елементите на менюто:

Но да се работи с такъв масив не е много удобно, защото ние нямаме структурата за работа йерархията на менюто. т.е. структура, която ще даде възможност удобно да съхранява информация за връзка "родител-дете" отношенията между опциите на менюто. Ето защо ние пише клас MenuItem - да има набор от "деца" (вид променливи детски $) за всеки тип меню. Но за да се счита, че единственият метод, ние просто запълване на масива на деца следния прост алгоритъм:

1. Има масив $ resultItems елементи от менюто. който трябва да се върне на изхода от метода

2. Ако текущата позиция в менюто да се лекуват - вече е майка, просто да го добавите към $ resultItems масив

3. Ако текущата позиция в менюто да се лекува - не е майка, а след това ще свършим $ resultItems масив и проверка на родителя, на което трябва да се добави като дете на текущия елемент

Свързани статии

Подкрепете проекта - споделете линка, благодаря!