Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Створення Web-ресурсу з використанням PHP, MySQL та XML

ДипломнаДопомога в написанніДізнатися вартістьмоєї роботи

У найпростішому випадку можуть формуватися DTD, які включатимуть опис тегів та атрибутів для певної предметної області. DTD передаються всім учасникам віртуальної організації. Далі кожний учасник формуватиме документи для пересилки у XML-представленні, користуючись DTD. Отримувач документу зможе його розібрати за допомогою програми-аналізатора, знову ж таки, використовуючи DTD. Завдяки такому… Читати ще >

Створення Web-ресурсу з використанням PHP, MySQL та XML (реферат, курсова, диплом, контрольна)

Вступ

Історія розвитку Інтернет починається з 1986 року, коли Національний науковий фонд США (NSF) почав створення мережі NSFNET, в якій використовувались високошвидкісні телефонні канали, що з`єднували 6 суперкомп`ютерів у різних куточках країни на основі протоколу TCP/IP та інших технологій, відпрацьованих у мережі ARPANET (перша у світі глобальна мережа створена у 1968 р., припинила функціонування в 1990 році). Мережа NSFNET стала основною магістральною (backbone) структурою для Інтернет, офіційною датою виникнення якого є 1990 рік. В даний час основу Інтернет складають високошвидкісні магістральні мережі. Незалежні автономні мережі підключаються до магістральної мережі через крапки мережного доступу NAP (Network Access Poіnt).

Інтернет складається з багатьох тисяч корпоративних, наукових, урядових та домашніх мереж. Об'єднання різнорідних за архітектурою мереж стало можливо завдяки протоколу IP (англ. Internet Protocol) і принципу маршрутизації пакетів даних. Протокол ІР був спеціально створений агностичним у відношенні до фізичних каналів зв’язку. Тобто будь-яка мережа передачі цифрових даних може передавати інтернет-трафік. На стиках мереж спеціальні маршрутизатори займаються сортуванням та перенаправленням пакетів даних, базуючись на ІР-адресах одержувачів цих пакетів. Протокол ІР утворює єдиний адресний простір у масштабах всього світу, але в кожній окремо взятій мережі може існувати свій власний адресний підпростір. Така організація ІР-адрес дозволяє маршрутизаторам однозначно визначати подальший напрямок для кожного, навіть найменшого, пакету даних. У результаті між різними мережами Інтернету не виникає конфліктів і дані точно і без перешкод передаються від мережі до мережі по всій планеті.

Інтернет — це практично нескінченний інформаційний ресурс, він є всесвітнім джерелом знань, глобальним і загальнодоступним по своїй суті. Стрімкий розвиток Web-ресурсів замінив стандартне поняття терміну «Інтернет». Найчастіше під цим словом розуміють Web-простір і доступну через нього інформацію, а не фізичну мережу, що призводить до різноманітних юридичних колізій та правових наслідків.

Для розробки Web-сторінок використовують безліч засобів, але в даному дипломному проекті використані наступні:

1) PHP — серверна мова сценаріїв, яка вбудовується безпосередньо в HTML-код.

2) MySQL — компактний багатопотоковий сервер баз даних.

3) XML — описує клас об'єктів даних, що називаються XML-документами і частково описує поведінку комп’ютерних програм, що їх обробляють.

4) CSS — каскадні таблиці стилів, спеціальна мова, що використовується для відображення сторінок, написаних мовами розмітки даних. Найбільш часто CSS використовують для візуальної презентації сторінок, написаних HTML та XHTML.

Актуальність даної теми дипломного проекту пояснюється популярністю описаних вище засобів. Результати останніх досліджень показали, що кількість Web-ресурсів написаних за допомогою PHP в поєднанні з MySQL складає 80% від загальної кількості. Технологія XML в свою чергу досить швидко набула популярності і її використання продовжує зростати.

Предметом дослідження є особливості взаємодії та практичне використання наступних засобів розробки: PHP, MySQL та XML.

Головною метою проекту є процес створення Web-ресурсу з використанням описаних вище засобів.

1. Огляд засобів розробки

1.1 Серверна мова програмування PHP

Для початку проектування потрібно детально проаналізувати мову опису сценаріїв — PHP. Мова PHP (Personal Home Pages) була розроблена у 1994 році Расмусом Лердорфом. Проте в 1997 році інтерпретатор був переписаний іншими програмістами — з’явилась мова PHP3 з ширшими можливостями, яка завоювала досить високу популярність. Крім цього, абревіатура PHP стала офіційно розшифровуватись як PHP Hypertext Preprocessor (препроцесор гіпертексту PHP). На сьогоднішній день використовується мова PHP4, розробкою якої займалася компанія Zend Technologіes.

Стратегія Open Source і розповсюдження початкових текстів програм в відкрито, безсумнівно справили благотворний вплив на багато проектів, в першу чергу — Linux, хоча успіх проекту Apache сильно підкріпив позиції прихильників Open Source. Сказане відноситься і до історії створення РНР, оскільки підтримка користувачів зі всього світу виявилася дуже важливим чинником в розвитку проекту РНР.

PHP є серверною (виконується на стороні сервера) мультиплатформною мовою опису сценаріїв, яка вбудовується безпосередньо в HTML-код. За допомогою PHP можна здійснювати динамічне формування сторінок, а також досить просто організувати інтерфейс до бази даних. Мова має простий синтаксис і малий розмір вихідного коду.

Використання PHP доцільне при створенні часто обновлюваних або громіздких у написанні програм, швидкість виконання для яких не є критичним параметром. PHP скрипт працює досить швидко, але не так швидко як заздалегідь скомпільована програма. Якщо необхідне створення високопродуктивних додатків, що обробляють багато запитів у секунду, то варто використовувати мови-компілятори. На сьогоднішній день PHP завоював популярність серед розробників Internet-систем завдяки своїй зручності і простоті.

В PHP існує безліч інтерфейсів для роботи з БД: вбудовані бібліотеки для роботи з MySQL, PostgreSQL, mSQL, Oracle, dbm, Hyperware, Informix, InterBase, Sybase; через стандарт відкритого інтерфейсу зв’язку з базами даних ODBC можна підключатися до всіх баз даних, до яких існує драйвер.

Ефективність є дуже важливим чинником при програмуванні для середовищ розрахованих на безліч користувачів, до яких належить і WEB. Важливою перевагою PHP є те, що ця мова належить до інтерпретованих. Це дозволяє обробляти сценарії з достатньо високою швидкістю. За деякими оцінками, більшість PHP-сценаріїв обробляються швидше за аналогічні їм програми, написані на Perl. Проте скомпільовані файли, працюватимуть значно швидше — в десятки, а іноді в сотні разів. Але продуктивність PHP цілком достатня для створення серйозних WEB-додатків.

