Създаване на сайт с Dreamweaver MX 2004, PHP и MySQL , Урок 1.3

Сега ще редактирате файла topic.php. Тази страница показва списък от статии асоциирани към определена тема, която потребителя е избрал от менюто. В основни линии страницата е конструирана по същия начин, като index.php. Единствената разлика е че страницата филтрира recordset-a, който използвате по id_top, който URL параметъра подава.
Създаване на списък със статии

Забележка: Вие можете да филтрирате записите в базата данни, изхождайки от равенството на параметричната стойност със стойност от колона на записа. Това предизвиква филтриран набор от записи, задоволяващ изискваното условие ( във Вашия случай-записите принадлежащи на една и съща тема ).

Отворете topic.php и приложете върху него темплейта ( както направихте и с index.php ).

Във полето Title от Document лентата, въведете Blog: Topic , като заглавие на страницата.


Създаване на филтриран recordset

За да създадете филтриран набор от резултати, Вие процедирате както със нормалния recordset, но с едно изключение: в диалоговия прозорец Recordset , определята филтриращото условие, както е показано на фиг.17


фиг.17. Диалоговия прозорец Recordset, показващ rsArticles recordset-а и филтриращото условие

Както виждате, стойността на полето idtop_art, трябва да е равна на стойността на URL параметъра idtop_art.

Кликнете бутона Advanced и добавете join условието веднага след blg_article_art:

INNER JOIN blg_topic_top ON idtop_art=id_top

Следва, да изобразите данните от филтрирания recordset използвайки динамична таблица, както беше описано за index.php. Създайте динамична таблица използвайки rsArticles recordset-а , който създадохте преди малко.

Следвайте описани по-долу за да форматирате и спретнете динамичната таблица

Селектирайте динамичната таблица, като кликнете съответния таг <table> от таг селектора. Настройте widht на таблицата на 100% в Property inspector .

Селектирайте следните колони от таблицата и ги изтрийте: id_art, idtop_art, text_art, id_top и description_top. Можете да селектирате колоните от таблицата, като кликнете в таблицата, след това натиснете стрелката сочеща надолу и намираща се над всяка от колоните и накрая изберете select column от появилото се меню. Така маркирана колоната е подложена на неумолимото Ви натискане на клавиша Del от клавиатурата Ви. Ако не виждате стрелка(и) над колоните, проверете дали е активиран визуалния помощник за широчините в таблицата (View > Visual Aids > Table Widths).

Изтрийте първия ред от таблицата.

Селектирайте останалия ред, натиснете десен клавиш на мишката и изберете Table > Insert Row от менюто.

Изберете левите две клетки в горния ред и ги слейте натискайки merge бутона в Property inspector.

Изберете десните две клетки в горния ред и ги слейте натискайки merge бутона в Property inspector.

Изберете динамичния текст {rsArticles.title_art} и го издърпайте във горната лява клетка.

Изберете динамичния текст {rsArticles.date_art} и го издърпайте във горната дясна клетка.

Напишете Published: вдясно от динамичния текст {rsArticles.date_art}.

Изберете динамичната таблица, като натиснете съптветния таг <table> от таг селектора и натиснете Вашият клавиш лява стрелка, така че курсора да се появи вляво от таблицата.

Със курсора вляво на таблицата, вмъкнете друга таблица (Insert > Table). Предпишете на таблицата следните стойности: 1 row, 1 column, 100% width, 0 CellSpace and 0 CellPad.

Няма нужда да изобразявате динамичния текст {rsArticles.title_top} за всяка статия, след като темата е една и съща за всички статии. Селектирайте динамичния текст {rsArticles.title_top}и го издърпайте нагоре в новата таблица която създадохте. Това ще го постави извън repeat region ( повтаряемия регион ) в по-долната таблица. Ако искате да отмените визуалният помощник на широчините в таблицата (View > Visual Aids > Table Widths).

Поставете динамичния текст {rsArticles.title_top} в кавички и напишете Articles in преди него

Във втория ред на долната таблица, селектирайте всички клетки и ги слейте.

Разположете Вашия курсор вдясно на динамичния текст {rsArticles.description_art} и натиснете Enter.

Вмъкнете хоризонтална линия за да разграничите статиите (Insert > HTML > Horizontal Rule).

Съхранете (save) и поставете файла на сървъра. Така също проверете дали index.php файла е на сървъра.

Във Вашия браузър отидете на index.php файла. Ако сте попълнили базата данни, използвайки data.sql за който беше споменато, то ще видите темите показани на страницата article.php, когато кликнете topic links в дясното навигационно меню на index.php страницата.

Създайте необходимия линк между заглавието на статията и страницата article.php, подавайки URL параметъра id_art, който е равен на полето id_art от rsArticles recordset.

Страницата трябва да изглежда в Design view като:




фиг.18. Страницата в Design view

След малко ще научите как покажете цялата статия

Показване на статията

И сега нека създадем стараницата article.php за показване на цялата статия. Страницата показва заглавието, кратко описание, тялото на статията и датата на публикуване на статията. Построявате страницата по подобен маниер на topic.php:

Отворете article.php и приложете върху нея темплейта blgtemplate.

В полето Title от Document лентата, въведете Blog: Article, като заглавие на страницата

Създайте филтриран доразвит recordset с името rsArticle, който трябва:

да филтрира статиите по полето id_art, което трябва да е равно на стойността на URL параметъра id_art.

направете вътрешна връзка (join) между таблиците blg_topic_top и blg_article_art.

