Please use this identifier to cite or link to this item:
https://er.chdtu.edu.ua/handle/ChSTU/6904| Title: | Web-орієнтована інформаційна система комп’ютерних ігрових новин |
| Authors: | Рудницький , Сергій Володимирович Василенко, Владислав Богданович |
| Keywords: | веб-система;комп’ютерні ігри;веб-сайт;база даних;інформаційна система;ігрова індустрія |
| Issue Date: | 17-Jun-2021 |
| Abstract: | В роботі описано процес розробки веб-орієнтованої інформаційної системи комп’ютерних ігрових новин. Обсяг пояснювальної записки кваліфікаційної роботи бакалавра складає 72 сторінки, в тому числі вступ, 3 розділи, висновки, додаток та список використаних джерел. Робота містить 29 рисунків та 28 інформаційних джерел. У вступі обґрунтовано актуальність розробки, визначено мету, задачі, предмет та об’єкт дослідження. Перший розділ присвячений опису предметної області, постановці задачі та огляду існуючих веб-орієнтованих інформаційних систем комп’ютерних ігрових новин. У другому розділі визначено ключові принципи та основні етапи розробки веб-сайтів, описано процес розробки бази даних. Третій розділ описує програмну частину розробленої системи. У висновках підведено підсумки написання кваліфікаційної роботи бакалавра. |
| URI: | https://er.chdtu.edu.ua/handle/ChSTU/6904 |
| Appears in Collections: | 126 Інформаційні системи та технології (Web-технології, web-дизайн) |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| РЕП_БАК_Василенко_WebC-1911.pdf Restricted Access | 4.32 MB | Adobe PDF | View/Open Request a copy |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.
Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ
КАФЕДРА ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ ПРОЕКТУВАННЯ
Пояснювальна записка
до кваліфікаційної роботи бакалавра
на тему: «Web-орієнтована інформаційна система комп’ютерних
ігрових новин»
Виконав студент 4 курсу,
групи WebC-1911,
спеціальності 126 –
Інформаційні системи та
технології,
освітня програма – Web-
технології, Web-дизайн,
Василенко В.Б.
Керівник к.т.н. Рудницький С.В.
Рецензент
Черкаси – 2021 року
АНОТАЦІЯ
В роботі описано процес розробки веб-орієнтованої інформаційної
системи комп’ютерних ігрових новин.
Обсяг пояснювальної записки кваліфікаційної роботи бакалавра складає
72 сторінки, в тому числі вступ, 3 розділи, висновки, додаток та список
використаних джерел. Робота містить 29 рисунків та 28 інформаційних
джерел.
У вступі обґрунтовано актуальність розробки, визначено мету, задачі,
предмет та об’єкт дослідження.
Перший розділ присвячений опису предметної області, постановці
задачі та огляду існуючих веб-орієнтованих інформаційних систем
комп’ютерних ігрових новин.
У другому розділі визначено ключові принципи та основні етапи
розробки веб-сайтів, описано процес розробки бази даних.
Третій розділ описує програмну частину розробленої системи.
У висновках підведено підсумки написання кваліфікаційної роботи
бакалавра.
Ключові слова: веб-система, веб-сайт, база даних, інформаційна
система, ігрова індустрія, комп’ютерні ігри.
ABSTRACT
The paper describes the process of developing a web-based information
system for computer game news.
The volume of the explanatory note of the bachelor's qualification work is
72 pages, including the introduction, 3 sections, conclusions, appendix and the list
of the used sources. The work contains 29 drawings and 28 information sources.
The introduction substantiates the relevance of the development, defines
the purpose, objectives, subject and object of research.
The first section is devoted to the description of the subject area, problem
statement and review of existing web-based information systems of computer
game news.
The second section identifies the key principles and main stages of
website development, describes the process of database development.
The third section describes the software part of the developed system.
The conclusions summarize the results of writing a bachelor's thesis.
Keywords: web system, website, database, information system, gaming
industry, computer games.
ЗМІСТ
ВСТУП......................................................................................................................... 3
1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ІСНУЮЧИХ АНАЛОГІВ СИСТЕМИ5
1.1 Опис предметної області ........................................................................... 5
1.2 Постановка задачі ...................................................................................... 6
1.3 Огляд та аналіз існуючих аналогів ........................................................... 7
1.4 Висновки до розділу 1 ............................................................................. 11
2 ПРОЄКТУВАННЯ WEB-ОРІЄНТОВАНОЇ ІНФОРМАЦІЙНОЇ СИСТЕМИ
КОМП’ЮТЕРНИХ ІГРОВИХ НОВИН ................................................................. 12
2.1 Ключові принципи розробки web-сайтів. .............................................. 12
2.2 Основні етапи розробки будь-якого веб-сайту ..................................... 14
2.3 База даних MySQL ................................................................................... 16
2.4 Висновки до розділу 2 ....................................................................................... 19
3 РОЗРОБКА ПРОГРАМНОЇ ЧАСТИНИ ................................................... 20
3.1 Етапи розробки веб-орієнтованої інформаційної системи ігрових
новин ................................................................................................................ 20
3.2 Вибір засобів розробки ............................................................................ 22
3.2.1 Методи та підходи до розробки веб-орієнтованої
інформаційної системи комп’ютерних ігрових новин ..................... 22
3.2.2 Система керування вмістом Wordpress..................................... 27
3.3 Програмна реалізація web-орієнтованої інформаційної системи
ігрових новин .................................................................................................. 29
3.4 Висновки до розділу 3 ............................................................................. 49
ВИСНОВКИ .............................................................................................................. 50
ДОДАТОК A 482 ЧДТУ 21979-01 Web-орієнтована інформаційна система
комп’ютерних ігрових новин Сецифікація ............................................................ 51
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ ................................................................ 70
ЧДТУ 211979.002 ПЗ
Зм. Лист № докумемента Підпис Дата
Розроб. Василенко В.Б. Літ. Лист Листів
Перев. Рудницький С.В. Web-орієнтована інформаційна
система комп’ютерних ігрових Н 2 72
Реценз новин. ФІТІС,
Н. . контр. Колесніков К.В.
Пояснювальна записка
Прокопенко Т.О. кафедра ІТП, WebC-1911
Затв.
ВСТУП
Ігрова індустрія є, мабуть, одним із найважливіших та інноваційних
секторів у галузі технологій сьогодні. Її значення для культури, соціальних
мереж та розваг не можна занизити. Термін «індустрія розваг» більше не
зарезервований для Голлівуду та кіноіндустрії, оскільки ігри зараз
забезпечують один із найбільш захоплюючих та вражаючих видів розваги для
більш ніж двох мільярдів людей по всьому світу.
З кожним роком віртуальний світ стає все більш «реальним». Технології
розвиваються безпрецедентними темпами, виводячи індустрію розробки ігор
на абсолютно нові висоти. Реалістична графіка, персонажі, що діють як
справжні живі істоти, величезні відкриті світи, що чекають на дослідження –
речі, які не можна було уявити ще 20 років тому, сьогодні вважаються
стандартними і звичними. Недарма відеоігри стають невід’ємною частиною
життя багатьох людей у всьому світі. Ігри зараз – це більше, ніж просто
розвага.
Актуальність. Сьогодні популярність ігор досягла тієї межі, що це вже
не просто спосіб вбити час. Для багатьох людей обмін досвідом ігор
перетворився на джерело доходу. І який це може бути дохід! Професійний
геймер може заробляти до 500 тис. доларів на місяць лише за трансляцію на
Twitch. Спільний доступ також зміцнює дух спільноти та наближає вас до
ваших колег-геймерів, хоча вони можуть бути далеко від вас. Інший варіант –
завантаження відео на YouTube. Ця платформа стала відправною точкою для
багатьох відомих ігрових влогерів: PewDiePie, VanossGaming, KSI тощо.
Список можна продовжувати і продовжувати. Але для досягнення вершини
потрібно докласти багато зусиль. Навіть якщо ваші відео не роблять вас
відомим ігровим влогером, вони можуть принаймні служити вмістом для
вашого майбутнього веб-сайту.
Арк.
ЧДТУ 211979.002 ПЗ 3
З м н. Арк. № докум. Підпис Дата
Завдяки різноманітності інструментів та ресурсів, доступних в
Інтернеті, створення власного веб-сайту про ігри стає простішим, ніж ви
можете подумати. Однак, як і будь-яке велике підприємство, необхідно
витратити якийсь певний час на планування свого сайту, перш ніж він почне
працювати.
Об’єктом дослідження є способи розробки веб-орієнтованих
інформаційних систем.
Предметом дослідження є методи і алгоритми розробки веб-
орієнтованих інформаційних систем.
Метою кваліфікаційної роботи є дослідження методів та способів
створення веб-орієнтованих інформаційних систем та безпосередньо розробка
та створення веб-орієнтованої інформаційної системи комп’ютерних ігрових
новин. Для досягнення поставленої мети випускної роботи необхідно виконати
наступні завдання:
проаналізувати існуючі веб-орієнтовані інформаційні системи ігрових
новин, визначити їх переваги та недоліки для подальшого їх вразування в
розробці власної системи;
зробити вибір програмних засобів розробки веб-орієнтованої системи;
розробити вимоги до інтерфейсу розробленої системи;
розробити веб-орієнтовану інформаційну систему комп’ютерних
ігрових новин.
Арк.
ЧДТУ 211979.002 ПЗ 4
З м н. Арк. № докум. Підпис Дата
1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ІСНУЮЧИХ АНАЛОГІВ
СИСТЕМИ
1.1 Опис предметної області
Ігрова індустрія вважається однією з найбільш захоплюючих галузей
техніки через її значення для культури, розваг та технологічного
прогресу. Компанії, що займаються ПК, консолями та мобільними іграми,
використовують новітні технології, щоб вивести свої ігри на екрани понад двох
мільярдів людей по всій Земній кулі.
Ігрові «війни» між розробниками сьогодні тільки починають
зароджуватись. Битву за консольні ігри ведуть Microsoft (Xbox), Sony
(Playstation) та Nintendo, а Google виступає новим конкурентом із їхньою
хмарною ігровою платформою Stadia [12] . Ці консолі розсувають абсолютні
межі технологій, пропонуючи геймерам найсучаснішу графіку, швидкість та
обробну потужність. Традиційні виробники консолей, такі як Microsoft,
почнуть конкурувати із суперсекретною хмарною ігровою платформою Stadia
та Amazon, щоб зробити свої ігри доступними для тих, хто має швидкісне
підключення до Інтернету. Крім того, ігри на ПК відкрили цілий світ
можливостей для геймерів, які шукають додаткової простоти використання та
спритності під час гри (або змагання) у своїх улюблених іграх.
Ігрові блоги сьогодні дуже популярні, адже вони пропонують
висвітлення новин, огляди ігор та преси [3]. На щастя, сьогодні запустити
власний ігровий блог з нуля простіше ніж будь-коли. Але це може бути
непростим завданням, якщо не знати, з чого почати.
Існують різні типи ігрових сайтів. Наприклад, веб-сайт, присвячений
виключно останнім новинам про найпопулярніші ігри та перегляду останніх
новинок в ігровому світі [5]. Або такий сайт, як Addicting Games, на якому є
маса різноманітних флеш-ігор на будь-який смак. Або окремий веб-сайт для
певного ігрового співтовариства.
Арк.
ЧДТУ 211979.002 ПЗ 5
З м н. Арк. № докум. Підпис Дата
Сайт, де користувачі можуть насправді грати в ігри, буде побудований
зовсім по-іншому, ніж сайт у стилі огляду останніх новин або центр ігрової
спільноти.
Є три ключових фактори для створення ігрового веб-сайту. Перше – це
насичена візуальність, далі – підтримка тематики спільноти і, нарешті,
працювати над доступністю сайту в мережі Інтернет.
Висока візуальність – це головний фокус для створення успішного веб-
сайту з іграми. Відвідуючи веб-сайт, користувачі повинні відразу відчути, яка
атмосфера веб-сайту. Правильно обрати шаблон дизайну сайту – теж важливо
для швидкого сприйняття тематики веб-сайту. Після розробки веб-орієнтованої
інформаційної системи можна переходити до публікації сайту в мережі
Інтернет та розпочати рекламну кампанію.
1.2 Постановка задачі
В кваліфікаційній роботі стоїть задача створення web-орієнтованої
інформаційної системи ігрових новин, де буде міститись інформація про
останні новини в ігровому світі по різним категоріям і магазин
найпопулярніших ігор для завантаження зареєстрованим користувачам з
можливістю оплати вибраної гри.
Основним завданням розробки веб-орієнтованої інформаційної системи
ігрових новин є:
аналіз та систематизація характеристик різних ігрових сайтів;
визначення системи критеріїв для порівняльної оцінки основних
характеристик та результатів роботи аналогічних сайтів;
визначення принципів реалізації динамічних сайтів;
розробка структури внутрішньої частини сайту ігрових новин;
розробка адміністративної частини веб-орієнтованої системи;
проаналізувати варіанти програмного забезпечення для вибору
засобів реалізації веб-орієнтованої інформаційної системи;
Арк.
ЧДТУ 211979.002 ПЗ 6
З м н. Арк. № докум. Підпис Дата
розробити інструменти для реєстрації та авторизації користувачів
на веб-сайті;
здійснити тестування розробленого програмного продукту.
1.3 Огляд та аналіз існуючих аналогів
За останні кілька років журналістика відеоігор зазнала чимало
проблем. Кілька відомих веб-сайтів із відеоіграми зазнали серйозних порушень
етики: змова, нерозкриті фінансові зв’язки тощо.
Крім того, для багатьох ігрових сайтів акцент змістився на перегляді
ігор, в основному на основі їх геймплею та якості. Зараз деякі веб-сайти
наголошують перш за все на соціальних та політичних проблемах, або навіть є
автори, які ставляться до деяких статей як до особистого блогу. Інші ігрові
сайти розгалужені, щоб охопити інші види розваг (наприклад, фільми,
телебачення та музика) на шкоду своїй ігровій тематиці.
В кваліфікаційній роботі досліджено ці проблеми та зроблено власні
висновки щодо того, яким має бути власний розроблений сайт.
Destructoid. Чудовий універсальний ігровий сайт, де є все. Він
регулярно публікує статті, щотижня з’являється безліч публікацій новин,
оглядів та функцій (рис. 1.1).
Рисунок 1.1 – Головна сторінка сайту Destructoid
Арк.
ЧДТУ 211979.002 ПЗ 7
З м н. Арк. № докум. Підпис Дата
Сюди входять оновлення певних ігор, попередній перегляд майбутніх
ігор та коментарі. Однак це не просто ігровий сайт новин. Destructoid публікує
огляди консольних і ПК-ігор, а також мобільні заголовки і навіть DLC. Його
огляди є простими, і можна прочитати систему підрахунку балів Destructoid,
щоб зрозуміти, як вона оцінює ігри.
GamesRadar+. Ще один із ігрових новинних сайтів, який пропонує
здоровий баланс вмісту (рис. 1.2). GamesRadar+ пропонує новини, огляди,
функції, практичний огляд нових ігор тощо. Можна переглядати огляди та
путівники за улюбленою системою або перевіряти останні новини та огляди.
Рисунок 1.2 – Головна сторінка сайту GamesRadar+
GamesRadar+ не робить огляд ігор, які роблять багато інших сайтів. На
момент написання роботи останні 20 публікацій сайту включають огляд
кількох відомих ігор, але в основному це апаратні огляди. Це свідчить про те,
що персонал не поспішає з відгуками про певні ігри.
Арк.
ЧДТУ 211979.002 ПЗ 8
З м н. Арк. № докум. Підпис Дата
В оглядах чітко визначені плюси/мінуси ігор та короткий зміст огляду
гри. Загалом, GamesRadar+ пропонує багато вмісту для ознайомлення, а також
короткі статті про те, щоб бути в курсі ігрових новин.
Game Informer. На відміну від інших ігрових веб-сайтів, які також
містять інформацію про фільми та телепередачі, тут ідеться лише про ігри (рис.
1.3). Тут є новини, анонси майбутніх ігор, огляди тощо.
Рисунок 1.3 – Головна сторінка сайту Game Informer
Це олдскульна веб-версія ігрового веб-сайту в надскладній сучасності,
що не залишає байдужим жодного користувача. Багато співробітників є
давніми гравцями комп’ютерних ігор, і сайт має професійне ставлення до
цього.
Загалом Game Informer – це веб-сайт від людей, які люблять відеоігри,
створений для гравців. Сайт не розглядає кожну маленьку гру, але те, що тут є,
подобається ігроманам.
Metacritic. Сам по собі це не оглядовий веб-сайт, а натомість
узагальнює оцінки з різних оглядових веб-сайтів (рис. 1.4).
Арк.
ЧДТУ 211979.002 ПЗ 9
З м н. Арк. № докум. Підпис Дата
Рисунок 1.3 – Головна сторінка сайту Metacritic
GameSpot. Це відомий ігровий сайт, який варто відвідати (рис. 1.4). На
його домашній сторінці можна знайти популярні та останні новини, а також
вкладки для фільтрування за улюбленими ігровими системами.
Рисунок 1.3 – Головна сторінка сайту GameSpot
Сайт оглядає як популярні ігри, так і невеликі, на будь-якій платформі.
Є відеоогляди та форуми для зв’язку і обговорення різних тем з іншими
геймерами.
Підводячи підсумки аналітичного огляду ігрових сайтів, можна
виділити ряд спільних недоліків: темна кольорова гамма, що негативно
впливає на сприйняття людським оком, відсутність мовної панелі, не всі сайти
дають вичерпну інформацію щодо останніх новин в ігровій галузі. В результаті
Арк.
ЧДТУ 211979.002 ПЗ 10
З м н. Арк. № докум. Підпис Дата
було прийнято рішення розробити власну веб-орієнтовану інформаційну
систему враховуючи переваги розглянутих сайтів і відсутність в розробленій
системі описаних вище недоліків.
1.4 Висновки до розділу 1
У першому розділі проведений детальний аналіз предметної області,
суті технічної проблеми, актуальність розробки, проаналізовано поточний стан
і перспективи розвитку ігрових новинних сайтів. Проведено аналітичний огляд
існуючих сайтів з даної теми, визначено їх переваги та недоліки, які будуть
враховані при розробці сайту комп’ютерних ігрових новин.
Арк.
ЧДТУ 211979.002 ПЗ 11
З м н. Арк. № докум. Підпис Дата
2 ПРОЄКТУВАННЯ WEB-ОРІЄНТОВАНОЇ ІНФОРМАЦІЙНОЇ
СИСТЕМИ КОМП’ЮТЕРНИХ ІГРОВИХ НОВИН
2.1 Ключові принципи розробки web-сайтів.
Веб-дизайн – це процес концептуалізації, планування та створення
колекції електронних файлів, що визначають макет, кольори, стилі тексту,
структуру, графіку, зображення та використання інтерактивних функцій, які
демонструють сторінки відвідувачам сайту.
Веб-дизайн охоплює безліч різних навичок та дисциплін у створенні та
обслуговуванні веб-сайтів. Різні галузі веб-дизайну включають веб-графічний
дизайн; дизайн інтерфейсу; авторство, включаючи стандартизований код та
власне програмне забезпечення; дизайн користувацького досвіду та
оптимізацію пошукової системи. Він також охоплює декілька різних аспектів,
включаючи макет веб-сторінки, виготовлення вмісту та графічний дизайн.
Хоча терміни «веб-дизайн» та «веб-розробка» часто використовуються як
взаємозамінні, веб-дизайн технічно є підгрупою ширшої категорії веб-
розробки.
За останні кілька років ми звикли до певних стандартів веб-дизайну.
Для того, щоб справити враження на відвідувачів сайту, слід створити такий
веб-сайт, який виходить за рамки простого, корисного та звичного.
Просте – найкраще. Надмірно розроблений веб-сайт може не
спрацювати. Розміщення завеликої кількості елементів на сторінці може
призвести до відволікання відвідувачів від основної мети веб-сайту. Простота
завжди працює в ефективному дизайні веб-сторінки. Чистий і свіжий дизайн
веб-сайту не тільки робить веб-сайт привабливим, але й допомагає
користувачеві легко переходити з однієї сторінки на іншу. Завантаження веб-
сайту з дизайнерськими особливостями, які не відповідають цілям, може бути
неприємним.
Арк.
ЧДТУ 211979.002 ПЗ 12
З м н. Арк. № докум. Підпис Дата
Послідовність. Послідовність дизайну веб-сайтів має велике значення.
Звернувши увагу на відповідність елементів дизайну на кожній зі сторінок,
можна зрозуміти, що шрифти, розміри, заголовки, підзаголовки та стилі кнопок
повинні бути однаковими на всьому веб-сайті. Необхідно пропрацювати
шрифти та правильні кольори для текстів, кнопок тощо та дотримуватись їх
протягом усієї розробки. CSS (каскадні таблиці стилів) стануть в нагоді для
збереження повної інформації про стилі та елементи дизайну.
Читабельність. Яким би гарним не був дизайн, текст все одно править
веб-сайтом, оскільки він надає користувачам потрібну інформацію. Потрібно
тримати свою типографіку візуально привабливою та читабельною для
відвідувачів. Необхідно використовувати шрифти, які легше читаються.
Сучасні шрифти без засічок, такі як Arial, Helvetica тощо, можуть бути
використані для основних текстів. Краще скласти належні комбінації шрифтів
для кожного елемента дизайну, такого як заголовки, тексти, кнопки тощо.
Мобільна сумісність. Маючи на увазі постійне зростання використання
смартфонів, планшетів та фаблетів, веб-дизайн повинен бути ефективним для
різних екранів. Якщо дизайн веб-сайту підтримує не всі розміри екрану,
швидше за все, можна програти битву конкурентам. Існує ряд студій веб-
дизайну або сервісних точок, де можна перетворити дизайн робочого столу на
адаптивний для будь-якого розміру екрану.
Кольорова гамма та образи. Ідеальне поєднання кольорів приваблює
користувачів, тоді як неякісне поєднання може призвести до відволікання
уваги. Це вимагає підібрати ідеальну кольорову гамму для веб-сайту, яка може
створити приємну атмосферу, тим самим залишаючи хороший вплив на
відвідувачів. Покращити ставлення користувачів можна вибираючи додаткову
палітру кольорів, щоб надати збалансований вигляд дизайну веб-сайту. Також
краще уникати використання завеликої кількості кольорів. 3 або 4 тони для
всього веб-сайту достатньо, щоб надати привабливий і чіткий дизайн. Так само
і з зображеннями.
Арк.
ЧДТУ 211979.002 ПЗ 1 3
З м н. Арк. № докум. Підпис Дата
Швидкість завантаження. Нікому не подобається веб-сайт,
завантаження якого забирає занадто багато часу. Тож необхідно подбати про
це, оптимізуючи розміри зображень, комбінуючи код у центральний файл CSS
або JavaScript, оскільки це зменшує запити HTTP. Також можна стискайти
HTML, JavaScript та CSS для підвищення швидкості завантаження.
Проста навігація. Дослідження показує, що відвідувачі залишаються
більше часу на веб-сайтах, що мають зручну навігацію. Для ефективної
навігації можна розглянути можливість створення логічної ієрархії сторінок та
проектування клікабельних кнопок. Варто дотримуватися «правила трьох
кліків», щоб відвідувачі могли отримати необхідну інформацію протягом трьох
кліків.
2.2 Основні етапи розробки будь-якого веб-сайту
Перш ніж розпочати будь-який проект, важливо співпрацювати в
команді та переконатися, що всі мають чітке бачення того, що має бути на
виході. Наявність конкретного плану та виявлення потенційних червоних
прапорів – найкращий спосіб запобігти появі непотрібної рутинної роботи, що
може вплинути на бюджет та терміни.
Визначення цілей. Важливо розуміти загальну мету веб-сайту при його
створенні. Варто переконатися, що команда має спільні думки про сайт, і що
він функціональний та побудований з урахуванням запланованої тематики та
аудиторії. Незалежно від того, яка ціль створення сайту - перетворити більше
відвідувачів на потенційних клієнтів або надати інвесторам цінну інформацію,
повинна бути встановлена ціль на самому початку, щоб розробники знали, до
чого прагнути.
Визначити цільову аудиторію. Розуміння цільового ринку є життєво
важливим для створення планів веб-сайту, який буде успішним. Для
визначення цільової аудиторії потрібно провести дослідження, створити образ
Арк.
ЧДТУ 211979.002 ПЗ 14
З м н. Арк. № докум. Підпис Дата
покупця та проаналізувати конкуренцію. Також чудова ідея – переглянути веб-
сайти, які цільова аудиторія може відвідувати.
Оптимізація пошукової системи (SEO). Завжди треба пам’ятати про
SEO, оскільки це безпосередньо впливає на ефективність та успіх сайту в
мережі. Немає кращого часу, щоб зосередитись на SEO, ніж коли ви створюєте
веб-сайт, оскільки це може допомогти заощадити багато часу в довгостроковій
перспективі. Знання ключових слів і їх класифікація полегшує включення в
дизайн та архітектуру сайту. У наш час також надзвичайно важливо мати
мобільний або адаптивний веб-сайт, оскільки Google оцінює їх вище, ніж ті, які
цього не роблять.
План контенту. Правильний вміст, який показується аудиторії, має
вирішальне значення для створення успішного веб-сайту. Потрібно не лише
переконатися, що вміст є, але й щоб він був інформативним і привабливим для
аудиторії та оптимізованим для пошукових систем. Розробник може мати
красиво структурований і спроектований веб-сайт, але якщо вмісту не
відповідає вимогам аудиторії – сайт не буде успішним.
Розробка кейсів використання, мапи сайту та каркасної структури.
Кейси використання допомагають встановити вимоги до проекту. Вони
допомагають визначити, як поводитимуться різні користувачі на сайті, та
окреслити кроки, які користувач зробить для досягнення своєї мети чи
завдання. Створення мапи сайту допомагає впорядкувати вміст, який буде на
веб-сайті. Це створює основу для сторінок, які будуть включені на сайті. При
розробці мапи сайту метою повинно бути максимально інтуїтивне і просте.
Однак важливо, щоб усі функції та функціональність були окреслені.
Каркасна структура – це, по суті, проект веб-сайту, який показує його
«скелетну» структуру. Це спосіб для замовника побачити макет і загальну
навігацію та функціональність сайту до початку його створення. Каркасні
рамки також допомагають дизайнеру краще зрозуміти, де повинні знаходитись
Арк.
ЧДТУ 211979.002 ПЗ 15
З м н. Арк. № докум. Підпис Дата
різні компоненти, і надає їм схему того, як повинен функціонувати веб-сайт і
де мають з’являтися різні функції.
2.3 База даних MySQL
База даних – це структурована сукупність даних. Ці дані можуть бути
різними: від простого списку майбутніх покупок до переліку експонатів у
художній галереї та різноманітної інформації в корпоративній мережі. Система
управління базами даних, в даному випадку MySQL, потрібна для запису,
отримання та обробки даних, що зберігаються в комп'ютерній базі даних.
Оскільки комп’ютери чудово обробляють великі обсяги даних, управління
базами даних відіграє центральну роль в обробці даних. Такий контроль може
бути реалізований різними способами – як у вигляді окремих утиліт, так і у
вигляді коду, що міститься в інших додатках.
MySQL – це реляційна система управління базами даних. У реляційній
базі даних дані зберігаються в окремих таблицях, а не масово, що збільшує
швидкість та гнучкість. Таблиці пов’язані між собою зв’язками так, що дані з
декількох таблиць можуть поєднуватися під час запуску запиту. SQL як
частину системи MySQL можна охарактеризувати як структуровану мову
запитів, а також як найбільш часто використовувану стандартну мову для
доступу до баз даних.
MySQL – це програмне забезпечення з відкритим кодом. Будь-хто може
використовувати та змінити його. Таке програмне забезпечення можна
отримати в Інтернеті та використовувати безкоштовно. У той же час кожен
користувач може вивчити вихідний код і змінити його відповідно до своїх
вимог.
MySQL дуже швидкий, надійний і простий у використанні. MySQL
також має ряд зручних функцій, розроблених у тісній співпраці з
користувачами. Спочатку сервер MySQL був розроблений для управління
великими базами даних з метою досягнення більш високої продуктивності, ніж
Арк.
ЧДТУ 211979.002 ПЗ 16
З м н. Арк. № докум. Підпис Дата
існувала у той час. І ось уже кілька років цей сервер успішно використовується
в умовах промислової експлуатації з високими вимогами. Незважаючи на те,
що MySQL постійно вдосконалюється, він уже пропонує широкий спектр
корисних функцій. Завдяки своїй доступності, безпеці та швидкості, MySQL
чудово підходить для доступу до баз даних в мережі Інтернет.
MySQL – це система клієнт-сервер, що включає багатопоточний SQL-
сервер, який підтримує різноманітні комп'ютери баз даних, а також різні
клієнтські програми та бібліотеки, адміністративні засоби та різноманітні
інтерфейси програмування (API).
Сервер MySQL постійно працює на комп'ютері. Клієнтські програми
(наприклад, сценарії PHP) надсилають запити SQL на сервер MySQL через
механізм сокета (тобто за допомогою мережевих ресурсів). Сервер обробляє їх
і зберігає результат. Тобто сценарій (клієнт) визначає, яку інформацію слід
отримувати від сервера бази даних. Потім сервер бази даних надсилає
відповідь (результат) клієнту (сценарію).
За запитом результат передається не в повному обсязі. Оскільки,
отриманий набір даних може бути занадто великим за розміром і тривати
занадто довго для передачі по мережі. І не часто потрібно отримувати всі
результати запиту одночасно (тобто всі записи, що відповідають виразу
запиту). Наприклад, потрібно підрахувати, скільки записів відповідає певній
умові, або просто вибрати перші 10 записів із даних. Механізм використання
сокета передбачає технологію клієнт-сервер. Це означає, що в системі повинна
працювати спеціальна програма – сервер MySQL, який приймає та обробляє
запити від програм. Оскільки вся робота фактично виконується на одній
машині, накладні витрати на роботу в мережі незначні (налаштування та
підтримка зв’язку з сервером MySQL досить дешеві).
Структура MySQL трирівнева: бази даних – таблиці – записи. Бази
даних та таблиці MySQL фізично представлені файлами з розширеннями *.frm,
*.myd, *.myi. Таблиця – це сукупність записів. А записи – це сукупність полів
Арк.
ЧДТУ 211979.002 ПЗ 1 7
З м н. Арк. № докум. Підпис Дата
різного типу. Назва бази даних MySQL унікальна в системі, таблиці унікальні в
базі даних, а поля унікальні в таблиці. Сервер MySQL може одночасно
підтримувати кілька баз даних, доступ до яких можна диференціювати за
іменем користувача та паролем. Якщо знати це ім’я користувача та пароль, то
можна працювати з певною базою даних. Наприклад, можна створити або
видалити в ній таблицю, додати записи тощо.
У реляційній базі даних дані зберігаються в окремих таблицях, що
збільшує швидкість і гнучкість. Таблиці пов’язані між собою зв’язками, так що
дані з декількох таблиць можуть поєднуватися під час запуску запиту. SQL як
частину системи MySQL можна охарактеризувати як структуровану мову
запитів, а також як найбільш часто використовувану стандартну мову для
доступу до баз даних.
Система безпеки MySQL базується на дозволах та паролях і може бути
перевірена з віддаленого комп’ютера. Це забезпечує гнучкість та безпеку.
Паролі шифруються, коли передаються по мережі при підключенні до сервера.
Клієнти можуть підключатися до MySQL через сокети TCP/IP, сокети Unix або
іменовані канали (на NT).
Починаючи з MySQL версії 3.23, яка використовує новий тип таблиці,
максимальний розмір таблиці збільшено до 8 мільйонів терабайт. Однак слід
зазначити, що операційні системи мають власні обмеження розміру файлу.
Як зазначалося вище, розмір таблиці в базі даних MySQL, як правило,
обмежується операційною системою. За замовчуванням таблиці MySQL мають
максимальний розмір приблизно 4 ГБ. Для кожної таблиці можна
перевірити/визначити її максимальний розмір за допомогою команд SHOW
TABLE STATUS або myisamchk -dv table_name. Якщо велика таблиця доступна
лише для читання, можна використовувати myisampack, щоб об’єднати кілька
таблиць в одну та зменшити їх. Зазвичай myisampack стискає таблицю
щонайменше на 50%, так що можуть виникати дуже великі таблиці.
Арк.
ЧДТУ 211979.002 ПЗ 18
З м н. Арк. № докум. Підпис Дата
2.4 Висновки до розділу 2
В другому розділі описано ключові принципи для успішного створення
веб-орієнтованих інформаційних систем, основні етапи розробки веб-сайтів та
базу даних, що використовувалась для розробки веб-орієнтованої
інформаційної системи комп’ютерних ігрових новин.
Арк.
ЧДТУ 211979.002 ПЗ 19
З м н. Арк. № докум. Підпис Дата
3 РОЗРОБКА ПРОГРАМНОЇ ЧАСТИНИ
3.1 Етапи розробки веб-орієнтованої інформаційної системи ігрових
новин
Для того, щоб створити веб-сайт ігрових новин, необхідно здійснити
кілька кроків. Перше – це придбати доменне ім’я для веб-сайту.
На вибір є десятки реєстрів доменних імен, отож необхідно вибрати
один і починати пошук. Доменне ім’я повинно підходити і відповідати тому,
що буде на сайті. З огляду на це, можливо, одразу буде важко знайти вільне не
зарезервовану назву сайту. Якщо це так, просто необхідно шукати щось
близьке до нього або використовувати гру слів або інший варіант написання.
Можна також шукати, використовуючи інше розширення імені домену. Для
веб-орієнтованої інформаційної системи ігрових новин вибрано доменне ім’я
compnews.com.
Тепер, коли доменне ім’я вибране, настав час знайти веб-хостинг. Існує
багато компаній на вибір, але потрібно знайти таку, яка надасть все необхідне в
одному місці для створення веб-сайту ігрових новин.
Існує велика різниця між реєстрацією домену та хостингом. Ситуація
схожа на міські гаражі, які також пропонують машини на продаж. Можна
придбати машину у одного з них, а також зберігати свою машину в їх гаражі,
але також можна зберігати свою машину в іншому гаражі, оскільки машина
юридично ваша.
Хостинг – це, по суті, місце для зберігання файлів веб-сайту. Реєстрація
домену означає отримання законного права власності на частину Інтернет-
нерухомості.
При виборі хостингу слід звернути увагу на:
Справді необмежені плани: Деякі провайдери хостингу рекламують
вільний простір, пам’ять або пропускну здатність, але все ж обмежують його
Арк.
ЧДТУ 211979.002 ПЗ 20
З м н. Арк. № докум. Підпис Дата
на певному рівні. Потрібно уважно прочитати їх умови та з’ясувати, чи
необмежені тарифи, які вони пропонують, дійсно необмежені.
Експертний персонал служби підтримки. Після розміщення веб-
сайту можуть виникнути деякі технічні проблеми. Хостинг-провайдер повинен
надати підтримку з цього приводу. Їхні експерти повинні мати можливість
швидко вирішити будь-які проблеми з хостингом, які можуть виникнути у
користувача хостингу.
Навчання високої якості. Хостинг-провайдер повинен пропонувати
високоякісні ресурси, щоб дізнатися, як керувати розміщеним сайтом. Це
важливо, оскільки тоді не доведеться покладатися на їх службу підтримки у
всіх проблемах.
Додаткові послуги. Чи пропонує хостинг-провайдер регулярно
робити резервні копії даних, виправляти помилки та оновлювати програмне
забезпечення на стороні сервера? Це важливо, оскільки може заощадити багато
часу на обслуговування веб-сайту.
Надійність. Постачальник веб-хостингу повинен постійно
забезпечувати, щоб веб-сайт працював в Інтернеті. Він не повинен «падати»
без потреби. Провайдер веб-хостингу також повинен вжити заходів безпеки
проти хакерів та захистити веб-сайт на своїх серверах. Що ще важливіше, вони
повинні допомагати у вирішенні будь-яких проблем, надаючи підтримку
клієнтам.
Вибір постачальника веб-хостингу не такий вже й складний. Все, що
потрібно зробити, це переконатися, що хостинг-провайдер розуміє потреби
користувача.
Як тільки перші два кроки виконані, можна перейти до вибору
правильної системи управління вмістом, а також тем та плагінів.
Арк.
ЧДТУ 211979.002 ПЗ 21
З м н. Арк. № докум. Підпис Дата
3.2 Вибір засобів розробки
3.2.1 Методи та підходи до розробки веб-орієнтованої інформаційної
системи комп’ютерних ігрових новин
Cьогодні існує безліч різних методів та підходів до створення веб-
сайтів. Існує занадто багато варіантів вибору, що ускладнює вибір того, що
може підійти під конкретну задачу. Розгланемо найпопулярніші з них.
1) Створення веб-сайтів за допомогою коду вручну. Майже всі веб-
сайти в Інтернеті створюються та розробляються з використанням HTML / CSS
та мов програмування, таких як PHP, Java, jquery, python тощо. Навіть програма
для побудови веб-сайтів, wordpress.com, wordpress.org, wix.com, google.com,
facebook.com та amazon.com всі ці веб-сайти створюються за допомогою
HTML, CSS та різних мов програмування. Використання мов програмування
базується на рівні функціональності, яка потрібна кожному на веб-сайті.
Основні веб-мови/інструменти, які необхідно знати, щоб написати сайт
«з нуля»:
HTML (мова розмітки гіпертексту). HTML – це основна
структура веб-сторінок та веб-додатків, яка робить зміст
семантичним для веб-браузера. Він складається з послідовних
тегів, що має відкриття та закриття, та структурно ключового
слова, укладеного кутовими дужками. Приклад: <strong>
</strong>.
CSS (каскадні таблиці стилів). CSS – це мова стилів, яка
використовується для оформлення розмітки HTML веб-
сторінки. Без CSS веб-сторінка виглядала б нічим іншим, як
великою білою сторінкою, на якій було б кілька впорядкованого
тексту та зображення. CSS – це те, що робить сторінку ідеально
такою, якою ми хочемо.
Арк.
ЧДТУ 211979.002 ПЗ 22
З м н. Арк. № докум. Підпис Дата
Мови сценаріїв. HTML і CSS – це ніщо без мов сценаріїв,
оскільки вони не є інтерактивними. Щоб створити динамічну веб-
сторінку, яка відповідатиме вимогам користувачів, потрібні такі
мови, як JavaScript та jQuery. Мови на стороні сервера, такі як
PHP, Python та Ruby, також можуть знадобитися з часом.
Управління базами даних. Для зберігання, управління та
доступу до даних веб-сайту, що вводяться користувачем,
розглядається велика таблиця інформації, яка називається базою
даних. Для ефективного виконання цієї роботи на стороні сервера
використовується система управління базами даних, така як
MySQL, MongoDB та PostgreSQL.
FTP (Протокол передачі файлів). FTP використовується для
легшої передачі вихідних файлів веб-сайту на його розміщений
сервер. Існують FTP-клієнти, що базуються на Інтернеті, а також
на комп’ютерному програмному забезпеченні, які можна
використовувати для завантаження своїх файлів на серверний
комп’ютер.
2) Створення веб-сайту за допомогою конструкторів сайтів. За
допомогою конструкторів веб-сайтів легко та швидко можна налаштувати веб-
сайт. Не знаючи веб-мов, можна за лічені хвилини запустити
повнофункціональний веб-сайт. Використання конструкторів веб-сайтів
потребують нульових знань кодування.
Необхідні навички та інструменти:
Знання: Основи роботи з комп’ютером та Інтернетом.
Інструменти: Wix та Weebly
Існує безліч конструкторів сайтів, розкиданих по Інтернету, але не всі
вони можуть задовольнити потреби. Наступні три – це найбільш обговорювані
Арк.
ЧДТУ 211979.002 ПЗ 23
З м н. Арк. № докум. Підпис Дата
та популярні розробники веб-сайтів, якими можна скористатися, створюючи
свій сайт.
Wix. Wix – це один з найпростіших конструкторів сайтів на ринку, який
має 500+ повністю налаштованих шаблонів, відсортованих за різними
категоріями. Wix пропонує гнучкий редактор веб-сайтів Drag&Drop. Можна
перетягнути один елемент зі списку та опустити його куди завгодно на веб-
сайті, щоб додати. Будь-який видимий елемент на сайті можна переміщати або
редагувати.
Єдиним недоліком є те, що на сайті Wix є реклама. Можна позбутися
цього, придбавши певний тарифний план.
Weebly. Weebly простіший у багатьох відношеннях, за Wix. Weebly
пропонує сотні шаблонів на вибір, але варіанти персоналізації можуть здатися
обмеженими.
Weebly має велику кількість заздалегідь розроблених макетів сторінок
(наприклад: сторінку про нас, сторінку цін, сторінку контактів), які можна
використовувати та змінювати.
Конструктор Drag&Drop простий у використанні, але іноді є обмеження
визначеними областями для налаштування. Наявність розширень та сторонніх
додатків також обмежена.
3) Створення веб-сайту за допомогою CMS. Система управління
вмістом побудована настільки тактично, що підходить як для початківців, так і
для досвідчених веб-розробників.
Це програмний додаток, що спрощує створення та управління вмістом в
Інтернеті. Більшість із них відкриті та вільні у використанні.
Необхідні навички та інструменти:
Знання: Базова робота з комп’ютером та Інтернетом; HTML, CSS
та PHP (не обов'язкові, але краще, якщо знати основи).
Інструменти: WordPress , Joomla, Drupal тощо.
Арк.
ЧДТУ 211979.002 ПЗ 24
З м н. Арк. № докум. Підпис Дата
WordPress. За різними статистичними даними, WordPress
використовується в максимальній кількості блогів та веб-сайтів малого та
середнього розміру. Проте, багато великих веб-сайтів використовують
WordPress за його простоту (рис. 3.1). Редактор WYSIWYG – це єдине, чому
потрібно навчитися, щоб розмістити свій перший сайт.
Ця платформа є інституційною для початківців, а також широко
розвивається різними класами веб-розробників. Він має безліч безкоштовних
плагінів та тем у власній базі даних (рис. 3.1). Оскільки це перший вибір
системи управління вмістом, збоку доступна велика кількість сторонніх
ресурсів.
Рисунок 3.1 – Вибір тем WordPress
Переваги:
Дуже гнучкий та настоюваний.
Простий у використанні.
Тонни навчальних ресурсів.
Відмінна спільнота та підтримка.
Недоліки:
Потрібен код для основних візуальних налаштувань.
Оновлення можуть спричинити проблеми з плагінами.
Арк.
ЧДТУ 211979.002 ПЗ 25
З м н. Арк. № докум. Підпис Дата
Joomla. Joomla багато в чому схожа на WordPress. Вона також простий у
використанні, простий у встановленні та може бути легко розширений за
допомогою модулів – еквівалента плагінів WordPress. Як результат, це другий
найкращий варіант для початківців (рис. 3.2).
Рисунок 3.2 – Система Joomla
Однак новачкам може бути страшніше дослідити Joomla через кількість
доступних варіантів. Окрім лівого меню, у верхній панелі праворуч над
логотипом “Панель управління” є меню. Щоб уникнути плутанини, потрібно
пам’ятати, що деякі елементи з меню лівої та верхньої панелі схожі, зокрема
„Вміст”, „Користувачі” та „Розширення”.
Як і WordPress, Joomla має деякі стилі та шаблони, які можуть швидко
надати сайту особливий вигляд. Але з усіх трьох систем управління вмістом
Joomla пропонує найпростіше рішення щодо створення соціальної мережі.
Завдяки таким платформам, як EasySocial та JomSocial, створити власний веб-
сайту в соціальних мережах можна за декілька хвилин.
Drupal. Досвідчені веб-розробники підтверджують, що Drupal – це
найпотужніша система управління вмістом (рис. 3.3).
Однак вона також є найскладнішою у використанні. Завдяки своїй
гнучкості, Drupal є другою за частотою системою управління вмістом у світі,
Арк.
ЧДТУ 211979.002 ПЗ 26
З м н. Арк. № докум. Підпис Дата
але вона не є улюбленою серед початківців. Щоб успішно створити «повний»
веб-сайт за допомогою Drupal, потрібно навчитися основам кодування.
Рисунок 3.3 – Система Drupal
Переваги:
Легко вчитися.
Чудовий довідковий портал.
Оновлення інтегруються без проблем.
Багато вбудованих опцій.
Недоліки:
Крута крива навчання на початковому етапі – рекомендована для
досвідчених користувачів.
3.2.2 Система керування вмістом Wordpress
WordPress – одна з найпопулярніших систем управління вмістом з
відкритим кодом, оточена глобальним співтовариством зацікавлених
користувачів, розробників та служб підтримки. Хоча WordPress можна
порівняти з TypePad, Moveable Type, Google Blogger та проектом Apache Roller,
він відрізняється від них безліччю функцій, функціональних розширень
(плагінів) та естетичних елементів дизайну (тем).
Зі зростанням функцій самовидавництва, недорогих варіантів хостингу
та вільно доступних основних компонентів, таких як бази даних MySQL,
програмне забезпечення для ведення блогів дотримується тієї ж тенденції, що й
Арк.
ЧДТУ 211979.002 ПЗ 27
З м н. Арк. № докум. Підпис Дата
більшість інших цифрових технологій, переходячи від передових дорогих
продуктів до загальнодоступних бюджетних користувачів "любителів" -
Системи. WordPress - це не просто створення блогу для приєднання цифрового
щоденника до приємної, заповітної URL-адреси. Він перетворився на
повноцінну систему управління вмістом, яка використовується як окремими
користувачами, так і компаніями. Цей розділ містить короткий огляд ранньої
історії WordPress і закінчується описом поточної версії та спільноти, що
стосується користувачів.
WordPress еволюціонував так само, як і багато інших популярних
програмних пакетів з відкритим кодом: Кілька талановитих розробників
визнали необхідність створення потужних, але простих інструментів на основі
існуючого ліцензованого проекту GPL. У цьому випадку відправною точкою
була система b2 / cafelog Мішеля Вальдріджі. WordPress був розроблений
розробниками Меттом Малленвегом та Майком Літтлом як гілка цієї кодової
бази. Вперше WordPress з’явився в 2003 році на основі бази даних MySQL з
відкритим кодом (для зберігання даних) з PHP як основною мовою розробки.
Waldrigi продовжує сприяти проекту, який процвітає на зростаючому
співтоваристві користувачів та розробників.
Як і інші системи, написані на PHP, WordPress є автономним у тому
сенсі, що завдання, пов'язані з установкою, конфігурацією, адмініструванням
та адмініструванням, містяться в модулях PHP. Популярність WordPress
частково зумовлена простотою цієї системи. Фраза "встановлення за п’ять
хвилин" використовується майже в кожному описі чи книзі про неї. На додаток
до можливості опублікувати перший набір даних, WordPress був розроблений
для розширення та адаптації до різних потреб різних людей.
У наші дні WordPress підтримується декількома розробниками ядра та
багатьма програмістами, що надають підтримку. Майк Літтл управляє
магазином WordPress zedl.com і час від часу створює виправлення для коду.
Matt Mullenweg Automattic продовжує керувати хостинговою службою
Арк.
ЧДТУ 211979.002 ПЗ 2 8
З м н. Арк. № докум. Підпис Дата
wordpress.com та підтримує розробку відповідних інструментів для управління
вмістом та веб-сайтами, включаючи Akismet, WordPress Multisite та Gravatar.
Akismet – це надійна служба проти спаму, заснована на Automattic, і має
статистично неймовірно низький рівень помилок виявлення. Раніше відомий як
WordPress MU, багатосайтові можливості WordPress лежать в основі
хостингової системи wordpress.com і тепер включені в основне дерево джерел
WordPress. Gravatar динамічно передає зображення, прив'язані до адрес
електронної пошти, і пропонує символи численні варіанти відображення.
Визначення WordPress як системи управління вмістом не обмежується
хронологічним розташуванням записів із коментарями. BuddyPress - це низка
тем та плагінів, які розширюють WordPress до робочої соціальної мережі, що
дозволяє зареєстрованим користувачам надсилати повідомлення, спілкуватися
між собою та повністю взаємодіяти з вмістом, яким керує WordPress. Так само
bbPress – це система на основі PHP та MySQL, розроблена для дошок
оголошень, яка відрізняється від WordPress, але зазвичай інтегрована в неї.
3.3 Програмна реалізація web-орієнтованої інформаційної системи
ігрових новин
Сайт web-орієнтованої інформаційної системи комп’ютерних ігрових
новин створено на популярній безкоштовній системі управління сайтами
WordPress з відкритим вихідним текстом OpenSource. Ця система управління
досить поширена, легко встановлюється і підтримується, що і зумовило цей
вибір. Основна перевага WordPress – він надзвичайно гнучкий у налаштуванні,
функції сайту на WordPress практично безмежні і можуть бути обмежені лише
фантазією замовника. Філософія WordPress – це легке і максимально швидке
ядро, що дозволяє підключати до нього додаткові модулі-плагіни у міру
необхідності залежно від того, якою функціональністю повинен володіти сайт.
WordPress дозволяє підключати будь-яку кількість плагінів для додаткових
функцій, швидко змінювати теми оформлення сайтів.
Арк.
ЧДТУ 211979.002 ПЗ 29
З м н. Арк. № докум. Підпис Дата
Працюючи над завданням створення інформаційної системи комп’ютерних
ігрових новин, потрібно було побудувати зрозумілий і легкий для сприйняття
користувачами інтерфейс, не обтяжений зайвими функціями, але достатньо
наповнений потрібною інформацією з функціональними можливостями
інтерактивної системи. На прикладі сайту http://CompNews.com/ це вдалося
зробити.
Сайт розроблено у стриманій блакитно-білій кольоровій гамі, що легко
сприймається користувачами. Оскільки це портал ігрових новин, то
користувачів зустрічають на головній сторінці власне статті на теми ігор та
інформаційних технологій загалом. Ліворуч розташований логотип порталу
CompNews, який створено в Photoshop лаконічним поєднанням двох простих
шрифтів для легкого запам’ятовування. Користувач, клікнувши по ньому,
переходить на Головну сторінку сайту. Фактично тут є всі останні новини
новинного порталу, яка потрібна користувачам.
Головне меню сайту традиційно знаходиться зверху сторінки, прозоре і
легке для сприйняття. Основні назви пунктів Головного меню – категорії новин
для легкого орієнтування по сайту. Також вище логотипу розташовано
додаткове коротке меню з контактами та профілем користувача (Рисунок 3.4):
Рисунок 3.4 – Меню сайту
Меню створено в Головній Консолі (Рисунок 3.5):
Арк.
ЧДТУ 211979.002 ПЗ 30
З м н. Арк. № докум. Підпис Дата
Рисунок 3.5 – Головне меню в Консолі
Головне меню включає в себе сторінки:
«Головна». На головній сторінці користувач може познайомитись з
головними новинами ігрової індустрії, переглянути відео, прочитати популярні
статті та огляди, відвідати магазин ігор чи обрати для перегляду тему, яка
цікавить. Внизу сторінки є коротка інформація про портал ігрових новин,
перелік найбільш обговорюваних і популярних статей, посилання на соціальні
мережі та дані про розробника сайту (Рисунок 3.6).
Арк.
ЧДТУ 211979.002 ПЗ 31
З м н. Арк. № докум. Підпис Дата
Рисунок 3.6 – Головна сторінка
«ІТ-індустрія». На цій сторінці розташовано новини в категорії ІТ-
індустрії. Також ці новини розбиті на три підкатегорії: Застосунки, ОС та
Ринки, за якими теж можна обрати статті. На правій боковій панелі знаходиться
інформація про товари за зниженими цінами, категорії товарів, які можна
Арк.
ЧДТУ 211979.002 ПЗ 32
З м н. Арк. № докум. Підпис Дата
обрати, а також календар з позначками виходів статей та популярні новини. В
підвалі сайту – традиційно інформація про портал ігрових новин, популярні
статті, посилання на соцмережі та розробника сайту (Рисунок 3.7).
Рисунок 3.7 – Сторінка «ІТ-індустрія»
«Інновації». На цій сторінці розміщено статті з категорії Інновації, які
опубліковано в хронологічному порядку (Рисунок 3.8). Статті можна
коментувати та ділитися ними в соцмережах. Ця опція доступна
зареєстрованим на сайті користувачам. Всі коментарі адміністратор сайту може
Арк.
ЧДТУ 211979.002 ПЗ 3 3
З м н. Арк. № докум. Підпис Дата
редагувати в Консолі (Рисунок 3.9). Внизу сайту – інформація про портал
новин, перелік популярних новин, посилання на розробника сайту та
соцмережі.
Рисунок 3.8 – Сторінка «Інновації»
Арк.
ЧДТУ 211979.002 ПЗ 34
З м н. Арк. № докум. Підпис Дата
Рисунок 3.9 – Редагування коментарів в Консолі
«Ігри». На сторінці розміщено інформацію з категорії статей про ігрову
індустрії та комп’ютерні ігри зокрема. Звичайно, статті можна користувачам
коментувати, завдяки коментарям, а саме їх кількості, стаття потрапить в
категорію Популярні статті. На правій боковій панелі розміщено інформацію
про товари магазину, які зараз продаються зі знижками, а також перелік
популярних статей на сайті (Рисунок 3.10).
Арк.
ЧДТУ 211979.002 ПЗ 35
З м н. Арк. № докум. Підпис Дата
Рисунок 3.10 – Сторінка «Ігри»
Сторінка «Гаджети». На цій сторінці користувачі ознайомлюються з
останніми новинами в галузі сучасних гаджетів, їх виробництва (Рисунок 3.11).
Запис можна створити чи редагувати в Консолі, є можливість додати не лише
текстову інформацію чи фото, але й аудіо та відеоролики (Рисунок 3.12). На
правій боковій панелі – інформація про розпродажні товари та популярні
дописи.
Арк.
ЧДТУ 211979.002 ПЗ 36
З м н. Арк. № докум. Підпис Дата
Рисунок 3.11 – Сторінка «Гаджети»
Рисунок 3.12 – Редагування сторінки «Гаджети»
Сторінка «Магазин». Це сторінка онлайн-магазину, де завзяті ігромани
мають змогу купити ігри для різних пристроїв. На головній сторінці магазину
розташовано перелік ігор з цінами і кнопкою «Додати у кошик». На боковій
панелі праворуч – інформація про додані товари у кошик, товари зі знижками,
Арк.
ЧДТУ 211979.002 ПЗ 37
З м н. Арк. № докум. Підпис Дата
фільтр по категоріям товарів і фільтр за ціною. Нижче – архів дописів по датах
та найпопулярніші статті на сайті (Рисунок 3.13).
Рисунок 3.13 – Сторінка «Магазин»
Користувач може переглянути про товар більш детальну інформацію,
натиснувши на нього (Рисунок 3.14).
Арк.
ЧДТУ 211979.002 ПЗ 38
З м н. Арк. № докум. Підпис Дата
Рисунок 3.14 – Сторінка «Товар»
Арк.
ЧДТУ 211979.002 ПЗ 39
З м н. Арк. № докум. Підпис Дата
Товар адміністратор сайту додає і редагує через Консоль. Підключивши
плагін WooCommerce, є можливість додати віртуальний завантажуваний файл,
як у випадку з моїм магазином ігор (Рисунок 3.15).
Рисунок 3.15 – Редагування товарів в Консолі
Для додавання чи редагування основного фото товару, а також взагалі
додавання будь-якого медіафайла в статті на сайті, адміністратор може це
зробити в Консолі (Рисунок 3.16).
Арк.
ЧДТУ 211979.002 ПЗ 40
З м н. Арк. № докум. Підпис Дата
Рисунок 3.16 – Редагування медіафайлів в Консолі
Після того, як користувач натиснув на кнопку «Додати в кошик», він
переходить на сторінку власне Кошика, де може продивитись обраний товар,
змінити його кількість, застосувати купон на знижку або продовжити покупку.
Якщо його все влаштовує, він натискає кнопку «Перейти до оформлення»
(Рисунок 3.17).
Арк.
ЧДТУ 211979.002 ПЗ 41
З м н. Арк. № докум. Підпис Дата
Рисунок 3.17 – Сторінка «Кошик»
Потім користувач на сторінці «Оформлення замовлення» повинен заповнити
платіжні дані, як то адресу, телефон, ім’я, електронну пошту, а також обрати
спосіб оплати та підтвердити замовлення (Рисунок 3.18).
Арк.
ЧДТУ 211979.002 ПЗ 42
З м н. Арк. № докум. Підпис Дата
Рисунок 3.18 – Сторінка «Оформлення замовлення»
Після підтвердження замовлення користувач переходить на наступну
сторінку, може ознайомитись з деталями замовлення. Також ця інформація буде
направлена користувачеві на електронну пошту, вказану при оформленні
замовлення (Рисунок 3.19).
Арк.
ЧДТУ 211979.002 ПЗ 43
З м н. Арк. № докум. Підпис Дата
Рисунок 3.19 – Сторінка «Подробиці замовлення»
Всі замовлення адміністратор редагує через Консоль Wordpress. Так як всі
товари в магазині завантажувані, то після оплати адміністратор змінює статус
Арк.
ЧДТУ 211979.002 ПЗ 44
З м н. Арк. № докум. Підпис Дата
замовлення на «Виконано» і лише тоді покупець може скачати гру в
особистому кабінеті на сайті (Рисунок 3.20).
Рисунок 3.20 – Редагування замовлення через Консоль
Також адміністратор може проглянути всю аналітику та складені звіти в
Консолі в плагіні WooCommerce, як то валові продажі за певний період,
продажі в розрізі покупців, статуси замовлень тощо (Рисунок 3.21).
Арк.
ЧДТУ 211979.002 ПЗ 45
З м н. Арк. № докум. Підпис Дата
Рисунок 3.21 – Аналітика замовленнь через Консоль
Сторінка Контакти. На сторінці розміщено інформацію керівників та
працівників порталу комп’ютерних ігрових новин CompNews, про адресу, а
також форма зворотнього зв'язку. Користувач має змогу надіслати свої питання,
заповнивши поля форми та клікнувши на кнопку «Надіслати». Ця інформація
направляється на електронну адресу адміністратора сайту. Також на сторінці
збоку інформація про товари на розпродажі, календар статей та найпопулярніші
дописи (Рисунок 3.22).
Арк.
ЧДТУ 211979.002 ПЗ 46
З м н. Арк. № докум. Підпис Дата
Рисунок 3.22 – Сторінка «Контакти»
Арк.
ЧДТУ 211979.002 ПЗ 47
З м н. Арк. № докум. Підпис Дата
Форма зворотнього зв’язку на сторінці «Контакти» була створена завдяки
плагіну WPForms Lite, в якому можна редагувати всі поля, їх тип, значення
(Рисунок 3.23).
Рисунок 3.23 – Редагування форми зворотнього зв’язку на сторінці «Контакти»
Сторінка «Мій профіль». На цю сторінку користувач може зайти двома
способами – через коротке верхнє меню та через пункт головного меню. Тут
користувач може зареєструватись для зручності, переглянути свої замовлення,
зроблені на сайті в магазині, скачати файли куплених ігор після оплати, а також
редагувати інформацію про себе (ім’я, адресу, телефон, електронну пошту,
аватар, пароль) (Рисунок 3.24).
Рисунок 3.24 – Сторінка «Мій профіль»
Арк.
ЧДТУ 211979.002 ПЗ 48
З м н. Арк. № докум. Підпис Дата
Адміністратор сайту додає або редагує статті в Консолі (Рисунок 3.25).
Рисунок 3.25 – Записи сайту в Консолі
3.4 Висновки до розділу 3
В даному розділі детально описано процес розробки веб-орієнтованої
інформаційної системи комп’ютерних ігрових новин, представлено дизайн
сайту та вміст сторінок.
Арк.
ЧДТУ 211979.002 ПЗ 49
З м н. Арк. № докум. Підпис Дата
ВИСНОВКИ
Комп’ютерні ігри існують вже десятки років, забезпечуючи розваги і для
дітей, і для дорослих. Вони значно еволюціонували з перших днів
комп’ютерних ігор та перших версій Nintendo та Atari. Часи монохромних
екранів та обмежених звукових ефектів залишаються в далекій пам’яті,
оскільки відеоігри стали як ніколи життєвими. Оскільки технологія продовжує
вдосконалюватися, зростає і інтерес до появи нових ігор. Тому створення веб-
сайту ігрових новин як ніколи стає актуальним.
В кваліфікаційній роботі бакалавра обґрунтовано актуальність вибору
теми розробки. Сьогодні важко знайти людину, яка б не цікавилась іграми,
особливо серед підростаючого покоління. Тому і розробка веб-орієнтованої
інформаційної системи комп’ютерних ігрових новин наразі є затребуваною
серед великої кількості тематичних веб-сайтів.
В роботі здійснено постановку задачі та досліджено предметну область.
Аналітичний огляд існуючих сайтів комп’ютерних ігрових новин виявив ряд
спільних недоліків (наприклад, темна кольорова гамма, що негативно впливає
на сприйняття людським оком, відсутність мовної панелі, не всі сайти дають
вичерпну інформацію щодо останніх новин в ігровій галузі тощо), які були
враховані в розробці власного веб-сайту http://CompNews.com/.
Також в роботі детально описано ключові принципи та етапи розробки
веб-сайтів. Спроектовано базу даних та вибрано в якості засобу розробки веб-
сайту CMS Wordpress.
Отже, можна стверджувати, що мета роботи досягнута, всі вимоги
технічного завдання виконані у повному обсязі.
Арк.
ЧДТУ 211979.002 ПЗ 50
З м н. Арк. № докум. Підпис Дата
ДОДАТОК A
ЗАТВЕРДЖЕНО
Зав. кафедри ІТП, проф.
_________________ Прокопенко Т.О.
«____» ________________ 2021 р.
WEB-ОРІЄНТОВАНА ІНФОРМАЦІЙНА СИСТЕМА КОМП’ЮТЕРНИХ ІГРОВИХ
НОВИН
Специфікація
482 ЧДТУ 21979-01
Листів 2
Розробник _______________ Василенко В.Б.
Керівник _______________ Рудницький С.В.
Н. Контроль _______________ Колесніков К.В.
Черкаси, 2021
2
482 ЧДТУ 21979-01
Позначення Найменування Примітка
Документація
482 ЧДТУ 21979-01 12 01 Текст програми
WEB-ОРІЄНТОВАНА ІНФОРМАЦІЙНА СИСТЕМА КОМП’ЮТЕРНИХ
ІГРОВИХ НОВИН
482 ЧДТУ 21979-01 12 01
Текст програми
Листів 21
Розробник _____________ Василенко В.Б.
Н
2021
2
482 ЧДТУ 21979-01 34 01
Лістинг програмного коду файлу class-form.php плагіну WPForms Lite для форми
зворотнього зв’язку на сайті.
<?php
/**
* All the form goodness and basics.
*
* Contains a bunch of helper methods as well.
*
* @since 1.0.0
*/
class WPForms_Form_Handler {
/**
* Primary class constructor.
*
* @since 1.0.0
*/
public function __construct() {
// Register wpforms custom post type.
$this->register_cpt();
// Add wpforms to new-content admin bar menu.
add_action( 'admin_bar_menu', array( $this, 'admin_bar' ), 99 );
}
/**
* Register the custom post type to be used for forms.
*
* @since 1.0.0
*/
public function register_cpt() {
// Custom post type arguments, which can be filtered if needed.
$args = apply_filters(
'wpforms_post_type_args',
array(
'label' => 'WPForms',
'public' => false,
'exclude_from_search' => true,
'show_ui' => false,
'show_in_admin_bar' => false,
'rewrite' => false,
'query_var' => false,
'can_export' => false,
'supports' => array( 'title' ),
3
482 ЧДТУ 21979-01 34 01
'capability_type' => 'wpforms_form', // Not using 'capability_type' anywhere. It just
has to be custom for security reasons.
'map_meta_cap' => false, // Don't let WP to map meta caps to have a granular
control over this process via 'map_meta_cap' filter.
)
);
// Register the post type.
register_post_type( 'wpforms', $args );
}
/**
* Add "WPForms" item to new-content admin bar menu item.
*
* @since 1.1.7.2
*
* @param WP_Admin_Bar $wp_admin_bar WP_Admin_Bar instance, passed by reference.
*/
public function admin_bar( $wp_admin_bar ) {
if ( ! is_admin_bar_showing() || ! wpforms_current_user_can( 'create_forms' ) ) {
return;
}
$args = array(
'id' => 'wpforms',
'title' => esc_html__( 'WPForms', 'wpforms-lite' ),
'href' => admin_url( 'admin.php?page=wpforms-builder' ),
'parent' => 'new-content',
);
$wp_admin_bar->add_node( $args );
}
/**
* Fetch forms.
*
* @since 1.0.0
*
* @param mixed $id Form ID.
* @param array $args Additional arguments array.
*
* @return array|bool|null|WP_Post
*/
public function get( $id = '', $args = array() ) {
$args = apply_filters( 'wpforms_get_form_args', $args, $id );
if ( false === $id ) {
return false;
}
4
482 ЧДТУ 21979-01 34 01
$forms = empty( $id ) ? $this->get_multiple( $args ) : $this->get_single( $id, $args );
if ( empty( $forms ) ) {
return false;
}
return $forms;
}
/**
* Fetch a single form.
*
* @since 1.5.8
*
* @param string|int $id Form ID.
* @param array $args Additional arguments array.
*
* @return array|bool|null|WP_Post
*/
protected function get_single( $id = '', $args = array() ) {
$args = apply_filters( 'wpforms_get_single_form_args', $args, $id );
if ( ! isset( $args['cap'] ) && wpforms()->get( 'access' )->init_allowed() ) {
$args['cap'] = 'view_form_single';
}
if ( ! empty( $args['cap'] ) && ! wpforms_current_user_can( $args['cap'], $id ) ) {
return false;
}
// @todo add $id array support
// If ID is provided, we get a single form
$form = get_post( absint( $id ) );
if ( ! empty( $args['content_only'] ) ) {
$form = ! empty( $form ) && 'wpforms' === $form->post_type ? wpforms_decode( $form-
>post_content ) : false;
}
return $form;
}
/**
* Fetch multiple forms.
*
* @since 1.5.8
*
* @param array $args Additional arguments array.
*
* @return array
5
482 ЧДТУ 21979-01 34 01
*/
protected function get_multiple( $args = array() ) {
$args = apply_filters( 'wpforms_get_multiple_forms_args', $args );
// No ID provided, get multiple forms.
$defaults = array(
'orderby' => 'id',
'order' => 'ASC',
'no_found_rows' => true,
'nopaging' => true,
);
$args = wp_parse_args( $args, $defaults );
$args['post_type'] = 'wpforms';
return get_posts( $args );
}
/**
* Delete forms.
*
* @since 1.0.0
*
* @param array $ids Form IDs.
*
* @return bool
*/
public function delete( $ids = array() ) {
if ( ! is_array( $ids ) ) {
$ids = array( $ids );
}
$ids = array_map( 'absint', $ids );
foreach ( $ids as $id ) {
// Check for permissions.
if ( ! wpforms_current_user_can( 'delete_form_single', $id ) ) {
return false;
}
if ( class_exists( 'WPForms_Entry_Handler', false ) ) {
wpforms()->entry->delete_by( 'form_id', $id );
wpforms()->entry_meta->delete_by( 'form_id', $id );
wpforms()->entry_fields->delete_by( 'form_id', $id );
}
$form = wp_delete_post( $id, true );
6
482 ЧДТУ 21979-01 34 01
if ( ! $form ) {
return false;
}
}
do_action( 'wpforms_delete_form', $ids );
return true;
}
/**
* Add new form.
*
* @since 1.0.0
*
* @param string $title Form title.
* @param array $args Additional arguments.
* @param array $data Form data.
*
* @return mixed
*/
public function add( $title = '', $args = array(), $data = array() ) {
// Must have a title.
if ( empty( $title ) ) {
return false;
}
// Check for permissions.
if ( ! wpforms_current_user_can( 'create_forms' ) ) {
return false;
}
// This filter breaks forms if they contain HTML.
remove_filter( 'content_save_pre', 'balanceTags', 50 );
// Add filter of the link rel attr to avoid JSON damage.
add_filter( 'wp_targeted_link_rel', '__return_empty_string', 50, 1 );
$args = apply_filters( 'wpforms_create_form_args', $args, $data );
$form_content = array(
'field_id' => '0',
'settings' => array(
'form_title' => sanitize_text_field( $title ),
'form_desc' => '',
),
);
// Prevent $args['post_content'] from overwriting predefined $form_content.
7
482 ЧДТУ 21979-01 34 01
// Typically it happens if the form was created with a form template and a user was not redirected to
a form editing screen afterwards.
// This is only possible if a user has 'wpforms_create_forms' and no 'wpforms_edit_own_forms'
capability.
if ( isset( $args['post_content'] ) && is_array( json_decode( wp_unslash( $args['post_content'] ), true
) ) ) {
$args['post_content'] = wpforms_encode( array_replace_recursive( $form_content,
json_decode( wp_unslash( $args['post_content'] ), true ) ) );
}
// Merge args and create the form.
$form = wp_parse_args(
$args,
array(
'post_title' => esc_html( $title ),
'post_status' => 'publish',
'post_type' => 'wpforms',
'post_content' => wpforms_encode( $form_content ),
)
);
$form_id = wp_insert_post( $form );
// If user has no editing permissions the form considered to be created out of the WPForms form
builder's context.
if ( ! wpforms_current_user_can( 'edit_form_single', $form_id ) ) {
$data['builder'] = false;
}
// If the form is created outside the context of the WPForms form
// builder, then we define some additional default values.
if ( ! empty( $form_id ) && isset( $data['builder'] ) && $data['builder'] === false ) {
$form_data = json_decode( wp_unslash( $form['post_content'] ), true
);
$form_data['id'] = $form_id;
$form_data['settings']['submit_text'] = esc_html__( 'Submit', 'wpforms-lite' );
$form_data['settings']['submit_text_processing'] = esc_html__( 'Sending...', 'wpforms-lite' );
$form_data['settings']['notification_enable'] = '1';
$form_data['settings']['notifications'] = array(
'1' => array(
'email' => '{admin_email}',
'subject' => sprintf( esc_html__( 'New Entry: %s', 'wpforms-lite' ),
esc_html( $title ) ),
'sender_name' => get_bloginfo( 'name' ),
'sender_address' => '{admin_email}',
'replyto' => '{field_id="1"}',
'message' => '{all_fields}',
),
);
$form_data['settings']['confirmations'] = array(
'1' => array(
8
482 ЧДТУ 21979-01 34 01
'type' => 'message',
'message' => esc_html__( 'Thanks for contacting us! We will be in touch
with you shortly.', 'wpforms-lite' ),
'message_scroll' => '1',
),
);
$this->update( $form_id, $form_data, array( 'cap' => 'create_forms' ) );
}
do_action( 'wpforms_create_form', $form_id, $form, $data );
return $form_id;
}
/**
* Update form.
*
* @since 1.0.0
*
* @param string|int $form_id Form ID.
* @param array $data Data retrieved from $_POST and processed.
* @param array $args Empty by default, may have custom data not intended to be saved.
*
* @return mixed
* @internal param string $title
*/
public function update( $form_id = '', $data = array(), $args = array() ) {
if ( empty( $data ) ) {
return false;
}
if ( empty( $form_id ) && isset( $data['id'] ) ) {
$form_id = $data['id'];
}
if ( ! isset( $args['cap'] ) ) {
$args['cap'] = 'edit_form_single';
}
if ( ! empty( $args['cap'] ) && ! wpforms_current_user_can( $args['cap'], $form_id ) ) {
return false;
}
// This filter breaks forms if they contain HTML.
remove_filter( 'content_save_pre', 'balanceTags', 50 );
// Add filter of the link rel attr to avoid JSON damage.
add_filter( 'wp_targeted_link_rel', '__return_empty_string', 50, 1 );
9
482 ЧДТУ 21979-01 34 01
$data = wp_unslash( $data );
$title = empty( $data['settings']['form_title'] ) ? get_the_title( $form_id ) :
$data['settings']['form_title'];
$desc = empty( $data['settings']['form_desc'] ) ? '' : $data['settings']['form_desc'];
$data['field_id'] = ! empty( $data['field_id'] ) ? absint( $data['field_id'] ) : '0';
// Preserve form meta.
$meta = $this->get_meta( $form_id );
if ( $meta ) {
$data['meta'] = $meta;
}
// Preserve fields meta.
if ( isset( $data['fields'] ) ) {
$data['fields'] = $this->update__preserve_fields_meta( $data['fields'], $form_id );
}
// Sanitize - don't allow tags for users who do not have appropriate cap.
// If we don't do this, forms for these users can get corrupt due to
// conflicts with wp_kses().
if ( ! current_user_can( 'unfiltered_html' ) ) {
$data = map_deep( $data, 'wp_strip_all_tags' );
}
// Sanitize notifications names.
if ( isset( $data['settings']['notifications'] ) ) {
$data['settings']['notifications'] = $this->update__sanitize_notifications_names(
$data['settings']['notifications'] );
}
unset( $notification );
$form = apply_filters(
'wpforms_save_form_args',
array(
'ID' => $form_id,
'post_title' => esc_html( $title ),
'post_excerpt' => $desc,
'post_content' => wpforms_encode( $data ),
),
$data,
$args
);
$_form_id = wp_update_post( $form );
do_action( 'wpforms_save_form', $_form_id, $form );
return $_form_id;
}
10
482 ЧДТУ 21979-01 34 01
/**
* Preserve fields meta in 'update' method.
*
* @since 1.5.8
*
* @param array $fields Form fields.
* @param string|int $form_id Form ID.
*
* @return array
*/
protected function update__preserve_fields_meta( $fields, $form_id ) {
foreach ( $fields as $i => $field_data ) {
if ( isset( $field_data['id'] ) ) {
$field_meta = $this->get_field_meta( $form_id, $field_data['id'] );
if ( $field_meta ) {
$fields[ $i ]['meta'] = $field_meta;
}
}
}
return $fields;
}
/**
* Sanitize notifications names meta in 'update' method.
*
* @since 1.5.8
*
* @param array $notifications Form notifications.
*
* @return array
*/
protected function update__sanitize_notifications_names( $notifications ) {
foreach ( $notifications as $id => &$notification ) {
if ( ! empty( $notification['notification_name'] ) ) {
$notification['notification_name'] = sanitize_text_field(
$notification['notification_name'] );
}
}
return $notifications;
}
/**
* Duplicate forms.
*
* @since 1.1.4
*
11
482 ЧДТУ 21979-01 34 01
* @param array $ids Form IDs to duplicate.
*
* @return bool
*/
public function duplicate( $ids = array() ) {
// Check for permissions.
if ( ! wpforms_current_user_can( 'create_forms' ) ) {
return false;
}
// Add filter of the link rel attr to avoid JSON damage.
add_filter( 'wp_targeted_link_rel', '__return_empty_string', 50, 1 );
// This filter breaks forms if they contain HTML.
remove_filter( 'content_save_pre', 'balanceTags', 50 );
if ( ! is_array( $ids ) ) {
$ids = array( $ids );
}
$ids = array_map( 'absint', $ids );
foreach ( $ids as $id ) {
// Get original entry.
$form = get_post( $id );
if ( ! wpforms_current_user_can( 'view_form_single', $id ) ) {
return false;
}
// Confirm form exists.
if ( ! $form || empty( $form ) ) {
return false;
}
// Get the form data.
$new_form_data = wpforms_decode( $form->post_content );
// Remove form ID from title if present.
$new_form_data['settings']['form_title'] = str_replace( '(ID #' . absint( $id ) . ')', '',
$new_form_data['settings']['form_title'] );
// Create the duplicate form.
$new_form = array(
'post_content' => wpforms_encode( $new_form_data ),
'post_excerpt' => $form->post_excerpt,
'post_status' => $form->post_status,
'post_title' => $new_form_data['settings']['form_title'],
'post_type' => $form->post_type,
12
482 ЧДТУ 21979-01 34 01
);
$new_form_id = wp_insert_post( $new_form );
if ( ! $new_form_id || is_wp_error( $new_form_id ) ) {
return false;
}
// Set new form name.
$new_form_data['settings']['form_title'] .= ' (ID #' . absint( $new_form_id ) . ')';
// Set new form ID.
$new_form_data['id'] = absint( $new_form_id );
// Update new duplicate form.
$new_form_id = $this->update( $new_form_id, $new_form_data, array( 'cap' =>
'create_forms' ) );
if ( ! $new_form_id || is_wp_error( $new_form_id ) ) {
return false;
}
}
return true;
}
/**
* Get the next available field ID and increment by one.
*
* @since 1.0.0
*
* @param string|int $form_id Form ID.
* @param array $args Additional arguments.
*
* @return mixed int or false
*/
public function next_field_id( $form_id, $args = array() ) {
if ( empty( $form_id ) ) {
return false;
}
$defaults = array(
'content_only' => true,
);
if ( isset( $args['cap'] ) ) {
$defaults['cap'] = $args['cap'];
}
$form = $this->get( $form_id, $defaults );
13
482 ЧДТУ 21979-01 34 01
if ( empty( $form ) ) {
return false;
}
if ( ! empty( $form['field_id'] ) ) {
$field_id = absint( $form['field_id'] );
if ( ! empty( $form['fields'] ) && max( array_keys( $form['fields'] ) ) > $field_id ) {
$field_id = max( array_keys( $form['fields'] ) ) + 1;
}
$form['field_id'] = $field_id + 1;
} else {
$field_id = '0';
$form['field_id'] = '1';
}
$this->update( $form_id, $form );
return $field_id;
}
/**
* Get private meta information for a form.
*
* @since 1.0.0
*
* @param string|int $form_id Form ID.
* @param string $field Field.
* @param array $args Additional arguments.
*
* @return false|array
*/
public function get_meta( $form_id, $field = '', $args = array() ) {
if ( empty( $form_id ) ) {
return false;
}
$defaults = array(
'content_only' => true,
);
if ( isset( $args['cap'] ) ) {
$defaults['cap'] = $args['cap'];
}
$data = $this->get( $form_id, $defaults );
14
482 ЧДТУ 21979-01 34 01
if ( isset( $data['meta'] ) ) {
if ( empty( $field ) ) {
return $data['meta'];
} elseif ( isset( $data['meta'][ $field ] ) ) {
return $data['meta'][ $field ];
}
}
return false;
}
/**
* Update or add form meta information to a form.
*
* @since 1.4.0
*
* @param string|int $form_id Form ID.
* @param string $meta_key Meta key.
* @param mixed $meta_value Meta value.
* @param array $args Additional arguments.
*
* @return bool
*/
public function update_meta( $form_id, $meta_key, $meta_value, $args = array() ) {
if ( empty( $form_id ) || empty( $meta_key ) ) {
return false;
}
// Add filter of the link rel attr to avoid JSON damage.
add_filter( 'wp_targeted_link_rel', '__return_empty_string', 50, 1 );
// This filter breaks forms if they contain HTML.
remove_filter( 'content_save_pre', 'balanceTags', 50 );
if ( ! isset( $args['cap'] ) ) {
$args['cap'] = 'edit_form_single';
}
$form = $this->get_single( absint( $form_id ), $args );
if ( empty( $form ) ) {
return false;
}
$data = wpforms_decode( $form->post_content );
$meta_key = wpforms_sanitize_key( $meta_key );
$data['meta'][ $meta_key ] = $meta_value;
$form = array(
15
482 ЧДТУ 21979-01 34 01
'ID' => $form_id,
'post_content' => wpforms_encode( $data ),
);
$form = apply_filters( 'wpforms_update_form_meta_args', $form, $data );
$form_id = wp_update_post( $form );
do_action( 'wpforms_update_form_meta', $form_id, $form, $meta_key, $meta_value );
return $form_id;
}
/**
* Delete form meta information from a form.
*
* @since 1.4.0
*
* @param string|int $form_id Form ID.
* @param string $meta_key Meta key.
* @param array $args Additional arguments.
*
* @return bool
*/
public function delete_meta( $form_id, $meta_key, $args = array() ) {
if ( empty( $form_id ) || empty( $meta_key ) ) {
return false;
}
// Add filter of the link rel attr to avoid JSON damage.
add_filter( 'wp_targeted_link_rel', '__return_empty_string', 50, 1 );
// This filter breaks forms if they contain HTML.
remove_filter( 'content_save_pre', 'balanceTags', 50 );
if ( ! isset( $args['cap'] ) ) {
$args['cap'] = 'edit_form_single';
}
$form = $this->get_single( absint( $form_id ), $args );
if ( empty( $form ) ) {
return false;
}
$data = wpforms_decode( $form->post_content );
$meta_key = wpforms_sanitize_key( $meta_key );
unset( $data['meta'][ $meta_key ] );
$form = array(
'ID' => $form_id,
16
482 ЧДТУ 21979-01 34 01
'post_content' => wpforms_encode( $data ),
);
$form = apply_filters( 'wpforms_delete_form_meta_args', $form, $data );
$form_id = wp_update_post( $form );
do_action( 'wpforms_delete_form_meta', $form_id, $form, $meta_key );
return $form_id;
}
/**
* Get private meta information for a form field.
*
* @since 1.0.0
*
* @param string|int $form_id Form ID.
* @param string $field_id Field ID.
* @param array $args Additional arguments.
*
* @return array|bool
*/
public function get_field( $form_id, $field_id = '', $args = array() ) {
if ( empty( $form_id ) ) {
return false;
}
$defaults = array(
'content_only' => true,
);
if ( isset( $args['cap'] ) ) {
$defaults['cap'] = $args['cap'];
}
$data = $this->get( $form_id, $defaults );
return isset( $data['fields'][ $field_id ] ) ? $data['fields'][ $field_id ] : false;
}
/**
* Get private meta information for a form field.
*
* @since 1.0.0
*
* @param string|int $form_id Form ID.
* @param string $field_id Field ID.
* @param array $args Additional arguments.
*
* @return array|bool
*/
17
482 ЧДТУ 21979-01 34 01
public function get_field_meta( $form_id, $field_id = '', $args = array() ) {
$field = $this->get_field( $form_id, $field_id, $args );
if ( ! $field ) {
return false;
}
return isset( $field['meta'] ) ? $field['meta'] : false;
}
}
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Буч Г. Язык UML: руководство пользователя / Г. Буч, Д. Рамбо, И.
Якобсон // [пер. с англ. Н. Мухина]. – Москва. – 2007. – 493 с.
2. Дейт К. Введение в системы баз даных. – К.; М.; СПб.: Изд.дом
“Вильямс”. – 2000. –560 с.
3. Дивак М.П. Системний аналіз та проектування КІС /М.П.Дивак//
Навчальний посібник – Т.: Економічна думка. – 2004.
4. Калбертсон Роберт, Браун Крис, Кобб Гэри Быстрое тестирование.
– М.: «Вильямс», 2002. – 374 с.
5. Квентин Зервас. Web 2.0: создание приложений на PHP // Practical
Web 2.0 Applications with PHP. – М.: «Вильямс», 2009. – С. 544.
6. Костарев А. Ф. PHP 5. – Спб.: «БХВ-Петербург», 2008. – С. 1104.
7. Кузнецов Максим, Симдянов Игорь. PHP на примерах. – 2-е изд.
перераб. и доп. – Спб.: «БХВ-Петербург», 2011. – С. 400.
8. Кузнецов Максим, Симдянов Игорь. PHP. Практика создания Web-
сайтов. – 2-е изд. перераб. и доп. – Спб.: «БХВ-Петербург», 2008. – С. 1264.
9. Лайза Криспин, Джанет Грегори Гибкое тестирование:
практическое руководство для тестировщиков ПО и гибких команд // Agile
Testing: A Practical Guide for Testers and Agile Teams. – М.: «Вильямс», 2010. –
464 с
10. Мэтт Зандстра. PHP: объекты, шаблоны и методики
программирования, 3-е издание = PHP Objects, Patterns and Practice, Third
Edition. – М.: «Вильямс», 2010. – С. 560.
11. Синицын С. В., Налютин Н. Ю. Верификация программного
обеспечения. – М.: БИНОМ, 2008. – 368 с.
12. Юр'єв В.К., Куценко Г.І. Громадське здоров'я та охорона здоров'я.
С- П, 2000. - С. 240-283.
13. Кузнецов Максим, Симдянов Игорь. PHP. Практика создания Web-
сайтов. – 2-е изд. перераб. и доп. – Спб.: «БХВ-Петербург», 2018. – С. 1264.
Арк.
ЧДТУ 211979.002 ПЗ 70
Зм н. Арк. № докум. Підпис Дата
14. Лайза Криспин, Джанет Грегори Гибкое тестирование:
практическое руководство для тестировщиков ПО и гибких команд // Agile
Testing: A Practical Guide for Testers and Agile Teams. – М.: «Вильямс», 2016. –
464 с.
15. Мэтт Зандстра. PHP: объекты, шаблоны и методики
программирования, 3-е издание // PHP Objects, Patterns and Practice, Third
Edition. – М.: «Вильямс», 2018. – С. 560
16. Синицын С. В., Налютин Н. Ю. Верификация программного
обеспечения. – М.: БИНОМ, 2018. – 368 с.
17. Автоматизированные информационные технологии в экономике
[Текст]: Учебник.\\ Под общ. ред. Трубилина И.Т. – М: «Финансы и
статистика», 2015.–453с.
18. Гудвин Г.К. Проектирование систем управления [Текст]/
Г.К.Гудвин, С.Ф. Гребе, М.Э. Сальдаго //пер. с англ. – М.:БИНОМ,
Лаборатория знаний, 2016. – 911 с.
19. WordPress для начинающих / Дэрил Бартлетт; [пер. с англ. М.А.
Райтман]. – Москва: Издательство «Э», 2017. – 208с.
20. Избачков Ю.С. Информационные системы: ученик [Текст] – 2-е
изд. — СПб: Питер, 2016. — 656 с.
21. Павлиш В.А. Основи інформаційних технологій і систем.
Підручник [Текст] / В.А. Павлиш, Л.К. Гліненко, Н.Б. Шаховська. Львів:
Видавництво Львівської політехніки, – 2018. – 620 с.
22. Методичні вказівки до виконання кваліфікаційних робіт бакалаврів
з напрямку підготовки 122 «Комп’ютерні науки» (Computer Science) для
студентів денної та заочної форми навчання [Текст] / Укл. К.В.Колесніков,
А.Р. Карапетян – Черкаси: ЧДТУ, 2020 – 30 с.
ІНТЕРНЕТ ДЖЕРЕЛА
23. jQuery API documentation [Електронний ресурс]. – Режим доступу:
http://api.jquery.com/
Арк.
ЧДТУ 211979.002 ПЗ 71
Зм н. Арк. № докум. Підпис Дата
24. Online manual for WordPress [Електронний ресурс]. – Режим
доступу: https://codex.wordpress.org/
25. PHP documentation [Електронний ресурс]. – Режим доступу:
http://php.net/docs.php/
26. Pickadate.js API documentation [Електронний ресурс]. - Режим
доступу: http://amsul.ca/pickadate.js/api/
27. Scott, Adam D. WordPress for Education. – Birmingham: Packt
Publishing Ltd, 2012. – 144 с.
28. Web developer information website [Електронний ресурс]. – Режим
доступу: http://www.w3schools.com/
ПРОГРАМНІ ЗАСОБИ
1. Microsoft 365 © Корпорація Microsoft 2021.
2. Microsoft PowerPoint 2010 © Корпорація Microsoft 2021.
3. phpMyAdmin 7.2 © phpMyAdmin devel team, 2021.
4. Open Server 5.3.8 © Maksim Arhipov, 2021.
5. WordPress 3.8 © The WordPress Project Team, 2021.
Арк.
ЧДТУ 211979.002 ПЗ 72
Зм н. Арк. № докум. Підпис Дата