1.2 База даних MySQL

В даний час реляційні системи керування базами даних (СУБД) є важливим інструментом в багатьох областях, починаючи з традиційних: бізнес, наукове дослідження, освіта і закінчуючи розробкою пошукових серверів в Internet. Проте, не зважаючи на важливість наявності хорошої бази даних для ведення інформаційних ресурсів і доступу до них, багато організацій не застосовують їх в своїй роботі. Історично склалося так, що СУБД коштували дуже дорого, а продавці встановлювали дуже високі ціни як на програмне забезпечення, так і на свої послуги з технічної підтримки. Крім того, механізми СУБД вимагали задоволення вимог по продуктивності від апаратних платформ, що ще більше підвищувало вартість таких рішень.

У останні десятиліття ситуація різко змінилася як з погляду програмного забезпечення, так і з погляду апаратури. Персональні комп’ютери одночасно дешевшають і стають потужнішими. При цьому визначилася тенденція створення високорівневих операційних систем, котрі можна купити по ціні дешевих лазерних дисків або отримати безкоштовно через Internet. До таких СУБД на базі ОС BSD UNIX відносяться: FreeBSD, NetBSD, OpenBSD, а також різні версії ОС Linux (RedHad, Caldera, LsnuxPPC).

Створення операційних систем, що дозволяють максимально використовувати збільшені можливості комп’ютерів, відбулося перш за все завдяки тому, що були розроблені і вільно розповсюджувалися такі засоби розробки, як компілятор GNU.

Одним з новітніх представників та недорогих баз даних є МуSQL, реляційна СУБД типу клієнт-сервер, створена в Скандинавії. СУБД МуSQL включає SQL-сервер і програми-клієнти, що здійснюють доступ до серверу, засоби адміністрування і програмний інтерфейс для програмування своїх особистих програм. СУБД МуSQL продовжує стрімко розвиватися. Додавання таких можливостей, як транзакції, блокування на низьких рівнях, застосування зовнішніх ключів і реплікації, дозволило звернути на себе увагу фахівців, котрі для рішення своїх прикладних завдань раніше привертали тільки «великі СУБД».

МуSQL — це проект співтовариства «Ореn Sourse», котрий може бути використаний вільно майже у всіх випадках, що сприяє швидкому зростанню його популярності. MySQL — компактний багатопотоковий сервер баз даних. MySQL характеризується великою швидкістю, стійкістю і легкістю у використанні. MySQL був розроблений компанією TcX для швидкої обробки дуже великих баз даних. Компанія стверджує, що використовує MySQL з 1996 року на сервері з більш ніж 40 БД, які містять 10 000 таблиць, з яких 500 мають більше 7 мільйонів рядків.

MySQL є ідеальним рішенням для малих і середніх додатків. Варіанти сервера компілюються на безлічі платформ. Найбільші можливості сервера виявляються на Unix-серверах, де є підтримка багатопоточності, що дає значний приріст продуктивності.

MySQL підтримує мову запитів SQL в стандарті ANSI 92 і окрім цього має безліч розширень до цього стандарту, яких немає ні в одній СУБД.

Короткий перелік можливостей MySQL:

1) Підтримується необмежена кількість користувачів, що одночасно працюють з базою даних.

2) Кількість рядків в таблицях може досягати 50 млн.

3) Швидке виконання команд.

4) Проста і ефективна система безпеки.

MySQL дійсно дуже швидкий сервер, але для досягнення цього розробникам довелося пожертвувати деякими вимогами до реляційних СУБД. У MySQL відсутні:

1) Підтримка вкладених запитів, типу SELECT * FROM table1 WHERE id IN (SELECT id FROM table2).

2) Не реалізована підтримка транзакцій. Натомість пропонується використовувати LOCK/UNLOCK TABLE.

3) Немає підтримки тригерів і процедур.

За словами творців саме ці пункти дали можливість досягти високої швидкодії. Їх реалізація істотно знижує швидкість сервера. Ці можливості не є критичними при створенні web-додатків, що в поєднанні з високою швидкодією і малою ціною дозволило серверу придбати велику популярність.

1.3 Мова та стандарти XML

Міжнародна організація W3C www. w3.org затвердила специфікацію XML 1.0 на початку лютого 1998 року. XML є підмножиною мови SGML — Standard Generalized Markup Language (ISO 8879) створеної у 60-х роках групою розроблювачів компанії ІBM. XML — описує клас об'єктів даних, що називаються XML-документами і частково описує поведінку комп’ютерних програм, що їх обробляють. Вона використовується як засіб для опису граматики інших мов і контролю за правильністю складання документів. Тобто сам по собі XML не містить ніяких тегів, призначених для розмітки, він просто визначає порядок їх створення.

Таким чином, у розробників з’являється унікальна можливість визначати власні команди, які дозволятимуть визначати дані, що містяться в документі. Наприклад, для опису групи студентів можна використати таку структуру:

Лістинг 1.1:

Іванов С.П.

Костюк А.П.

Храмцов Р.А.

XML-документи можуть виступати як унікальний спосіб збереження даних, що містить у собі одночасно засоби для розбору інформації і представлення її на стороні клієнта. Одним з очевидних достоїнств XML є можливість використання його як універсальної мови запитів до сховищ інформації.

На сьогоднішній день налічується велика кількість мов, створених на основі XML (рис. 1.1).

XML може використовуватися в будь-яких додатках, яким потрібна структурована інформація — від складних геоінформаційних систем, до звичайних «однокомп'ютерних» програм, що використовують цю мову для опису службової інформації.

Рисунок 1.1 — XML-сімейство специфікацій

Як основні застосування XML на сьогодні можна вказати:

1) XML-документи виконують роль універсального формату для обміну інформацією між окремими компонентами складної інформаційної системи.

2) XML є базовим стандартом для нової мови опису ресурсів, RDF, що дозволяє спростити багато проблем у Web, зв’язаних з пошуком потрібної інформації, забезпеченням контролю за вмістом мережних ресурсів, створення електронних бібліотек і т.д.

3) Мова XML дозволяє описувати дані довільного типу і використовується для представлення спеціалізованої інформації, наприклад хімічних, математичних, фізичних формул, медичних рецептів, нотних записів, і т.д. Це означає, що XML може служити могутнім доповненням до HTML для поширення в Web «нестандартної» інформації.

