Розробка соціальної мережі 'Social network Artput'

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    3,13 Мб
  • Опубликовано:
    2012-09-19
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Розробка соціальної мережі 'Social network Artput'

Зміст


Вступ

1. Технічне завдання

2. Вибір архітектури розробки

4. Вибір інструментальних засобів розробки

5. Вимоги до технічних засобів

6. Інструкції системному адміністратору

6.1. Установка Apache 1.3.29 під Windows XP

6.2. Установка PHP 4.3.4 під Windows

7. Керівництво користувачу

7.1. Користувацька частина сайту

7.2. Система адміністрування

8. Керівництво програмісту

8.1. Структура бази даних

8.2. Діаграма прецедентів

8.3. Структура веб-сервера та веб-сайту

8.4. Опис механізмів передачі даних між сторінками

8.5. Опис класів, які виконують взаємодію з базою даних

Висновки

Вступ

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

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

Метою даного дипломного проекту є розробка веб-сайту компанії «Artput».

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

1. Технічне завдання


Розробити веб-сайт "Social Portfolio Network - Artput":

1.       Спроектувати структуру веб-сайту та структуру бази даних.

2.       Реалізувати клієнтську частину сайту:

2.1.    розробити модуль для перегляду сторінок сайту;

2.2.    реалізувати пошук по сайту;

.3.      забезпечити можливість реєстрації користувачів на сайті;

.4.      написати скрипти для авторизації користувачів;

.5.      реалізувати форум на сайті;

.6.      реалізувати групи користувачів, в які б вони змогли об'єднуватись.

3.       Реалізувати систему адміністрування веб-сайту:

3.1.    написати програмні модулі для забезпечення обмеженого доступу до системи адміністрування.

3.2.    створити скрипти для додавання, оновлення та видалення даних для кожного модуля сайту.

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

4.       Наповнити сайт початковою інформацією.

2. Вибір архітектури розробки


Для реалізації даного проекту було обрано архітектуру «клієнт-сервер».

Архітектура «клієнт-сервер» сьогодні являє собою домінуючу концепцію у створенні мережевих розробок і передбачає взаємодію та обмін даними між ними. Вона передбачає такі основні компоненти:

·        набір серверів, які надають інформацію або інші послуги програмам, які звертаються до них;

·        набір клієнтів, які використовують сервіси, що надаються серверами;

·        мережа, яка забезпечує взаємодію між клієнтами та серверами.

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

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

Типовим прикладом клієнт-серверної взаємодії є WWW. Існує величезна кількість веб-серверів, на яких розміщується та або інша інформація. У найпростішому випадку ця інформація являє собою набір веб-сторінок, які можуть зберігатися на сервері у вигляді файлів, розмічених за допомогою мови розмітки HTML. Але ситуація, як правило, є більш складною; значна частина веб-ресурсів на сучасному етапі є динамічними, тобто вони не існують в заздалегідь підготовленому вигляді, а створюються безпосередньо в процесі обробки запиту від користувача.

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

Модель клієнт-серверної взаємодії визначається перш за все розподілом обов’язків між клієнтом та сервером. Логічно можна виокремити три рівні операцій:

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

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

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

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

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

3. Вибір інструментальних засобів розробки


На сучасному етапі для програмування модулів проміжного рівня використовується мова серверних сценаріїв РНР, а для управління даними - СУБД MySQL. Таким чином, зв’язка PHP-MySQL - це стандартний інструмент для створення інтерактивних веб-сайтів та порталів, систем електронної комерції; близько 90% комерційних систем сьогодні створюється саме на цій основі. Так, для створення серверних додатків, крім РНР, широко застосовуються Java, Perl, Python. Взагалі, технології створення веб-додатків зараз стрімко розвиваються. Слід згадати про технології EJB (Enterprise Java Beans), CORBA, а також про .NET - порівняно нову ініціативу компанії Microsoft.

Для виконання даного дипломного проекту було обрано мову програмування РНР, оскільки РНР має багато переваг перед вищезгаданими комерційними пакетами :

1.       Функціональність - РНР дає Web-програмістам покращену функціональність з можливостями вставки РНР-коду безпосередньо в HTML.

2.       Ціна - РНР вільно розповсюджується, причому абсолютно безкоштовно.

.        Синтаксис РНР дуже схожий на синтаксис С або Perl.

.        В мові програмування РНР немає типізації даних і нема необхідності в діях по виділенню/звільненню ОП.

.        Програми на РНР мають кращу читабельність, ніж аналогічні програми на інших мовах. РНР код значно легше прочитати і зрозуміти.

Зв’язок РНР-MySQL є кросплатформенним. Це означає, що можна працюючи в Windows розроблювати програми, що призначені для роботи в UNIX. Крім того, РНР може працювати як зовнішній CGI-процес, або як звичайний інтерпретатор скриптів, або як модуль, що підключається до Web серверу Apache або IIS.

4. Вимоги до технічних засобів


Розробка потребує наявності сервера та комп’ютера користувача, але при необхідності, комп’ютер користувача може виконувати роль сервера.

Програма може бути встановлена у будь-якій з розповсюджених на сьогоднішній день операційних систем - Windows 9x/NT/XP/2003/Vista, Linux, Unix, та ін. Мінімальні вимоги до системи такі:

1. Процесор - 300 Мгц 2. Оперативна пам’ять - 32 Мб 3. Відеокарта та монітор - 640x480, 256 кольорів при частоті розгортки 75 Гц (TCO’95) 4. Клавіатура - довільна 5. Миша - довільна 6. Вільний дисковий простір - 120 Мб (для встановлення серверів Apache та MySQL).

Наведена конфігурація не перевищує рівень оснащення комп’ютерів користувачів на даний момент часу, тому програма буде доступною широкому колу користувачів.

Конфігурація комп’ютера, на якому виконувалась розробка:

