Өмнөх хичээлүүд бид манай АУСистемийн цөм болох Article классыг бичсэн. Одоо сайтын хэрэглэгчийн талын скриптийг бичих болно. Юуны өмнө хэрэглэгчийн талын программыг агуулах index.php нэртэй файл үүсгэнэ. Энэ файл нь хэрэглэгчийн хөтөч дээр хуудсыг үзүүлэх юм. Файлыг сайтын үндсэн хавтаст хадгалан өгөөд доорх кодыг оруулна.
<?php
require( "config.php" );
$action = isset( $_GET['action'] ) ? $_GET['action'] : "";
switch ( $action ) {
case 'archive':
archive();
break;
case 'viewArticle':
viewArticle();
break;
default:
homepage();
}
function archive() {
$results = array();
$data = Article::getList();
$results['articles'] = $data['results'];
$results['totalRows'] = $data['totalRows'];
$results['pageTitle'] = "Мэдээний архив | Сонин мэдээ";
require( TEMPLATE_PATH . "/archive.php" );
}
function viewArticle() {
if ( !isset($_GET["articleId"]) || !$_GET["articleId"] ) {
homepage();
return;
}
$results = array();
$results['article'] = Article::getById( (int)$_GET["articleId"] );
$results['pageTitle'] = $results['article']->title . " | Сонин мэдээ";
require( TEMPLATE_PATH . "/viewArticle.php" );
}
function homepage() {
$results = array();
$data = Article::getList( HOMEPAGE_NUM_ARTICLES );
$results['articles'] = $data['results'];
$results['totalRows'] = $data['totalRows'];
$results['pageTitle'] = "Сонин мэдээ";
require( TEMPLATE_PATH . "/homepage.php" );
}
?>
Программын кодыг дэлгэрүүлэн авч үзье.
1. Тохиргооны файлыг оруулан ирнэ.
Программын эхний мөрөөр config.php файлыг оруулан ирснээр программын бүх тохиргоонуудыг скрипт ашиглах боломжийг бүрдүүлнэ. Энд бид include() биш require() функцийг ашигласан. Учир нь require() функц оруулан ирэх файл байхгүй тохиолдолд алдаа өгдөг.
2. action параметрийн утгыг авах.
$_GET['action'] параметрийн утгыг скриптэд ашиглах үүднээс түүнийг $action хувьсагчид авна. Гэхдээ эхлээд isset() функцийг ашиглан $_GET['action'] элемент утгатай байгааг шалгах хэрэгтэй. Хэрвээ утга тодорхойлогдоогүй байвал $action хувьсагчид хоосон мөр ("") утга олгоно. Форм, куки, хайлтын форм зэрэг хэрэглэгчээс ирүүлсэн утгуудыг хэрэглэхээсээ өмнө тодорхойлогдсон эсэхийг шалгаж байх нь программчлалын сайн дадал. Энэ нь системийн аюулгүй байдал талаасаа ч тэр программын ажиллагааны үед "undefined index" гэсэн сануулга гарахаас урьдчилан сэргийлдэг.
3. Гүйцэтгэх ажиллагааг тодорхойлох.
Архив, материалыг үзүүлэх гээд цаашдын үйлдлийг тодорхойлохын тулд URL -ээр дамжин ирсэн action парамерийг switch блок шалгана. Хэрвээ URL -д action параметр байхгүй бол нүүр хуудсыг гаргана.
- archive() функц.
Функц Article классын getList() аргыг ашиглан өгөгдлийн санд байгаа бүх материалыг үзүүлнэ. Функц getList() аргын үр дүн ба хуудасны гарчгийг $results ассоциатив массивт хадгалсанаар темплейт түүнийг хуудаст гаргах боломжтой болно. Төгсгөлд нь хуудсыг үзүүлэх хэвийг /темплейтийг/ оруулан ирнэ. Бид хэвийн талаар сүүлд үзэх болно. - viewArticle() функц
Энэ функц хуудаст нэг материалыг үзүүлнэ. Функц URL -ийн articleId параметрийг аваад түүнийг тодорхойлогдсон эсэхийг шалгаад утгатай бол материалын обьектыг авахын тулд Article классын getById() аргыг дуудна. Аргаас буцаах үр дүнг үзүүлэх хэвд /темплейт/ ашиглахаар $results массивт хадгална. Хэрвээ материалын ID буюу articleId параметр байхгүй бол функц нүүр хуудсыг үзүүлнэ. Параметрийг шууд дамжуулахын тулд articleId -г (int) төрөлд хөрвүүлж байгаад анхаарна уу. Энэ нь кодод тооноос өөр утга дамжуулахаас сэргийлнэ. - homepage() функц.
Кодын сүүлийн функц homepage() тохиргооны файлд тоог нь заан өгсөн сайтын нүүр хуудаст үзүүлэх материалын жагсаалтыг үзүүлнэ. Тохиргооны файлд HOMEPAGE_NUM_ARTICLES тогтмолын утгыг 5 гэж өгснийг санаж байгаа байх. Функц нь getList() аргад буцаах материалын тоог хязгаарлан өгсөн HOMEPAGE_NUM_ARTICLES параметрийг дамжуулж байгаагаараа л archive() функцээс ялгагдана.
Санамж:
- Php кодыг сайн ойлгохын тулд сайтын Php хэл хэсгийн хичээлүүдийг үзэн ерөнхий ойлголтыг авах хэрэгтэй.
- Программын кодыг өөрөө гараараа бичин өгөх нь хэлийн бичлэгийг сурахад их тустай байдаг.