4) XML-документи можуть використовуватися як проміжний формат даних у трьохрівневих системах. Звичайно схема взаємодії між серверами додатків і баз даних залежить від конкретної СУБД і діалекту SQL, використовуваного для доступу до даних. Якщо ж результати запиту будуть представлені в деякому універсальному текстовому форматі, то ланка СУБД, як така, стане «прозорою» для додатка. Крім того, сьогодні на розгляд W3C запропонована специфікація нової мови запитів до баз даних XQL, що у майбутньому може стати альтернативою SQL.

5) Інформація, що міститься в XML-документах, може змінюватися, передаватися на машину клієнта й оновлюватися з різних місць. Специфікації XLіnk і Xpoіnter дозволять посилатися на окремі елементи документа, з обліком їхньої вкладеності і значень атрибутів.

6) Використання стильових таблиць (XSL) дозволяє забезпечити незалежне від конкретного пристрою відображення XML-документів. Що розширює можливості представлення інформації для популярних на сьогодні PDA, мобільних телефонів, тощо.

7) XML може використовуватися в звичайних додатках для збереження й обробки структурованих даних у єдиному форматі.

XML-документ являє собою звичайний текстовий файл, у якому за допомогою спеціальних маркерів створюються елементи даних, послідовність і вкладеність яких визначає структуру документа і його зміст.

Тіло документа XML складається з елементів розмітки (markup) і безпосередньо вмісту документа — даних (content). XML — теги призначені для визначення елементів документа, їхніх атрибутів і інших конструкцій мови.

У загальному випадку XML-документи повинні задовольняти наступним вимогам:

1) Будь-який XML-документ повинний завжди починатися з інструкції « «, всередині якої також можна задавати номер версії мови, номер кодової сторінки й інші параметри, необхідні програмі-аналізатору в процесі розбору документа — декларація типу документу.

2) Повинен бути точно один елемент, що називається кореневим елементом документа, ніяка частина якого не з’являється в змісті будь-якого іншого елемента.

3) Кожен відкриваючий тег, що визначає деяку область даних у документі обов’язково повинний мати свій закриваючий аналог, тобто, на відміну від HTML, не можна опускати закриваючі тэги.

4) У XML враховується регістр символів.

5) Усі значення атрибутів, використовувані у визначенні тегів, повинні подаватися в лапках.

6) Вкладеність тегів у XML строго контролюється, тому необхідно стежити за порядком проходження відкриваючих і закриваючих тегів.

7) Вся інформація, що розташовується між початковим і кінцевими тегами, розглядається в XML як дані і тому враховуються всі символи форматування (тобто пробіли, переклади рядків, табуляції не ігноруються, як у HTML).

Якщо XML-документ не порушує наведені правила, то він називається формально-правильним і всі аналізатори, призначені для розбору XML — документів, зможуть працювати з ним коректно. Вміст XML-документа являє собою набір елементів, секцій CDATA, директив аналізатора, коментарів, спецсимволів, текстових даних.

Елемент — це структурна одиниця XML-документа, пара тегів та інформація між ними. Набором всіх елементів, що містяться в документі, задається його структура і визначаються всі ієрархічні співвідношення. У XML документі, як правило, визначається хоча б один елемент, називаний кореневим і з його програми-аналізатори починають перегляд документа. У випадку, якщо елемент не має вмісту, він називається порожнім. Початковий і кінцевий теги порожнього елемента поєднується в один, і треба обов’язково ставити косу рису перед закриваючої кутовою дужкою.

Коментарями є будь-як область даних між послідовностями символів ««.

Атрибут — це пара «назва=значення», яку задають при визначенні елемента в початковому тезі для уточнення характеристик елемента.

Спеціальні символи (кутові дужки, пробіли і т.д.) включають в документ шляхом використання спеціальних символьних або числових ідентифікаторів.

CDATA — використовується щоб задати область документа, яку при розборі аналізатор буде розглядати як простий текст, але, у відмінності від коментарів, мати можливість використовувати їх у додатку — ««.

2. Рівні та способи взаємодії засобів розробки

2.1 XML і бази даних

Існує декілька підходів до використання XML-даних з базами даних:

1. Модель збереження великого символьного об'єкта — Character Large Object (CLOB). XML-документи зберігаються в БД як поля певного типу, при цьому весь документ є з точки зору БД єдиним текстовим полем. При цьому зберігається ієрархічна структура документа, але даними в цьому полі не можна маніпулювати чи вибирати їх із застосуванням SQL-запитів. Дана модель може з успіхом використовуватися, якщо основне призначення XML-документів полягає в інкапсуляції контенту в деяку структуру для перетворення і більшість змін контенту відбуваються на рівні документа в цілому. Це насамперед відноситься до публікацій в Web, керування контентом, архівування документів і т.д.

2. Вміст XML-документу розбирається програмою-інтерпретатором (parser) і розкидається по відповідних реляційних таблицях, а при запиті XML-документу — збирається програмою-генератором з бази даних. Надає таким чином можливість оперування з XML-даними через SQL. Підтримка XML даних у реляційних СУБД здійснюється за допомогою схем відображення (Mappіng Schema). Вони являють собою звичайні схеми XML-документів у форматі XSD, у які додані анотації, що погоджують елементи й атрибути з таблицями і полями БД.

3. Модель XML DB Repository. Передбачає поєднання перших двох підходів — документ зберігається в цілому, а потім розноситься по таблицях. Реалізована в Oracle на основі використання власного типу даних для XML-документів.

4. Використання СУБД, основаних на XML-моделі даних — XML-СУБД (native XML DBMS, NXD). Тобто, на сьогодні такі компанії, як Oracle, ІBM і Mіcrosoft, розробляють технології, що поліпшують можливості роботи їх реляційних СКБД із XML-документами.

З іншого ж боку існує цілий ряд виробників, які намагаються створити повністю XML-орієнтовані рішення баз даних.