1. Процесор

Intel Pentium 4 2,6 GHz

2. Оперативна пам’ять

512 Mb

3. Відеокарта

SVGA 128Mб

4. Монітор

SVGA

5. Жорсткий диск

120 Gb

6. Принтер

Samsung ML-1250

5. Інструкції системному адміністратору


5.1 Установка Apache 2.0 під Windows XP


Викачати ПО для установки Apache можна, наприклад, з його офіційного сайту <#"588235.files/image001.gif">

Рис. 1. Автоматична установка серверу Apache

Щоб встановити HTTP-сервер Apache на свій комп'ютер, потрібно натискувати на кнопку Next. До речі кажучи, ця ж програма дозволить змінити або видалити вже встановлений web-сервер.

Після натиснення кнопки Next програма запропонує погодитися з умовами ліцензії (рис. 2).

Рис. 2. Ліцензійна угода

Наступний екран міститиме інформацію про сервер Apache, і зокрема про його Windows-реалізацію (його зображення не приводимо).

На наступному кроці потрібно ввести ім'я мережного домена, ім'я серверу і e-mail адміністратора. Програма спробує автоматично визначити домен і хост по настройках комп'ютера (рис. 3).

Рис. 3. Основна інформація про сервер

Після того, як було введено дані у вищенаведену форму, потрібно вибрати тип установки: повна (встановлюються всі компоненти серверу) або визначувана користувачем (можна вибрати компоненти для установки) (рис. 4). сайт інтерфейс apache дані

Рис. 4. Тип установки

Вибір компонентів серверу не дуже великий - це інструменти, необхідні для роботи серверу і документація до нього (рис. 5).

Рис. 5. Вибір компонентів користувацької установки

Виберемо повну установку. Тоді на наступному кроці програма запропонує вибрати папку, в яку буде встановлений сервер. За умовчанням сервер встановлюється у папку C:\Program <../../Program> Files\Apache Group\ (рис. 6).

Рис. 6. Папка, в яку буде встановлений сервер

На наступному екрані (рис. 7) буде потрібно підтвердити правильність введених даних і почати установку. З будь-якого вікна установки, включаючи і це, можна повернутися назад і змінити введені раніше дані.

Рис. 7. Початок установки

Після натиснення кнопки Install почнеться безпосередня установка серверу. Від користувача ніяких додаткових дій більше не потрібен. З одного боку, це добре, але є у такої автоматизованої установки і деякі недоліки. Наприклад, домашні директорії користувачів виявляються там же, де і файли настройок серверу (С:\Program  <../../Program>Files\Apache Group\Apache\users\). Це небезпечно, якщо на комп'ютері працює декілька користувачів, що не є адміністраторами серверу. Але спершу можна нічого не міняти. Припустимо, ми запустили установник, ввели всі необхідні дані, він виконав всі операції успішно і говорить, що сервер встановлений. Як перевірити, чи дійсно сервер встановлений? Набираємо у вікні браузера <#"588235.files/image008.gif">

Рис. 8. Сторінка вітання

Отже, сервер встановлений. Файли, які повинні бути оброблені сервером, можна зберігати або в корені серверу (в нашому випадку це С:\Program <../../Program> Files\Apache Group\Apache\htdocs), або в директоріях користувачів (в нашому випадку це С:\Program <../../Program> Files\Apache Group\Apache\users\). Місцеположення кореня серверу і директорій користувачів прописано в настройках серверу, а точніше, у файлі конфігурації httpd.conf (знайти його можна в С:\Program <../../Program> Files\Apache Group\Apache\conf). Для зміни цих шляхів потрібно змінити відповідні змінні у файлі конфігурації серверу. Змінна у файлі конфігурації ServerRoot відповідає за кореневу директорію серверу, а змінна UserDir - за директорію, де розташовуватимуться файли користувачів серверу (для більш безпечної роботи радимо змінити змінну UserDir на що-небудь типу c:\users\). Щоб отримати доступ до файлу test.html, що знаходиться в корені серверу, потрібно набрати в браузере <#"588235.files/image009.gif">

Рис. 9. Перезавантаження.

Подвійним кліком запускаємо його та натискаємо Restart.

Перевірка

Створюємо файл C:\www\tm\index.php, який має наступний вміст: <?php phpinfo(); ?> та запускаємо в браузері адресу #"588235.files/image010.gif">

Рис. 10. Головна сторінка сайту

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

В правому верхньому кутку розміщується форма для пошуку інформації на сторінках сайту.

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

Для незареєстрованого користувача доступно декілька сторінок для ознайомлення з сайтом.

Для того, щоб з’явилася можливість переглядати будь-які сторінки на сайті, залишати повідомлення, завантажувати свої проекти потрібно зареєструватися. Для цього натиснемо на посилання «Sign In», яке знаходиться у головному меню сайту. Після наведення на ссилку «Sign In»

Під нею випливе дві наступні ссилки, це Login i Registration.

Рис. 11. Форма для входу

Рис. 12. Реєстраційна форма

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

Рис. 13. Cторінка профайлу

Натиснувши на ссилку перейдемо на сторінку загального перегляду усіх друзів. На цій сторінці користувач може видалити чи перейти на сторінку профайлу свого друга. Також реалізован перехід по сторінкам, якщо друзів більше 12(реалізовано Аякс запитом).

Рис. 14. Сторінка відображення друзів

Для того, щоб користувач міг запросити своїх товаришів зареєструватися на сайті, була створена наступна сторінка.

Рис. 15. Запрошення друзів через пошту.

Якщо натиснути в лівому меню на ссилку Message - користувач перейде на сторінку повідомлень, де користувач може отримувати та надсилати повідомлення іншим користувачам сайту. Цю сторінку наведено нижче.

Рис. 16. Повідомлення користувача

