АУСистем хийцгээе. Хичээл 7

Бид АУСистемийнхээ үндсэн класс, хэрэглэгч болон админ талын скриптүүд, баазаа үүсгээд байгаа. Одоо сайтын хэв буюу темплейт хэсгийг кодлох ажилдаа орох цаг болсон. Ингээд энэ хичээлээр хэрэглэгчийн талын хэсгийн хэвийг үүсгэх ажлыг хийх болно.

Оруулан ирэх файлууд.

Манай системийн хуудаснуудын толгой, хөл хэсгүүд бүх хэсэгт ижилхэн байхаар төлөвлөсөн. Энэ нь бичигдэх кодыг бага болгохын дээр сайтын темплейтийн стандарт хэсгийг хэрхэн боловсруулж ашиглахыг харуулах зорилготой. Сайтын үндсэн хавтаст templates нэртэй хавтас үүсгээд түүн дотроо include нэртэй хавтасыг үүсгэнэ.

include хавтаст сайтын бүх хуудаст ижилхэн байх толгой болон хөл хэсгийг хадгална. Ингэснээр эдгээрийг манай АУСистемийн бүх хэвэнд оруулан ирэх боломжтой болно. include хавтаст header.php нэртэй файл үүсгээд доорх кодыг оруулан өгнө.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title><?php echo htmlspecialchars( $results['pageTitle'] )?></title>
    <link rel="stylesheet" type="text/css" href="style.css" />
  </head>
  <body>
    <div id="container">

      <a href="."><img id="logo" src="images/logo.jpg" alt="Сонин мэдээ" /></a>

Энэ код HTML хуудасны эхлэлийг гаргана. meta тегид хуудасны кодчлол utf-8 байхыг заан өгөх хэрэгтэй. Ингэснээр кирил үсгүүдийг зөв харагдуулах болно. Үндсэн (index.php эсхүл admin.php) скриптээс дамжуулах $results['pageTitle'] хувьсагчаар title тегид хуудасны гарчгийг заан өгсөн. Бас style.css хэвийн хүснэгтийн файлыг оруулан ирэхийг заасан байгаа. Хэвийн хүснэгтийн файлыг бид арай хожуу хийн өгөх болно. $results['pageTitle'] хувьсагчийн утгыг htmlspecialchars() функцээр дамжуулан өгч байгааг анхаарна уу. Энэ функц нь (<, >, & гэх мэтийн) HTML-ийн тусгай тэмдэгтүүдийг тэдгээртэй харгалзах (&lt;, &gt; &amp; гэх мэтийн) утгуудаар солин өгдөг. Өмнөх хичээлүүдэд үзсэн Article классын оролтын мэдээлэлд шүүлт хийх, гаралтыг кодлох энэ аргууд нь сайтын аюулгүй байдлыг сайжруулах сайн аргууд байдаг. Бид манай хэвүүдийн бараг бүх өгөгдлүүдийг ийм байдлаар кодлох болно.
Одоо include хавтаст footer.php нэртэй файл үүсгээд доорх кодыг оруулан өгнө.

      <div id="footer">
        Сонин мэдээ &copy; 2015. <a href="admin.php">Сайтын админ</a>
      </div>

    </div>
  </body>
</html>

Дээрх код манай системийн HTML хуудас бүрийг дуусгаж байх юм. Сүүлийн гурван мөрөөр container, body, html дивүүд хаагдаж байгаад анхаарна уу. Бид эдгээр файлуудыг үндсэн хэвийн файлын өмнө ба сүүл хэсэгт оруулж ирснээр хуудсыг бүрдүүлнэ гэдгийг ойлгосон байх.

Нүүр хуудасны хэв homepage.php

Одоо templates хавтас дотроо homepage.php файлыг үүсгээд доорх кодыг оруулан өгөөрэй.

<?php include "templates/include/header.php" ?>

      <ul id="headlines">

<?php foreach ( $results['articles'] as $article ) { ?>

        <li>
          <h2>
            <span class="pubDate"><?php echo date('j F', $article->publicationDate)?></span><a href=".?action=viewArticle&amp;articleId=<?php echo $article->id?>"><?php echo htmlspecialchars( $article->title )?></a>
          </h2>
          <p class="summary"><?php echo htmlspecialchars( $article->summary )?></p>
        </li>

<?php } ?>

      </ul>

      <p><a href="./?action=archive">Мэдээний архив</a></p>