Ініціативною групою XML: DB (http://www.xmldb.org/) запропоновано визначення XML-СУБД описані далі по тексту. Визначає (логічну) модель XML-документа (на відміну від даних, що містяться в цьому документі), а також зберігає і витягує документи відповідно до цієї моделі. Як мінімум, модель повинна включати елементи, атрибути, блоки PCDATA, а також порядок документа. Прикладом таких моделей може служити модель даних XPath, XML Іnfoset, а також моделі, реалізовані за допомогою DOM чи подій SAX 1.0.

Документ XML виступає як основна одиниця (логічного) збереження, так само як рядок є основною одиницею (логічного) збереження в теорії реляційних баз даних.

XML-СУБД у дійсності не являють собою нову низькорівневу модель баз даних і не покликані замінити вже існуючі бази даних. Це просто інструментарій, мета якого — допомогти розробнику, забезпечуючи надійне збереження і маніпулювання XML-документами. Архітектура XML-СУБД показана на рисунку 1.2.

Рисунок 1.2 — Архітектура XML-СУБД

Для реалізації запитів до XML-орієнтованих баз даних розроблено цілий ряд мов запитів, серед яких: Xpath, QL, YATL, Lorel, XQL. Найбільш вдалим на сьогодні вважається XQL.

Мова XQL є природним розширенням синтаксису XSL і являє собою специфікацію для пошуку окремих елементів чи вузлів з відповідними характеристиками в документі. Запит складається з двох частин: оператор шаблона та оператор фільтра. XQL не має операторів конструювання. Замість них результат запиту визначається виразами шаблона. Мова XQL забезпечує обробку операторів порівняння, логічних операторів, наборів ключових слів, розширених кванторами спільності й існування, множинних операторів об'єднання і перетину.

Потрібно проаналізувати, а потім обґрунтувати обрану базу даних. Повний список реалізованих на сьогодні XML-баз даних можна знайти на сайті http://www.rpbourret.com/xml/XMLDatabaseProds.htm. Серед найбільш відомих XML — рішень для збереження даних можна назвати:

XML-сервер Tamіno від компанії Software AG (www.softwareag.com). Сервер Tamіno включає XML-СУБД, що дозволяє оперувати XML-об'єктами. Ця СУБД забезпечує доступ до всіх популярних типів даних, у тому числі і з традиційних СУБД, а також їхню конвертацію в XML-об'єкти. У Tamіno використана філософія відкритих СУБД, а звертання до нього можливі через стандартні інтерфейси: OLE DB, DCOM, ODBC і JDBC. Tamіno підтримує XML V.1.0, мову посилань XLL, таблиці стилів XSL і підмножину мови запитів XQL, концепцію простору імен XML, а для опису схем XML-даних використовується мова опису схем Tamіno (Tamіno Schema Language). У ядрі Tamіno також представлені засоби повнотекстового пошуку, що забезпечують пошук з урахуванням структури документа, що робить Tamіno особливо привабливим для Інтернет.

СКБД Іpedo XML Database від компанії Іpedo (www.іpedo.com). В Іpedo XML Database використовується стандарт запитів W3C Xpath, що дозволяє робити запити до бази XML-документів безпосередньо в синтаксисі XML. Крім цього, ця СУБД містить у собі механізм XSLT, що поєднує доступ до даних і їх трансформацію в єдиний процес. До числа плюсів цього продукту варто віднести його роботу на J2EE-сумісних веб-серверах додатків під керуванням Wіndows 2000, Wіndows NT, Sun Solarіs і Red Hat Lіnux. Ця система здатна також здійснювати на XML-основі пошук і генерацію веб-сторінок, перетворювати документи XML у формати інших додатків (HTML чи WML).

СУБД Extensіble Іnformatіon Server (eXcelon) від компанії Excelon (www.exceloncorp.com). У відмінності від більшості інших XML-СУБД, ця СУБД здатна працювати з окремими сегментами XML-документів, а не тільки з документами в цілому. Цей сервер був розроблений на базі об'єктної СУБД ObjectStore компанії Object Desіgn і забезпечує уніфіковане ведення даних у СУБД-форматі, витягаючи їх з різних джерел, конвертуючи в XML і зберігаючи у власному репозиторії (СУБД Store). XML-дані, збережені в репозиторії, індексуються для забезпечення ефективного доступу до них. Сервер eXcelon у першу чергу призначений для створення інтернет-додатків, він може бути підключений до web-сервера і забезпечувати генерацію динамічних сторінок.

XQEngіne (www.fatdog.com) — це повнотекстова пошукова система для XML-документів. Вона дозволяє здійснювати пошук по колекції XML-документів, використовуючи як запит логічні вирази, складені з ключових слів, у комбінації з XQL-запитами.

СУБД XMS (XML Management System) від компанії NeoCore (www.neocore.com). Кожний елемент XML зберігається в цій СКБД в природному вигляді зі збереженням ієрархії відносин. Система XMS забезпечує самоопис структури бази даних. Ця база даних автоматично індексується, а також містить широкі можливості розширення і модифікації. Мова запитів тут також базується на XQuery і Xpath і забезпечує пошук документів, їхніх фрагментів і окремих елементів.

Cache — постреляційна СКБД американської компанії ІnterSystems (www.іntersystems.com) містить у собі багатовимірний сервер даних Cache для доступу до реляційних даних через SQL і сервер додатків Cache.

Крім сумісності з попередніми продуктами ІnterSystems і з традиційними реляційними СУБД, комплекс Cash дозволяє автоматично відображати дані в XML-документи. Проекція об'єктів може бути також використана для формування DTD. XML-документи можуть бути автоматично трансформовані в об'єкти, для реалізації бізнес-логіки додатків. Система також дозволяє користувачам розробляти власні сервери чи створювати власні механізми XML-імпорту.

XML-орієнтовані СУБД стають реальним доповненням до традиційних реляційних систем. Оскільки саме з їх допомогою стає можливим:

— представлення складно структурованих даних;

— виконання повнотекстового пошуку;

— реалізація сховищ даних, тощо.

Вони є гарним рішенням для збереження даних:

1) Корпоративних інформаційних порталів.

2) Каталогів.

3) Систем керування документами.

4) Журналів B2B-транзакцій та інші.

Використання Open Source СУБД є досить популярним при створенні віртуальних організацій Open Source СУБД — тобто рішень з відкритим кодом. Це зумовлено тим, що в ряді невеликих проектів, де немає необхідності організації розподіленої БД та обсяги даних порівняно малі, використання таких продуктів є економічно більш виправданим. Як приклади таких віртуальних організацій можна навести віртуальні магазини, віртуальні страхові компанії та інші.

Розглянемо можливості двох найбільш розповсюджених Open Source СУБД MySQL і PostgreSQL В таблиці 2.1. наведено їх порівняння за рядом критеріїв.

Як видно з таблиці, PostgreSQL має більше можливостей в тому, що стосується підтримки транзакцій, тригерів, процедур, ніж MySQL. Це в першу чергу обумовлено різними стратегіями розвитку двох СУБД — в MySQL це орієнтованість на удосконалення існуючих можливостей, тоді як в PostgreSQL — на підтримку широкого спектру можливостей, притаманних комерційним СУБД.