INNER JOIN blg_topic_top ON idtop_art=id_top

Фиг.19 показва Advanced view на rsArticle recordset-а:


фиг.19. rsArticle recordset във диалоговия прозорец advanced recordset

Изобразете динамичните данни от recordset-a на Вашата страница. Този път нямате нужда от dynamic table, след като имате да изобразите само ID на статията, което URL параметъра подава.

Вмъкнете таблица в редактируемия регион main, която да има 3 реда и 2 колони

Слейте клетките на втория ред

Слейте клетките на третия ред

Издърпайте от панела Bindings, тези полета от recordset-a, които искате да бъдат показани в съответните клетки както е показано на фиг.20. Напишете нужния текст за да стане страницата Ви по-четлива.

фиг.20 показва как би трябвало да изглежда страницата article.php в Design view.




Запишете файла и го поставете на сървъра. С Вашия браузър отидете на страницата index.php, натиснете тема за да отидете на topic.php и натиснете някое заглавие на статия, за да се покаже article.php със детайлна информация за статията.

Сега разполагате със всички страници изобразяващи постнатите(публикуваните) от blog-a статии:

index.php - извеждаща списък с 10-те най-нови статии

topic.php - показваща статиите, асоциирани към дадена тема

article.php - показваща съдържанието на статията

А как да постнеме (post) статия? Следва да научите и тази магария:)

Публикуване на статии в Blog-a

За публикуване на статии във Вашия blog, Вие създадохте страницата post.php, която съдържа форма за публикуване.

Отворете страницата post.php

Приложете към нея темплейта blgtemplate

В полето Title от Document лентата, въведете Blog: Post Article , като заглавие на страницата

Кликнете в main региона

Кликнете таба Application от лентата Insert и изберете Record Insertion Form Wizard от меню бутона Insert Record

Конфигурирайте Record Insertion Form, както е показано по-долу



фиг.21. Record Insertion Form

използвайте дефинираната връзка към базата данни

изберете таблицата в която искате да бъдат вмъквани записите(статиите): blg_article_art

изберете страницата за пренасочване на потребителя след вмъкването: index.php.

Трябва да изтриете полето id_art, чиято стойност нараства автоматично всеки път, когато е вмъкнат запис в таблицата. За да свалите дадено поле, изберете го и кликнете бутона (-)

Така също свалете полето idtop_art. Select the topic from a pop-up menu that you will create later.

За всяко от останалите полета, въведете label, както се вижда на фиг.21

променете изобразяването на description_art и text_art полетат на text areas, защото в тези полета ще вмъквате "по-тлъсти" текстове

нека полето date_art да се изобразява като hidden field и нека настроиме стойността му по подразбиране на:

<?php echo date('Y-m-d H:i:s'); ?>

По този начин няма нужда да настройвате ръчно стойността на полето date_art. Сървъра автоматично ще я настрои на текущата дата и час.

Забележка: Функцията date( ) е специална PHP функция, връщаща текущата локална дата и час, в зададен формат. Функцията echo е друга PHP функция извеждаща резултатите във Вашия браузър ( в случая връща резултата от функцията date( ) )

Кликнете Ok за да затворите Record Insertion Wizard и да вмъкнете формата във страницата.

Фиг.22. показва как изглежда формата във Design view



фиг.22. формата във Design view

С тази форма има само един проблем: не можете да изберете темата към която принадлежи статията. Но защо изтрихме полето idtop_art от формата ? Не беше ли нужно за избор на темата ? Наистина idtop_art се използва за идентифициране на темата, към която принадлежи дадена статия. Обаче, това е само едно числено поле и ще е трудно да предположим каква е темата според номера. Трябва да можем да избереме името на темата от динамично падащо меню.

Динамичното меню показва набор от полета на записа от recordset-a и Ви позволява да изберете едно. При промяна на базата данни, динамичното поле се променя в съответствие, без да създава необходимостта ръчно да променяте елементите в менюто.

Създайте recordset с име rsMenu на страницата post.php. rsMenu recordset-а трябва да съдържа всички теми от таблицата blg_topic_top.

Създайте динамично меню следвайки стъпките:

Вмъкнете нов ред във таблицата на формата, веднага след полето Article title.

Въведете етикета (label) Topic във лявата клетка на новия ред.

Във дясната клетка, вмъкнете изскачащо меню, като кликнете бутона List/Menu от таба Forms на лентата Insert.

Изберете менюто и му задайте label - idtop_art във Property inspector.

Кликнете бутона Dynamic от Property inspector и конфигурирайте диалоговия прозорец Dynamic Menu както е показано на фиг.23

ще използвате опциите от rsMenu recordset.

The submitted value is id_top, but the actual entries in the pop-up menu are the names of the topics specified by title_top.



фиг.23 Диалоговия прозорец Dynamic List/Menu

Кликнете Ok.

Сега ъпдейтвайте Вашата форма за да включите новосъздаденото динамично меню:

Отидете на таба Server Behaviors от панела Application

Кликнете двойно Insert Record server behavior.

В списъка на колоните , можете да видите че idart_top няма никаква стойност. Изберете тази колона и настройте стойността и на тази на idart_top полето от формата.



фиг.24. Диалоговия прозорец Insert Record

Кликнете Ok.

И ето че формата за вмъкване е готова за действие. С натискане на F12 я вижте как работи.


фиг.25. Хм....екстра

Следва продължение в Урок 1.4, където ще приложите CSS



/ Трябва да сте регистриран за да напишете коментар /