<?php include "templates/include/footer.php" ?>

Энэхүү темплейт нүүр хуудаст мэдээнүүдийг жагсаалт хэлбэрээр гарган ирнэ. Скрипт $results['articles'] хадгалагдаж байгаа Article обьектуудын массивыг циклээр боловсруулж мэдээ бүрийн нийтлэгдсэн огноо, гарчиг, товч агуулгыг хуудаст үзүүлнэ. Мэдээний нэрүүд action=viewArticle параметрыг мэдээний ID -ийг хамтаар үндсэн скриптэд дамжуулах '.' (index.php) холбоос URL -г үүсгэнэ. Ингэснээр хэрэглэгч мэдээний гарчиг дээр даран холбоосоор орон мэдээг бүтнээр нь үзэх боломжтой болно. Үүнээс гадна хэв Мэдээний архивт хандах ("./?action=archive") холбоосыг агуулна. Php кодыг Html дотор оруулах боломжтой байдаг талаар та сайтын PHP хэл хэсгээс мэдсэн гэж найдаж байна.
homepage.php файл болон цаашдаа бүх темплейтүүд PHP include -ийг ашиглан хуудасны толгой болон хөлийг оруулан ирж байгаад анхаарна уу.

Мэдээний архивын хэв archive.php

Мэдээний архивыг үзүүлэх темплейт файлыг templates хавтаст archive.php нэрээр үүсгээд доорх кодыг оруулан өгнө.

<?php include "templates/include/header.php" ?>

      <h1>Мэдээний архив</h1>

      <ul id="headlines" class="archive">

<?php foreach ( $results['articles'] as $article ) { ?>

        <li>
          <h2>
            <span class="pubDate"><?php echo date('j F Y', $article->publicationDate)?></span><a href=".?action=viewArticle&amp;articleId=<?php echo $article->id?>"><?php echo htmlspecialchars( $article->title )?></a>
          </h2>
          <p class="summary"><?php echo htmlspecialchars( $article->summary )?></p>
        </li>

<?php } ?>

      </ul>

      <p>Нийт <?php echo $results['totalRows']?> материалтай.</p>

      <p><a href="./">Нүүр хуудаст буцах</a></p>

<?php include "templates/include/footer.php" ?>

Скрипт нь манай АУСистемд байгаа бүх материалуудыг гаргах хэв. Код homepage.php файлтай бараг ижилхэн. Материалуудын жагсаалтыг нүүр хуудасныхаас өөр хэлбэрээр үзүүлэх үүднээс энд archive гэсэн CSS класс нэмэгдсэн байгаа. Архивт хэдэн жилийн өгөгдлүүд байж болох учраас нийтлэгдсэн огноонд оныг нэмэн оруулсан. Хуудас дээр өгөгдлийн санд байгаа материалуудын нийт тоог $results['totalRows'] элементийг ашиглан үзүүлнэ. Мэдээний архив холбоосын оронд нүүр хуудсын "Нүүр хуудаст буцах" холбоосыг оруулсан.

Мэдээг үзүүлэх хэв viewArticle.php

Хэрэглэгчийн талын сүүлийн темплейт бол хэрэглэгчид мэдээг үзүүлэх хэв юм. Үүний тулд templates хавтастаа viewArticle.php файлыг үүсгээд доорх кодыг оруулан өгнө.

<?php include "templates/include/header.php" ?>

      <h1 style="width: 75%;"><?php echo htmlspecialchars( $results['article']->title )?></h1>
      <div style="width: 75%; font-style: italic;"><?php echo htmlspecialchars( $results['article']->summary )?></div>
      <div style="width: 75%;"><?php echo $results['article']->content?></div>
      <p class="pubDate">Нийтлэгдсэн <?php echo date('j F Y', $results['article']->publicationDate)?></p>

      <p><a href="./">Нүүр хуудаст буцах</a></p>

<?php include "templates/include/footer.php" ?>