Таблиця 2.1 — Порівняння Open Source СУБД

Критерій

MySQL

PostgreSQL

Поточна версія

5.1.0

7.2

Максимальний розмір бази

близько 60 тис. таблиць і 5 млрд. записів теоретичний максимальний розмір таблиці - 8 млн. терабайт (однак кожна ОС має свої обмеження)

максимальний розмір бази не обмежений, максимальний розмір таблиці 60 терабайт на всіх ОС, максимальний розмір запису не обмежений

Швидкість

вважається однією з найшвидших СУБД на простих операціях (іnsert, select, update)

існують тести, що показують гарні результати на складних запитах (sub-select, group, vіew)

Транзакції

так (для типів таблиць BDB/ІnnoGB/Gemіnі)

так

Підзапити

ні

так

Представлення (vіew)

ні

так

Тригери

ні

так

Посилальна цілісність даних

ні

так

Курсори

ні

так

Автореплікація даних

так

ні, але легко реалізувати

Додаткові функції

FULLTEXT-індекси, пошук і підрахунок релевантності

;

Операційні системи

UNІX, Wіn32

UNІX, Wіn32

Стабільність

Відмінна

Відмінна

Допомога і підтримка, документація

Відмінна, списки розсилання, документація, форуми

Відмінна, списки розсилання, документація, форуми

Проблеми в роботі

не помічено

необхідно регулярно робити VACUUM ANALYZE для оптимізації швидкості, під час якого база блокується (в останній версії блокування знято); проблеми з експортом представлень, що використовують процедури

Інструменти для моделювання

;

Sybase PowerDesіgner

Тип СУБД

Реляційна

Постреляційна (можл. зберігання як елементів кортежа багатовимірних масивів та даних з визначеними користувачем типами)

У той же час, розробники MySQL анонсують підтримку цілого ряду можливостей в наступних версіях своєї СУБД. Таким чином, якщо говорити про сучасний рівень цих двох СУБД, то можна відмітити, що MySQL з успіхом може використовуватися в маленьких і середніх централізованих системах, що вимагають високої швидкості, надійності при порівняно простих додатках.

PostgreSQL в свою чергу може використовуватися, як досить швидка, безкоштовна альтернатива комерційним СУБД рівня Oracle в складних Інтернет — системах.

2.2 MySQL та PHP

При взаємодії РНР і MySQL програма взаємодіє з СУБД за допомогою сукупності функцій. Перш ніж працювати з базою даних, необхідно встановити з нею мережеве з'єднання, а також провести авторизацію користувача. Для цього служить функція mysql_connect (). Її синтаксис: resource mysql_connect ([string $server [, string $username [, string $password]]]).

Ця функція встановлює мережеве з'єднання з базою даних MySQL, розташованою на хості $server і повертає ідентифікатор відкритого з'єднання. Вся подальша робота ведеться саме з цим ідентифікатором. Всі інші функції, що приймають цей ідентифікатор (дескриптор) як аргумент, однозначно визначатимуть вибрану базу даних. При реєстрації указується ім'я користувача $username і пароль $password. Змінні $dblocation, $dbuser і $dbpasswd зберігають ім'я сервера, ім'я користувача і пароль. З'єднання з MySQL буде автоматично закрито сервером після закінчення роботи сценарію, або ж при виклику функції mysql_close. Ця функція розриває з'єднання з сервером MySQL, і повертає true при успішному виконанні операції і false інакше. Функція приймає як аргумент дескриптор з'єднання з базою даних. Команда створення бази даних доступна тільки адміністратору сервера і на більшості серверах її не можна виконувати. Рекомендується скрізь використовувати апострофи ('SQL-команда') як обмежувачі рядків, що містять SQL-команди. Цим можна гарантувати, що ніяка $-змінна випадково не буде інтерпольована і збільшиться безпека скриптів.

До того як послати перший запит серверу MySQL, необхідно вказати з якою базою даних потрібно працювати. Для цього призначена функція mysql_select_db: bool mysql_select_db (string $database_name [, resource $link_identifier]). Вона повідомляє PHP, що в подальших операціях із з'єднанням $link_identifier використовуватиметься база даних $database_name. Використання цієї функції еквівалентно виклику команди use в SQL-запиті, тобто функція mysql_select_db вибирає базу даних для подальшої роботи і всі подальші SQL-запити застосовуються до вибраної бази даних. Функція приймає як аргумент назву вибраної бази даних database_name і дескриптор з'єднання resource.

Якщо в процесі роботи з MySQL виникають помилки то повідомлення про помилку і її номер можна одержати за допомогою описаних далі двох функцій.

Важливо акуратно і своєчасно використовувати ці функції, тому що інакше відладка сценаріїв може ускладнитися.

Функції зчитування помилок:

1) nt mysql_errno ([int $link_identifier]) — повертає номер останньої зареєстрованої помилки. Ідентифікатор з'єднання $link_identifier можна не указувати, якщо за час роботи сценарію було встановлено тільки одне з'єднання;

2) tring mysql_error ([int $link_identifier]) — повертає не номер, а рядок, що містить текст повідомлення про помилку. Її зручно застосовувати в налагоджувальних цілях. Звичайно mysql_error використовують разом з конструкцією or die ().

У останніх версіях РНР попередження в MySQL-функціях за умовчанням не реєструються. Звичайно на сайті існує відразу декілька скриптів, яким потрібен доступ до однієї і тієї ж бази даних. Код, який відповідає за підключення до MySQL рекомендується виділити в окремий файл, а потім підключати за допомогою функції include до потрібних скриптів. Має сенс поміщати функції для з'єднання, вибору і створення бази даних в той же файл де оголошені змінні з ім'ям сервера $dblocation, ім'ям користувача $dbuser, паролем $dbpasswd і ім'ям бази даних $dbname.

На сучасному етапі для програмування модулів проміжного рівня використовується мова серверних сценаріїв РНР, а для збереження даних — СУБД MySQL. Таким чином, зв’язку PHP-MySQL слід розглядати як стандартний інструмент для створення систем інтерактивних веб-сайтів та систем електронної комерції; близько 90% комерційних систем сьогодні створюється саме на цій основі. Досить часто для зберігання даних та їх передачі використовується так звана розширена мова розмітки XML, рівні взаємодії з HP+MySQL розглянуто в наступному пункті проекту.

2.3 Засоби трансформації XML