Користувач може додавати свої проекти та креативні ідеї для реклами свого таланту. Для того, щоб додати свій проект, потрібно перейти в лівому меню по ссилці My Work. Після переходу, користувач побачить наступну сторінку.

Рис. 17. Проекти користувача.

На цій сторінці користувач може виправляти інформацію про свій проект, бачити скільки людей оцінили проект і коментарі, які залишили. Користувач може видаляти коментарі. Перехід по проектам відбувається за структурою степ корусіль. Для того, щоб завантажити новий проект, користувачу необхідно перейти по ссилці, яка знаходиться в правому кутку - Add new project.

Рис. 18. Додавання нового проекту користувачем.

За такою ж самою схемою відбувається додавання креативних ідей користувачем.

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

Коли користувач хоче вступити в групу, то користувач переходить по ссилці Groups, яка знаходиться у верхньому меню. Після переходу, перед користувачем з'явиться наступна сторінка.

Рис. 19. Вивід усіх груп на сайті.

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

Якщо користувач вступає до групи, він переходить на її сторінку, яку ми бачимо нижче.

Рис. 20. Вигляд групи із середини(адміністратор).

Якщо натиснути влкадку Our Projects побачимо наступну сторінку:

Рис. 21. Довільні 4 проекти людей, що знаходяться в групі.

Як ми бачимо, в групі існують медіа файли. На даний момент - це картинки. Користувач може додавати їх до групи, перейшовши по ссилці Add/Edit Media.

Рис. 22. Додавання картинок до групи.

Рис. 23. Відображення медіа файлу.

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

Також користувач може запросити своїх друзів приєднатися до групи на сайті, перейшовши по ссилці Invite people to this group.

Рис. 24. Запрошення друзів на вступ до групи

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

Рис. 25. Створення нової теми на форумі.

Користувач може давати відповіді на тему натиснувши на кнопку Post Your Reply.

Рис. 26. Давання відповіді на тему форума.

Якщо користувач зробив помилку в своїй відповіді, він може виправити її, натиснувши Edit Post,або видалити її зовсім, натиснувши Delete Post.

Рис. 27. Правка відповіді на форумі.

Адміністратор групи може виправляти чи оновляти дані групи з легкістю та найменшою затратою часу. Для цього лише треба натиснути голубого кольору ссилку Edit … Та вписати туди нове значення. Все робиться без перезавантаження сторінки, за допомогою Аякс запитів.

Рис. 28. Адміністрування сторінки групи.

Адміністратор сайту має всі права на видалення груп, всіх складових груп, користувачів, коментарів, проектів. Для цього потрібно лише зайти на сайт під адміністратором і для нього з’являються ссилки на видалення. Як можемо бачити на верхніх скріншотах. Адміністратор додається вручну. І’мя прописується у файлу db\db_connect.php.

7. Керівництво програмісту


7.1 База даних

 

Таблиця soc_comments

(містить інформацію про коментарі проектів та ідей користувачів)

Поле

Опис

id

ID-номер коментаря

comments_id

ID-номер (якщо проект - work_id, ідея - creative_id)

author

Нік користувача

time

Дата

comment

Зміст коментаря

 

Таблиця soc_creatives

(містить інформацію про креатині ідеї користувачів)

Поле

Опис

id

ID-номер ідеї

author_id

ID-номер автора

author

Нік автора

picture

Розміщення картинки на сервері

title

Назва

about

Тема

date

Дата додання на сайт

tags

Теги

estimate

Оцінка ідеї

views

Кількість оглядів

 

Таблиця soc_disc

(містить інформацію про форум групи сайта)

Поле

Опис

id

ID-номер теми чи повідомлення

parent

Тема - 0, повідомлення - ідентифікатор теми

title

Назва

post

Зміст

time

Час додання

group_id

ID-номер групи

user_id

ID-номер користувача


Таблиця soc_groups

 (містить інформацію про групи сайта)

Поле

Опис

id

ID-номер групи

title

Назва групи

url

Місце банера групи на сервері

description

Опис групи

contact_info

Контактна інформація адміністратора

type

Тип групи(Приватна чи загальна)

admin

Нік адміністратора групи

fields

 Інтереси, які обговорюються в групі

time

Час створення групи

size

Розмір групи

web_title

Назва сайту групи

web_url

Ссилка на розміщення сайту

 

Таблиця soc_media_comments

(містить інформацію про коментарі фотокарток в групах сайта)

Поле

Опис

id

ID-номер коментаря

username

Нік користувача

group_id

ID-номер групи

image_id

ID-номер картинки

comment

Коментар

time

Час

 

Таблиця soc_messages

(містить інформацію про повідомлення користувачів)

Поле

Опис

id

ID-номер повідомлення

from

Від кого

to

Кому

subject

Тема

text

Зміст

date

Дата відправки

 

Таблиця soc_upload_files

(містить інформацію про загружені файли в групах сайта)

Поле

Опис

id

ID-номер файлу

author_id

ID-номер автора

title

Назва

description

Опис

url

Розміщення файлу на сервері

group_id

ID-номер групи

time

Час завантаження


Таблиця soc_users

 (містить інформацію про користувачів веб-сайта)

Поле

Опис

id

ID-номер користувача

name

Ім’я користувача

surname

Призвіще користувача

occupation

Професія користувача

company

Компанія, де працює

username

Нік на сайті

password

Пароль

email

Поштова скринька в інтернеті

skills

Навички користувача

status

Статус користувача

friends

Друзі користувача

url

Домашній сайт користувача

member_since

Дата регістрації користувача

picture_url

Ссилка фотокартки на сервері

location

Де знаходиться користувач

countviews

Кількість переглядів профайлу

appreciations

Кількість подяк користувачу

last_viewed

Дата останнього перегляду

last_appreciated

Дата останньої подяки


Таблиця soc_users_groups

