Аз ще се опитам тук, за да обясни начина, по който се обърне писмено сайтове, където те могат да използват приставки. Пример за това известно PhpNuke скрипт. Нямаше да му подхода, използван в това обвини, за модул е много удобно. Но тъй като на чепат общ код, за да приложи такъв скрипт на сериозни сайтове, или по-скоро се каже, портали с голям брой посетители, това не се препоръчва. Защо? Сценарият работи бавно, много голям товар върху базата данни. Можете да все още много да се опише, но това е за друга статия. Ако някой се интересува. че интернет е пълно с описания на двигателя. Най- <неудобоваримости> PhpNuke бях себе си убеден. Моята основна проект NVIDIA BIOS Collection в началото се основава на PhpNuke, но постоянни проблеми с хостинг ме накараха да започне да развива своята портал система от нулата. От PhpNuke аз да се вземат само най-основните модули, а останалите направиха същото себе си. И така, да започнем с това. На първо място, е необходимо да се помисли за системата на каталози и къде ще се намира. Ето един пример изпълнение.
* / Модове / - директория за съхранение на модули
* / Img / - снимки
* / Включване / - каталога на помощни файлове
Това е, което сме сега, докато е необходимо. Нанесете блокове и все пак ние Skiny ние няма. В моя портал също е имало и други каталози
Е и други каталози.
Главната директория се съхраняват само един файл index.php и цялата работа минава през него. Сега ние трябва да реши как ще изглежда на самия сайт. За нашия пример, най-простият вариант на подхода на проектиране. отгоре на сайта. в долната част на страницата, а в средата ни информация от модули. За да направите това, включете директорията създаде два файла top.php и bottom.php, съответно, че ще бъде в горната част на конструкцията и долната част на дизайна.
Също така, да създадете конфигурационен файл config.php и го сложи в пътищата за включване.
Ето един примерен схема на работа index.php
Сега се създаде два файла mod1.php и mod2.php и ги поставя в каталожните модове.
Нека обясня малко тук тази линия
Във всеки модул, е желателно да се включи такава проверка, за да се избегне модул файла на поканата е index.php. На примера на моя портал за модул повикване Имам връзка с базата данни, прочетете някои от глобалните променливи и без тях, нито един от самия модул не може да работи. Така че е по-добре просто да изключите модула разговор директно. Контактни модули в този случай, произведени в съответствие с формуляра index.php? Mod = Име на модул, но тук е възможно да се прилагат и NC система. Тогава URL става име на index.php / модул /
Тук основно много груба схема на реализация на модула. Можете да добавите всеки модул, просто го постави в каталожните модове / и се придържат към общата концепция за работа, за да се изгради един много сложен сайт. Какво е използваемостта? В действителност премахнете от основна грижа за садене код дизайн. Това прави всеки index.php. Същият модул трябва само да работят и да бъдат полезни. Централизирането на събирането на основни данни от база данни или на конфигурационния файл на, глобални променливи, сайт, информация за потребителя и т.н. От друга страна, има и недостатъци (въпреки че в определен поглед те не изглежда да е недостатъци), да кажем, че е необходимо ясно да се гарантира, че всички имена на променливи, използвани за модула, за да не заместват, случайно, им вътре в модула. Един път ми се случи. След такова събитие, аз взех за себе си за правило да име системни променливи в такъв вид променлива $ sys_imya. Друг очевиден недостатък е трудността на изпълнение на различни варианти за дизайн на различните модули. Но! Тук също има начин.
Ако го е правило, че всеки модул е длъжен да се направи извод капачка и отдолу на сайта да направи, а след това вече дава право на свободен избор за това какво и как да се показва на.
Например, нашите прости модули могат да бъдат модифицирани в това изпълнение.
Как да се направи в този конкретен случай и да решите. Аз просто се опитах да изпрати тези, които започват да пишат на PHP, и може и тези, които вече пише, на определен вариант или стил на програмиране.