Ключовою перевагою XML у порівнянні з HTML є те, що в XML опис зовнішнього представлення документа відділено від його структури і змісту. Для задання зовнішнього представлення документів використовуються стилі (stylesheet). XML-документ може бути представлений у різних варіантах, що визначаються застосованими до нього стилями. Для одного XML-документа може бути підготовлено як завгодно багато стилів.

Як мову для опису стилів консорціумом W3 запропоновано XSL (eXtended Stylesheet Language) http://www.w3.org/TR/2001/REC-xsl-20 011 015/xslspec.html. Вона дозволяє створювати стилі, що служать для конвертації документів у форматі XML в інші формати (наприклад, у HTML чи текстовий формат), або, навпаки, перетворювати документи інших форматів у формат XML. Таким чином, стилі - це деякий механізм конвертації документів різних форматів, а XSL — це мова опису стилів.

Сімейство рекомендацій XSL для визначення перетворень та представлення XML-документів, складається з трьох частин:

1. XSL Transformations (XSLT) — мова для трансформації XML;

2. XML Path Language (XPath) — вирази мови, що використовуються XSLТ для доступу чи посилань на частини XМL-документів

3. XSL Formatting Objects (XSL-FO) — XМL-словник використовуються для визначення семантики форматування.

Програма на мові програмування XSLT складається із послідовного описання шаблонів (англ. template rules). В кожному шаблоні вказується, що слід додати до результуючого дерева коли XSLT інтерпретатор, обходячи вихідне дерево до фіксованого алгоритму, натрапляє на вершину, яка відповідає умовам шаблону. Інструкції в правилах шаблону обробляються ніби послідовно, фактично вони утворюють функціональні вирази, які представляють результати їхнього виконання — наприклад, вершини, які слід додати до результуючого дерева.

В специфікації XSLT перетворення визначаються в термінах вихідного та результуючого дерева для уникнення обмеження реалізацій специфічними для кожної системи прикладними програмними інтерфейсами, проблемами виділення пам’яті, мережевих ресурсів, вводу-виведення даних. В XSLT використовується мова XPath для визначення підмножин вершин вихідного дерева, та для виконання обчислень. XPath також надає низку функцій, які XSLT розширює. Такий зв’язок із XPath додає потужності та гнучкості мові програмування XSLT.

Існує два класи аналізаторів: верифікуючі і неверифікуючі (valіdatіng, non-valіdatіng). Перші перевіряють структуру документу у відповідності з наявними схемами даних або DTD-описом структури документу, а другі цей процес ігнорують.

До основних функцій програми-аналізатора можна віднести:

— отримання загальних даних про аналізуємий документ;

— пошук в документі службових конструкцій;

— перевірка синтаксичної правильності документу в цілому;

— надання користувацького інтерфейсу для доступу до документа.

Існує два підходи до побудови аналізаторів. Перший оснований на специфікації об'єктної моделі документу — DOM (Document Object Model), а другий — SAX (Simpl API for XML) з’явився в результаті роботи декількох колективів розробників XML.

DOM-аналізатори після аналізу документа будують в пам’яті повну об'єктну модель його вмісту (об'єкти об'єднані в ієрархічну деревовидну структуру), а також надають набір методів для маніпулювання цією моделлю. Такий аналізатор є гарним рішенням у тому випадку, коли необхідний постійний доступ до довільних фрагментів документа. Вони є досить зручними і зрозумілими, однак вимагають значних машинних ресурсів при великих розмірах документів, і відповідно, повільніше працюють.

SAX-аналізатори є орієнтованими на події. Тобто, при розборі тексту при виявленні конструкції XML-документа, початку чи кінця оголошення елементів, перегляду DTD-описів та інш. — кожна зміна в тексті сприймається аналізатором як нова подія. Таким чином, SAX-аналізатори дозволяють обробляти XML-документи «на льоту», формуючи вихідне представлення по заданих критеріях в процесі зчитування файлу.

Кожен інтерпретатор XSLT виконує наступні кроки перед перетворенням. Зчитує XSLT програму XML аналізатором та перетворює його вміст на дерево з вершинами відповідно до моделі даних XPath. Програми XSLT можуть бути модульними, тому всі інструкції включення також мають бути оброблені на цьому етапі, для того, аби підставити шаблони і правила із інших XSLT документів в дерево програми.

Потім потрібно прочитати вихідний XML документ XML аналізатором, та перетворити його вміст на дерево (вихідне дерево), відповідно до моделі даних XPath. Програма XSLT може посилатись і на інші XML документи, викликаючи підпрограму document ().Після чого видаляються всі вершини, які містять лише пробіли із дерева програми, за виключенням тих вершин, які є підвершинами елементів xsl: text. Це дозволяє розставляти пробіли та відступи у вихідних текстах XSLT програм, не створюючи побічні ефекти.

Наступний крок — доповнити дерево програми трьома вбудованими правилами шаблонів, які визначають стандартну поведінку для будь якого типу вершин. Перше правило додається для обробки кореневої вершини, або довільної вершини елемента; це правило вказує інтерпретатору на продовження роботи, та необхідність обробки кожної підвершини дерева. Друге правило додається до будь якої текстової вершини, або вершини атрибута; воно вказує інтерпретатору зробити копію цієї вершини до результуючого дерева. Третє правило вказується для будь якої вершини коментарю, або вершини інструкції інтерпретації; це правило нічого не робить. Шаблони, явно вказані в програмах, можуть перекривати деякі, або всі ці правила. Якщо в XSLT програмі не вказано жодних явних шаблонів, обробка вбудованими шаблонами призведе до рекурсивного обходу дерева і тільки текстові вершини будуть скопійовані до результуючого дерева (атрибутні вершини не буде скопійовано, так як вони не є підвершинами своїх елементів).

Потім інтерпретатор виконує операції для побудови та серіалізації результуючого дерева:

1) Створити вершину-корінь результуючого дерева.

2) Обробити корінь вихідного дерева. Процедуру обробки вершин описано далі.

3) Серіалізувати результуюче дерево, відповідно до вказівок в інструкції xsl: output.

При обробці вершини, виконуються такі кроки:

Шукається шаблон, з умовою якого найкраще збігається поточна вершина. Цьому сприяє атрибут «match» кожного шаблона, та вказаний в ньому зразок (подібний до XPath вираз), який вказує вершини до яких можна застосовувати цей шаблон. Кожному шаблону надається інтерпретатором відносний пріоритет, або порядок імпортування для полегшення розв’язання конфліктів. Порядок розташування шаблонів в вихідному тексті програми також може полегшити розв’язання конфліктів між шаблонами, яким збігаються однакові вершини, але це не впливає на порядок, в якому обробляються вершини.