(містить інформацію про користувачів і про групи в яких вони знаходяться)

Поле

Тип

id

ID-номер запису

user

ID-номер користувача

group

admin

ID-номер адміністратора групи

 

Таблиця soc_works

(містить інформацію про проекти користувачів веб-сайту)

Поле

Опис

id

ID-номер проекту

author_id

ID-номер користувача

author

Ім’я користувача

title

Назва

url

Ссилка, на картинку

tags

Теги

estimate

Оцінки

views

Кількість проглядів

date

Дата додання

last_viewed

Дата-останній прогляд

last_appreciated

Дата-останнє одобрення

client

Для кого виконана робота

discipline

Область роботи

site

Домашній сайт

comment

Коментарій від користувача


7.2 Структура бази даних

 

7.3 Структура веб-сайту


·        class - папка містить класи та функції класів веб-сайта.

·        css - тут розміщуються файли стилів веб-сайта;

·        db - папка містить клас підключення до бази даних;

·        images - містить усі файли (графічні та html-документи), які необхідні для формування дизайну сайту;

·        includes - містить файли, які підключаються до головної сторінки в ході роботи веб-сайта;

·        tmp - зберігає тимчасові файли.

·        uploads - містить файли, які були завантажені користувачами..php - головний файл сайту.

7.4 Передача даних між сторінками


Для передачі даних між сторінками у дипломному проекті використано 5 способів:

. Використання сесій.

. Використання кукісів.

. Передача даних за допомогою GET-методу.

. Передача даних за допомогою POST-методу.

. Використання спільної бази даних.

 

7.5 Файл, який встановлює взаємодію з базою даних


Скрипт, який встановлює з’єднання з базою даних.

<?php

$db_link=mysql_connect('localhost','root','123456') or die('Could not connect to mysql server.');_select_db('art_put',$db_link) or die('Could not select database.');

$_cfgSuperModers = "qwe"; // Here you can add people in the moderator's list. Example: "qwe,super_mod1,super_mod2,super_mod3"( $_COOKIE['username'] ){

$tmp = explode(",",$_cfgSuperModers);sm_trim(&$value, $key){

$value = trim( $value );

}_walk($tmp, 'sm_trim');

$isSuperModerator = in_array($_COOKIE['username'],$tmp);

}

?>

У програмному коді використано такі функції бібліотеки MySql:

.        mysql_connect - встановлює з'єднання з сервером баз даних MySQL. Функція приймає три параметри: перший - адреса сервера, другий - логін користувача MySQL і третій - пароль користувача MySQL.

.        mysql_select_db - вибирає базу даних MySQL.

.        mysql_affected_rows - повертає кількість рядків, що були використані попередньою операцією MySQL.

.        mysql_num_rows - повертає кількість рядків, які є чи були вібрані з таблиці.

.        mysql_insert_id - повертає останній ідентифікатор який було внесено в таблицю.

.        mysql_db_query - виконує запит MySQL

.        mysql_fetch_array - отримати результат виконання запиту як асоціативний масив.

.        mysql_query - відправляє SQL-запит до серверу MySQL.

.        mysql_close - закриває MySQL- з’єднання.

7.6 Опис классу, який відповідає за розділ «Groups»


Найбільший класс на сайті. Інші шматки php - коду вставлені на сторінках сайту, де вони використовуються.