Хэв их энгийн кодтой. Энд сонгогдсон материалын гарчиг, товч агуулга, дэлгэрэнгүй агуулга, нийтлэгдсэн огноог гаргаж байгаа. Үүнээс гадна хуудаст нүүр хуудас руу буцах холбоосыг байрлуулсан болно.
Ингээд хэрэглэгчийн талын темплейтүүд бэлэн боллоо. Дараагийн хичээлд бид сервер талуудын хэвүүдийг үүсгэх болно.

Мэдээлэл таалагдсан бол найзуудтайгаа хуваалцаарай.

  Нээгдсэн тоо: 2031 Төлбөртэй

Яагаад зөвхөн мөрний тухай тусгай хичээл байгаа талаар та гайхаж байж магадгүй. Өнгөцхөн харвал мөр гэдэг нь String гэсэн төрөл бүхий хувьсагч гэдгээс тэгж харагдаж болох талтай. Гэхдээ PHP -д мөртэй үр дүнтэй ажиллахын тулд энэ сэдвийг гүнзгий ойлгосон байх шаардлагатай.

Мөр гэдэг нь String төрөлтэй хувьсагч ба үнэндээ бол тэмдэгтүүдийн багц юм.

Мөрийг дараах байдлаар тодорхойлж болно.

$string_1="Сайн байна уу";          // давхар хашилттай мөр
$string_2='Сайн байна уу';            // дан хашилттай мөр

Мөрийг тодорхойлох нь хувьсагчид утга олгохтой яг ижилхэн хийгдэж байгаа хэдий ч нэг эсвэл давхар хашилтыг мөр дотор гаргах үед асуудал гарахаар байна. Хэрвээ бид

$str="Тэр "сайн байна уу" гэж хэлэв";
echo $str;

гэсэн кодыг бичвэл програмын ажиллагаа нь мөрөнд утга олгох оператор дээр алдаа өгөх болно. Учир нь мөр гэдэг нь хамгийн ойрхон байрлах хашилтын хоорондох тэмдэгтүүдийн багцыг хэлнэ. Иймд дээрх код нь алдаа өгнө. Энэ байдлаас гарахын тулд бид (\) налуу зураас тэмдэгтийг ашиглана. Тэгвэл дээрх кодыг

  Нээгдсэн тоо: 2907 Нийтийн

Обьект хандалтад программчлалын класст тогтмолыг хэрхэн зарлах, тогтмолууд ямар хэрэгтэй, процедур хандалтад PHP -д зарлагдсан тогтмолуудаас юугаараа ялгаатай талаар энэ хичээлээр авч үзье. PHP -д тогтмол утгууд гэх ойлголт байдаг бөгөөд тэдгээрийг define түлхүүр үгээр зарлан өгдөг гэдгийг санаж байгаа байх.

  Нээгдсэн тоо: 8717 Нийтийн

Хичээлээр бид PHP хэлний үндсэн ойлголтууд болох хувьсагч, тогтмолуудын талаар авч үзнэ. Эдгээрийг сайн ойлгохгүйгээр програм бичнэ гэдэг хүндрэлтэй. Та ямар нэгэн програмчлалын хэл мэддэг гэсэн ч энэ хичээлийг үзээрэй. Учир нь PHP хэлэнд өгөгдөлтэй ажиллах онцлогууд байдаг.

Хувьсагч

Програмчлалын ямарч хэлэнд програмын ажиллагааны явцад өөрчлөгдөж байдаг өгөгдлийг хадгалах хэрэгсэл байдаг. Эдгээр нь хувьсагчид юм. Хувьсагч нь нэр болон утгаар тодорхойлогдоно.
Хувьсагч - өгөгдөл хадгалах хэрэгсэл.
Хувьсагчийн тухай илүү сайн ойлгохын тулд жишээ авч үзье.

<?php
   $number=5;                   // хувьсагчид 5 гэсэн утга олгож байна.
   $number=2*$number;           // $number хувьсагчийн утгыг 2 үржүүлнэ
   echo $number;                // $number хувьсагчийн утгыг үзүүлнэ
?>