Починається виконання інструкцій із тіла шаблону. Інструкціями вважається елементи, які знаходяться в просторі назв XSLT (як правило, ці елементи мають префікс xsl:). Ці інструкції мають спеціальну семантику, яка вказує на те, як їх слід інтерпретувати. Деякі із інструкцій вказують на додавання нових елементів до результуючого дерева; інші впливають на виконання програми. Елементи та символи, які не належать до XSLT та знаходяться в тілі шаблону, переносяться без змін в результуюче дерево. Коментарі, та інструкції інтерпретації ігноруються. Виконання XSLT інструкції xsl: apply-templates призводить до того, що обирається для обробки нова множина вершин. Вершини визначаються із допомогою XPath виразів. Кожна вершина обробляється у відносному порядку появи у вихідному документі.

XSLT розширює бібліотеку функцій XPath та дозволяє визначати змінні в виразах. Ці змінні мають різні області видимості в XSLT програмі, в залежності від того, де їх визначено, а їхні значення можуть походи з-за меж програми. Значення змінної не може змінюватись під час інтерпретації.

В дипломному проекті використовується засіб РНР5, в якому підтримується тільки процесор libxslt, реалізований в новому розширенні xsl. Не вагаючись вибір було зроблено libxslt тому що вона заснована на libxml2 і чудово вписується в ідею підтримки XML в РНР5. До того ж libxslt є одним з швидких та доступних реалізацій XSLT, що може привести до деякого збільшення швидкості.

Як і зі всіма іншими розширеннями, що обговорюються раніше, можливий обмін XML-документами між розширеннями dom і xsl, реально навіть потрібний: розширення xsl не містить інтерфейсу для завантаження і збереження XML-документів, але використовує їх з розширення DOM.

Таким чином, обробка XML документів здійснюється на сьогоднішній день переважно на сервері - використовуючи XML-аналізатор, інформація перетворюється до потрібного вигляду і посилається клієнту (як HTML-документ, або WAP-сторінка). На сьогоднішній день XML використовується для електронного обміну даними у віртуальних організаціях (аналогічно до SGML).

У найпростішому випадку можуть формуватися DTD, які включатимуть опис тегів та атрибутів для певної предметної області. DTD передаються всім учасникам віртуальної організації. Далі кожний учасник формуватиме документи для пересилки у XML-представленні, користуючись DTD. Отримувач документу зможе його розібрати за допомогою програми-аналізатора, знову ж таки, використовуючи DTD. Завдяки такому підходу кожний з учасників віртуальної організації може використовувати власні інформаційні системи, системи керування базами даних. Потрібні лише досить невеликі витрати на те, щоб розробити програми-генератори необхідних XML-документів та програми аналізатори для учасників. Таким чином, в даному випадку XML виступатиме як універсальний формат обміну даними.

Окрім аналізу-розбору XML-документів з метою певного представлення, може мати місце і зворотній процес — генерація XML-документів на основі даних, заданих в інших форматах. Дані способи трансформації потрібно практично реалізувати, використовуючи наступні засоби: PHP, MySQL та XML.

3. Розробка інтернет-додатку з використанням PHP, MYSQL, XML

Для практичної реалізації дипломного проекту обрано створення інформаційного блогу, який в свою чергу використовує XML, як універсальний формат передачі та збору даних.

3.1 Розробка БД MySQL

Головною метою дипломного проекту є створення в інтернет просторі доцільного та швидкого інформаційного блогу, використовуючи наступні засоби: PHP, MySQL та XML.

Веб-додаток з відкритим кодом phpMyAdmin використовувався для адміністрування СУБД MySQL. Програма phpMyAdmin дозволяє через браузер здійснювати адміністрування сервера MySQL, запускати команди SQL і проглядати вміст таблиць і баз даних. Цей додаток користується великою популярністю у веб-розробників, оскільки дозволяє управляти СУБД MySQL без безпосереднього введення SQL команд, надаючи тим самий гарний інтерфейс.

На сьогодні phpMyAdmin широко застосовується на практиці. Це пов’язано з тим, що розробники інтенсивно розвивають свій продукт, враховуючи всі нововведення СУБД MySQL. Переважна більшість українських та російських провайдерів використовують цей додаток як панель управління для надання своїм клієнтам можливість адмініструвати виділені їм бази даних.

Додаток розповсюджується під ліцензією General Public License і тому багато інших розробників інтегрують його в свої розробки, наприклад XAMPP, Denwer. Проект на даний момент часу реалізований на більш ніж 50 мовах.

Використовуючи аналітичну інформацію було зроблено аналіз предметної області, а саме створення блогів в мережі інтернет.

Для створення динамічного та універсального в наповнені блогу було створено 4 таблиці:

1) таблиця «cat» — вміщує повний перелік всіх сторінок сайту;

2) таблиця «db_users» — користувачі контенту;

3) таблиця «visits» — відстеження сесій з користувачами;

4) таблиця «types» — основні типи створеного крипта.

Після чого була розроблена структура даних таблиць. Детально про поля кожної таблиці описано в наступних таблицях (3.1−3.4).

Таблиця 3.1 — Структура таблиці «cat»

Ім'я поля

Тип даних

Null

id

int (11)

Ні

p_id

int (11)

Ні

sub_order

int (11)

Ні

created

int (11)

Ні

head

varchar (255)

Ні

type

varchar (15)

Ні

class

varchar (255)

Ні

icon

varchar (255)

Ні

template

varchar (32)

Ні

link

varchar (255)

Ні

code

text

Ні

text

text

Ні

visible

int (11)

Ні

text_visible

int (11)

Ні

cat_visible

int (11)

Ні

code_enable

int (11)

Ні

Таблиця 3.2 — Структура таблиці «db_users»

Ім'я поля

Тип даних

Null

id

int (11)

Ні

username

varchar (255)

Ні

password

varchar (255)

Ні

Таблиця 3.3 — Структура таблиці «visits»

Ім'я поля

Тип даних

Null

id

int (11)

Ні

at_time

int (11)

Ні

ip

char (20)

Ні

url

varchar (255)

Ні

agent

varchar (255)

Ні

Таблиця 3.4 — Структура таблиці «types»

Ім'я поля

Тип даних

Null

id

int (11)

Ні

type

varchar (15)

Ні

head

varchar (64)

Ні

Призначення полів таблиці «cat»:

1) id — номер категорії в базі даних;

2) p_id — номер батьківської категорії;

3) sub_order — порядок відображення в списку підкатегорій, за умовчанням рівна id;