<?Groups{getGroups( $pageno = '', $items = '' ){ //

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

$sql = "SELECT * FROM `soc_groups` WHERE 1";//

будуємо запит де, вибираемо с бази данних усі групи користувачів( $pageno ) //

якщо змінна існує, то додаємо до запиту LIMIT

$sql .= " LIMIT ". ($pageno - 1) * $items. ",$items";

$grp = mysql_query ( $sql ); //

виконуємо запит($fgroup = mysql_fetch_array( $grp ) ) //

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

$tmp[] = $fgroup; //

записуємо данні в змінну$tmp;       // повертаємо змінну

}JoinGroup(){ //

функція яка відповідає за вступ до групи

$error = ''; //

обнуляємо змінну

$user = @mysql_fetch_array( mysql_query("SELECT * FROM `soc_users` WHERE `username`='{$_COOKIE['username']}'") ); //

вибираємо людину с таблиці

$userIn = @mysql_fetch_array( mysql_query("SELECT * FROM `soc_users_groups` WHERE `user`='{$user['id']}' AND `group`='{$_GET['groupname']}'") ); //

перевіряємо чи вона вже існує в группі( is_array( $userIn ) ){       //

якщо існує записуємо текст в змінну.

$error = 'alert';

}else{ //

в іншому випадку робимо запит на вставку нової строки у таблицю_query ( "INSERT INTO `soc_users_groups` (`user`,`group`,`admin`) VALUES ('{$user['id']}', '{$_GET['groupname']}', 0)");_query ("UPDATE `soc_groups` SET `size`=`size`+1 WHERE `id`={$_GET['groupname']}") or die(mysql_error()); //

обновлюємо розмір группи

}$error;       //

повертаємо змінну

}LeaveGroup(){ //

функція відповідає за вихід з группи

$user = mysql_fetch_array( mysql_query("SELECT * FROM `soc_users` WHERE `username`='{$_COOKIE['username']}'") ); //

вибираємо людину з таблиці_query("DELETE FROM `soc_users_groups` WHERE `user`='{$user['id']}' AND `group`='{$_GET['groupname']}'"); //

видаляємо її з таблиці, яка показує, хто існує в группі._query ("UPDATE `soc_groups` SET `size`=(`size`-1) WHERE `id`={$_GET['groupname']}"); //

оновлюємо розмір таблиці.

}MyGroups( $pageno = '', $items = '' ){ //

функція яка показує в яких группах користувач є.

$user = @mysql_fetch_array( mysql_query("SELECT * FROM `soc_users` WHERE `username`='{$_COOKIE['username']}'") ); //

вибираємо користувача с таблиці

$sql = "SELECT `group` FROM `soc_users_groups` WHERE `user`='{$user['id']}'"; //

будуємо запит( $pageno ) //

якщо змінна не пуста

$sql .= " LIMIT ". ($pageno - 1) * $items. ",$items"; // додаємо до запиту ліміт.

$res = mysql_query ( $sql ); //

обробляємо запит.( $row = mysql_fetch_array( $res ) )

$groups[] = @mysql_fetch_array( mysql_query( "SELECT * FROM `soc_groups` WHERE `id`='{$row['group']}'" ) );//

вибираємо с таблиці, яка показує в яких групах вже перебуває користувач та записуємо дані у змінну, яку и повертаємо нижче.$groups;

}UsersInfo(pageno = '', $items = ''){           //

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

$sql = "SELECT `soc_users`.* FROM `soc_users`,`soc_users_groups` WHERE `soc_users`.`id`=`soc_users_groups`.`user` AND `soc_users_groups`.`group` = '{$_REQUEST['groupname']}'"; //

будуємо запит, де вибираємо усі данні про користувача с таблиці де ідентифікатор відповідає полю user і ідентифікатор групи дорівнює змінній, яку ми отримаємо.( $pageno )

$sql .= " LIMIT ". ($pageno - 1) * $items. ",$items";

$res_users = mysql_query( $sql ); //

виконуємо запит( $row = @mysql_fetch_assoc( $res_users ) )

$users[] = $row; //

отримані данні записуємо у змінну$users; //

повертаємо змінну.

}SizeProject(){ //

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

$sql = "SELECT `soc_works`.* FROM `soc_works`,`soc_users_groups` WHERE `soc_works`.`author_id`=`soc_users_groups`.`user` AND `soc_users_groups`.`group` = '{$_GET['groupname']}'";

$res_users = mysql_query( $sql ); //

будуємо запит, де вибираємо проекти користувачів які існують в групі.

$count = @mysql_num_rows($res_users); //

підраховуємо комірки$count; //

повертаємо кількість

}ShowProject( $pageno = '', $items = '' ){ //

вибір усіх проектів користувачів які існують у групі.

$sql = "SELECT `soc_works`.* FROM `soc_works`,`soc_users_groups` WHERE `soc_works`.`author_id`=`soc_users_groups`.`user` AND `soc_users_groups`.`group` = '{$_GET['groupname']}'"; //

будуємо запит де вибираємо проекти за умови виконання усіх умов які вказані в запиті.( $pageno )

$sql .= " LIMIT ". ($pageno - 1) * $items. ",$items"; // додаємо ліміт, якщо змінна передається.

$res_users = mysql_query( $sql );( $row = @mysql_fetch_assoc( $res_users ) )

$projects[] = $row; //

отримані дані записуємо у зміну$projects; //

повертаємо дані

}Randomize( $projects ){ //

функція яка вибирає 4 проекта із загальної кількості в повертає в довільному порядку.

$num = 4; //

записуємо кількість проектів які треба відображати в довільному порядку( count( $projects ) > $num){ //

якщо загальна кількість проектів більша за 4 то робимо цикл( $i = 0; $i < $num ; $i++){

$randr = rand( 0,count( $projects )-1 ); //

генеруємо довільне число від 0 до загальної кількості проектів.($q = 0; $q<count($save_randr); $q++ )( $randr == $save_randr[ $q ] ){ //

якщо змінна ринд прирівнюється до змінної сєйврєнд, то

$randr = rand( 0,count( $projects )-1 ); // генеруємо ще раз довільне число.

$q = -1; //

змінна дорівнює -1.

}

$save_randr[] = $randr;

$random[] = $projects[$randr]; //

записуємо 4 довільні проекти в змінну.

}

}else{$projects;

}$random;

}getAllMedia( $pageno = '', $items = '' ){ //

вибираємо усі картинки які користувачі завантажили до групи.

$sql = "SELECT * FROM `soc_upload_files` WHERE `group_id`='{$_REQUEST['groupname']}' ORDER BY time DESC"; //

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

$sql .= " LIMIT ". ($pageno - 1) * $items. ",$items";

$res = mysql_query( $sql );( $row = @mysql_fetch_array( $res ) )

$getMedia[] = $row;$getMedia;

}getIDAllMedia ( $id ){

функція дозволяє отримати усі ідентифікатори завантажених картинок в відновідну групу.

$sql = "SELECT * FROM `soc_upload_files` WHERE `group_id`='{$_GET['groupname']}' ORDER BY time DESC"; //

будуємо відповідний запит.

$res = mysql_query( $sql );

$i = 1;( $row = @mysql_fetch_array( $res ) ){( $row['id'] == $id )$i;

$i++;

}

}SizeMedia(){ //

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

$row = mysql_query("SELECT * FROM `soc_upload_files` WHERE `group_id`='{$_GET['groupname']}'");mysql_num_rows( $row );

}getUserMedia(){ //

дізнаємось які картинки належать до даного користувача.

$res = @mysql_fetch_array( mysql_query("SELECT * FROM `soc_users` WHERE `username`='{$_COOKIE['username']}'") ); //

вибираємо користувача.

$row = mysql_query("SELECT * FROM `soc_upload_files` WHERE `group_id`='{$_GET['groupname']}' AND `author_id`='{$res['id']}'");       // вибираємо картинки с таблиці данного користувача.( $row_images = @mysql_fetch_array($row) )

$userImages[] = $row_images;$userImages;          //

повертаємо картинки.

}ExistUser( $option, $gid = '' ){ //

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

$gid = $gid|$_GET['groupname'];

$res = @mysql_fetch_array( mysql_query ( "SELECT * FROM `soc_users` WHERE `username`='{$_COOKIE['username']}'" ) ); //

вибираємо користувача с таблиці.

$row = @mysql_fetch_array( mysql_query ( "SELECT * FROM `soc_users_groups` WHERE `user`='{$res['id']}' AND `group`='$gid'" ) ); // перевіряємо чи користувач існує в группі.

$group = @mysql_fetch_array( mysql_query ( "SELECT * FROM `soc_groups` WHERE `id`='$gid'" ) ); //

вибираємо данну группу з таблиці груп.

$admin_group = @mysql_fetch_array( mysql_query ( "SELECT `admin` FROM `soc_groups` WHERE `id`='$gid' AND `admin`='{$_COOKIE['username']}'" ) ); // перевіряємо чи користувач є адміністратором групи.( $_COOKIE['username'] ){( $group['type'] == '1' or !$group['type'] ){( is_array( $row ) ){( $admin_group['admin'] AND $option == 'inner' )"<a href=\"index.php?page=insidegroup&groupname=$gid&delete_group=true\" style=\"color:#6D94FF;font-size:11px;font-weight:bold;font-family:Arial,sans-serif;cursor:pointer;\">Delete Group</a>";($admin_group['admin'] AND $option == 'outer')"<a href=\"index.php?page=insidegroup&groupname=$gid&delete_group=true\" style=\"color:#626667;font-size:11px;padding-left:6px;\">Delete Group</a>";( $option == 'inner' )"<a href=\"index.php?page=insidegroup&groupname=$gid&exit=true\" style=\"color:#6D94FF;font-size:11px;font-weight:bold;font-family:Arial,sans-serif;cursor:pointer;\">Leave Group</a>";"<a href=\"index.php?page=mygroup&groupname=$gid&exit=true\" style=\"color:#626667;font-size:11px;padding-left:6px;\">Leave Group</a>";

}else{( $option == 'outer' )"<a href=\"index.php?page=mygroup&groupname=$gid&join=true\" style=\"color:#626667;font-size:11px;padding-left:6px;\">Join Group</a>";"<a href=\"index.php?page=insidegroup&groupname=$gid&join=true\" style=\"color:#6D94FF;font-size:11px;font-weight:bold;font-family:Arial,sans-serif;cursor:pointer;\">Join Group</a>";

}

}else{( is_array( $row ) ){( $admin_group['admin'] AND $option == 'inner' )"<a href=\"index.php?page=insidegroup&groupname=$gid&delete_group=true\" style=\"color:#6D94FF;font-size:11px;font-weight:bold;font-family:Arial,sans-serif;cursor:pointer;\">Delete Group</a>";($admin_group['admin'] AND $option == 'outer')"<a href=\"index.php?page=insidegroup&groupname=$gid&delete_group=true\" style=\"color:#626667;font-size:11px;padding-left:6px;\">Delete Group</a>";( $option == 'inner' )"<a href=\"index.php?page=insidegroup&groupname=$gid&exit=true\" style=\"color:#6D94FF;font-size:11px;font-weight:bold;font-family:Arial,sans-serif;cursor:pointer;\">Leave Group</a>";"<a href=\"index.php?page=mygroup&groupname=$gid&exit=true\" style=\"color:#626667;font-size:11px;padding-left:6px;\">Leave Group</a>";

}else{( $option == 'outer' )"<a href=\"#\"=\"_top = $(document).scrollTop();_height = $(window).height();_height = window_height/2 - 75;_height += from_top;

$('#alert_join_private_group').css('top',element_height+'px');_width = $(window).width()/2 - 165;

$('#alert_join_private_group').css('left',element_width+'px');

$('#alert_join_private_group').show();

$('#event_admin_id').val('{$group['admin']}');

$('#event_user_id').val('{$_COOKIE['username']}');

$('#event_group_id').val('$gid');false;\"=\"color:#626667;font-size:11px;padding-left:6px;\">Join Group</a>";"<a href=\"#\"=\"_top = $(document).scrollTop();_height = $(window).height();_height = window_height/2 - 75;_height += from_top;

$('#alert_join_private_group').css('top',element_height+'px');_width = $(window).width()/2 - 165;

$('#alert_join_private_group').css('left',element_width+'px');

$('#alert_join_private_group').show();

$('#event_admin_id').val('{$group['admin']}');

$('#event_user_id').val('{$_COOKIE['username']}');

$('#event_group_id').val('$gid');false;\"=\"color:#6D94FF;font-size:11px;font-weight:bold;font-family:Arial,sans-serif;cursor:pointer;\">Join Group</a>";

}

}

}else{( is_array( $row ) ){( $option == 'inner' )"<a href=\"index.php?page=login\" style=\"color:#6D94FF;font-size:11px;font-weight:bold;font-family:Arial,sans-serif;cursor:pointer;\">Leave Group</a>";"<a href=\"index.php?page=login\" style=\"color:#626667;font-size:11px;padding-left:6px;\">Leave Group</a>";

}else{( $option == 'outer' )"<a href=\"index.php?page=login\" style=\"color:#626667;font-size:11px;padding-left:6px;\">Join Group</a>";"<a href=\"index.php?page=login\" style=\"color:#6D94FF;font-size:11px;font-weight:bold;font-family:Arial,sans-serif;cursor:pointer;\">Join Group</a>";

}

}

}DeleteGroup(){ //

функція видалення групи. Видаляємо з усіх таблиць де зустрічаються записи про таблиці, видаляємо іх, потім видаляємо усі картинки що були загружені користувачами на сервер у цю групу._query("DELETE FROM `soc_disc` WHERE `group_id`='{$_GET['groupname']}'");_query("DELETE FROM `soc_media_comments` WHERE `group_id`='{$_GET['groupname']}'");_query("DELETE FROM `soc_users_groups` WHERE `group`='{$_GET['groupname']}'");

$res = mysql_query("SELECT * FROM `soc_upload_files` WHERE `group_id`='{$_GET['groupname']}'");( $row = mysql_fetch_array( $res ) ){

$files[] = $row;('../'.$files['url']);

}_query("DELETE FROM `soc_upload_files` WHERE `group_id`='{$_GET['groupname']}'") or die(mysql_error());

$res_main = mysql_query("SELECT * FROM `soc_groups` WHERE `id`='{$_GET['groupname']}'") or die(mysql_error());( $row_main = mysql_fetch_array( $res_main ) ){

$files_main[] = $row_main;

@unlink ($files_main['url']);

}_query("DELETE FROM `soc_groups` WHERE `id`='{$_GET['groupname']}'") or die(mysql_error());("Location:index.php?page=mygroup");

}LastUsersImg(){ //

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

$user = @mysql_fetch_array( mysql_query( "SELECT * FROM `soc_users` WHERE `username`='{$_COOKIE['username']}'" ) );

$res = mysql_query( "SELECT * FROM `soc_upload_files` WHERE author_id='{$user['id']}' ORDER BY `time` DESC LIMIT 1" );

$result = @mysql_fetch_array($res);$result;

}Comments(){ //

вибираємо усі коментарі для даної картинки.Якщо коментарів немає, то повертаємо відповідний напис.

$res = mysql_query( "SELECT * FROM `soc_media_comments` WHERE `group_id`='{$_GET['groupname']}' AND `image_id`='{$_GET['imgId']}'" );($row = @mysql_fetch_array($res))

$allComm[] = $row;(is_array($allComm)){$allComm;

}else{"<div style=\"text-align:center;padding-bottom:5px;\">There are no comments yet...</div>";

}

}SendEmail(){ //

відпрака листа на поштову скриньку в Інтернеті, в якому повідомляється що користувач був запрошений у групу.

$mail = explode (",", $_POST['invEmail']);

$subject = 'artput.jp/Invitation';

$message = 'You were invited to join the group on artput.jp\nto view group -http://artput.jp/index.php?page=grouppreview&groupname='.$_GET['groupname']( $l = 0; $l < count($mail); $l++)($mail[$l], $subject, $message);

}SendInvitationMessage(){ //

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

$groups = @mysql_fetch_array( mysql_query( "SELECT * FROM `soc_groups` WHERE `id`='{$_GET['groupname']}'" ) );

$text = 'Hello, you was invited to join the group <a style="color:#009CEC;" href="http://artput.jp/index.php?page=grouppreview&groupname='.$_GET['groupname'].'">'.$groups['title'].'</a> by '.$_COOKIE['username'].'.';

$text = addslashes($text);

$subject = 'Join group';

$to = explode (",", $_POST['invitedFriends']);($i = 0;$i < count($to); $i++)_query("INSERT INTO `soc_messages`(`from`,`to`,`subject`,`text`,`date`) VALUES('".$_COOKIE['username']."','".$to[$i]."','".$subject."','".$text."','".time()."');") or die(mysql_error());

}GetAllUsers(){ //

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

$res = mysql_query("SELECT `user` FROM `soc_users_groups` WHERE `group`='{$_GET['groupname']}'");( $row = @mysql_fetch_array($res))

$result = mysql_query("SELECT * FROM `soc_users` WHERE `id`='{$row['user']}'"));