Жишээнд $number нэртэй хувьсагчид (=) тэмдгийг ашиглан 5 гэсэн утгыг олгосон байна. Хувьсагч нь утга хадгалаад зогсохгүй тэдгээрийг өөрчилж болно. Хоёрдугаар мөрөнд $number хувьсагчийн утгыг хоёр дахин өсгөж байна. Хувьсагчийн утгыг үзүүлэхдээ түүнийг нэрийг ашиглаж байна.

  Нээгдсэн тоо: 1493 Төлбөртэй

Өмнөх хичээлүүдэд манай жижигхэн АУСистемийн өгөгдлийн санг үүсгэн тохиргооны файлыг бичсэн. Одоо манай программын үндсэн класс болох Article -ийг үүсгэе. Манай системд Article нь өгөгдлийн санд материалыг хадгалах, тэдгээрийг удирдах, сайтын хуудаст гаргах материалуудыг татан авчрах асуудлуудыг шийдвэрлэх ердөө ганц PHP класс юм. Бид энэхүү классыг үүсгэсний дараа материалыг үүсгэх, шинэчлэх, үзүүлэх, устгах скриптүүдийг үнэхээр амархан зохиох болно. 

Хичээлийн материалыг сайн ойлгон авах хэрэгтэй. Ер нь обьект хандалттай программчлалын хэлнүүдийн классууд яг иймэрхүү зарчмаар ажилладаг.

Үйл явдал /event/ тодорхой үйлдэл хийгдсэн талаар системд мэдэгддэг. Хэрвээ бид энэхүү үйлдлийг ажиглах хэрэгтэй бол яг энд…

Нээгдсэн тоо : 226

 

Манай төсөл олон хуудсуудтай болон тэдгээрийн хооронд динамикаар шилжилт хийж байгаа ч тухайн үед шилжилт хийгдсэн хуудаст тохирох…

Нээгдсэн тоо : 314

 

Зочин (Visitor) паттерн классуудыг өөрчлөхгүйгээр тэдгээрийн обьектуудын үйлдлийг тодорхойлох боломжийг олгоно. Зочин хэвийг ашиглахдаа классуудын хоёр ангилалыг тодорхойлно.…

Нээгдсэн тоо : 271

 

Лямбда-илэрхийлэл нь нэргүй аргын хураангуй бичилтийг илэрхийлнэ. Лямбда-илэрхийлэл утга буцаадаг, буцаасан утгыг өөр аргын…

Нээгдсэн тоо : 370

 

Кодийн сайжруулалт /рефакторинг/ хичээлээр програмийн кодоо react -ийн зарчимд нийцүүлэн компонентод салгасан.…

Нээгдсэн тоо : 415

 

Хадгалагч (Memento) хэв обьектын дотоод төлвийг түүний гадна гаргаж дараа нь хайрцаглалтын зарчмыг зөрчихгүйгээр обьектыг сэргээх боломжийг олгодог.

Нээгдсэн тоо : 442

 

Делегаттай нэргүй арга нягт холбоотой. Нэргүй аргуудыг делегатийн хувийг үүсгэхэд ашигладаг.
Нэргүй аргуудын тодорхойлолт delegate түлхүүр үгээр…

Нээгдсэн тоо : 509

 

Математикт харилцан урвуу тоонууд гэж бий. Ямар нэгэн тооны урвуу тоог олохдоо тухайн тоог сөрөг нэг зэрэг дэвшүүлээд…

Нээгдсэн тоо : 590

 

Төсөлд react-router-dom санг оруулан чиглүүлэгчдийг бүртгүүлэн тохируулсан Санг суулган тохируулах хичээлээр бид хуудас…

Нээгдсэн тоо : 613

 
Энэ долоо хоногт

Өдрийн хуваарьт 5 хичээл ордог. Тэгвэл 11 хичээлээс зохиож болох хуваарийн хувилбарын тоог ол. Нэг хичээл өдөрт нэг удаа л орно.

Нээгдсэн тоо : 1952

 

y=8x3 ба y=8x функцуудын графикаар хязгаарлагдсан дүрсийн талбайг ол.

Нээгдсэн тоо : 1071

 

тэгшитгэлийн язгуурууд x1 , x2 , x3 бол

Нээгдсэн тоо : 698