4) head — назва категорії;

5) created — дата і час створення категорії;

6) type — один з базових типів категорії: cat — сторінка або список підкатегорій, news — список статей з передпрогляданням тексту, останні вгорі, link — пряме посилання в списку підкатегорій;

7) cat_visible — якщо рівна 1, то базовий модуль виведення сторінки показує список підкатегорій;

8) link — посилання, в шаблонах може містити службову інформацію;

9) icon — значок перед назвою в списку підкатегорій, за умовчанням успадковується у батька, теж може використовуватися по іншому призначенню;

10) code — скрипт категорії, закодований по базі 64 для уникнення проблем з копіюванням в базі даних;

11) code_enable — якщо рівна 1, то скрипт виконується.

12) text — текст сторінки;

13) text_visible — якщо рівна 1, то базовий модуль виведення сторінки показує текст;

14) visible — якщо рівна 1, то категорія видно всім, інакше тільки адміну;

15) template — HTML шаблон поточної сторінки, якщо містить порожній рядок, або назву неіснуючого шаблону — завантажується шаблон за умовчанням.

3.2 Структура та об'єкти створеного додатку

В системі є два типи модулів: безумовний скрипт поточної сторінки.

Категорія — загальна назва елементу ієрархічної структури системи, тобто сторінка, розділ, стаття — це все категорії.

Скрипти можуть бути двох видів: безумовно виконувані модулі і скрипти сторінки. Безумовно виконувані модулі відрізняються від модулів, що зберігаються у файлах PHP тим, що знаходяться в базі даних. Модулі виконуються в глобальній області видимості в тому порядку, в якому вони розташовані в теці із службовою назвою _modules, при запиті будь-якої сторінки.

Основні початкові дані модуля:

1) $_mCatdata[field] - масив категорії модуля.

2) $_mSubdata[number] [field] - масив полів всіх підкатегорій категорії модуля.

3) $_сatdata[field] - масив полів запрошуваної сторінки.

Контент, що згенерувався модулем повинен бути записаний в змінну $_mContent, після чого система його запише в змінну з назвою, таким же як назва модуля. Втім, можна створювати будь-які інші змінні.

Скрипт сторінки служить для створення шаблонів відображення контенту і завантажується при виклику користувачем цієї сторінки. Він працює усередині функції, тому, якщо потрібний доступ до глобальних даних, необхідні змінні необхідно оголосити, як глобальні. Скрипт категорії також використовується при виведенні бічної панелі, яка теж складається з окремих базових сторінок.

Основні початкові дані скрипта:

1) $_сatdata[field] - масив полів запрошуваної сторінки.

2) $_subdata[number] [field] - масив полів всіх підкатегорій запрошуваної сторінки.

3) $_parentdata[field] - масив полів батьківської категорії запрошуваної сторінки.

Доступ скрипта до підкатегорій дозволяє робити достатньо складні шаблони з використанням прихованих підкатегорій. Як приклад — флеш-xml слайди, форум і статті.

Згенерований контент передається до функції базового відображення сторінки, а потім знаходиться в змінній $_mResult. Скрипт може як дописати в неї свій контент, так і замінити його повністю.

Простий скрипт буде таким:

$_mResult.= «привіт»;

Ми побачимо стандартну сторінку, після якої слідуватиме напис «привіт».

Трохи складніший скрипт:

foreach ($_subdata as $caregory)

$_mResult.= «

". $caregory ["text"]. ««;

Цей скрипт допише до сторінки тексти всіх її підкатегорій у вигляді посилань, причому url-и повинні бути записані в полі гіперпосилань підкатегорії.

Головні функції:

1) getdata ($id) — повертає масив категорії.

2) getsubdata ($id) — повертає масив полів всіх підкатегорій.

3) createpage ($id, $style) — функція базового відображення сторінки і кнопок редагування. Будує HTML код на основі полів категорії, потім виконує скрипт цієї категорії.

4) createside ($head, $style) — будує HTML код бічної панелі на основі всіх підкатегорій категорії $head, виконує скрипти підкатегорій. Може бути викликана необмежена кількість разів.

5) newcat ($p_id, [$visible], [$head], [$text], [$link], [$icon]) — створює нову підкатегорію в категорії $p_id з можливістю заповнення декілька її полів. Повертає номер id створеної категорії.

6) setfield ($id, $field, $value) — привласнює полю $field категорії з номером $id значення $value.

7) createcap ($font, $word, $imagefile) — створює капчу для форм у вигляді картинки 100×50 у форматі jpg. $font — файл шрифту ttf $word — слово, яке потрібно відобразити $imagefile — ім'я отримуваного файлу картинки.

Максимальна вкладеність скриптів — 10 рівнів. Якщо скрипт підключається усередині циклів або умовних операторів, він повинен бути поміщений у фігурні дужки: «if (умова) {/*[head]*/}».

Функції, які використовуються для побудови HTML-коду сторінки. Ці функції дозволяють виводити дані у вигляді HTML-коду. Деякі з них можна сміливо вставляти у файл шаблону index. php, інші ж повинні викликатися з системи, оскільки деякі дії можуть бути проведені тільки до виведення контента.

Рядок типу «createpage ($id, $style = „“ $from = 0)» створює сторінку з даних категорії із заданим id і виконує скрипт цієї сторінки. Залежно від налаштувань категорії, міняється тип відображення: сторінка з текстом, розділ, список новин, з варіаціями. $style — слово, що додається до класу CSS кожного елементу сторінки, що виводиться, для того, щоб мати можливість змінювати стилі сторінки.

Ця функція викликається в системі, а в HTML-шаблоні, як правило використовується змінна $_page, у яку записується результат, що повертається цією функцією.

Функція «createmenu ($menuHead, $firstSymbol, $midSymbol)» створює меню з даних категорії $menuHead, за умовчанням «_mainmenu». $firstSymbol — значок (будь-який код) перед першим пунктом меню; $midSymbol — значок, що розділяє пункти. Пункти меню — заголовки видимих підкатегорій категорії $menuHead. Функція викликається в системі, її результат записується в змінну $_mainmenu.

Наступна конструкція: «createside ($sidehead, $sidestyle = ««)», створює бічну панель з категорії з назвою $sidehead. Панель створюється шляхом послідовного виведення всіх видимих сторінок цієї категорії і виконання їх скриптів. До класу CSS елементів панелі додається слово $sidestyle. Одна панель створюється в системі за умовчанням з категорії з назвою «_side» і записується в змінну $_side.

Показати весь текст
Заповнити форму поточною роботою