$allUserInfo[] = $result;$allUserInfo;

}CreateGroup(){ //

функція для створення групи._query("INSERT INTO `soc_groups` (`title`,`url`,`description`,`contact_info`,`type`,`admin`,`fields`,`time`,`size`,`web_title`,`web_url`) VALUES ('{$_POST['GroupName']}' , 'images/groups/default_banner.jpg' , '{$_POST['groupDescription']}' , '{$_POST['location']}' , '{$_POST['type']}' , '{$_COOKIE['username']}', '{$_POST['fields']}' , ". time() ." , '1' , '{$_POST['web_title']}', '{$_POST['web_url']}' );") or die(mysql_error());

$row = mysql_insert_id();

$res = @mysql_fetch_array(mysql_query("SELECT * FROM `soc_users` WHERE `username`='{$_COOKIE['username']}'"));_query("INSERT INTO `soc_users_groups`(`user`,`group`,`admin`) VALUES('{$res['id']}', '$row', '1')");$row;

}New_Topic(){ //

створення нової теми на форумі відповідної групи.

$res = @mysql_fetch_array(mysql_query("SELECT * FROM `soc_users` WHERE `username`='{$_COOKIE['username']}'"));_query("INSERT INTO `soc_disc` (`parent`,`title`,`post`,`time`,`group_id`,`user_id`) VALUES(0,'{$_POST['new_topic2']}','{$_POST['first_post2']}',".time().",'{$_POST['post_group_id']}','{$res['id']}')") or die(mysql_error());

}SendMessageTo(){ //

повідомлення для користувача що хтось відповів прокоментував його тему._query("INSERT INTO `soc_messages`(`from`,`to`,`subject`,`text`,`date`) VALUES('".$_COOKIE['username']."','".$_POST['send_to']."','Answer on topic: ".$_POST['topic_title']."','".$_POST['text_message']."','".time()."');") or die(mysql_error());

}SearchGroups( $pageno = '', $items = '' ){ //

пошук груп

$sql = "SELECT * FROM `soc_groups` WHERE `title` LIKE '%{$_POST['searchGroup']}%'";( $pageno )

$sql .= " LIMIT ". ($pageno - 1) * $items. ",$items";

$res = mysql_query($sql);( $row = mysql_fetch_array( $res ) )

$group[] = $row;$group;

}adminId(){

// дізнаємось ідентифікатор адміністратора групи.

$group_admin = @mysql_fetch_array( mysql_query("SELECT * FROM `soc_groups` WHERE `admin`='{$_COOKIE['username']}' AND `id`='{$_REQUEST['groupname']}'") );@mysql_fetch_array( mysql_query( "SELECT * FROM `soc_users` WHERE username='{$group_admin['admin']}'" ) );

}

}

?>

 

7.7 Опис деяких фрагментів коду мови JavaScript

$('.required').blur(function (){ //

якщо необхідні поля пусті, то гранциці поля стають червоного кольору.($(this).val() == '') //

якщо поле пусте

$(this).css("borderColor","red"); //

підсвічуємо його червоним кольором.

еlse //

якщо ні

$(this).css("borderColor","grey"); //

підсвічуємо звичайним сірим кольором.

});

$('img.createCircle').click(function (){ //

перевірка на те, щоб усі поля, які необхідні для створення групи, були заповнені, якщо ні, підсвічуємо їх червоним кольором, та показуємо повідомлення. Якщо заповнені - робимо формі сабміт.error = 0; //

оголошуємо змінну та присвоюємо їй значення 0.

$('.required').each(function (){ //

перевіряємо кожне поле з даним класом.($(this).val() == ''){ //

якщо поле пусте, то змінній error надається значення одиниці і колір границь червоний.= 1;

$(this).css("borderColor","red"); //

якщо ні

}else

$(this).css("borderColor","grey"); //

підсвічуємо звичайним сірим кольором.

});(error != 0){ //

якщо змінна не дорівнює 0, то піднімається сторінка до верху і показується дів з надписом, що потрібно заповнити всі поля.

$(document).scrollTop(0);

$('div.clay').show();

}else //

якщо ні

$('#createGroup').submit(); //

передаємо форму на сервер.

});dismissUser(){ //

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

$('.dismiss').click(function(){ //

коли натискаємо на елемент у якого даний клас, запускається функція.

$.get('includes/ajax_admin.php',{ //

створюємо Аякс запит та передаємо змінні на сервер.: '<?=$_GET['groupname'] ?>',_id : $(this).prev().val()

},(data){ //

коллбек функція отримує оброблені дані, та розміщає їх у елемент з ідентифікатором content_users.

$('#content_users').html(data);

$('#alert_confirmation_text').html('User was deleted from your group.'); //

виводимо інформацію, що видалення користувача з групи відбулося. Далі іде розрахунок центра екрану користувача, щоб повідомлення зявилося рівно по центру екрана._top = $(document).scrollTop();_height = $(window).height();_height = window_height/2 - 50;_height += from_top;

$('#alert_confirmation').css('top',element_height+'px');_width = $(window).width()/2 - 165;

$('#alert_confirmation').css('left',element_width+'px');

$('#alert_confirmation').show();();

}

);

});

}

// Підрозділ, де користувач може переглядати картинки групи.

Це так звана step carousel, що в перекладі означає пошагова карусіль.

Користувач бачить перед собою 1 картинку по середені відведеного місця.

Кляцаючи на стрілочку вліво чи вправо, відповідно змінюється картинка і коментарі під нею, без перезавантаження сторінки. Все зроблено через Аякс запити.cur_image = <?=$oGroups->getIDAllMedia( @$_REQUEST['imgId'] )?>;speed = 500;active_slider = false;queue = 0;

// Обявили змінні і присвоїли їм значення.lc_callback(){= parseInt ($('.subclip').css('left')) / 400; //

Визначаємо значення left у елемента, ділимо його на 400, і преобразовуємо у число.( sinum < 0 ) //

Якщо змінна менше 0, то робимо відповідні математичні перетворення.= (sinum - sinum*2); +=1;

$('#ajax_content').load('includes/get_comments_by_ajax.php',{ //

Робимо Аякс запит і відсилаємо змінні на сервер._id : $( '#slider_images_' + sinum ).attr('alt'),_id : '<?=$_GET['groupname']?>'

}

);

}

$('#right_arrow').click(function (){ //

Коли користувач натискає на праву стрілочку, запускається функція.

$('#right_arrow').attr('src','images/groups/rightArrowUnactive.gif'); //

Малюнок активної стрілочки змінюється на неактивний.( !active_slider ){ //

якщо змінна не активна, то робимо її активною._slider = true;( parseInt( $('.subclip').css('width') ) ==

parseInt($('.subclip').css('left') ) + 400 ) //

якщо ширина елемента класу сабклип прирівнюється до мінусового значення left+400 сабкліпу, то картинка здвигається на 200пікселів вліво, і швидко біглою строкою картинка змінюється на найпершу.

$('.subclip').animate({left: '-=200px'}, speed).animate(

{left: '+='+( parseInt( $('.subclip').width() )-200)+'px'}, speed, function (){ count_img_right();rc_callback(); active_slider = false; $('#right_arrow').attr('src','images/groups/rightArrowActive.gif'); });

еlse //

В іншому випадку на екран віїзжає картинка, яка була попередньою з лівої сторони.

$('.subclip').animate({left: '-=400px'}, speed, function (){ count_img_right();rc_callback(); active_slider = false; $('#right_arrow').attr('src','images/groups/rightArrowActive.gif'); });

}

});

При розробці даної роботи були виконані всі вимоги технічного завдання. Було зпроектовано структуру бази даних та реалізовано скрипти на мові програмування РНР для роботи з нею; було розроблено модуль для збереження, редагування та перегляду сторінок сайту, реалізовано форум тощо.

Було реалізовано систему адміністрування веб-сайтом, яка дозволяє додавати та редагувати контент веб-сайту за допомогою веб-браузера.

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

При розробці даного порталу було використано мову програмування РНР, JavaScript та сервер баз даних MySQL. Для розробки дизайну сайту та обробки графічних зображень використовувалися такі графічні редактори як Adobe Photoshop CS4 і Gimp.

Похожие работы на - Розробка соціальної мережі 'Social network Artput'

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!