SlideShare une entreprise Scribd logo
1  sur  68
ШИНЖЛЭХ УХААН, ТЕХНОЛОГИЙН ИХ СУРГУУЛЬ
ҮЙЛДВЭРЛЭЛИЙН ТЕХНОЛОГИ, ДИЗАЙНЫ СУРГУУЛЬ

БАКАЛАВРЫН ДИПЛОМ
БАЯРСАЙХАН ЭНХМАНДАХ

“ПРОГРАМЧЛАГДАХ ЛОГИК УДИРДЛАГА” ХИЧЭЭЛИЙГ
Е- СУРГАЛТАНД БЭЛТГЭХ
Улаанбаатар хот 2013 он

ШИНЖЛЭХ УХААН, ТЕХНОЛОГИЙН ИХ СУРГУУЛЬ
ҮЙЛДВЭРЛЭЛИЙН ТЕХНОЛОГИ, ДИЗАЙНЫ СУРГУУЛЬ
Баг: Хөнгөн үйлдвэрийн машин судлал,
хэвлэлийн технологийн профиссорын баг
Мэргэжлийн нэр: Хөнгөн үйлдвэрийн
автоматжуулалт
Мэргэжлийн код: D525500

БАКАЛАВРЫН ДИПЛОМ

СЭДЭВ: “Программчлагдах логик удирдлага” хичээлийг
Е-сургалтанд бэлтгэх

Гүйцэтгэсэн:
Удирдсан:
Зөвлөсөн:
Шүүмж:

/Б.Энхмандах/
/Д.Пүрэвмагнай/
/
/
/Д.Пүрэвмагнай/
Улаанбаатар хот 2013 он

ДИПЛОМЫН АЖИЛ, ТӨСЛИЙН ДААЛГАВАР, СЭДЭВЧИЛСЭН ТӨЛӨВЛӨГӨӨ

“Хөнгөн үйлдвэрийн автоматжуулалт” мэргэжлээр төгсөх
Оюутнуудын дипломын үзлэг болон хамгалаах хуваарь
2013,09,14
Үзлэг

Гүйцэтгэл

Үзлэгийн оноо

Хугацаа

Судалгааны материалуудыг бэлэн болгох,
зорилго, зорилтуудаа тогтоосон байх

3

IX/23

Нэгдүгээр үзлэг

Онол, судалгааны хэсэг

7

X/14

Хоѐрдугаар үзлэг

Зохион бүтээлтийн хэсэг
/бичвэр, зураг/

10

X/28

Гуравдугаар үзлэг

Удирлагийн төсөл тооцоо
бичвэр, зураг/

10

XI/11

Дөрөвдүгээр үзлэг

PID контроплерийн төсөл тооцоо, эдийн
засаг, дүгнэлт

5

XII/2

Урьдчилсан
хамгаалалтанд орох
эрх

Диплом дууссан байна

Удирдагчийн үзлэг

XII/20
Урьдчилсан
хамгаалалт

Диплом 100% дууссан байна

+-20

XII/23

Удирдагчийн дүгнэлт
тодорхойлолт

+-15

I/4

Дипломын хамгаалалт

+-30

I/6
ГАРЧИГ
Оршил
Нэгдүгээр бүлэг: Дипломын сэдвийн тухай
1. Сэдвийг хэрэгжүүлэх үндэслэл
2. Зорилтууд
3. Үүрэг, ач холбогдол
4. Бүлгийн дүгнэлт
Хоѐрдугаар бүлэг: Судалгаа
Програмыг хөгжүүлэх арга болон технологийн судалгаа
2. Вэб сайт хийх арга
2.1.1 Хүрхрээ загвар
2.1.2 MySQL өгөгдлийн сангийн судалгаа
MySQL өгөгдлийн санг Ubuntu үйлдлийн систем дээр суулгах
PhpMyAdmin-ийг Ubuntu үйлдлийн систем дээр суулгах
2.1.3 “Symfony” PHP фреймворкийн судалгаа
“Symfony” framework-ийн түүх
“Sensio Labs”-н тухай
“Symfony” framework-ийн хувилбар
Symfony-ийн ажиллах зарчим
PHP тохиргоо
“Symfony” framework-ийг суулгах
“Symfony” framework болон өгөгдлийн бааз
“Symfony” framework-ийн түлхүүр ойлголтууд
The MVC Architecture
Хамгаалалт
Вэб серверийн тохиргоо

Орчин- (Environment)
2.1.4 “Jquery” жаваскрипт сангийн судалгаа
2.1.5 UML технологийн судалгаа
2.2 E-хичээл гэж юу вэ?
2.2.1 E -хичээлийн давуу тал хамрах хүрээ
2.2.2 E –хичээлийн стандарт
Гуравдугаар бүлэг: ВЭБ САЙТЫН АГУУЛГА, ЗАГВАР, ҮНДСЭН БҮТЭЦ
3.1 E-хичээлийн стандартын нийцэл
Вэб сайтын зорилго чиглэл
Агуулга
3.2 Вэб сайтын хайлтын хэсэг
3.3 Бүртгэл болон нэвтрэх хэсэг
3.4 Багийн гишүүд болон багш нарын оролцоо
3.5 Admin -тай холбоо тогтоох
3.6 E-хичээл бэлтгэх, байршуулах, засварлах, нийтлэх зааварчилгаа
3.7 E-хичээлийн байрших хугацаа, хязгаарлалтыг шийдвэрлэх арга замууд
3.8 Бүлгийн дүгнэлт
Дөрөвдүгээр бүлэг: ХЭРЭГЛЭГЧИЙН ШААРДЛАГА
4.1 Системийн ерөнхий ойлголт
4.2 Хэрэглэгчийн онцлог
Бүтээгдэхүүний эцсийн хэрэглэгчид
4.3 Automatic.mn нүүр хуудасны ерөнхий харагдах байдал
Ерөнхий бүтэцийг блок схемээр харуулсан загвар.
4.4 Automatic.mn вэб сайтын нүүр хуудас кодчилолын түвшинд дараах
байдалтай бичигдэнэ.
4.5 Мэдээ булан кодчилолын түвшинд дараах байдалтай бичигдэнэ.
Бүртгэл болон нэвтрэх хэсэг кодчилолын түвшинд дараах байдалтай бичигдэнэ.
Admin -тай холбоо тогтоох булан кодчилолын түвшинд дараах байдалтай бичигдэнэ.
4.6 E-хичээлийн байрших хугацаа, хязгаарлалтыг шийдвэрлэх арга замууд
кодчилолын түвшинд дараах байдалтай бичигдэнэ.
Бүлгийн дүгнэлт
Тавдугаар бүлэг. САНХҮҮГИЙН ТООЦОО
ДҮГНЭЛТ
АШИГЛАСАН ХУУДСЫН ЖАГСААЛТ
ХАВСРАЛТ
ЗУРГИЙН САН
ОРШИЛ
Бидний амьдарч буй энэ эрин зуун бол мэдээллийн технологийн эрин зуун юм. Тэр
дундаа компьтерийн програм хангамж маш хурдацтай хөгжиж байна. 10-аад жилийн
тэртээ Монгол улсад компьютер, интернэт танигдаж байсан бол өнөө үед компьютер
ашигладаггүй, интернэт ашигладаггүй хүн гэж бараг үгүй болжээ.
Мэдээллийн технологи, програм хангамж нь хүний үйл ажиллагааг маш ихээр
хялбарчилж байдаг. Мэдээллийн технологийн дэвшилтэт чанарууд бизнесийн бүх
салбаруудад ач тусаа өгч байна. Тэр ч утгаар цахим хэлбэрээр үйлчилгээ явуулдаг албан
байгууллага нэмэгдсээр байна.
Миний дипломын ажлын хийх ѐстой зүйл бол танхимын сургалтын дутагдалтай
талыг нөхөж цахим хэлбэрт оруулах буюу Е хичээл бэлтгэх юм. Ингэснээр бидний цаг
хугацаа, хүч хөдөлмөр хэмнэгдэж интернетээр хичээл сонголт хийдэг байсан бол одоо
хичээл судлах боломж бүрдэж байгаа юм. Танхимын сургалтаас ялгаатай нь оюутан
хичээлийг урьдчилан судлах, хугацаа дууссан үед зөвшөөрөл авч дахин судлах, олж авсан
мэдлэгийг тухайн цагт дүгнүүлэх, хичээлд алсын зайнаас оролцох, хичээлийн ирц
бүртгүүлэх боломж бүрдэж байгаа нь уг системийн үндсэн давуу тал болж байгаа билээ.
Ингэхдээ сурч буй хугацаандаа олж авсан мэдлэгээ ашиглан бодит хэрэглэгчдийн хүртээл
болгох зорилготойгоор ажиллалаа.
НЭГДҮГЭЭР БҮЛЭГ:
ДИПЛОМЫН СЭДВИЙН ТУХАЙ
Энэхүү бүлэгт дипломын төслийн үндэслэл, зорилтууд, төслийг хэрэгжүүлсний ач
холбогдол зэргийг тодорхойлсон.
1.1 Сэдвийг хэрэгжүүлэх үндэслэл
Танхимын сургалт нь тогтсон хүгацаандаа нэг л удаа заадаг. Энэ нь удаан ойлгодог,
мөн янз бүрийн шалтгаанаар хичээлдээ сууж амжаагүй тохиолдолд тухайн хичээлийг
ойлгохгүй өнгөрөх нь бий. Тиймээс цахим сургалт нь танхимын учир дутагдалтай талыг
нөхөж автоматжуулсанаар дараах ач холбогдолтой. Үүнд:
Цаг хугацаа хэмнэнэ. Жишээлбэл:
o Хэрэглэгчид уулзах шаардлагагүйгээр интернетэд суурилсан програм
хангамж хэрэглэн харилцана.
Эдийн засгийн хувьд хэмнэлттэй. Жишээлбэл:
o Цаасгүй технологийг дэмжин цаасанд зарцуулсан мөнгийг хэмнэнэ.
Олон шат дамжлага болсон үйлүүдийг арилган хэрэглэгчид цогц үйлчилгээ
үзүүлснээр хэрэглэгчдийн сэтгэл ханамжийг нэмэгдүүлнэ. Жишээлбэл:
o Хэрэглэгч үйлийг гүйцэлдүүлэхийн тулд зөвхөн интернет буюу интернетэд
суурилсан програм хангамж байна.
Е хичээл болон дипломын хүрээнд хийгдсэн автомат систем ашигласнаар
хөдөлмөрийн бүтээмж дээшилнэ.
1.2 Зорилтууд
1. E хичээлийн стандартад нийцсэн вэб сайт хийх, турших.
2. Мэргэжлийн багш оюутан нарт E хичээл бэлтгэх, вэб хуудсанд хэрхэн байршуулах
талаар сургалт зохион байгуулах.
3. E хичээлийн стандартад нийцсэн вэб сайт хийж гүйцэтгэх, тогтмол ажиллагааг
хангах, багш оюутанд суртчилах, түгээн дэлгэрүүлэх.
4. Төлөвлөсөн хугацаанд хийж гүйцэтгэх, тэнхим болон багш нарт хүлээлгэн өгөх.
1.3 Үүрэг, ач холбогдол
E яхичээл нь интернетийн орчин нөхцөл бүхий л газарт цагын хязгааргүй үнэ
төлбөргүйгээр хэмжээ хязгааргүй олон нийтэд асар хурдтай түгээж болдгоороо бусад
төрлийн хичээл заах арга технологиос эрс ялгардаг юм. Хамрах хүрээ нь зөвхөн
мэргэжлийн ангийн оюутан багш нар болон интернет хэрэглэх чадвартай хүн бүхэнд
нээлттэй төрөл бүрээр баяжуулан судлах бүрэн боломжтой байдаг нь орчин үеийн
залуусын шаардлагад бүрэн нийцэж байгаа билээ.
Хэрэглэч үйл ажиллагаа явуулхад хялбар ойлгомжтой байх үүрэгтэй.
Систем хэрэглэгчийн бодит амьдрал дээр хийгддэг үйлдлүүдийг
автоматжуулах.
Зардал хэмнэх.
o Цаг хугацаа
o Мөнгө
o Хүч хөдөлмөр гм.
Хэрэглэгчдэд үйл ажиллагаа явуулахад ойлгомжтой, хялбар, тааламжтай
нөхцөл бүрдүүлэх.
1.4 Бүлгийн дүгнэлт
Энэ бүлэг нь дипломын төслийн сэдэв болох I.LI354 хичээлийг Е сургалтанд
бэлтгэх дипломын төслийн хүрээнд хийж гүйцэтгэсэн вэб сайтын үүрэг ач холбогдол,
дипломын зорилтууд, сэдэв хэрэгжүүлэх болсон шаардлага зэрэг ерөнхий ойлголтыг
оруулан бичсэн болно.
ХОЁРДУГААР БҮЛЭГ
СУДАЛГАА
1. Програмыг хөгжүүлэх арга болон технологийн судалгаа
Аливаа төслийг хийж гүйцэтгэхэд ижил төстэй төслүүдийн судалгаа, хийх арга
технологи нь ажлын үр дүнд нөлөөлөх хамгийн гол хүчин зүйл нь болдог. Тиймээс энэхүү
дипломын төслийг хийж гүйцэтгэхэд нэн тэргүүнд тавигдах зүйл бол судалгаа буюу тэр
дундаа хэрэгжүүлэх арга юм. Ямар процесс загвар, арга технологи ашиглах нь
хөгжүүлэгчийн сонголт байдаг боловч өөрийн хөгжүүлж буй програм хангамж, ажлын
төлөвлөгөөндөө зориулж сонгох нь маш чухал. Програм хангамжийг хөгжүүлэх маш олон
процесс загвар байдаг ба тэр дундаа хамгийн өргөн тархсан процесс загвар нь хүрхрээ
загвар юм. Миний бие дипломын төслийн ажлыг хүрхрээ загвар ашиглан гүйцэтгэхээр
болсон. Учир нь дипломын төслийн төлөвлөгөөнд үе шат бүрийг хугацаанаас хамааруулан
гаргахдаа нэг үйл ажиллагааг бүрэн дууссаны дараа удирдагч багшдаа шалгуулан
дүгнүүлээд дараагийн үеийг хэрэгжүүлж байхаар гаргасан. Энэ нь хүрхрээ загварын үе
шат бүр асуудлаа сайн тодорхойлж бүрэн шийдвэрлэсний дараа, дараагийн үе рүү орох
зарчимтай тохирч байгаа юм.

2. Вэб сайт хийх арга
Вэб хуудас хийх олон арга технологи байдаг мөн олон тооны програмын хэл
байдаг үүнээс хамгийн түгээмэл аргыг авч үзье.

2.1 Хүрхрээ загвар
Програм хангамжийн хөгжүүлэлтийн маш олон процесс загварууд байдаг ба
тэдгээрээс хамгийн өргөн тархсан, түгээмэл загвар нь хүрхрээ загвар юм. Энэхүү загвар нь
дотроо хэд хэдэн үе шатуудад хуваагддаг. Нэг үе шат нь бүрэн дууссаны дараа дараагийн
үе рүү ордог ба нэгэнт гүйцэтгээд дууссан үе шат руу буцаж очдоггүй.
Хүрхрээ загвар нь дараахь үндсэн таван үе шатаас бүрддэг.
1. Шаардлага тодорхойлох
2. Зохиомж
3. Кодчлол
4. Нэгтгэх болон турших
5. Нэвтрүүлэлт болон сайжруулалт

Зураг 2.1 Хүрхрээ загвар
Хүрхрээ загвар өргөн тархсан, ойлгоход хялбар, сайн бүтэцлэгдсэн гэх мэт олон
давуу талууд байдаг боловч сул талууд бас байдаг.
Үүнд:
Шаардлага бүрэн дүүрэн тодорхойлогдсон гэж эхэн үед авч үздэг нь бодит
байдал дээр нийцдэггүй
Програмын ажиллах хувилбар нь хөгжүүлэлтийн төгсгөлд гардаг
Захиалагч хөгжүүлэлтийн эхэн үе буюу шаардлага тодорхойлход оролцдог
2.2 MySQL өгөгдлийн сангийн судалгаа
Диплом ангийн ажлийн бүртгэлийн систем нь өгөгдлийн сантай тул MySQL-ийг
ашиглах шаардлага гарсан.
MySQL өгөгдлийн сан нь түгээмэл тархсан өгөгдлийн сангуудын нэг бөгөөд тэр
дундаа вэб хөгжүүлэгчид өргөнөөр ашигладаг. Function, trigger, procedure ашиглах бүрэн
боломжтой ба GNU (General Public License) буюу нээлтэй эх юм. Өөрөөр хэлбэл хүссэн
хэн бүхэн хөгжүүлэлтэд оролцож, үнэгүй хэрэглэж болно. Windows, MacOS, Unix зэрэг
үйлдлийн системүүд дээр платформын хамааралгүйгээр ажиллаж, суурилуулахад хурдан,
хэрэглэхэд хялбар гэх мэт олон давуу талтай.
MySQL өгөгдлийн санг Ubuntu үйлдлийн систем дээр суулгах
Эхлээд Terminal нээнэ.
“sudo apt-get install mysql-server” гэсэн командыг ажиллуулж суулгана.
Суулгах явцад өгөгдлийн сангийн нууц үгийг асуухад нууц үг хийнэ.
“mysql -u root -p” гэсэн командыг ажиллуулж MySQL сервер лүү нэвтрэн
орно. Ингэхдээ суулгахад хийсэн нууц үгээ ашиглана.
PhpMyAdmin-ийг Ubuntu үйлдлийн систем дээр суулгах
PhpMyAdmin нь PHP дээр суурилан хийгдсэн, MySQL өгөгдлийн сангийн
сервертэй харьцан, удирдан ажиллахад маш хялбар болгодог веб интерфэйстэй програм
юм.
Эхлээд Terminal нээнэ.
“sudo apt-get install phpmyadmin” гэсэн командыг ажиллуулж суулгана.
“sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf”
гэсэн командыг ажиллуулж PhpMyAdmin-ий тохиргооны файлын богино
холбоосыг apache-ийн тохиргооны файлуудын дунд үүсгэнэ.
“sudo /etc/init.d/apache2 restart” гэсэн командыг ажиллуулж apache серверийг
дахин ажиллуулна.
http://localhost/phpmyadmin гэсэн холбоосоор PhpMyAdmin-ийг ажиллуулна.
2.3 “Symfony” PHP фреймворкийн судалгаа
Энэхүү системийг сүүлийн үед веб тохнологи хөгжүүлэлтэд нилээд өргөн
хүрээгээр

ашиглагдаж

байгаа

вэб

хөгжүүлэлтийн

фреймворк

болох

“Symfony”

фреймворкийг ашиглах хөгжүүлэх юм. “Symfony” фреймворк нь сүүлийн 9 жилийн
хугацаанд хөгжүүлэгдэж байгаа бөгөөд "php" хэл дээр бичигдсэн фреймворкууд дундаас
хамгийн өргөн хэрэглээтэй байгаа фреймворк юм.

“Symfony” framework-ийн түүх
“Symfony” framework нь 9 жил гаруй хөгжүүлж байгаа Нээлттэй Кодчлолын төсөл
бөгөөд одоогоор хамгийн их тархацтай РНР Framework-уудын нэг юм. “Symfony”
framework нь “Sensio Labs”-aac эрхлэн гаргадаг вэб хөгжүүлэхэд зориулагдсан нээлттэй
технологийн framework юм. “Sensio Labs”-ийг анх Фабейн Потенсейр (Fabien Potencier)
1998 онд үүсгэн байгуулсан юм. Фабейн Потенсейр анх (Perl) дээр вэб сайт хийж эхэлсэн
байна. Харин РНР 5 гарснаас хойш тэрээр санаагаа эрс өөрчлөн РНР рүу анхаарлаа
хандуулсан бөгөөд өөрийн харилцагчдад зориулж компанийх нь хөгжих гол хөшүүрэг
болсон РНР framework-ийг 2004 онд үүсгэн бий болгосон.
"Symfony" framework нь вэб програм хангамж хөгжүүлэгчдэд зориулан гаргасан
framework ба програмчлалын “php” хэл дээр бичигдсэн байдаг. “Symfony” фреймворк нь
програмын кодчилол болон цаг хугацааг багагүй хувьтайгаар хэмнэж байгаа юм. Энгийн
жишээг л хэлэхэд өмнө нь өгөгдлийн санд мэдээлэл хадгалахын тулд олон формуудын
кодыг бичин гараар үүсгэдэг байсан бол “Symfony” фреймворкийн ачаар ганц мөр кодоор
энэ бүх асуудлыг шийдэж болох юм. “Symfony” фреймворкийг хөгжүүлж эхлээд удаагүй
байгаа хэдий ч аль хэдийнээ вэб сайт хөгжүүлэгчдийн хувьд нэлээд дэлгэрээд байгаа
хүчирхэг технологи юм.
Одоогийн байдлаар “Symfony” framework-ийн албан ѐсний хамгийн сүүлчийн
хувилбар "Symfony 2.0" хувилбар энэ зунаас эхлэн туршилтын хувилбар ажиллагаанд
ороод байгаа юм. "Symfony 2.0"-ийн хувьд өмнөх хувилбарын дэвшилтэт давуу талыг
өөртөө шингээсэн ба дутагталтай талыг нь сайжруулан гарч ирж байгаа юм. Одоогийн
байдлаар "Symfony 2.0" туршилтын хувилбар байдлаар гараад байгаа хэдий ч өмнөх
хувилбараасаа бараг 20 хувь хурдтай ба кодыг бичиглэлийг мөн төдий чинээ багасгаж
чадаж байгаа юм.
“Symfony” framework-ийн хамгийн дэвшилтэт давуу тал нь вэб хөгжуулэлтийн
дэвшилтэт арга болох "MVC" зарчмаар ажилладаг юм. Ингэснээр код болон ажиллагааны
логик уялдааг илүү дөхөм болгож байгаа билээ.

“Sensio Labs”-н тухай
Синсео Лаб (Sensio Labs) бол Нээлттэй кодчиллын (Open-Souce) технологи ба
интернет маркетинг дээр тулгуурласан үйлчилгээ, зөвлөгөө өгдөг компани юм.
1998 онд Фабиен Потенсейр (Fabien Potencier), Грегори Паскал (Gregory Pascal),
Самуэл Потенсейр нарын санаачлагаар байгуулагдсан Сенсио компани нь 1990 оны
сүүлээр хүчээ аван интернетийн ертөнцөд бүрэн цогц вэб урлах үйл хэрэгт гол тоглогчийн
байрлалд аваачигдсан. Синсео нь ихэнх тоглогчид бизнесийн салбарт мэргэжлийн төгс
аргачлалыг нэвтрүүлэхэд project болгоныг дахин шинээр үүсгэх шаардлагатай хэмээн
бодож байсан тэрхүү интернетийн уналтаас ялгаран гарч чадсан.
Ихэнх Синсео-гийн хэрэглэгчид нь том хэмжээний корпораци-ууд байдаг ба
тэднийг шинийг санаачлах, цаг хугацааг маркетинг руу чиглэсэн бага хэмжээний төслөөс
дунд хэмжээний хүртэл өсөн хөгжихэд нь гол хүч нь болж өгсөн. Мөн цогц интернет
application-ы аудит хийх, зөвлөгөө өгөх, сургалтын чиглэлээр интернет суурилагдсан
үйлчилгээг үзүүлдэг. Синсео Лаб нь Францад болон гадаадын бусад орнуудад төсөл
хэрэгжүүлсэн туршлагатай компани юм.
Харин гол зүйл нь бол Синсео Лаб нь Symfony framework-ийг хөгжүүлдэг ба OpenSource project байхад нь ивээн тэтгэдэг. Энэ нь өөрөөр хэлбэл Symfony нь том
корпорацийн хэмжээний вэб application дээр ажилласан туршлаган дээр үндэслэгдэж
хөгждөг гэсэн үг. Хөгжиж ирсэн 11 жилийн өмнөөс, Синсео нь үргэлж мэргэшсэн
хүчирхэг стратеги барин хөгжин ирсэн. Нээлттэй кодчиллын (Open-Souce) технологи
болон dynamic scripting хэлүүдийг голчилдог Синсео нь бүх LAMP platforms-r дэмжин
ажилладаг. Синсео нь тэдгээрийг хэлүүдийг ашиглах framework-ийн маш сайн
туршлагатай ба ихэвчлэн Django, Rails мөн мэдээж Symfony дээр application хөгжүүлдэг.

“Symfony” framework-ийн хувилбар
Symfony 1.3 болон symfony 1.4 хоѐр хувилбар бараг нэгэн цагт (2009 оны сүүлээр)
гарсан. Үнэндээ хоѐулаа ижилхэн онцлог давуу талуудтай хийгдсэн. Хоѐр хувилбарын
ялгаа нь зөвхөн хэрхэн өмнөх хувилбаруудаа дэмжиж ажилладаг гэдгээрээ л ялгаатай
болно. Symfony 1.3 нь таны хуучин symfony-ий хувилбар (1.0, 1.1, or 1.2) ашиглаж хийсэн,
шинэчлэл хийгдэх шаардлагатай цогц хэмжээний төсөлдөө авч ашиглахад зориулагдан
гарсан. Энэ нь өмнөх хувилбаруудтайгаа зохицох давхаргатай ба 1.3 хөгжих явцад аль
хэдийнээ хэрэггүй болсон өмнөх хувилбарын онцлогуудыг өөртөө агуулдаг.
Symfony-ийн ажиллах зарчим
Зураг 2.2 Symfony MVC архитектур

Зураг 2.3 Symfony-ий ажиллах зарчим

Symfony нь MVC архитектуртай ба хэрэглэгчээс хүсэлт ирэхэд хэрэглэгчийн
хүсэлтэд харгалзах модуль дуудагдаж тухайн модулийн action эхэлж ажилладаг. Action нь
моделиудтай ажиллан үр дүнг өөрт харгалзах template илгээдэг. Template нь олон partial
болон component–ээс тогтдог ба үр дүн нь layout дээр ирэн response болдог.
Symfony нь config хавтсан дотор yml дээр тохиргоонуудаа хийдэг. Өгөгдлийн сан,
нууцлал болон cache буюу нөөцийн тохиргоонууд хийгддэг.

PHP тохиргоо
PHP тохиргоо нь үйлдлийн систем бүрд нэгээс нөгөөд өөр өөр байдаг учираас
Symfony-ийг хамгийн багадаа байж болох тохиргоо хийгдсэн эсэхийг шалгаж үзэх
хэрэгтэй.
Эхлээд, phpinfo() юмуу php –v коммандаар хамгийн багадаа “PHP 5.2.4” хувилбар
суугдсан эсэхийг шалгах хэрэгтэй. Вэб-д болон коммандад хоѐр өөр PHP хувилбар
суулгасан эсэхээ нягтлах шаардлагатай.
Дараах линк-ээр symfony-ийн тохиргооны скриптийг татаж авч болно.
http://sf-to.org/1.4/check.php
Скриптээ вэбийн root хэсгийн аль нэгэн хэсэгт нь хадгалан дараах коммандаар скриптийг
ажиллуулна..
$ php check_configuration.php
Хэрэв ямар нэгэн асуудал гарвал коммандаар гарах хариу нь хэрхэн, яаж засах
талаарх зөвлөгөөг өгнө. Мөн скриптийг Браузераас шалгаж засах боломжтой. Энэ нь
php.ini файл нь дээрх 2 орчинд өөр өөр ялгаатай тохиргоотой байж болдог учраас юм.
Шалгасныхаа дараа файлыг устгах шаардлагатай.

“Symfony” framework-ийг суулгах
"Symfony" framework-ийг суулгах дараах хэд хэдэн арга байдаг.
Архив файлаас суулгах
PHP pear ашиглан суулгах
Энэ дундаас хамгийн хялбар бөгөөд өргөн ашиглагддаг арга нь Шууд татан суулгах
арга юм. Энэ аргаар суулгахдаа интернэтэд зайлшгүй холбогдсон байх шаардлагатай ба
өөрийнх сайтаас "Symfony" framework-ийг татан өөрөө суулгадаг хамгийн хялбар арга юм.
Энэхүү аргыг "PEAR Package" гэж нэрлэдэг.
Нетээс татан суулгах "PEAR Package" аргыг ашиглахдаа эхлээд нетэд холбогдон
дараах кодыг ажиллүүлах шаардлагатай. Энэ код нь зөвхөн нетээс "Symfony" frameworkийг татан суулгах сувгийн бэлдэж байгаа юм.
$ pear channel-discover pear.symfony:project.com
Дээрх кодыг ажиллуулсны дараагаар "Symfony" framework-ийг татан суулгах үндсэн
ажиллагаа эхэлнэ.
$ pear install symfony/symfony-1.4.6
Уг код нь "Symfony''-ийг суулгах үндсэн код юм. Энэхүү код нетээс татан суулгадаг
тул нэлээд удаан хүлээх шаардлагатай.

“Symfony” framework болон өгөгдлийн бааз
"Symfony" framework нь томоохон хэмжээний хэд хэдэн өгөгдлийн баазтай
холбогдон ажиллаж чадвартай framework юм. Гэхдээ уг framework нь "php" хэл дээр
бичигдсэн учраас ихэвчлэн "MySql" өгөдлийн баазтай ажиллахад хялбар. Өгөгдлийн
сантай холболт үүсгэх үйл явц нь өмнө нь "php" хэл дээр бичдэг шиг "php" хуудас
болгоны дээр өгөдлийн сантай холбосон кодыг нэмэлтээр оруулж өгөх шаардлагагүй
болсноороо давуу юм. Учир нь уг хөгжүүлж байгаа төслийг өгөгдлийн сантай холбох
буюу "Symfony" төсөл дээр өгөгдлийн санг буулгалт хийх гэсэн ганцхан ажиллагаа л
шаардлагатай.
Өгөгдлийн сантай холбох буюу өгөгдлийн сангийн схемийг оруулж ирэх:
symfony doctrine:build-schema
symfony doctrine:build -all-classes
 symfony doctrine:build-schema
Энэхүү кодыг "Windows Command Processor" буюу "cmd" дээр өөрийн хөгжүүлж байгаа
төсөл дотор орон кодыг ажиллуулна өгнө. Дээрх кодын эхний мөр кодыг ажиллуулахад
"Symfony" тесөлд өгөгдлийн санг холбож өгөх уг төсөлд тухайн өгөгдлийн сангийн бүхий
л холбоо хамаарал зэргийг буулгалт хийж өгдөг. "Symfony" framework-ийн хувьд
өгөдлийн сантай ажиллахын тулд "Symfony''-ий өөрийнх комманд болох "doctrine" гэсэн
коммандын түлхүүр үгийн тусламжтайгаар холбогддог.
 symfony doctrine:build -all-classes
Энэхүү код нь "Symfony" төсөлд өгөгдлийн санг буулгалт хийсний дараагаар дээрх кодыг
ажиллуубал өөрийн төсөлд оруулж ирсэн өгөгдлийн сангаас шалтгаалан тухайн өгөгдлийн
сангийн хүснэгтүүдэд харгалзах modele, form, filter-үүд үүснэ. Энэ сайтын админ талд
харагдах ба үүний тусламжтайгаар өгөгдлийн санд мэдээлэл нэмэхэд шаардагдах форм
болон хайлт хийх талбайруудыг "Symfony" өөрөө үүсгэдэг юм.

“Symfony” framework-ийн түлхүүр ойлголтууд
Symfony фреймворкийн талаар суурь ойлголттой болохын тулд юун түрүүнд дараах
зүйлүүдийг таньж мэдсэн байх шаардлагатай. Үүнд:
Project
Application
Module
Form
Action
Layout
Template
Өгөгдлийн сан

“Symfony” төсөл үүсгэх:
Ингэхийн тулд өөрийн серверийн root директорд орсон байх шаадлагатай ба доор
кодыг ажиллуулна
symfony generate:project pro_name
Application үүсгэх:
“Symfony” төсөл ерөнхийдөө биеэ даасан Application-уудаас тогтох ба хэдэн ч
Application байж болно.
symfony generate: app applic_name
Module үүсгэх:
Application-нд модуль үүсгэдэг. Модуль үүсгэхдээ 2 төрлөөр үүсгэдэг. Үүнд энгийн
модуль үүсгэх, өгөгдлийн сангаас модуль үүсгэх гэж 2 төрөл байна.
symfony generate:module applic_name module_name
symfony doctrine:generate-module app_name new_mod_name lib_Doctrine_modelname

The MVC Architecture
Хэрэв

ямар

бол “HTML” хуудас

нэгэн framework ашиглахгүй “PHP” вэб
бүрт

нэг “PHP” файл

гэсэн

сайт

дүрмээр

хөгжүүлж

байсан

ажиллаж

байсан

байх. Тэдгээр “PHP” файлууд нь нэг ижил төрлийн бүтцийг агуулдаг: үүсгэх, ерөнхий
тохиргоо, хүсэлтийн хуудастай холбоотой бизнес логик, баазаас өгөгдөл цуглуулах мөн
эцэст хуудсыг үүсгэх “HTML” хуудас гэх зэрэг.
Магадгүй “HTML” хуудсаас template-ын логик-ыг тусд ашиглаж байсан байх. Мөн
баазын abstraction layer-ыг тусд нь бизнес логикоос нь ангид авч ашиглаж байсан байж ч
магадгүй. Гэсэн ч ихэвчлэн эмхтгэхэд нилээн төвөгтэй маш их кодтой л үлддэг байсан.
Хэдийгээр хийхэд нилээн хурдан боловч, хөгжүүлэх тусам өөрчлөлт хийхэд төвөгтэй
болж, бараг өөр хүн хэрхэн хийгдэж, ажиллаж байгааг бараг ойлгохгүй болдог.
Энэ бүх асуудлаас гарах сайхан шийдэл бас байна. Вэбийн хөгжилд өнөө үед
кодоо зохицуулах хамгийн түгээмэл шийдэл бол MVC загварчлалын хэв маяг юм.
Товчхондоо, MVC загварчлалын хэв маяг нь кодыг тань байх ѐстой зарчмых нь дагуу
зохицуулахыг тодорхойлдог. Энэ хэв маяг нь кодуудыг 3 давхаргад (layer) –т хуваан авч
үздэг.
o The Model давхарга бизнес логикийг тодорхойлдог (өгөгдлийн бааз мөн
энэ давхаргад хамаарна). Symfony бүх класс болон Model-той холбоотой
бүх файлууд lib/model/ хавтаст хадгалагдана.
o The View хэрэглэгч ямар зүйлтэй харицаж байгаа байдал(template engine энэ
давхаргын

нэг

хэсэгт

орно).

Symfony-д

голдуу View давхарга

нь PHP template-ээр үүсдэг. Тэд өөр өөр templates/ хавтасд хадгалагддаг.
o The Controller

бол

хэсгээс View давхарга
Symfony-ыг

суулгах

хэрэглэгчээс

хүссэн

руу дамжуулах Model-ыг
үед

өгөгдлийг Model

дуудах

багахан

код.

бүх хүсэлт front controller-р зохицуулагддаг

жишээтэй (index.php ба frontend_dev.php).
Эдгээр

контроллорууд

нь

яг

жинхэнэ

ажиллах

action-уудыг

Тэдгээр action-гууд логикоор module-уудад бүлэглэгдэн байрладаг.

төлөөлдөг.
Зураг 2.4 MVC Architecture

Хамгаалалт
Ерөнхийдөө generate:app task нь вэб-ын орчинд хамгийн их тархсан 2 төрлийн
аюулаас хамгаалагдсан байдаг. Symfony нь бидний өмнөөс автоматаар хамгаалалтыг
авдаг.
XSS дайралтаас хамгаалж гаралтын хамгаалалт (output escaping) идэвхждэг, CSRF
дайралтаас хамгаалж random хамгаалалт хийгддэг.
Мэдээж, дараах сонголтуудын ачаар өөрөө тохируулах боломжтой.
escaping-strategy: Идэвхжүүлэх эсвэл унтраах output escaping
csrf-secret: Формын session-ийн токенийг идэвхжүүлэх
Хэрэв

XSS

(http://en.wikipedia.org/wiki/Cross-site_scripting)

болон

CSRF

(http://en.wikipedia.org/wiki/CSRF) талаар мэдлэггүй бол, эдгээрийн талаар судлаж, олж
мэдэж болох юм.

Директори-ийн бүтцийн тохиргоо:
Шинээр үүсгэсэн төсөлдөө хандахаасаа өмнө вэб сервер нь хандаж өөрчлөх
боломжтой байх cache болон log директоруудын тохиромжитой түвшиний зөвшөөрөл
(permission)-г нь тавьж өгөх шаадлагатай.
$ chmod 777 cache/ log/
SCM хэрэглэгчдэд зориулсан зөвлөгөө:
Symfony зөвхөн тухайн төслийн cache/ болон log/ 2 л директорид бичигддэг. Энэ 2ын контент нь таны SCM-с ignore хийгдсэн байх шаардлагатай (хэрэв та Subversion
хэрэглэдэг бол тухайлбал svn:ignore гэж бичнэ).
Вэб серверийн тохиргоо
Энгийн арга:Хэрэв төслөө вэб root-ийнхээ аль нэг хэсэгт үүсгэсэн бол та аль
хэдийн браузераараа хандах боломжтой.
Мэдээж ингэсэн тохиолдолд ямар нэгэн тохиргоо байхгүй ба config/database.yml
файл руу браузераараа хандах боломжтой болох учираас хэр муу үр дагавар байгааг та
ойлгох бизээ. Хэрэв хэрэглэгч таны вэб сайт symfony дээр хийгдсэнийг мэдвэл, тэр таны
маш их чухал файлууд руу хандах боломжтой болно гэсэн үг.
Хэзээ ч жинхэнэ сервер дээр ингэж суулгаж болохгүй. Та дараагийн хэсгийн уншиж
хэрхэн вэб серверт тохируулж тохиргоог хийхийг сурна.
Сайн арга: Хамгийн сайн дадал бол зөвхөн вэб браузераар хандаж болох бүхий л
файлуудаа жишээ нь: javascript, stylesheets болон зурагнуудаа вэб root директори-тоо
байрлуулах арга юм. Defaul-аар нь зөвлөхөд symfony төслийнхөө web дэд директори
дотроо хадгалаарай.
Хэрэв та энэ директори руугаа орвол та вэб-ийн нэмэгдэл(css болон зурагнууд)
болон 2 төрлийн нүүрний удирдлагын файлуудыг (front controller) харна. Front controller
бол вэб директори дотор байрлах шаардлагатай зөвхөн php файл. Бусад бүх php файлууд
браузераар хандах боломжгүйгээр нуугдсан байна. Энэ нь хамгаалалтын хувьд нилээд
сайн болно.
Одоо Apache-ийн тохиргоог хаанаас ч хандах боломжтой болгох үүднээс өөрчилнө.
httpd.conf тохиргооны файлыг нээгээд доорх тохиргоог хамгийн доор нь нэмнэ.
# Be sure to only have this line once in your configuration
NameVirtualHost 127.0.0.1:8080
# This is the configuration for your project
Listen 127.0.0.1:8080
<VirtualHost 127.0.0.1:8080>
DocumentRoot “/home/sfprojects/jobeet/web”
DirectoryIndex index.php
<Directory “/home/sfprojects/jobeet/web”>
AllowOverride All
Allow from All
</Directory>
Alias /sf /home/sfprojects/jobeet/lib/vendor/symfony/data/web/sf
<Directory “/home/sfprojects/jobeet/lib/vendor/symfony/data/web/sf”>
AllowOverride All
Allow from All
</Directory>
</VirtualHost>

/sf alias, нь default symfony хуудас болон вэб засварын toolbar (Web Debug Toolbar)ын зураг болон javascript-ийн файлуудтай холбогдох замыг заадаг. Windows-д Alias
мөрийг дараах байдлаар өөрчилөх шаардлагатай.
Alias /sf “c:devsfprojectsjobeetlibvendorsymfonydatawebsf”
/home/sfprojects/jobeet/web гэсэн мөр нь мөн дараах байдлаар өөрчлөгдөнө.
c:devsfprojectsjobeetweb

Энэ тохиргоо нь Apache listen-ийг таны компютерт порт 8080 болгож, вэб сайт нь
дараах URL-аар холбогдоно.
(http://localhost:8080/)
Та 8080 гэснийг дурын дугаараар сольж болох ба админы зөвшөөрөл
шаардагддаггүй 1024-өөс дээш тоо байж болно.
Орчин- (Environment)
Хэрэв web/ директори-руу орж үзсэн бол index.php болон frontend_dev.php гэсэн 2
ширхэг php файл байгаа. Эдгээр файлуудыг front controllers гэж нэрлэдэг бөгөөд бүх
application руу хандсан хүсэлтүүд тэдгээрээр дамжиж явагддаг. Гэвч яагаад заавал 2 front
controller-уудтай байх хэрэгтэй гэж?
Хоѐулаа ижилхэн application-ыг зааж байгаа боловч өөр өөр орчинд зориулагдсан.
Хэрэв шууд серверын орчинг вэб хөгжүүлэгч л биш л бол танд хэд хэдэн орчинд ажиллах
шаардлагатай байдаг.
The development environment: Энэ орчин нь вэб хөгжүүлэгч нарт зориулагдсан
бөгөөд тест хийх, алдаа (bugs)-ын мэдээлэл зэрэг давуу талуудтай.
The test environment: Энэ орчин нь автоматаар application-г тест хийхэд
зориулагдсан.
The

staging

environment: Энэ

орчин

нь хэрэглэгч application-г

шалгахад

зориулагдсан.
The production environment: Энэ орчин нь эцсийн хэрэглэгчидэд зориулагдсан.
Юу нь орчинг онцгой, цорын ганц болгодог вэ? Тухайлбал хөгжүүлэлтийн орчин
(development environment) нь, application-нь алдааг хялбар засахын тулд хүсэлтүүдийн
нарийн мэдээллийн лог хийх шаардлагатайн. Харин өөрчлөлт орсон кодууд зөв ажиллаж
байгааг хянахын тулд cache систем идэвхгүй байх шаардлагатай. Тиймээс хөгжүүлэлтийн
орчин нь хөгжүүлэгчид зориулж хийгдсэн байх ѐстой. Хамгийн сайхан жишээ бол
exception гарч ирэх үе юм. Хөгжүүлэгчид алдааг маш хурдан олоход тусалж, symfony
браузер дээр сүүлийн хүсэлтүүдийг агуулсан бүх exception-г мэдээлэлтэй нь хамт
харуулдаг.
Харин Production environment орчины үед cache-ын давхарга идэвхижсэн байх
ѐстой байдаг ба мэдээж application бүх нарийн алдааны оронд ердийн алдааны мессежийг
харуулдаг. Тиймээс production environment орчин нь ажиллагаа болон хэрэглэгчдэд
зориулж сайжруулагддаг.
Хэрэв front controller файлуудыг нээвэл, контентууд нь хөгжүүлэх үеийн
(environment) тохиргооноос бусад нь ижилхэн байгааг олж харна.
// web/index.php
<?php
require_once(dirname(__FILE__).‟/../config/
ProjectConfiguration.class.php‟);
$configuration =
ProjectConfiguration::getApplicationConfiguration(„frontend‟, „prod‟,
false);
sfContext::createInstance($configuration)->dispatch();

Вэб debug toolbar нь мөн орчны хэрэглээний бас нэгэн онцлог жишээ бөгөөд зөвхөн
хөгжүүлэх үеийн орчингийн бүх хуудсанд харагдах бөгөөд tab бүрд өөр өөр маш олон
мэдээллийг агуулсан холболтыг харуулдаг. Тухайлбал тухайн үеийн application-ны
тохиргоо, хүсэлтүүдийн log-ууд, өгөгдлийн баазад хийгдсэн SQL хүсэлтүүд, санах ойн
мэдээлэл, хугацааны мэдээлэл зэрэг орно.
2.4 “Jquery” жаваскрипт сангийн судалгаа
JQuery бол HTML ба JavaScript–ийн хоорондох ажиллагааг зохицуулдаг, нээлтэй эх
бүхий JavaScript–ийн фреймворк юм.
JavaScript–ийн фреймворкгүйгээр Document Object Model (DOM)–д хандахдаа маш
олон мөр бичих шаардлагатай байсан бол jQuery–г ашигласнаар хүчирхэг бөгөөд үр
дүнтэйгээр Document–д хандаж чадах ба дараахь үйлдлүүдийг гүйцэтгэж чадна.
Үүнд:
Хуудасны харагдах байдлыг өөрчлөх (Css нь document–ийг хэрхэн харагдах
байдлыг тодорхойлдог арга юм. Гэвч зарим үед веб хөтчүүд ижил стандарт
хэрэглээгүй үед асуудалтай тулгардаг. jQuery нь ижил стандартуудыг хөтөч
хооронд холбож өгдөг гүүр болон ажилладаг. jQuery ашиглан css class–уудыг
өөрчлөн, харагдах байдлыг өөрчлөж чадна)
Хуудсны агуулгыг өөрчлөх (Ямар нэгэн өөрчлөлт хийхэд хязгаарлалт байхгүй.
Текст өөрчлөх, зураг нэмэх эсвэл солигдох, жагсаалтууд дахин дараалагдах эсвэл
бүх HTML файлын бүтэц дахин бичих ба өргөтгөх зэргийг зөвхөн ганцхан API
ашиглан хийх нь хялбар юм)
Хэрэглэгчийн үйлдэлд хуудаснаас хариу үзүүлэх (jQuery–ийн сан нь олон тооны
үйлдлийг барьж авах сайн аргатай, жишээ нь хэрэглэгч холбоос дээр дарах гэх
мэт)
Хуудсанд эффект нэмэх (Үр дүнтэй интерактив байдлыг бий болгохын тулд
дизайнер нь хэрэглэгчийг visual feedback-аар хангах хэрэгтэй байдаг. Энэ
шаардлагыг jQuery library эффектүүдийн массиваар хангаж өгдөг. Жишээ нь:
Fades ба Wipes, шинэ аргуудын toolkit шиг)
Хуудсыг дахин ачааллахгүйгээр мэдээллийг серверээс хүлээн авах (jQuery сан нь
процесоос хөтчийн тодорхой нарийн ажлыг салгадаг ба хөгжүүлэгчдэд Server–end
функцуудад төвлөрөх боломж олгодог)
JavaScript–ийн хийж болох даалгавруудыг хялбарчилдаг (jQuery нь JavaScript–ийн
бүхий л хийж чадах зүйлийг хялбар, илүү хялбараар хийх боломжоор хангаж
өгдөг)
2.5 UML технологийн судалгаа
Нэгдсэн загварчилгааны хэл буюу Unified Modeling Language(UML) нь програм
хангамжийн системүүдийг загварчлах тодруулбал програм хангамжийн системийн бүрдэл
хэсгүүдийг дүрслэх, тодорхойлох, байгуулах болон бичиг баримт үүсгэхэд зориулагдсан
график хэл юм.
UML загварын гол зорилгууд:
1. Хэрэглэгчдэд ашиглахад бэлэн, илэрхийлэгдсэн визуаль загварын хэлийг бэлтгэж
өгөх
2. Системийн гол ойлголтуудыг үзүүлэх мэргэшсэн механизмуудаар хангах
3. Тодорхой нэг програмчлалын хэл ба систем хөгжүүлэх процессоос бие даасан байх
4. Загварын хэлийг ойлгох албан ѐсны үндэс сууриар хангаж өгөх
5. Объект хандлагат хэрэгслийн борлуулалтын өсөлтийг урамшуулах
6. Collaboration, framework, pattern зэрэг систем хөгжүүлэх өндөр түвшний
ойлголтуудыг дэмжих
7. Шилдэг практик үйл ажиллагааг бүрэлдүүлэх
UML диаграмууд
Програмын шаардлагыг объект хандлагат загварчлалаар тодорхойлохын тулд тусдаа
боловч хоорондоо холбоотой , объект хандлагат 5 диаграмыг үндэс болгон ашиглана.
Ихэнх тохиолдолд, системийн шинжээч нь бизнесийн хэрэгцээ шаардлагын талаарх бүрэн
тодорхойлолт авахын тулд үндсэн 5 диаграмыг ашигладаг. Гэсэн хэдий ч, зарим
тохиолдолд шаардлагыг хангалттай тодорхойлохын тулд 3 эсвэл 4 диаграм нь л
ашиглагдах тохиолдол бас байдаг. Эдгээр 5 диаграмд:
-

Ажлын явцын диаграм (use case): Систем яаж ашиглагдах вэ гэдгийг тодорхойлох
зорилготой.

-

Класс диаграм: Зорилго нь шинэ системд хэрэгтэй объектуудыг тодорхойлох явдал
юм.

Класс

диаграмд

объектын

шинж

чанар,

төлөв

байдлууд

нь

бүгд

тодорхойлогдсон байх ѐстой. Ерөнхийдөө энгийн түвшний диаграм нь системийн
бүх классууд тэдгээрийн хоорондын уялдаа холбоог харуулахад ашиглагдана.
Хамтын ажиллагааны диаграм (collaboration): Ямар объект өгөгдсөн функцтэй
ажиллах вэ гэдгийг тодорхойлно. Энгийн хамтын ажиллагааны диаграм нь
функцийг гүйцэтгэхийн тулд объектууд тэдгээрийн харилцан хамаарал, тэдгээрийн
хооронд дамжигдаж буй мэдээллүүдийг дүрсэлнэ.
-

Дэс дарааллын диаграм (sequence): Хамтын ажиллагааны диаграм дээр дүрслэгдэх
мэдээллүүдийн өөр нэг дүрслэл юм. Гэхдээ бага зэрэг ялгаатай дүрслэгдэнэ.
Объектуудын хамтын ажиллагааг харуулахаасаа илүүтэйгээр тэдгээрийн хооронд
дамжигдах мессежүүдийн дарааллыг чухалчилж харуулна. Дараалал нь дээрээс
доош чиглэлд зурагдана. Дэс дарааллын диаграм болон хамтын ажиллагааны
диаграм нь нийлээд харилцан ажиллагааны(interaction) диаграмыг бүрдүүлнэ.
Төлөв байдлын диаграм (statechart): Объект бүрийн хувь дахь төлөв байдлуудыг
дүрслэнэ. Класс бүрд нь төлвийн диаграм зурагдана.
Хүрхрээ загвар
Програм хангамжийн хөгжүүлэлтийн маш олон процесс загваруудаас хүрхрээ загвар
ашиглан хийх вэб сайтанд байрших мэдээлэл Е хичээлийн стандартын хэлбэртэй
байна.
2.6 E хичээл гэж юу вэ?
Танхимын сургалт нь тогтсон хүгацаандаа нэг л удаа заадаг. Энэ нь удаан ойлгодог,
мөн янз бүрийн шалтгаанаар хичээлдээ сууж амжаагүй тохиолдолд тухайн хичээлийг
ойлгохгүй өнгөрөх нь бий. Тиймээс цахим сургалт нь танхимын учир дутагдалтай талыг
нөхөж хичээлийн агуулгыг гэр, сургууль дээрээсээ, компьютер болон гар утаснаасаа үзэх,
ин хичээлд оролцох, багш нар хичээл зохион явуулах таатай орчинг бүрдүүлсэн байдаг.
Миний дипломын ажлын хийх ѐстой зүйл бол энэ үйл ажиллагааг цахим хэлбэрт
оруулах юм. Ингэснээр бидний цаг хугацаа, хүч хөдөлмөр хэмнэгдэж интернетээр цахим
хэлбэрээр сургалт явуулах боломж бүрдэж байгаа юм. Тиймээс цахим сургалт нь
танхимын учир дутагдалтай талын нөхөж хичээлийн агуулгыг баяжуулан тал бүрээс
судлах гэр болон сургууль зуслан гээд интернетийн сүлжээ бүхий газраас хичээлийг
судлах ,оролцох даалгавар гүйцэтгэх зэрэг өргөн боломжит орчин нөхцөл бүхий
дэвшилтэт арга технологи билээ.
2.6.1

E хичээлийн давуу тал хамрах хүрээ

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

E хичээлийн стандарт
I.

Эхний хэсэг: /Лекц, семинар, лаборатори/
Сэдвийн нэр
Дэд сэдвийн нэр /байгаа тохиолдолд/
Түлхүүр үг, нэр томъѐоны тайлбар
Товч хураангуй /2-3 өгүүлбэрээр илэрхийлнэ/

Үндсэн хэсэг: /Лекц, Семинар, Лаборатори/
8-10хуудас /А4 формат,мөр хоорондын зай 1/
Лекцээ хураангуйлсан дуу оруулах
Аудио, видео бичлэг
Animation оруулах /Ж: Тоног төхөөрөмжийн эд анги, томъѐоны гаргалгаа, график/
Ашиглах материал:
Үндсэн сурах бичиг / Хуудасны дугаар /Вэб хуудас, холбогдож болох
линкууд
Нэмэлт материалуудыг татаж авах байдлаар тавих/ Лекцийн
материалаа өөрөөр баяжуулсан байх /
Төгсгөлийн хэсэг:
15-30 Тестийн асуулт, хариултын хамт / Лекц тус бүрт эсвэл бүлэг бүрт байх /
Ганцаарчилан болон багаар гүйцэтгэх бие даалтын ажлын даалгавар, заавар
Е хичээл техникийн шаардлага:
1. Фонд ижил /Unicode буюу стандарт фонд ашиглах/
2. Үсгийн хэмжээ 14-18-ийн хооронд, ижил уншихад гаргацтай
3. Текстээ зураг хэлбэрээр биш
4. Нэг TAB дээр дуудагдах /Лекц, семинар, текст гэх мэт/
5. Сорил, тестнээс буцах товч байх /нүүр хуудасруу/
6. Зураг оруулахдаа чанартай байх /300dpi /

E-хичээлийг хэрхэн судалж үзэх талаар оюутанд хүргэх зөвлөмж, санамжийг

II.

боловсруулах.
Е-Хичээлийн материалыг электрон хэлбэрээр хүлээлгэж өгөхдөө эмх цэгцтэй,

III.

ерөнхий дуудагдах хуудсыг ил гарган (жич: index.html хэлбэрээр нэрлэнэ), лекц
семинар тестүүдийг тус тусад нь фолдерт хийсэн байхмөн source файл
хавсаргасан байна.
2.7 Бүлгийн дүгнэлт
Дипломын төслийн судалгааны үе шатад процесс загваруудын мэдлэгээ сэргээн
хүрхрээ

загварыг

сонгон

ажиллах

болсон

ба

сэдэвтэй

холбоотой

ашиглагдах

технологиудыг судалж, Ubuntu үйлдлийн систем дээр MySQL болон Symfony
фреймворкийг суулгаж, туршиж үзсэн.
Гуравдугаар бүлэг:
ВЭБ САЙТЫН АГУУЛГА, ЗАГВАР, ҮНДСЭН БҮТЭЦ
Энэ бүлэгт системийн харагдах байдал болон дотоод цэснүүдийн байрлал, задаргаа
онцлог булангуудын харагдах байдал түүний бүтэц ашиглах зааврын талаар ойлголттой
болно.

3.1 E хичээлийн стандартын нийцэл
E хичээлийг бэлтгэхдээ өнгөний сонголт хүний нүдэнд ядаргаа үүсгэхгүй байх,
сонирхол төрөлхүйц, мөн Flash ашигласан байх, хөдөлгөөн дуу дүрс агуулсан, байх
нэмэлт материал хавсаргасан байх, Online сорил агуулсан байх зэрэг шаардлагууд нь уг
сайтад багтсан байгаа билээ.
нүүр хуудас нь цөөн тооны зөвхөн хэрэгцээт цэсээр дүүрэн байх ба мэдээ мэдээлэл хэсэгт
хамгийн сүүлд нэмэгдэж орсон бүх төрлийн мэдээ жагсаалт хэлбэрээр харагдах юм. Е
хичээл цонхонд видѐо болон зураг дуу дүрс flash хичээлүүд байрших юм.

Вэб сайтын зорилго чиглэл
Вэб сайтын нэр automatic.mn Автомат систем гэсэн утгатай, автомат гэсэн үндсээс
гарсан латин үг юм. Уг сайт нь үйлдвэрлэлийн технологи дизайны сургуулийн хөнгөн
үйлдвэр машин судлал хэвлэлийн технологийн багийн сайт болж байнгын ажиллагаатай E
хичээл байрлуулах болон бэлтгэхэд зориулагдан гарсан тэнхимийн анхны тогтмол
ажиллагаатай албан ѐсны эрхтэй онцлог вэб хуудас юм. Вэб хуудсыг мэргэжлийн ангийн
XVA ,XYMMT I.LI кодтой оюутнуудад зориулагдсан бөгөөд эдгээр оюутнууд тусгай
түлхүүр үгээр бүртгүүлэх лекц, семинар, лабораторийг тухайн долоо хоногт үзэж судлах,
ирцээ бүртгүүлэх хичээл уншиж судлах, дэлгэрүүлэх ижил төстэй хичээл арга
технологитой харьцуулах дэлгэрүүлэх болон онлайн хэлбэрээр тест өгөх байдлаар уг
сайтад зочлож хэрэгцээт мэдээллээ авхад сайтын үндсэн зорилго оршино.
Агуулга
Автоматик сайтын зорилго нь E хичээл бэлтгэх, нийтэд түгээх, E хичээлийн чанарт
хяналт явуулах гэсэн цөөн тооны чухал зорилгоор бүтээгдсэн бөгөөд хэрэглэгчид аль
болох элдэв маяг чимэггүй үндсэн зорилго руу чиглэсэн хурд багатай сүлжээнд түргэн
ачаалагдах байдлаар энгийн байхаар хийгдсэн. Энэ нь бусад төрлийн хувийн болон
тэнхимийн вэб сайтуудаас ялгарах гол онцлог юм. Уг сайтад I.LI354, I.LI311, I.LI392,
I.LI395 хичээлийн лекц, семинар, лаборатори болон баяжуулж хөгжүүлсэн хувилбар видео
болох зурган хэлбэрээр агуулагдах бөгөөд эндээс оюутнууд өөрсдийн хайж эрсэн
мэдээллээ авах бөгөөд нэмэлт мэдээлэл болон мэдлэгээ дээшлүүлэх талаар хичээлийг
нийтэлж гаргасан багш болон админд хүсэлт илгээх замаар холбоо барьж нэмэлт мэдээлэл
авах боломжтой байгаа нь давуу тал болж байгаа билээ.
Энэ зураг дээр гаднах цэсний байрлал болон дотоод задаргаа тодорхой харагдаж байна.

3.2 Вэб сайтын хайлтын хэсэг
Automatic.mn сайт бол өдөр бүр мэдээлэл шинэчлэгдэж хуучин мэдээлэл
архивлагдан хураангуй болох зарчмаар ажилдаг байхаар бодож төлөвлөсөн билээ.
Тиймээс хуучин мэдээлэл архиваас хайж олох шаардлага гардаг үүнийг хайлтын систем
төгс гүйцэтгэнэ. Гагцхүү зөв үгийг сонгох ѐстой.

3.3 Бүртгэл болон нэвтрэх хэсэг
Бүртгэх хэсэгт түлхүүр үг ашиглан бүртгүүлснээр нэвтрэх эрх авч нийтлэгдсэн
хичээл болон бусад мэдээлэлтэй чөлөөтэй танилцах судлах боломж бүрдэнэ. Зайлшгүй
түлхүүр үг хэрэглэх шаардлага нь сайтыг хөтлөн явуулах aдмин болон багшид бүртгэлтэй
хүмүүсийн мэдээлэлтэй танилцах хяналт явуулахад амар хялбар байх ба цаашлаад онлайн
хичээлийн ирц бүртгэлийн програм зохиоход дөхөм болж өгнө.

3.4 Багийн гишүүд болон багш нарын оролцоо
Тэнхимийн гишүүд болон багш нар нь оюутан болон энгийн зочидоос давуу эрхтэй
байх бөгөөд уг хуудсыг хөтлөн явуулах , хяналт тавих алдаа дутагдлын засаж байнгын
тогтмол ажиллагаа хангах үүрэгтэй.
3.5 Admin -тай холбоо тогтоох
Сайтын үндсэн admin болох Б.Энмандах миний байнгын холбоо тогтоох facebook
хаяг бүхий шууд холбоос , мөн тэнхимийн багш Д.Пүрэвмагнай facebook шууд холбоос
ШУТИС -ийн интернет хаяг ҮТДС- ийн шууд хаяг Е -open school -ийн интернет
хаяг болон багшийн вэб , оюутны вэб хаягтай шууд холбогдох замуудыг зааж өгнөсөөр
хэрэглэгч дурын аргаар багш болон admin- тай холбогдож нэмэлт мэдээлэл хугацаа
өнгөрсөн хичээл дахин судлах эрх авах зэрэг үйлдэл хийх боломжтой.

3.6 E хичээл бэлтгэх, байршуулах, засварлах, нийтлэх зааварчилгаа
Automatic.mn сайтын удирдах дэлгэц нь монгол хэлээр ойлгоход хялбар цөөн
тооны цэстэй. Мэдээ нийтлэх болон Е хичээл бэлтгэх зааврийн дагуу бэлтгэж сайтанд
оруулах ба сайтанд оруулахад дараах зүйлсийг анхаарна.
Үүнд
1. Текст мэдээ оруулахдаа тусгай үгийн фонд ашиглах тохиромжгүй тул түгээмэл
фонд ашиглана. Тусгай фонд ашиглах тохиолдолд unicode converter буюу
хөрвүүлэгч програм ашиглана.
2. Том хэмжээний зураг оруулах үед зургийг таслаж хэрэгтэй хэсгийг тасдаж авах.
3. Дүрс болох дуут мэдээлэл байршуулах тохиолдолд интернет рүү хуулж оруулсан
байх embed code ашиглах харуулах зэрэг ойлголтууд мэддэг эзэмшсэн байх
шаардлагатай.
3.7 E хичээлийн байрших хугацаа, хязгаарлалтыг шийдвэрлэх арга замууд
Байрших хугацааг хязгаарлах олон арга зам байдаг байна. Үүний заримтай
танилцая
1. Мэдээ оруулсан цагаас эхлэн хугацаа тоолох. Энэ 168 цаг тоолоод тухайн мэдээлэл
уншигдахгүй болж архивлагдах
2. Мэдээ байршуулаад дууссах өдөр цаг минутын нарийвчлан зааж өгөх
3. Admin болон мэдээг нийтэлсэн багш мэдээг засварлах, архивлах, устгах
4. Нийтэлсэн мэдээлэлд зочдын хандалтаар зааж өгөх, энэ арга нийт хэдэн удаа мэдээ
унших тоог анрийвчлан зааж өгөх явдал юм
3.8 Бүлгийн дүгнэлт
Тус бүлэгт www.Automatic.mn сайтын ерөнхий гадаад үзэмж харагдах байдал
цэснүүдийн байрлал, доторхи задаргаа , бүртгэл болон admin -тай холбоо тогтоох шууд
холболт , Е хичээл байршуулах зэрэг чухал ойлголтуудыг авч үзлээ.
Дөрөвдүгээр бүлэг:
ХЭРЭГЛЭГЧИЙН ШААРДЛАГА
Энэ бүлэгт системийн эцсийн хэрэглэгчдийг тодорхойлсон болно. Ингэснээр
I.LI354 хичээлийг Е сургалтанд бэлтгэх дипломын талаар улам гүнзгий ойлголттой болох
юм.
4.1 Системийн ерөнхий ойлголт
Энэ вэб системийг их дээд сургуулийн багш тэнхимийн гишүүд болон оюутанууд
ашиглах юм. Е сургалтанд бэлтгэх дипломын ажлаар дараах үйлдлүүд хийгдэнэ. Сайтад Е
хичээл хугацааны хязгаартай байршина. Үүнийг системийн админ буюу багш Е хичээл
болгон бэлтгэж оруулна. Энэ нь зөвхөн мэргэжлийн ангийн сайтад бүртгэлтэй оюутнуудад
харагдах юм. Оюутан хичээлийг уншиж судлаад Е хичээлийн стандартын дагуу цахим
хэлбэрээр шалгуур бөглөнө. (Online testing) гарсан үр дүнг системийн админд болон
багшид мэдээлж байхаар вэб сайт хийгдсэн. Мэргэжлийн ангийн сайтад бүртгэлтэй
оюутан сайтад нэвтэрч ороод мэдээлэл судалхад зарцуулсан хугацааг (Counter) тоолуур
тоолж дуусаад гарсан үр дүнг системийн админд болон багшид мэдээлэл илгээх юм. Энэ
үйл явц нь системийн админд болон багшид сайтыг удирдах, хяналт тогтоох, тогтвортой
ажилгааг хангахад чухал үүрэгтэй.
4.2 Хэрэглэгчийн онцлог
Системд ерөнхийдөө хэрэглэгчийн шаардлагаас хамааран 3 төрлийн хэрэглэгчтэй байна.
Үүнд:
Бүртгэлгүй хэрэглэгч
Бүртгэлтэй хэрэглэгч
Системийн админ зэрэг юм.
Бүртгэлгүй хэрэглэгч:
Системд бүртгэлгүй хэрэглэгчийн хувьд системээс зөвхөн ерөнхий мэдээлэл авах
Админтай холбоо тогтоож бүртгэлтэй хэрэглэгч болох хүсэлт гаргах эрхтэй.
Бүртгэлтэй хэрэглэгч:
Бүртгэлтэй хэрэглэгч хийх үйлдлээсээ хамааран хоорондоо ялгаатай байна.
Үүнд:
Багш
Багш нь өөрийн эрхээр системд нэвтрэн орсоноор Е хичээл оруулах,өөрийн
хичээлийг шинэчлэх, шаардлагатай гэж үзвэл засварлах, устгах зэрэг үйлдлүүдийг
гүйцэтгэнэ. Оюутнуудын асуусан сэдвүүдэд хяналт тавих хичээлд өөрчлөлт
оруулах болон нэмэлт хичээл, үүрэг даалгавар өгөх зэрэг үйлдлүүдийг гүйцэтгэнэ.
Мөн хүсэлт гаргасан хэрэглэгчийг сонгон бүртгэлтэй хэрэглэгч болгох. Сайтын
үндсэн бүтэц харагдах интерфэйсийг, агуулгыг өөрчлөх зэрэг үйлдлүүдийг
гүйцэтгэх эрхтэй байна.
Оюутан
Системд бүртгэлтэй бөгөөд өөрийн нэвтрэх нэр, нууц үгээр нэвтэрч орсноор
хичээлийн талаар санал сэдэл дэвшүүлэх болон дипломын сэдвүүдээс
сонголт хийх,сэдвүүдийн дэлгэрэнгүй мэдээлэл харах боломжтой.
Системийн админ:
Админ нь системийг ерөнхийд нь удирдан зохицуулах ба нийт системийн
хэрэглэгчдэд хяналт тавина. Мөн хүсэлт гаргасан бүртгэлгүй хэрэглэгчдэд хяналт тавих
шаардлагатай гэсэн хэрэглэгчийг бүртгэж авах оруулах мөн сэдэв батлах системийн
хэрэглэгчдэд хязгаарлалт тавих зэрэг давуу эрхтэй байна. Мөн системийн админ нь
оюутан болон багшын оруулсан сэдвүүдэд хяналт тавин шаардлага хангаагүй буюу өөр
утга агуулга бүхий сэдвүүдийг хэрэглэгчдэд харуулахгүй байх боломжтой. Үүний тулд
тухайн мэдээг нийтлэгдээгүй гэсэн холбоосыг дарсанаар тухайн нийтлэл хэрэглэгчдэд
харагдахгүй.

Бүтээгдэхүүний эцсийн хэрэглэгчид
Дээр тодорхойлсон системийн ерөнхий шаардлагаас системд хандах эрхтэй дараах
хэрэглэгчдийг тодорхойлсон. Үүнд:
 Админ:
 Багш
 Оюутан
Системийн админ доорх үйлдлүүдийг гүйцэтгэнэ.
 Багш болон оюутан, энгийн хэрэглэгчдэд хяналт явуулах
 Тэнхимээс зохиогдох арга хэмжээ, зарлалын чанартай мэдээг түгээж байх
 Нийтэлсэн мэдээг хэрэглэгчдэд харуулах
 Архивлагдсан болон хуучирсан мэдээг шинэчлэн оруулах
Багш доорх үйлдүүдийг гүйцэтгэнэ.
 Оюутнуудын бүртгэлийн сан үүсгэх
 Хичээл болон дипломын сэдэв оруулах
 Өөрийн оруулсан хичээлийн агуулгыг өөрчлөх
 Өөрийн оруулсан хичээлийг устгах
 Өөрийн оруулсан хичээлийн хугацааг сунгах
 Мэдээлэл судлах оюутанг зөвшөөрөх
 Мэдээлэл судлах оюутанг хасах
 Оюутны хичээл судлах чадварыг дүгнэх
 Хайлт хийх нэмэлт даалгавар өгөх
Оюутан доорх үйлдлүүдийг гүйцэтгэнэ.
 Бүртгэл үүсгэх
 Е хичээл болон бусад агуулгатай танилцах судлах,оролцох
 Хичээл болон дипломын сэдэв дэвшүүлэх
 Сайт болон Е хичээлийн талаар бусдад түгээн дэлгэрүүлэх
 Админ болон Е хичээл эрхлэн оруулсан багштай байнгын холбоо тогтоох гэсэн
байдлаар байнгын холбоо хамааралтай хамтын ажилгаатай явагдана.
Системийн оролцогчид болох оюутан, багш, системийн админ хоорондын
хамааралыг илэрхийлсэн зураг.
4.3 Automatic.mn нүүр хуудасны ерөнхий харагдах байдал
Ерөнхий бүтэцийг блок схемээр харуулсан загвар.

1. Нүүр хуудсаас тэнхим буланд байрлах агуулгатай шууд холболтоор холбогдоно.
2. Эхлэл хуудаснаас мэдээлэл болон бусад туслах цэсрүү шууд холболтоор
холбогдоно.
3. Лекц буланд оруулсан хичээл нүүр хуудсанд давхар харагдах байдлаар хийгдсэн.
энэ нь гэдрэг холболтоор холбогдоно.
4. Хичээл цэсэнд оруулсан мэдээлэл нүүр хуудсанд давхар харагдах ба сүүлд шинээр
орсон байдлаар харагдхаар хийгдсэн. энэ нь гэдрэг холболтоор холбогдоно.
5. Диплом цэстэй шууд аргаар холбогдох ба диплом буланд орсон мэдээлэл түүний
дэлгэрүүлсэн хувилбарыг холбоо барих булангаас админтай холболгдох замаар
нэмэлт мэдээлэл авах байдлаар ашиглана
6. Програм нь цэс нь нүүр хуудастай шууд холболтоор холбогдох ба шинээр орсон
file нүүр хуудсанд харагдахгүйгээр байрлах юм.
7. Лекц доторхи мэдээллийг зочин уншаад дэлгэрүүлэх болон асууж зөвлөх хэрэгцээ
шаардлага гарсан үед холбоо барих цэснээс админтай холбогдож нэмэлт мэдээлэл
авах байдлаар хичээлийг уншиж судлана, энэ нь гэдрэг холболт болно
8. Хичээл цэсэнд нийтлэгдэх мэдээг админтай холбоо тогтоох нэмэлт материал авч
судлах байдлаар мэдээг уншиж судлана. Энэ нь мөн гэдрэг холболт болно
9. Диплом цэсэнд орсон дипломын сэдвүүд болон өмнөх жилийн оюутнууд нь сэдвээр
авч хамгаалж байсан мэдээллийн талаар санал солилцох асууж лавлах хэрэгцээ
шаардлагыг холбоо барих цэснээс админтай холбоо тогтоон гүйцэтгэнэ. Энэ нь мөн
л гэдрэг холболт болно
10. Програм буланд орсон шинэ програм суулгах заавар зөвөлгөө шинэчлэх хувилбар
мөн өөр нэр төрлийн програт ашиглах зааврыг админтай холбоо барих хэсгээс авна.
Энэ нь гэдрэг холболт болно

4.4 Automatic.mn вэб сайтын нүүр хуудас кодчилолын түвшинд дараах
байдалтай бичигдэнэ.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link rel="shortcut icon" href="/images/favicon.ico" />
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.css" />
<script type="text/javascript" src="/js/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="/js/jquery.cycle.all.js"></script>
<script type="text/javascript" src="/js/global.js"></script>
</head>
<body>
<div id="section-head" class="clearfix">
<div class="encapsulate">
<div id="util">
<ul id="top-menu">
<li><a href="/user/login">Нэвтрэх</a></li>
<li class="contact"><a href="/user/new">Бүртгүүлэх</a></li>
</ul>
</div>
<div id="logo"><img src="/images/logo.png" /></div>
<div id="search-box">
<div class="search-box-wrap">
<form>
<input type="text" class="search" />
<a href="#" class="search-button"><em>Search</em></a>
</form>
</div>
</div>
</div>
<div id="nav-primary">
<ul>
<li><a href="/" >ЭХЛЭЛ</a></li>
<li>
<a href="/page/introduction" >ТЭНХИМ</a>
<div class="dropdown">
<a href="/page/introduction">Танилцуулга</a>
<a href="/page/vision">Зорилго</a>
<a href="/page/about">Бидний тухай</a>
</div>
</li>
<li>
<a href="/news/news">Мэдээ</a>
<div class="dropdown">
<a href="/news/information">Мэдээ мэдээлэл</a>
<a href="/news/video">Видео</a>
<a href="/news/competition">Уралдаан тэмцээн</a>
<a href="/news/picture">Зургийн цомог</a>
</div>
</li>
<li>
<a href="/news/lecture">Лекц</a>
<div class="dropdown">
<a href="/news/1week">I-р 7 хоног</a>
<a href="/news/2week">II-р 7 хоног</a>
<a href="/news/3week">III-р 7 хоног</a>
<a href="/news/4week">IV-р 7 хоног</a>
<a href="/news/5week">V-р 7 хоног</a>
<a href="/news/6week">VI-р 7 хоног</a>
<a href="/news/7week">VII-р 7 хоног</a>
</div>
</li>
<li>
<a href="/news/lesson">Хичээл</a>
<div class="dropdown">
<a href="/news/ili354">I.LI 354</a>
<a href="/news/ili311">I.LI 311</a>
<a href="/news/ili392">I.LI 392</a>
<a href="/news/ili395">I.LI 395</a>
</div>
</li>
<li>
<a href="/news/diplom">Диплом</a>
<div class="dropdown">
</div>
</li>
<li>
<a href="/news/program">Програм</a>
<div class="dropdown">
</div>
</li>
<li><a href="/page/contactus" >ХОЛБОО БАРИХ</a></li>
</ul>
</div>
</div>
<div id="main-content">
<div id="main" class="hastLeftColumn clearfix">
<div id="leftColumn">
<h1>Мэдээ</h1>
<ul class="left-menu">
<li >
<a href="/news/information">Мэдээ мэдээлэл</a>
</li>
<li >
<a href="/news/video">Видео</a>
</li>
<li >
<a href="/news/competition">Уралдаан тэмцээн</a>
</li>
<li >
<a href="/news/picture">Зургийн цомог</a>
</li>
</ul>
</div>
<div id="bodyColumn">
<div class="news_item">
<img width="200px" class="imgleft" src="/uploads/photo/201311/216/5291bbcd8d861.jpg">
<h3><a href="/news/show/id/230">Дурсамж</a></h3>
<p>
ХҮА-07 </p>
<div class="clear infobar">
<div style="padding: 5px 0 0 5px;" class="left">
Нийтэлсэн:2013-11-24 16:41 <span style="color:red;">
</span>
</div>
<div class="right readmore">
<a href="/news/show/id/230">Дэлгэрэнгүй</a>
</div>
<div class="right sharebutton">
</div>
<div class="clear">
</div>
</div>
</div>
<div class="news_item">
<img width="200px" class="imgleft" src="/uploads/photo/201311/216/527ce4f9c46e5.jpg">
<h3><a href="/news/show/id/214">AUTOMATION Groupees avsan zurguud</a></h3>
<p>
автоматжуулалт түүх
</p>
<div class="clear infobar">
<div style="padding: 5px 0 0 5px;" class="left">
Нийтэлсэн:2013-11-08 21:18 <span style="color:red;">
</span>
</div>
<div class="right readmore">
<a href="/news/show/id/214">Дэлгэрэнгүй</a>
</div>
<div class="right sharebutton">
</div>
<div class="clear">
</div>
</div>
</div>
</div>
</div>
</div> <br/>
<div id="footer">
<div id="footer-wrapper">
<div id="footer-top" class="clearfix">
<div class="copy">
Copyright © 2013. I.LI354 хичээлийг Е сургалтанд бэлтгэх дипломын төслийн хүрээнд хийж гүйцэтгэв.
</div>
<ul class="social-links">
<li class="facebook"><a href="#"><em></em></a></li>
<li class="twitter"><a href="#"><em></em></a></li>
<li class="linkedin"><a href="#"><em></em></a></li>
<li class="google"><a href="#"><em></em></a></li>
<li class="rss"><a href="#"><em></em></a></li>
<li class="email"><a href="#"><em></em></a></li>
</ul>
</div>
<div id="footer-bottom" class="clearfix">
<div class="our-address">
Монгол улс Сүхбаатар дүүрэг Бага тойруу <br/> Шинжлэх ухаан технологийн их сургууль <br/> Үйлвэрлэл
технологи дизайны сургууль
</div>
<div class="our-phones">
+ 976 96638295<br />
+ 976 99909728
</div>
</div>
</div>
</div>
</body>
</html>

4.3 Мэдээ булан кодчилолын түвшинд дараах байдалтай бичигдэнэ.
<?php use_helper('Global')?>
<div id="main-content">
<div id="main" class="hastLeftColumn clearfix">
<div id="leftColumn">
<h1><?php if($category_s) echo $category_s->getName()?></h1>
<ul class="left-menu">
<?php foreach($categories as $cats):?>
<li >
<a href="<?php echo url_for('news/index?enname='.$cats>getEnname())?>"><?php echo $cats->getName()?></a>
<?php if($category_s) : if($category_s->getId()==3||$category_s>getParentId()):?>
<ul class="sub-rigth-menu">
<li><a href="<?php echo url_for('news/index?enname='.$cats>getEnname().'&type=5')?>">Семинари</a></li>
<li><a href="<?php echo url_for('news/index?enname='.$cats>getEnname().'&type=6')?>">Лаборатори</a></li>
</ul>
<?php endif?><?php endif?>
</li>
<?php endforeach?>
</ul>
</div>
<div id="bodyColumn">
<?php foreach($newss as $news):?>
<div class="news_item">
<?php if($news->getType()==1): ?>
<img width="200px" class="imgleft"
src="/uploads/photo/<?php echo date("Ym", strtotime($news->getCreatedAt())) ?>/216/<?php echo $news>getImageOriginal() ?>">
<?php else:?>
<img width="200px" class="imgleft" src="/uploads/post/<?php echo
date("Ym", strtotime($news->getCreatedAt())) ?>/420/<?php echo $news->getImageOriginal() ?>">
<?php endif?>
<h3><a href="<?php echo url_for('news/show?id='.$news->getId())?>"><?php echo $news>getTitle()?></a></h3>
<p>
<?php echo $news->getDescription()?>
</p>
<div class="clear infobar">
<div style="padding: 5px 0 0 5px;" class="left">
Нийтэлсэн:<?php echo time_ago($news->getCreatedAt())?>
<span style="color:red;">
<?php
if($category_s->getId()>52||$category_s>getId()==3||$category_s->getId()==2){
echo date('d',strtotime($news->getPublishedAt())strtotime(date('Y-m-d H:i:s'))); echo "- хоног үлдлээ";
}
?></span>
</div>
<div class="right readmore">
<a href="<?php echo url_for('news/show?id='.$news->getId())?>">Дэлгэрэнгүй</a>
</div>
<div class="right sharebutton">
</div>
<div class="clear">
</div>
</div>
</div>
<?php endforeach;?>
</div>
</div>
</div>

Бүртгэл болон нэвтрэх хэсэг кодчилолын түвшинд дараах байдалтай бичигдэнэ.
Хэрэглэгч болон бүртгэлгүй хэрэглэгчийн ялгааг харуулсан зураг.
<?php use_helper('Global');
$types = UserTable::getTypes(); ?>
<div id="main-content">
<div id="main" class="hastLeftColumn clearfix">
<div id="leftColumn">
<h1>Хэрэглэгч</h1>
<ul class="left-menu">
<li class="active"><a href="<?php echo url_for('user/login')?>">Нэвтрэх</a></li>
<li><a href="<?php echo url_for('user/new')?>">Нууц үгээ мартсан</a></li>
</ul>
</div>
<div id="bodyColumn">
<h1>Нэвтрэх</h1>
<form action="<?php echo url_for("user/login")?>" method="POST">
<table>
<?php echo $form ?>
<tr>
<td></td>
<td><input type="submit" name="smt_signin" value="Нэвтрэх »"
class="btnBlue"></td>
</tr>
</table>
</form
</div>
</div>
</div>

Admin -тай холбоо тогтоох булан кодчилолын түвшинд дараах байдалтай бичигдэнэ.

<div id="main-content">
<div id="recentUpdates" class="clearfix">
<div class="col1" style="width:1032px">
<div id="recent-products" class="product-list box">
<div class="item lecture">
<div class="wrap">
<h3><a href="#"><?php echo $page->getName()?></a></h3>
<div style="padding: 10px;">
<?php if($page) echo $page->getBody();?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
4.4 E хичээлийн байрших хугацаа, хязгаарлалтыг шийдвэрлэх арга замууд
кодчилолын түвшинд дараах байдалтай бичигдэнэ.
<?php
class newsActions extends sfActions {
public function executeIndex(sfWebRequest $request) {
$query = Doctrine::getTable('News')
->createQuery('n')
->orderBy('n.created_at Desc');
if($request->getParameter('id')){
$query->where('n.extra_type=?',$request->getParameter('id'));}
$this->category =Doctrine::getTable('Category')
->createQuery('cc')
->where('cc.enname=?',$request>getParameter('enname'))->fetchOne();
$this->category_s = $this->category;
if($this->category->getParentId()==0){
$this->categories =Doctrine::getTable('Category')
->createQuery('cat')
->where('cat.parent_id=?',$this->category->getId())>execute();
}else{$this->categories =Doctrine::getTable('Category')
->createQuery('cat')
->where('cat.parent_id=?',$this->category>getParentId())->execute();
}
if($this->category->getParentId()==0&&sizeof($this->categories)==0){
$query->where('n.category_id = ?',$this->category->getId());
$this->categories =Doctrine::getTable('Category')
->createQuery('cat')
->where('cat.parent_id=?',$this->category>getParentId())->execute();
}elseif($this->category->getParentId()==0&&sizeof($this->categories)>0){
$query->innerJoin('n.Category c')->where('c.parent_id = ?',$this->category>getId());
}else{
$query->where('n.category_id = ?',$this->category->getId());}
if($request->getParameter('type')){
$query->andWhere('n.is_top = ?',$request->getParameter('type')); }
if($this->category->getId()>52&&$this->category->getId()<62||$this->category->getId()==3||$this>category->getId()==2){
$query->andWhere('n.published_at > ?',date('Y-m-d H:i:s'));}
$this->category =Doctrine::getTable('Category')->find($this->category->getParentId());
$this->id = $request->getParameter('id');
$this->page = $request->getParameter('page', 1);
$this->pager = new sfDoctrinePager('News', sfConfig::get('app_max_news_on_list'));
$this->pager->setPage($this->page);
$this->pager->setQuery($query);
$this->pager->init();
$this->newss = $this->pager->getResults();}
public function executeShow(sfWebRequest $request) {
$this->news = Doctrine::getTable('News')->find(array($request->getParameter('id')));
$this->forward404Unless($this->news);
if($this->news->getType()==1) {
$this->photos = Doctrine::getTable('NewsPhoto')
->createQuery('n')
->where('n.news_id=?',$this->news->getId())->execute();

Бүлгийн дүгнэлт
Тус бүлэгт системийн ажлын дараалал гүйцэтгэлийн талаар дэлгэрэнгүй оруулж
өгсөн билээ. Системийн интерфэйсийг, ерөнхий дизайн болон хэрэглэгчийн шаардлага
дээр үндэслэн хийж гүйцэтгэсэн ба системийн нарийвчилсан ажиллагаа онцлогийг
ойлгомжтой энгийн байдлаар дэлгэрэнгүй тайлбарлан өгсөн байна.
Diplomnii etsii huvilbar
Diplomnii etsii huvilbar
Diplomnii etsii huvilbar
Diplomnii etsii huvilbar
Diplomnii etsii huvilbar
Diplomnii etsii huvilbar
Diplomnii etsii huvilbar
Diplomnii etsii huvilbar
Diplomnii etsii huvilbar

Contenu connexe

Tendances

Менежментийн үйл явц ба менежерийн ажил, байгууллага, менежер, менежментийн ү...
Менежментийн үйл явц ба менежерийн ажил, байгууллага, менежер, менежментийн ү...Менежментийн үйл явц ба менежерийн ажил, байгууллага, менежер, менежментийн ү...
Менежментийн үйл явц ба менежерийн ажил, байгууллага, менежер, менежментийн ү...Adilbishiin Gelegjamts
 
Munkhbat Jamiyan-CV
Munkhbat Jamiyan-CVMunkhbat Jamiyan-CV
Munkhbat Jamiyan-CVUnuruu Dear
 
диплом бичих товч заавар
диплом бичих товч заавардиплом бичих товч заавар
диплом бичих товч зааварolziibuyn
 
Бие даалтын ажлын төлөвлөгөө
Бие даалтын ажлын төлөвлөгөөБие даалтын ажлын төлөвлөгөө
Бие даалтын ажлын төлөвлөгөөUsukhuu Galaa
 
Удирдлагын шийдвэр гаргалт, шийдвэрийн төрөл, ангилал, түвшин, шийдвэр гаргал...
Удирдлагын шийдвэр гаргалт, шийдвэрийн төрөл, ангилал, түвшин, шийдвэр гаргал...Удирдлагын шийдвэр гаргалт, шийдвэрийн төрөл, ангилал, түвшин, шийдвэр гаргал...
Удирдлагын шийдвэр гаргалт, шийдвэрийн төрөл, ангилал, түвшин, шийдвэр гаргал...Adilbishiin Gelegjamts
 
лекц №5 насаз түүвэр судалгааны арга зүй
лекц №5 насаз түүвэр судалгааны арга зүйлекц №5 насаз түүвэр судалгааны арга зүй
лекц №5 насаз түүвэр судалгааны арга зүйE-Gazarchin Online University
 
дадлага тайлан
дадлага тайландадлага тайлан
дадлага тайланInkheart Tuul
 
боловсрол гэж юу вэ
боловсрол гэж юу вэболовсрол гэж юу вэ
боловсрол гэж юу вэTuru Turuu
 
социологийн судалгааны үндсэн аргууд
социологийн судалгааны үндсэн аргуудсоциологийн судалгааны үндсэн аргууд
социологийн судалгааны үндсэн аргуудNandia Nandia Ganbold
 
Социализм Монголд
Социализм МонголдСоциализм Монголд
Социализм МонголдJvk Law
 
философи 1
философи 1философи 1
философи 1Жак М.У
 
Байгууллагын орчин , байгууллагын дотоод болон гадаад орчин, эрхэм зорилго гэ...
Байгууллагын орчин , байгууллагын дотоод болон гадаад орчин, эрхэм зорилго гэ...Байгууллагын орчин , байгууллагын дотоод болон гадаад орчин, эрхэм зорилго гэ...
Байгууллагын орчин , байгууллагын дотоод болон гадаад орчин, эрхэм зорилго гэ...Adilbishiin Gelegjamts
 
Эссэ бичих арга зүйн зөвлөмж
Эссэ бичих арга зүйн зөвлөмжЭссэ бичих арга зүйн зөвлөмж
Эссэ бичих арга зүйн зөвлөмжScenography Zaya
 
эсээ бичвэр
эсээ бичвэрэсээ бичвэр
эсээ бичвэрsodko27
 
ТООН МЭДЭЭЛЭЛД ДҮН ШИНЖИЛГЭЭ ХИЙХ ГАРЫН АВЛАГА
ТООН МЭДЭЭЛЭЛД ДҮН ШИНЖИЛГЭЭ ХИЙХ ГАРЫН АВЛАГАТООН МЭДЭЭЛЭЛД ДҮН ШИНЖИЛГЭЭ ХИЙХ ГАРЫН АВЛАГА
ТООН МЭДЭЭЛЭЛД ДҮН ШИНЖИЛГЭЭ ХИЙХ ГАРЫН АВЛАГАMr Nyak
 
Lab15. wbs
Lab15. wbsLab15. wbs
Lab15. wbsBPurev
 

Tendances (20)

Эшлэл хэрхэн хийх тухай
Эшлэл хэрхэн хийх тухайЭшлэл хэрхэн хийх тухай
Эшлэл хэрхэн хийх тухай
 
Менежментийн үйл явц ба менежерийн ажил, байгууллага, менежер, менежментийн ү...
Менежментийн үйл явц ба менежерийн ажил, байгууллага, менежер, менежментийн ү...Менежментийн үйл явц ба менежерийн ажил, байгууллага, менежер, менежментийн ү...
Менежментийн үйл явц ба менежерийн ажил, байгууллага, менежер, менежментийн ү...
 
Munkhbat Jamiyan-CV
Munkhbat Jamiyan-CVMunkhbat Jamiyan-CV
Munkhbat Jamiyan-CV
 
диплом бичих товч заавар
диплом бичих товч заавардиплом бичих товч заавар
диплом бичих товч заавар
 
Бие даалтын ажлын төлөвлөгөө
Бие даалтын ажлын төлөвлөгөөБие даалтын ажлын төлөвлөгөө
Бие даалтын ажлын төлөвлөгөө
 
Удирдлагын шийдвэр гаргалт, шийдвэрийн төрөл, ангилал, түвшин, шийдвэр гаргал...
Удирдлагын шийдвэр гаргалт, шийдвэрийн төрөл, ангилал, түвшин, шийдвэр гаргал...Удирдлагын шийдвэр гаргалт, шийдвэрийн төрөл, ангилал, түвшин, шийдвэр гаргал...
Удирдлагын шийдвэр гаргалт, шийдвэрийн төрөл, ангилал, түвшин, шийдвэр гаргал...
 
лекц №5 насаз түүвэр судалгааны арга зүй
лекц №5 насаз түүвэр судалгааны арга зүйлекц №5 насаз түүвэр судалгааны арга зүй
лекц №5 насаз түүвэр судалгааны арга зүй
 
дадлага тайлан
дадлага тайландадлага тайлан
дадлага тайлан
 
боловсрол гэж юу вэ
боловсрол гэж юу вэболовсрол гэж юу вэ
боловсрол гэж юу вэ
 
Lecture №7
Lecture №7Lecture №7
Lecture №7
 
социологийн судалгааны үндсэн аргууд
социологийн судалгааны үндсэн аргуудсоциологийн судалгааны үндсэн аргууд
социологийн судалгааны үндсэн аргууд
 
Lekts2. statistik ajilglalt
Lekts2.  statistik ajilglaltLekts2.  statistik ajilglalt
Lekts2. statistik ajilglalt
 
Социализм Монголд
Социализм МонголдСоциализм Монголд
Социализм Монголд
 
философи 1
философи 1философи 1
философи 1
 
эдийн засгийн онол -1
эдийн засгийн онол -1эдийн засгийн онол -1
эдийн засгийн онол -1
 
Байгууллагын орчин , байгууллагын дотоод болон гадаад орчин, эрхэм зорилго гэ...
Байгууллагын орчин , байгууллагын дотоод болон гадаад орчин, эрхэм зорилго гэ...Байгууллагын орчин , байгууллагын дотоод болон гадаад орчин, эрхэм зорилго гэ...
Байгууллагын орчин , байгууллагын дотоод болон гадаад орчин, эрхэм зорилго гэ...
 
Эссэ бичих арга зүйн зөвлөмж
Эссэ бичих арга зүйн зөвлөмжЭссэ бичих арга зүйн зөвлөмж
Эссэ бичих арга зүйн зөвлөмж
 
эсээ бичвэр
эсээ бичвэрэсээ бичвэр
эсээ бичвэр
 
ТООН МЭДЭЭЛЭЛД ДҮН ШИНЖИЛГЭЭ ХИЙХ ГАРЫН АВЛАГА
ТООН МЭДЭЭЛЭЛД ДҮН ШИНЖИЛГЭЭ ХИЙХ ГАРЫН АВЛАГАТООН МЭДЭЭЛЭЛД ДҮН ШИНЖИЛГЭЭ ХИЙХ ГАРЫН АВЛАГА
ТООН МЭДЭЭЛЭЛД ДҮН ШИНЖИЛГЭЭ ХИЙХ ГАРЫН АВЛАГА
 
Lab15. wbs
Lab15. wbsLab15. wbs
Lab15. wbs
 

Similaire à Diplomnii etsii huvilbar

Булган - Монгол дахь Software Engineering-ийн өнөөгийн байдал, түүнийг хөгжүү...
Булган - Монгол дахь Software Engineering-ийн өнөөгийн байдал, түүнийг хөгжүү...Булган - Монгол дахь Software Engineering-ийн өнөөгийн байдал, түүнийг хөгжүү...
Булган - Монгол дахь Software Engineering-ийн өнөөгийн байдал, түүнийг хөгжүү...batnasanb
 
1st day ict argazui-v1
1st day ict argazui-v11st day ict argazui-v1
1st day ict argazui-v1budkhand_2
 
Powerpoint програмын хэрэглэгдэхүүн
Powerpoint програмын хэрэглэгдэхүүнPowerpoint програмын хэрэглэгдэхүүн
Powerpoint програмын хэрэглэгдэхүүнVigo Rous
 
хөтөлбөр төлөвлөгөө
хөтөлбөр төлөвлөгөөхөтөлбөр төлөвлөгөө
хөтөлбөр төлөвлөгөөmtmsbilig
 
хичээлийн хөтөлбөр
хичээлийн хөтөлбөрхичээлийн хөтөлбөр
хичээлийн хөтөлбөрadminsed03
 
хичээлийн хөтөлбөр
хичээлийн хөтөлбөрхичээлийн хөтөлбөр
хичээлийн хөтөлбөрadminsed03
 
компьютерийн хэрэглээ хичээлийн хөтөлбөр
компьютерийн хэрэглээ хичээлийн хөтөлбөркомпьютерийн хэрэглээ хичээлийн хөтөлбөр
компьютерийн хэрэглээ хичээлийн хөтөлбөрБатбагана Баасанжав
 
Хичээлийн тодорхойлолт
Хичээлийн тодорхойлолтХичээлийн тодорхойлолт
Хичээлийн тодорхойлолтChinzorig Undarmaa
 
О.Нямцэцэг - Боловсролын салбарт Мэдээлэл харилцаа холбоо технологийн Хөрөнгө...
О.Нямцэцэг - Боловсролын салбарт Мэдээлэл харилцаа холбоо технологийн Хөрөнгө...О.Нямцэцэг - Боловсролын салбарт Мэдээлэл харилцаа холбоо технологийн Хөрөнгө...
О.Нямцэцэг - Боловсролын салбарт Мэдээлэл харилцаа холбоо технологийн Хөрөнгө...batnasanb
 
Surgaltiin, hutulbur tuluvluguu
Surgaltiin, hutulbur tuluvluguuSurgaltiin, hutulbur tuluvluguu
Surgaltiin, hutulbur tuluvluguuzulaa_hvhv
 
Цахим сургалтын чанарын хяналтын тогтолцоо санаачилга
Цахим сургалтын чанарын хяналтын тогтолцоо санаачилгаЦахим сургалтын чанарын хяналтын тогтолцоо санаачилга
Цахим сургалтын чанарын хяналтын тогтолцоо санаачилгаTsetseg-Ulzii Yadamsuren
 

Similaire à Diplomnii etsii huvilbar (20)

Tailbar
TailbarTailbar
Tailbar
 
1st Day Ict Argazui V1
1st Day Ict Argazui V11st Day Ict Argazui V1
1st Day Ict Argazui V1
 
CS203 Лекц01 Prefeace
CS203 Лекц01  PrefeaceCS203 Лекц01  Prefeace
CS203 Лекц01 Prefeace
 
Lecture1
Lecture1Lecture1
Lecture1
 
Булган - Монгол дахь Software Engineering-ийн өнөөгийн байдал, түүнийг хөгжүү...
Булган - Монгол дахь Software Engineering-ийн өнөөгийн байдал, түүнийг хөгжүү...Булган - Монгол дахь Software Engineering-ийн өнөөгийн байдал, түүнийг хөгжүү...
Булган - Монгол дахь Software Engineering-ийн өнөөгийн байдал, түүнийг хөгжүү...
 
1st day ict argazui-v1
1st day ict argazui-v11st day ict argazui-v1
1st day ict argazui-v1
 
PL Lecture1
PL Lecture1PL Lecture1
PL Lecture1
 
Powerpoint програмын хэрэглэгдэхүүн
Powerpoint програмын хэрэглэгдэхүүнPowerpoint програмын хэрэглэгдэхүүн
Powerpoint програмын хэрэглэгдэхүүн
 
хөтөлбөр төлөвлөгөө
хөтөлбөр төлөвлөгөөхөтөлбөр төлөвлөгөө
хөтөлбөр төлөвлөгөө
 
Tsahim
TsahimTsahim
Tsahim
 
хичээлийн хөтөлбөр
хичээлийн хөтөлбөрхичээлийн хөтөлбөр
хичээлийн хөтөлбөр
 
хичээлийн хөтөлбөр
хичээлийн хөтөлбөрхичээлийн хөтөлбөр
хичээлийн хөтөлбөр
 
компьютерийн хэрэглээ хичээлийн хөтөлбөр
компьютерийн хэрэглээ хичээлийн хөтөлбөркомпьютерийн хэрэглээ хичээлийн хөтөлбөр
компьютерийн хэрэглээ хичээлийн хөтөлбөр
 
Хичээлийн тодорхойлолт
Хичээлийн тодорхойлолтХичээлийн тодорхойлолт
Хичээлийн тодорхойлолт
 
О.Нямцэцэг - Боловсролын салбарт Мэдээлэл харилцаа холбоо технологийн Хөрөнгө...
О.Нямцэцэг - Боловсролын салбарт Мэдээлэл харилцаа холбоо технологийн Хөрөнгө...О.Нямцэцэг - Боловсролын салбарт Мэдээлэл харилцаа холбоо технологийн Хөрөнгө...
О.Нямцэцэг - Боловсролын салбарт Мэдээлэл харилцаа холбоо технологийн Хөрөнгө...
 
Ood lesson1
Ood lesson1Ood lesson1
Ood lesson1
 
E book
E bookE book
E book
 
Surgaltiin, hutulbur tuluvluguu
Surgaltiin, hutulbur tuluvluguuSurgaltiin, hutulbur tuluvluguu
Surgaltiin, hutulbur tuluvluguu
 
Програм
ПрограмПрограм
Програм
 
Цахим сургалтын чанарын хяналтын тогтолцоо санаачилга
Цахим сургалтын чанарын хяналтын тогтолцоо санаачилгаЦахим сургалтын чанарын хяналтын тогтолцоо санаачилга
Цахим сургалтын чанарын хяналтын тогтолцоо санаачилга
 

Plus de Enhmandah Hemeelee (20)

Lab 02
Lab 02Lab 02
Lab 02
 
Bd 01
Bd 01Bd 01
Bd 01
 
Semenar 02
Semenar 02Semenar 02
Semenar 02
 
Li354 plc lects 2011a
Li354  plc lects 2011aLi354  plc lects 2011a
Li354 plc lects 2011a
 
111 120
111 120111 120
111 120
 
101 110
101 110101 110
101 110
 
91 100
91 10091 100
91 100
 
81 90
81 9081 90
81 90
 
61 70
61 7061 70
61 70
 
51 60
51 6051 60
51 60
 
41 50
41 5041 50
41 50
 
31 40
31 4031 40
31 40
 
21 30
21 3021 30
21 30
 
11 20
11 2011 20
11 20
 
1 10
1 101 10
1 10
 
1 10
1 101 10
1 10
 
Bd1 munkhbayar
Bd1 munkhbayarBd1 munkhbayar
Bd1 munkhbayar
 
Bd1 gantumur mon e 1
Bd1 gantumur mon e 1Bd1 gantumur mon e 1
Bd1 gantumur mon e 1
 
Bd1 gantumur eng e 1
Bd1 gantumur eng e 1Bd1 gantumur eng e 1
Bd1 gantumur eng e 1
 
Orchuulga
OrchuulgaOrchuulga
Orchuulga
 

Diplomnii etsii huvilbar

  • 1. ШИНЖЛЭХ УХААН, ТЕХНОЛОГИЙН ИХ СУРГУУЛЬ ҮЙЛДВЭРЛЭЛИЙН ТЕХНОЛОГИ, ДИЗАЙНЫ СУРГУУЛЬ БАКАЛАВРЫН ДИПЛОМ БАЯРСАЙХАН ЭНХМАНДАХ “ПРОГРАМЧЛАГДАХ ЛОГИК УДИРДЛАГА” ХИЧЭЭЛИЙГ Е- СУРГАЛТАНД БЭЛТГЭХ
  • 2. Улаанбаатар хот 2013 он ШИНЖЛЭХ УХААН, ТЕХНОЛОГИЙН ИХ СУРГУУЛЬ ҮЙЛДВЭРЛЭЛИЙН ТЕХНОЛОГИ, ДИЗАЙНЫ СУРГУУЛЬ Баг: Хөнгөн үйлдвэрийн машин судлал, хэвлэлийн технологийн профиссорын баг Мэргэжлийн нэр: Хөнгөн үйлдвэрийн автоматжуулалт Мэргэжлийн код: D525500 БАКАЛАВРЫН ДИПЛОМ СЭДЭВ: “Программчлагдах логик удирдлага” хичээлийг Е-сургалтанд бэлтгэх Гүйцэтгэсэн: Удирдсан: Зөвлөсөн: Шүүмж: /Б.Энхмандах/ /Д.Пүрэвмагнай/ / / /Д.Пүрэвмагнай/
  • 3. Улаанбаатар хот 2013 он ДИПЛОМЫН АЖИЛ, ТӨСЛИЙН ДААЛГАВАР, СЭДЭВЧИЛСЭН ТӨЛӨВЛӨГӨӨ “Хөнгөн үйлдвэрийн автоматжуулалт” мэргэжлээр төгсөх Оюутнуудын дипломын үзлэг болон хамгалаах хуваарь 2013,09,14 Үзлэг Гүйцэтгэл Үзлэгийн оноо Хугацаа Судалгааны материалуудыг бэлэн болгох, зорилго, зорилтуудаа тогтоосон байх 3 IX/23 Нэгдүгээр үзлэг Онол, судалгааны хэсэг 7 X/14 Хоѐрдугаар үзлэг Зохион бүтээлтийн хэсэг /бичвэр, зураг/ 10 X/28 Гуравдугаар үзлэг Удирлагийн төсөл тооцоо бичвэр, зураг/ 10 XI/11 Дөрөвдүгээр үзлэг PID контроплерийн төсөл тооцоо, эдийн засаг, дүгнэлт 5 XII/2 Урьдчилсан хамгаалалтанд орох эрх Диплом дууссан байна Удирдагчийн үзлэг XII/20
  • 4. Урьдчилсан хамгаалалт Диплом 100% дууссан байна +-20 XII/23 Удирдагчийн дүгнэлт тодорхойлолт +-15 I/4 Дипломын хамгаалалт +-30 I/6
  • 5. ГАРЧИГ Оршил Нэгдүгээр бүлэг: Дипломын сэдвийн тухай 1. Сэдвийг хэрэгжүүлэх үндэслэл 2. Зорилтууд 3. Үүрэг, ач холбогдол 4. Бүлгийн дүгнэлт Хоѐрдугаар бүлэг: Судалгаа Програмыг хөгжүүлэх арга болон технологийн судалгаа 2. Вэб сайт хийх арга 2.1.1 Хүрхрээ загвар 2.1.2 MySQL өгөгдлийн сангийн судалгаа MySQL өгөгдлийн санг Ubuntu үйлдлийн систем дээр суулгах PhpMyAdmin-ийг Ubuntu үйлдлийн систем дээр суулгах 2.1.3 “Symfony” PHP фреймворкийн судалгаа “Symfony” framework-ийн түүх “Sensio Labs”-н тухай “Symfony” framework-ийн хувилбар Symfony-ийн ажиллах зарчим PHP тохиргоо “Symfony” framework-ийг суулгах “Symfony” framework болон өгөгдлийн бааз “Symfony” framework-ийн түлхүүр ойлголтууд The MVC Architecture Хамгаалалт Вэб серверийн тохиргоо Орчин- (Environment) 2.1.4 “Jquery” жаваскрипт сангийн судалгаа 2.1.5 UML технологийн судалгаа 2.2 E-хичээл гэж юу вэ? 2.2.1 E -хичээлийн давуу тал хамрах хүрээ 2.2.2 E –хичээлийн стандарт Гуравдугаар бүлэг: ВЭБ САЙТЫН АГУУЛГА, ЗАГВАР, ҮНДСЭН БҮТЭЦ 3.1 E-хичээлийн стандартын нийцэл Вэб сайтын зорилго чиглэл Агуулга 3.2 Вэб сайтын хайлтын хэсэг 3.3 Бүртгэл болон нэвтрэх хэсэг 3.4 Багийн гишүүд болон багш нарын оролцоо 3.5 Admin -тай холбоо тогтоох 3.6 E-хичээл бэлтгэх, байршуулах, засварлах, нийтлэх зааварчилгаа 3.7 E-хичээлийн байрших хугацаа, хязгаарлалтыг шийдвэрлэх арга замууд 3.8 Бүлгийн дүгнэлт Дөрөвдүгээр бүлэг: ХЭРЭГЛЭГЧИЙН ШААРДЛАГА
  • 6. 4.1 Системийн ерөнхий ойлголт 4.2 Хэрэглэгчийн онцлог Бүтээгдэхүүний эцсийн хэрэглэгчид 4.3 Automatic.mn нүүр хуудасны ерөнхий харагдах байдал Ерөнхий бүтэцийг блок схемээр харуулсан загвар. 4.4 Automatic.mn вэб сайтын нүүр хуудас кодчилолын түвшинд дараах байдалтай бичигдэнэ. 4.5 Мэдээ булан кодчилолын түвшинд дараах байдалтай бичигдэнэ. Бүртгэл болон нэвтрэх хэсэг кодчилолын түвшинд дараах байдалтай бичигдэнэ. Admin -тай холбоо тогтоох булан кодчилолын түвшинд дараах байдалтай бичигдэнэ. 4.6 E-хичээлийн байрших хугацаа, хязгаарлалтыг шийдвэрлэх арга замууд кодчилолын түвшинд дараах байдалтай бичигдэнэ. Бүлгийн дүгнэлт Тавдугаар бүлэг. САНХҮҮГИЙН ТООЦОО ДҮГНЭЛТ АШИГЛАСАН ХУУДСЫН ЖАГСААЛТ ХАВСРАЛТ ЗУРГИЙН САН
  • 7. ОРШИЛ Бидний амьдарч буй энэ эрин зуун бол мэдээллийн технологийн эрин зуун юм. Тэр дундаа компьтерийн програм хангамж маш хурдацтай хөгжиж байна. 10-аад жилийн тэртээ Монгол улсад компьютер, интернэт танигдаж байсан бол өнөө үед компьютер ашигладаггүй, интернэт ашигладаггүй хүн гэж бараг үгүй болжээ. Мэдээллийн технологи, програм хангамж нь хүний үйл ажиллагааг маш ихээр хялбарчилж байдаг. Мэдээллийн технологийн дэвшилтэт чанарууд бизнесийн бүх салбаруудад ач тусаа өгч байна. Тэр ч утгаар цахим хэлбэрээр үйлчилгээ явуулдаг албан байгууллага нэмэгдсээр байна. Миний дипломын ажлын хийх ѐстой зүйл бол танхимын сургалтын дутагдалтай талыг нөхөж цахим хэлбэрт оруулах буюу Е хичээл бэлтгэх юм. Ингэснээр бидний цаг хугацаа, хүч хөдөлмөр хэмнэгдэж интернетээр хичээл сонголт хийдэг байсан бол одоо хичээл судлах боломж бүрдэж байгаа юм. Танхимын сургалтаас ялгаатай нь оюутан хичээлийг урьдчилан судлах, хугацаа дууссан үед зөвшөөрөл авч дахин судлах, олж авсан мэдлэгийг тухайн цагт дүгнүүлэх, хичээлд алсын зайнаас оролцох, хичээлийн ирц бүртгүүлэх боломж бүрдэж байгаа нь уг системийн үндсэн давуу тал болж байгаа билээ. Ингэхдээ сурч буй хугацаандаа олж авсан мэдлэгээ ашиглан бодит хэрэглэгчдийн хүртээл болгох зорилготойгоор ажиллалаа.
  • 8.
  • 10. Энэхүү бүлэгт дипломын төслийн үндэслэл, зорилтууд, төслийг хэрэгжүүлсний ач холбогдол зэргийг тодорхойлсон. 1.1 Сэдвийг хэрэгжүүлэх үндэслэл Танхимын сургалт нь тогтсон хүгацаандаа нэг л удаа заадаг. Энэ нь удаан ойлгодог, мөн янз бүрийн шалтгаанаар хичээлдээ сууж амжаагүй тохиолдолд тухайн хичээлийг ойлгохгүй өнгөрөх нь бий. Тиймээс цахим сургалт нь танхимын учир дутагдалтай талыг нөхөж автоматжуулсанаар дараах ач холбогдолтой. Үүнд: Цаг хугацаа хэмнэнэ. Жишээлбэл: o Хэрэглэгчид уулзах шаардлагагүйгээр интернетэд суурилсан програм хангамж хэрэглэн харилцана. Эдийн засгийн хувьд хэмнэлттэй. Жишээлбэл: o Цаасгүй технологийг дэмжин цаасанд зарцуулсан мөнгийг хэмнэнэ. Олон шат дамжлага болсон үйлүүдийг арилган хэрэглэгчид цогц үйлчилгээ үзүүлснээр хэрэглэгчдийн сэтгэл ханамжийг нэмэгдүүлнэ. Жишээлбэл: o Хэрэглэгч үйлийг гүйцэлдүүлэхийн тулд зөвхөн интернет буюу интернетэд суурилсан програм хангамж байна. Е хичээл болон дипломын хүрээнд хийгдсэн автомат систем ашигласнаар хөдөлмөрийн бүтээмж дээшилнэ. 1.2 Зорилтууд 1. E хичээлийн стандартад нийцсэн вэб сайт хийх, турших. 2. Мэргэжлийн багш оюутан нарт E хичээл бэлтгэх, вэб хуудсанд хэрхэн байршуулах талаар сургалт зохион байгуулах. 3. E хичээлийн стандартад нийцсэн вэб сайт хийж гүйцэтгэх, тогтмол ажиллагааг хангах, багш оюутанд суртчилах, түгээн дэлгэрүүлэх. 4. Төлөвлөсөн хугацаанд хийж гүйцэтгэх, тэнхим болон багш нарт хүлээлгэн өгөх. 1.3 Үүрэг, ач холбогдол E яхичээл нь интернетийн орчин нөхцөл бүхий л газарт цагын хязгааргүй үнэ төлбөргүйгээр хэмжээ хязгааргүй олон нийтэд асар хурдтай түгээж болдгоороо бусад төрлийн хичээл заах арга технологиос эрс ялгардаг юм. Хамрах хүрээ нь зөвхөн
  • 11. мэргэжлийн ангийн оюутан багш нар болон интернет хэрэглэх чадвартай хүн бүхэнд нээлттэй төрөл бүрээр баяжуулан судлах бүрэн боломжтой байдаг нь орчин үеийн залуусын шаардлагад бүрэн нийцэж байгаа билээ. Хэрэглэч үйл ажиллагаа явуулхад хялбар ойлгомжтой байх үүрэгтэй. Систем хэрэглэгчийн бодит амьдрал дээр хийгддэг үйлдлүүдийг автоматжуулах. Зардал хэмнэх. o Цаг хугацаа o Мөнгө o Хүч хөдөлмөр гм. Хэрэглэгчдэд үйл ажиллагаа явуулахад ойлгомжтой, хялбар, тааламжтай нөхцөл бүрдүүлэх. 1.4 Бүлгийн дүгнэлт Энэ бүлэг нь дипломын төслийн сэдэв болох I.LI354 хичээлийг Е сургалтанд бэлтгэх дипломын төслийн хүрээнд хийж гүйцэтгэсэн вэб сайтын үүрэг ач холбогдол, дипломын зорилтууд, сэдэв хэрэгжүүлэх болсон шаардлага зэрэг ерөнхий ойлголтыг оруулан бичсэн болно.
  • 12.
  • 14. 1. Програмыг хөгжүүлэх арга болон технологийн судалгаа Аливаа төслийг хийж гүйцэтгэхэд ижил төстэй төслүүдийн судалгаа, хийх арга технологи нь ажлын үр дүнд нөлөөлөх хамгийн гол хүчин зүйл нь болдог. Тиймээс энэхүү дипломын төслийг хийж гүйцэтгэхэд нэн тэргүүнд тавигдах зүйл бол судалгаа буюу тэр дундаа хэрэгжүүлэх арга юм. Ямар процесс загвар, арга технологи ашиглах нь хөгжүүлэгчийн сонголт байдаг боловч өөрийн хөгжүүлж буй програм хангамж, ажлын төлөвлөгөөндөө зориулж сонгох нь маш чухал. Програм хангамжийг хөгжүүлэх маш олон процесс загвар байдаг ба тэр дундаа хамгийн өргөн тархсан процесс загвар нь хүрхрээ загвар юм. Миний бие дипломын төслийн ажлыг хүрхрээ загвар ашиглан гүйцэтгэхээр болсон. Учир нь дипломын төслийн төлөвлөгөөнд үе шат бүрийг хугацаанаас хамааруулан гаргахдаа нэг үйл ажиллагааг бүрэн дууссаны дараа удирдагч багшдаа шалгуулан дүгнүүлээд дараагийн үеийг хэрэгжүүлж байхаар гаргасан. Энэ нь хүрхрээ загварын үе шат бүр асуудлаа сайн тодорхойлж бүрэн шийдвэрлэсний дараа, дараагийн үе рүү орох зарчимтай тохирч байгаа юм. 2. Вэб сайт хийх арга Вэб хуудас хийх олон арга технологи байдаг мөн олон тооны програмын хэл байдаг үүнээс хамгийн түгээмэл аргыг авч үзье. 2.1 Хүрхрээ загвар Програм хангамжийн хөгжүүлэлтийн маш олон процесс загварууд байдаг ба тэдгээрээс хамгийн өргөн тархсан, түгээмэл загвар нь хүрхрээ загвар юм. Энэхүү загвар нь дотроо хэд хэдэн үе шатуудад хуваагддаг. Нэг үе шат нь бүрэн дууссаны дараа дараагийн үе рүү ордог ба нэгэнт гүйцэтгээд дууссан үе шат руу буцаж очдоггүй. Хүрхрээ загвар нь дараахь үндсэн таван үе шатаас бүрддэг. 1. Шаардлага тодорхойлох 2. Зохиомж 3. Кодчлол 4. Нэгтгэх болон турших
  • 15. 5. Нэвтрүүлэлт болон сайжруулалт Зураг 2.1 Хүрхрээ загвар Хүрхрээ загвар өргөн тархсан, ойлгоход хялбар, сайн бүтэцлэгдсэн гэх мэт олон давуу талууд байдаг боловч сул талууд бас байдаг. Үүнд: Шаардлага бүрэн дүүрэн тодорхойлогдсон гэж эхэн үед авч үздэг нь бодит байдал дээр нийцдэггүй Програмын ажиллах хувилбар нь хөгжүүлэлтийн төгсгөлд гардаг Захиалагч хөгжүүлэлтийн эхэн үе буюу шаардлага тодорхойлход оролцдог 2.2 MySQL өгөгдлийн сангийн судалгаа Диплом ангийн ажлийн бүртгэлийн систем нь өгөгдлийн сантай тул MySQL-ийг ашиглах шаардлага гарсан. MySQL өгөгдлийн сан нь түгээмэл тархсан өгөгдлийн сангуудын нэг бөгөөд тэр дундаа вэб хөгжүүлэгчид өргөнөөр ашигладаг. Function, trigger, procedure ашиглах бүрэн боломжтой ба GNU (General Public License) буюу нээлтэй эх юм. Өөрөөр хэлбэл хүссэн хэн бүхэн хөгжүүлэлтэд оролцож, үнэгүй хэрэглэж болно. Windows, MacOS, Unix зэрэг үйлдлийн системүүд дээр платформын хамааралгүйгээр ажиллаж, суурилуулахад хурдан, хэрэглэхэд хялбар гэх мэт олон давуу талтай. MySQL өгөгдлийн санг Ubuntu үйлдлийн систем дээр суулгах
  • 16. Эхлээд Terminal нээнэ. “sudo apt-get install mysql-server” гэсэн командыг ажиллуулж суулгана. Суулгах явцад өгөгдлийн сангийн нууц үгийг асуухад нууц үг хийнэ. “mysql -u root -p” гэсэн командыг ажиллуулж MySQL сервер лүү нэвтрэн орно. Ингэхдээ суулгахад хийсэн нууц үгээ ашиглана. PhpMyAdmin-ийг Ubuntu үйлдлийн систем дээр суулгах PhpMyAdmin нь PHP дээр суурилан хийгдсэн, MySQL өгөгдлийн сангийн сервертэй харьцан, удирдан ажиллахад маш хялбар болгодог веб интерфэйстэй програм юм. Эхлээд Terminal нээнэ. “sudo apt-get install phpmyadmin” гэсэн командыг ажиллуулж суулгана. “sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf” гэсэн командыг ажиллуулж PhpMyAdmin-ий тохиргооны файлын богино холбоосыг apache-ийн тохиргооны файлуудын дунд үүсгэнэ. “sudo /etc/init.d/apache2 restart” гэсэн командыг ажиллуулж apache серверийг дахин ажиллуулна. http://localhost/phpmyadmin гэсэн холбоосоор PhpMyAdmin-ийг ажиллуулна. 2.3 “Symfony” PHP фреймворкийн судалгаа Энэхүү системийг сүүлийн үед веб тохнологи хөгжүүлэлтэд нилээд өргөн хүрээгээр ашиглагдаж байгаа вэб хөгжүүлэлтийн фреймворк болох “Symfony” фреймворкийг ашиглах хөгжүүлэх юм. “Symfony” фреймворк нь сүүлийн 9 жилийн хугацаанд хөгжүүлэгдэж байгаа бөгөөд "php" хэл дээр бичигдсэн фреймворкууд дундаас хамгийн өргөн хэрэглээтэй байгаа фреймворк юм. “Symfony” framework-ийн түүх “Symfony” framework нь 9 жил гаруй хөгжүүлж байгаа Нээлттэй Кодчлолын төсөл бөгөөд одоогоор хамгийн их тархацтай РНР Framework-уудын нэг юм. “Symfony” framework нь “Sensio Labs”-aac эрхлэн гаргадаг вэб хөгжүүлэхэд зориулагдсан нээлттэй
  • 17. технологийн framework юм. “Sensio Labs”-ийг анх Фабейн Потенсейр (Fabien Potencier) 1998 онд үүсгэн байгуулсан юм. Фабейн Потенсейр анх (Perl) дээр вэб сайт хийж эхэлсэн байна. Харин РНР 5 гарснаас хойш тэрээр санаагаа эрс өөрчлөн РНР рүу анхаарлаа хандуулсан бөгөөд өөрийн харилцагчдад зориулж компанийх нь хөгжих гол хөшүүрэг болсон РНР framework-ийг 2004 онд үүсгэн бий болгосон. "Symfony" framework нь вэб програм хангамж хөгжүүлэгчдэд зориулан гаргасан framework ба програмчлалын “php” хэл дээр бичигдсэн байдаг. “Symfony” фреймворк нь програмын кодчилол болон цаг хугацааг багагүй хувьтайгаар хэмнэж байгаа юм. Энгийн жишээг л хэлэхэд өмнө нь өгөгдлийн санд мэдээлэл хадгалахын тулд олон формуудын кодыг бичин гараар үүсгэдэг байсан бол “Symfony” фреймворкийн ачаар ганц мөр кодоор энэ бүх асуудлыг шийдэж болох юм. “Symfony” фреймворкийг хөгжүүлж эхлээд удаагүй байгаа хэдий ч аль хэдийнээ вэб сайт хөгжүүлэгчдийн хувьд нэлээд дэлгэрээд байгаа хүчирхэг технологи юм. Одоогийн байдлаар “Symfony” framework-ийн албан ѐсний хамгийн сүүлчийн хувилбар "Symfony 2.0" хувилбар энэ зунаас эхлэн туршилтын хувилбар ажиллагаанд ороод байгаа юм. "Symfony 2.0"-ийн хувьд өмнөх хувилбарын дэвшилтэт давуу талыг өөртөө шингээсэн ба дутагталтай талыг нь сайжруулан гарч ирж байгаа юм. Одоогийн байдлаар "Symfony 2.0" туршилтын хувилбар байдлаар гараад байгаа хэдий ч өмнөх хувилбараасаа бараг 20 хувь хурдтай ба кодыг бичиглэлийг мөн төдий чинээ багасгаж чадаж байгаа юм. “Symfony” framework-ийн хамгийн дэвшилтэт давуу тал нь вэб хөгжуулэлтийн дэвшилтэт арга болох "MVC" зарчмаар ажилладаг юм. Ингэснээр код болон ажиллагааны логик уялдааг илүү дөхөм болгож байгаа билээ. “Sensio Labs”-н тухай Синсео Лаб (Sensio Labs) бол Нээлттэй кодчиллын (Open-Souce) технологи ба интернет маркетинг дээр тулгуурласан үйлчилгээ, зөвлөгөө өгдөг компани юм. 1998 онд Фабиен Потенсейр (Fabien Potencier), Грегори Паскал (Gregory Pascal), Самуэл Потенсейр нарын санаачлагаар байгуулагдсан Сенсио компани нь 1990 оны
  • 18. сүүлээр хүчээ аван интернетийн ертөнцөд бүрэн цогц вэб урлах үйл хэрэгт гол тоглогчийн байрлалд аваачигдсан. Синсео нь ихэнх тоглогчид бизнесийн салбарт мэргэжлийн төгс аргачлалыг нэвтрүүлэхэд project болгоныг дахин шинээр үүсгэх шаардлагатай хэмээн бодож байсан тэрхүү интернетийн уналтаас ялгаран гарч чадсан. Ихэнх Синсео-гийн хэрэглэгчид нь том хэмжээний корпораци-ууд байдаг ба тэднийг шинийг санаачлах, цаг хугацааг маркетинг руу чиглэсэн бага хэмжээний төслөөс дунд хэмжээний хүртэл өсөн хөгжихэд нь гол хүч нь болж өгсөн. Мөн цогц интернет application-ы аудит хийх, зөвлөгөө өгөх, сургалтын чиглэлээр интернет суурилагдсан үйлчилгээг үзүүлдэг. Синсео Лаб нь Францад болон гадаадын бусад орнуудад төсөл хэрэгжүүлсэн туршлагатай компани юм. Харин гол зүйл нь бол Синсео Лаб нь Symfony framework-ийг хөгжүүлдэг ба OpenSource project байхад нь ивээн тэтгэдэг. Энэ нь өөрөөр хэлбэл Symfony нь том корпорацийн хэмжээний вэб application дээр ажилласан туршлаган дээр үндэслэгдэж хөгждөг гэсэн үг. Хөгжиж ирсэн 11 жилийн өмнөөс, Синсео нь үргэлж мэргэшсэн хүчирхэг стратеги барин хөгжин ирсэн. Нээлттэй кодчиллын (Open-Souce) технологи болон dynamic scripting хэлүүдийг голчилдог Синсео нь бүх LAMP platforms-r дэмжин ажилладаг. Синсео нь тэдгээрийг хэлүүдийг ашиглах framework-ийн маш сайн туршлагатай ба ихэвчлэн Django, Rails мөн мэдээж Symfony дээр application хөгжүүлдэг. “Symfony” framework-ийн хувилбар Symfony 1.3 болон symfony 1.4 хоѐр хувилбар бараг нэгэн цагт (2009 оны сүүлээр) гарсан. Үнэндээ хоѐулаа ижилхэн онцлог давуу талуудтай хийгдсэн. Хоѐр хувилбарын ялгаа нь зөвхөн хэрхэн өмнөх хувилбаруудаа дэмжиж ажилладаг гэдгээрээ л ялгаатай болно. Symfony 1.3 нь таны хуучин symfony-ий хувилбар (1.0, 1.1, or 1.2) ашиглаж хийсэн, шинэчлэл хийгдэх шаардлагатай цогц хэмжээний төсөлдөө авч ашиглахад зориулагдан гарсан. Энэ нь өмнөх хувилбаруудтайгаа зохицох давхаргатай ба 1.3 хөгжих явцад аль хэдийнээ хэрэггүй болсон өмнөх хувилбарын онцлогуудыг өөртөө агуулдаг. Symfony-ийн ажиллах зарчим
  • 19. Зураг 2.2 Symfony MVC архитектур Зураг 2.3 Symfony-ий ажиллах зарчим Symfony нь MVC архитектуртай ба хэрэглэгчээс хүсэлт ирэхэд хэрэглэгчийн хүсэлтэд харгалзах модуль дуудагдаж тухайн модулийн action эхэлж ажилладаг. Action нь
  • 20. моделиудтай ажиллан үр дүнг өөрт харгалзах template илгээдэг. Template нь олон partial болон component–ээс тогтдог ба үр дүн нь layout дээр ирэн response болдог. Symfony нь config хавтсан дотор yml дээр тохиргоонуудаа хийдэг. Өгөгдлийн сан, нууцлал болон cache буюу нөөцийн тохиргоонууд хийгддэг. PHP тохиргоо PHP тохиргоо нь үйлдлийн систем бүрд нэгээс нөгөөд өөр өөр байдаг учираас Symfony-ийг хамгийн багадаа байж болох тохиргоо хийгдсэн эсэхийг шалгаж үзэх хэрэгтэй. Эхлээд, phpinfo() юмуу php –v коммандаар хамгийн багадаа “PHP 5.2.4” хувилбар суугдсан эсэхийг шалгах хэрэгтэй. Вэб-д болон коммандад хоѐр өөр PHP хувилбар суулгасан эсэхээ нягтлах шаардлагатай. Дараах линк-ээр symfony-ийн тохиргооны скриптийг татаж авч болно. http://sf-to.org/1.4/check.php Скриптээ вэбийн root хэсгийн аль нэгэн хэсэгт нь хадгалан дараах коммандаар скриптийг ажиллуулна.. $ php check_configuration.php Хэрэв ямар нэгэн асуудал гарвал коммандаар гарах хариу нь хэрхэн, яаж засах талаарх зөвлөгөөг өгнө. Мөн скриптийг Браузераас шалгаж засах боломжтой. Энэ нь php.ini файл нь дээрх 2 орчинд өөр өөр ялгаатай тохиргоотой байж болдог учраас юм. Шалгасныхаа дараа файлыг устгах шаардлагатай. “Symfony” framework-ийг суулгах "Symfony" framework-ийг суулгах дараах хэд хэдэн арга байдаг. Архив файлаас суулгах PHP pear ашиглан суулгах
  • 21. Энэ дундаас хамгийн хялбар бөгөөд өргөн ашиглагддаг арга нь Шууд татан суулгах арга юм. Энэ аргаар суулгахдаа интернэтэд зайлшгүй холбогдсон байх шаардлагатай ба өөрийнх сайтаас "Symfony" framework-ийг татан өөрөө суулгадаг хамгийн хялбар арга юм. Энэхүү аргыг "PEAR Package" гэж нэрлэдэг. Нетээс татан суулгах "PEAR Package" аргыг ашиглахдаа эхлээд нетэд холбогдон дараах кодыг ажиллүүлах шаардлагатай. Энэ код нь зөвхөн нетээс "Symfony" frameworkийг татан суулгах сувгийн бэлдэж байгаа юм. $ pear channel-discover pear.symfony:project.com Дээрх кодыг ажиллуулсны дараагаар "Symfony" framework-ийг татан суулгах үндсэн ажиллагаа эхэлнэ. $ pear install symfony/symfony-1.4.6 Уг код нь "Symfony''-ийг суулгах үндсэн код юм. Энэхүү код нетээс татан суулгадаг тул нэлээд удаан хүлээх шаардлагатай. “Symfony” framework болон өгөгдлийн бааз "Symfony" framework нь томоохон хэмжээний хэд хэдэн өгөгдлийн баазтай холбогдон ажиллаж чадвартай framework юм. Гэхдээ уг framework нь "php" хэл дээр бичигдсэн учраас ихэвчлэн "MySql" өгөдлийн баазтай ажиллахад хялбар. Өгөгдлийн сантай холболт үүсгэх үйл явц нь өмнө нь "php" хэл дээр бичдэг шиг "php" хуудас болгоны дээр өгөдлийн сантай холбосон кодыг нэмэлтээр оруулж өгөх шаардлагагүй болсноороо давуу юм. Учир нь уг хөгжүүлж байгаа төслийг өгөгдлийн сантай холбох буюу "Symfony" төсөл дээр өгөгдлийн санг буулгалт хийх гэсэн ганцхан ажиллагаа л шаардлагатай. Өгөгдлийн сантай холбох буюу өгөгдлийн сангийн схемийг оруулж ирэх: symfony doctrine:build-schema symfony doctrine:build -all-classes  symfony doctrine:build-schema
  • 22. Энэхүү кодыг "Windows Command Processor" буюу "cmd" дээр өөрийн хөгжүүлж байгаа төсөл дотор орон кодыг ажиллуулна өгнө. Дээрх кодын эхний мөр кодыг ажиллуулахад "Symfony" тесөлд өгөгдлийн санг холбож өгөх уг төсөлд тухайн өгөгдлийн сангийн бүхий л холбоо хамаарал зэргийг буулгалт хийж өгдөг. "Symfony" framework-ийн хувьд өгөдлийн сантай ажиллахын тулд "Symfony''-ий өөрийнх комманд болох "doctrine" гэсэн коммандын түлхүүр үгийн тусламжтайгаар холбогддог.  symfony doctrine:build -all-classes Энэхүү код нь "Symfony" төсөлд өгөгдлийн санг буулгалт хийсний дараагаар дээрх кодыг ажиллуубал өөрийн төсөлд оруулж ирсэн өгөгдлийн сангаас шалтгаалан тухайн өгөгдлийн сангийн хүснэгтүүдэд харгалзах modele, form, filter-үүд үүснэ. Энэ сайтын админ талд харагдах ба үүний тусламжтайгаар өгөгдлийн санд мэдээлэл нэмэхэд шаардагдах форм болон хайлт хийх талбайруудыг "Symfony" өөрөө үүсгэдэг юм. “Symfony” framework-ийн түлхүүр ойлголтууд Symfony фреймворкийн талаар суурь ойлголттой болохын тулд юун түрүүнд дараах зүйлүүдийг таньж мэдсэн байх шаардлагатай. Үүнд: Project Application Module Form Action Layout Template Өгөгдлийн сан “Symfony” төсөл үүсгэх:
  • 23. Ингэхийн тулд өөрийн серверийн root директорд орсон байх шаадлагатай ба доор кодыг ажиллуулна symfony generate:project pro_name Application үүсгэх: “Symfony” төсөл ерөнхийдөө биеэ даасан Application-уудаас тогтох ба хэдэн ч Application байж болно. symfony generate: app applic_name Module үүсгэх: Application-нд модуль үүсгэдэг. Модуль үүсгэхдээ 2 төрлөөр үүсгэдэг. Үүнд энгийн модуль үүсгэх, өгөгдлийн сангаас модуль үүсгэх гэж 2 төрөл байна. symfony generate:module applic_name module_name symfony doctrine:generate-module app_name new_mod_name lib_Doctrine_modelname The MVC Architecture Хэрэв ямар бол “HTML” хуудас нэгэн framework ашиглахгүй “PHP” вэб бүрт нэг “PHP” файл гэсэн сайт дүрмээр хөгжүүлж байсан ажиллаж байсан байх. Тэдгээр “PHP” файлууд нь нэг ижил төрлийн бүтцийг агуулдаг: үүсгэх, ерөнхий тохиргоо, хүсэлтийн хуудастай холбоотой бизнес логик, баазаас өгөгдөл цуглуулах мөн эцэст хуудсыг үүсгэх “HTML” хуудас гэх зэрэг. Магадгүй “HTML” хуудсаас template-ын логик-ыг тусд ашиглаж байсан байх. Мөн баазын abstraction layer-ыг тусд нь бизнес логикоос нь ангид авч ашиглаж байсан байж ч магадгүй. Гэсэн ч ихэвчлэн эмхтгэхэд нилээн төвөгтэй маш их кодтой л үлддэг байсан. Хэдийгээр хийхэд нилээн хурдан боловч, хөгжүүлэх тусам өөрчлөлт хийхэд төвөгтэй болж, бараг өөр хүн хэрхэн хийгдэж, ажиллаж байгааг бараг ойлгохгүй болдог. Энэ бүх асуудлаас гарах сайхан шийдэл бас байна. Вэбийн хөгжилд өнөө үед кодоо зохицуулах хамгийн түгээмэл шийдэл бол MVC загварчлалын хэв маяг юм. Товчхондоо, MVC загварчлалын хэв маяг нь кодыг тань байх ѐстой зарчмых нь дагуу
  • 24. зохицуулахыг тодорхойлдог. Энэ хэв маяг нь кодуудыг 3 давхаргад (layer) –т хуваан авч үздэг. o The Model давхарга бизнес логикийг тодорхойлдог (өгөгдлийн бааз мөн энэ давхаргад хамаарна). Symfony бүх класс болон Model-той холбоотой бүх файлууд lib/model/ хавтаст хадгалагдана. o The View хэрэглэгч ямар зүйлтэй харицаж байгаа байдал(template engine энэ давхаргын нэг хэсэгт орно). Symfony-д голдуу View давхарга нь PHP template-ээр үүсдэг. Тэд өөр өөр templates/ хавтасд хадгалагддаг. o The Controller бол хэсгээс View давхарга Symfony-ыг суулгах хэрэглэгчээс хүссэн руу дамжуулах Model-ыг үед өгөгдлийг Model дуудах багахан код. бүх хүсэлт front controller-р зохицуулагддаг жишээтэй (index.php ба frontend_dev.php). Эдгээр контроллорууд нь яг жинхэнэ ажиллах action-уудыг Тэдгээр action-гууд логикоор module-уудад бүлэглэгдэн байрладаг. төлөөлдөг.
  • 25. Зураг 2.4 MVC Architecture Хамгаалалт Ерөнхийдөө generate:app task нь вэб-ын орчинд хамгийн их тархсан 2 төрлийн аюулаас хамгаалагдсан байдаг. Symfony нь бидний өмнөөс автоматаар хамгаалалтыг авдаг. XSS дайралтаас хамгаалж гаралтын хамгаалалт (output escaping) идэвхждэг, CSRF дайралтаас хамгаалж random хамгаалалт хийгддэг. Мэдээж, дараах сонголтуудын ачаар өөрөө тохируулах боломжтой. escaping-strategy: Идэвхжүүлэх эсвэл унтраах output escaping
  • 26. csrf-secret: Формын session-ийн токенийг идэвхжүүлэх Хэрэв XSS (http://en.wikipedia.org/wiki/Cross-site_scripting) болон CSRF (http://en.wikipedia.org/wiki/CSRF) талаар мэдлэггүй бол, эдгээрийн талаар судлаж, олж мэдэж болох юм. Директори-ийн бүтцийн тохиргоо: Шинээр үүсгэсэн төсөлдөө хандахаасаа өмнө вэб сервер нь хандаж өөрчлөх боломжтой байх cache болон log директоруудын тохиромжитой түвшиний зөвшөөрөл (permission)-г нь тавьж өгөх шаадлагатай. $ chmod 777 cache/ log/ SCM хэрэглэгчдэд зориулсан зөвлөгөө: Symfony зөвхөн тухайн төслийн cache/ болон log/ 2 л директорид бичигддэг. Энэ 2ын контент нь таны SCM-с ignore хийгдсэн байх шаардлагатай (хэрэв та Subversion хэрэглэдэг бол тухайлбал svn:ignore гэж бичнэ). Вэб серверийн тохиргоо Энгийн арга:Хэрэв төслөө вэб root-ийнхээ аль нэг хэсэгт үүсгэсэн бол та аль хэдийн браузераараа хандах боломжтой. Мэдээж ингэсэн тохиолдолд ямар нэгэн тохиргоо байхгүй ба config/database.yml файл руу браузераараа хандах боломжтой болох учираас хэр муу үр дагавар байгааг та ойлгох бизээ. Хэрэв хэрэглэгч таны вэб сайт symfony дээр хийгдсэнийг мэдвэл, тэр таны маш их чухал файлууд руу хандах боломжтой болно гэсэн үг. Хэзээ ч жинхэнэ сервер дээр ингэж суулгаж болохгүй. Та дараагийн хэсгийн уншиж хэрхэн вэб серверт тохируулж тохиргоог хийхийг сурна. Сайн арга: Хамгийн сайн дадал бол зөвхөн вэб браузераар хандаж болох бүхий л файлуудаа жишээ нь: javascript, stylesheets болон зурагнуудаа вэб root директори-тоо байрлуулах арга юм. Defaul-аар нь зөвлөхөд symfony төслийнхөө web дэд директори дотроо хадгалаарай.
  • 27. Хэрэв та энэ директори руугаа орвол та вэб-ийн нэмэгдэл(css болон зурагнууд) болон 2 төрлийн нүүрний удирдлагын файлуудыг (front controller) харна. Front controller бол вэб директори дотор байрлах шаардлагатай зөвхөн php файл. Бусад бүх php файлууд браузераар хандах боломжгүйгээр нуугдсан байна. Энэ нь хамгаалалтын хувьд нилээд сайн болно. Одоо Apache-ийн тохиргоог хаанаас ч хандах боломжтой болгох үүднээс өөрчилнө. httpd.conf тохиргооны файлыг нээгээд доорх тохиргоог хамгийн доор нь нэмнэ. # Be sure to only have this line once in your configuration NameVirtualHost 127.0.0.1:8080 # This is the configuration for your project Listen 127.0.0.1:8080 <VirtualHost 127.0.0.1:8080> DocumentRoot “/home/sfprojects/jobeet/web” DirectoryIndex index.php <Directory “/home/sfprojects/jobeet/web”> AllowOverride All Allow from All </Directory> Alias /sf /home/sfprojects/jobeet/lib/vendor/symfony/data/web/sf <Directory “/home/sfprojects/jobeet/lib/vendor/symfony/data/web/sf”> AllowOverride All Allow from All </Directory> </VirtualHost> /sf alias, нь default symfony хуудас болон вэб засварын toolbar (Web Debug Toolbar)ын зураг болон javascript-ийн файлуудтай холбогдох замыг заадаг. Windows-д Alias мөрийг дараах байдлаар өөрчилөх шаардлагатай. Alias /sf “c:devsfprojectsjobeetlibvendorsymfonydatawebsf” /home/sfprojects/jobeet/web гэсэн мөр нь мөн дараах байдлаар өөрчлөгдөнө. c:devsfprojectsjobeetweb Энэ тохиргоо нь Apache listen-ийг таны компютерт порт 8080 болгож, вэб сайт нь дараах URL-аар холбогдоно. (http://localhost:8080/) Та 8080 гэснийг дурын дугаараар сольж болох ба админы зөвшөөрөл шаардагддаггүй 1024-өөс дээш тоо байж болно. Орчин- (Environment) Хэрэв web/ директори-руу орж үзсэн бол index.php болон frontend_dev.php гэсэн 2 ширхэг php файл байгаа. Эдгээр файлуудыг front controllers гэж нэрлэдэг бөгөөд бүх
  • 28. application руу хандсан хүсэлтүүд тэдгээрээр дамжиж явагддаг. Гэвч яагаад заавал 2 front controller-уудтай байх хэрэгтэй гэж? Хоѐулаа ижилхэн application-ыг зааж байгаа боловч өөр өөр орчинд зориулагдсан. Хэрэв шууд серверын орчинг вэб хөгжүүлэгч л биш л бол танд хэд хэдэн орчинд ажиллах шаардлагатай байдаг. The development environment: Энэ орчин нь вэб хөгжүүлэгч нарт зориулагдсан бөгөөд тест хийх, алдаа (bugs)-ын мэдээлэл зэрэг давуу талуудтай. The test environment: Энэ орчин нь автоматаар application-г тест хийхэд зориулагдсан. The staging environment: Энэ орчин нь хэрэглэгч application-г шалгахад зориулагдсан. The production environment: Энэ орчин нь эцсийн хэрэглэгчидэд зориулагдсан. Юу нь орчинг онцгой, цорын ганц болгодог вэ? Тухайлбал хөгжүүлэлтийн орчин (development environment) нь, application-нь алдааг хялбар засахын тулд хүсэлтүүдийн нарийн мэдээллийн лог хийх шаардлагатайн. Харин өөрчлөлт орсон кодууд зөв ажиллаж байгааг хянахын тулд cache систем идэвхгүй байх шаардлагатай. Тиймээс хөгжүүлэлтийн орчин нь хөгжүүлэгчид зориулж хийгдсэн байх ѐстой. Хамгийн сайхан жишээ бол exception гарч ирэх үе юм. Хөгжүүлэгчид алдааг маш хурдан олоход тусалж, symfony браузер дээр сүүлийн хүсэлтүүдийг агуулсан бүх exception-г мэдээлэлтэй нь хамт харуулдаг. Харин Production environment орчины үед cache-ын давхарга идэвхижсэн байх ѐстой байдаг ба мэдээж application бүх нарийн алдааны оронд ердийн алдааны мессежийг харуулдаг. Тиймээс production environment орчин нь ажиллагаа болон хэрэглэгчдэд зориулж сайжруулагддаг.
  • 29. Хэрэв front controller файлуудыг нээвэл, контентууд нь хөгжүүлэх үеийн (environment) тохиргооноос бусад нь ижилхэн байгааг олж харна. // web/index.php <?php require_once(dirname(__FILE__).‟/../config/ ProjectConfiguration.class.php‟); $configuration = ProjectConfiguration::getApplicationConfiguration(„frontend‟, „prod‟, false); sfContext::createInstance($configuration)->dispatch(); Вэб debug toolbar нь мөн орчны хэрэглээний бас нэгэн онцлог жишээ бөгөөд зөвхөн хөгжүүлэх үеийн орчингийн бүх хуудсанд харагдах бөгөөд tab бүрд өөр өөр маш олон мэдээллийг агуулсан холболтыг харуулдаг. Тухайлбал тухайн үеийн application-ны тохиргоо, хүсэлтүүдийн log-ууд, өгөгдлийн баазад хийгдсэн SQL хүсэлтүүд, санах ойн мэдээлэл, хугацааны мэдээлэл зэрэг орно. 2.4 “Jquery” жаваскрипт сангийн судалгаа JQuery бол HTML ба JavaScript–ийн хоорондох ажиллагааг зохицуулдаг, нээлтэй эх бүхий JavaScript–ийн фреймворк юм. JavaScript–ийн фреймворкгүйгээр Document Object Model (DOM)–д хандахдаа маш олон мөр бичих шаардлагатай байсан бол jQuery–г ашигласнаар хүчирхэг бөгөөд үр дүнтэйгээр Document–д хандаж чадах ба дараахь үйлдлүүдийг гүйцэтгэж чадна.
  • 30. Үүнд: Хуудасны харагдах байдлыг өөрчлөх (Css нь document–ийг хэрхэн харагдах байдлыг тодорхойлдог арга юм. Гэвч зарим үед веб хөтчүүд ижил стандарт хэрэглээгүй үед асуудалтай тулгардаг. jQuery нь ижил стандартуудыг хөтөч хооронд холбож өгдөг гүүр болон ажилладаг. jQuery ашиглан css class–уудыг өөрчлөн, харагдах байдлыг өөрчлөж чадна) Хуудсны агуулгыг өөрчлөх (Ямар нэгэн өөрчлөлт хийхэд хязгаарлалт байхгүй. Текст өөрчлөх, зураг нэмэх эсвэл солигдох, жагсаалтууд дахин дараалагдах эсвэл бүх HTML файлын бүтэц дахин бичих ба өргөтгөх зэргийг зөвхөн ганцхан API ашиглан хийх нь хялбар юм) Хэрэглэгчийн үйлдэлд хуудаснаас хариу үзүүлэх (jQuery–ийн сан нь олон тооны үйлдлийг барьж авах сайн аргатай, жишээ нь хэрэглэгч холбоос дээр дарах гэх мэт) Хуудсанд эффект нэмэх (Үр дүнтэй интерактив байдлыг бий болгохын тулд дизайнер нь хэрэглэгчийг visual feedback-аар хангах хэрэгтэй байдаг. Энэ шаардлагыг jQuery library эффектүүдийн массиваар хангаж өгдөг. Жишээ нь: Fades ба Wipes, шинэ аргуудын toolkit шиг) Хуудсыг дахин ачааллахгүйгээр мэдээллийг серверээс хүлээн авах (jQuery сан нь процесоос хөтчийн тодорхой нарийн ажлыг салгадаг ба хөгжүүлэгчдэд Server–end функцуудад төвлөрөх боломж олгодог) JavaScript–ийн хийж болох даалгавруудыг хялбарчилдаг (jQuery нь JavaScript–ийн бүхий л хийж чадах зүйлийг хялбар, илүү хялбараар хийх боломжоор хангаж өгдөг) 2.5 UML технологийн судалгаа Нэгдсэн загварчилгааны хэл буюу Unified Modeling Language(UML) нь програм хангамжийн системүүдийг загварчлах тодруулбал програм хангамжийн системийн бүрдэл хэсгүүдийг дүрслэх, тодорхойлох, байгуулах болон бичиг баримт үүсгэхэд зориулагдсан график хэл юм. UML загварын гол зорилгууд:
  • 31. 1. Хэрэглэгчдэд ашиглахад бэлэн, илэрхийлэгдсэн визуаль загварын хэлийг бэлтгэж өгөх 2. Системийн гол ойлголтуудыг үзүүлэх мэргэшсэн механизмуудаар хангах 3. Тодорхой нэг програмчлалын хэл ба систем хөгжүүлэх процессоос бие даасан байх 4. Загварын хэлийг ойлгох албан ѐсны үндэс сууриар хангаж өгөх 5. Объект хандлагат хэрэгслийн борлуулалтын өсөлтийг урамшуулах 6. Collaboration, framework, pattern зэрэг систем хөгжүүлэх өндөр түвшний ойлголтуудыг дэмжих 7. Шилдэг практик үйл ажиллагааг бүрэлдүүлэх UML диаграмууд Програмын шаардлагыг объект хандлагат загварчлалаар тодорхойлохын тулд тусдаа боловч хоорондоо холбоотой , объект хандлагат 5 диаграмыг үндэс болгон ашиглана. Ихэнх тохиолдолд, системийн шинжээч нь бизнесийн хэрэгцээ шаардлагын талаарх бүрэн тодорхойлолт авахын тулд үндсэн 5 диаграмыг ашигладаг. Гэсэн хэдий ч, зарим тохиолдолд шаардлагыг хангалттай тодорхойлохын тулд 3 эсвэл 4 диаграм нь л ашиглагдах тохиолдол бас байдаг. Эдгээр 5 диаграмд: - Ажлын явцын диаграм (use case): Систем яаж ашиглагдах вэ гэдгийг тодорхойлох зорилготой. - Класс диаграм: Зорилго нь шинэ системд хэрэгтэй объектуудыг тодорхойлох явдал юм. Класс диаграмд объектын шинж чанар, төлөв байдлууд нь бүгд тодорхойлогдсон байх ѐстой. Ерөнхийдөө энгийн түвшний диаграм нь системийн бүх классууд тэдгээрийн хоорондын уялдаа холбоог харуулахад ашиглагдана. Хамтын ажиллагааны диаграм (collaboration): Ямар объект өгөгдсөн функцтэй ажиллах вэ гэдгийг тодорхойлно. Энгийн хамтын ажиллагааны диаграм нь функцийг гүйцэтгэхийн тулд объектууд тэдгээрийн харилцан хамаарал, тэдгээрийн хооронд дамжигдаж буй мэдээллүүдийг дүрсэлнэ. - Дэс дарааллын диаграм (sequence): Хамтын ажиллагааны диаграм дээр дүрслэгдэх мэдээллүүдийн өөр нэг дүрслэл юм. Гэхдээ бага зэрэг ялгаатай дүрслэгдэнэ. Объектуудын хамтын ажиллагааг харуулахаасаа илүүтэйгээр тэдгээрийн хооронд дамжигдах мессежүүдийн дарааллыг чухалчилж харуулна. Дараалал нь дээрээс
  • 32. доош чиглэлд зурагдана. Дэс дарааллын диаграм болон хамтын ажиллагааны диаграм нь нийлээд харилцан ажиллагааны(interaction) диаграмыг бүрдүүлнэ. Төлөв байдлын диаграм (statechart): Объект бүрийн хувь дахь төлөв байдлуудыг дүрслэнэ. Класс бүрд нь төлвийн диаграм зурагдана. Хүрхрээ загвар Програм хангамжийн хөгжүүлэлтийн маш олон процесс загваруудаас хүрхрээ загвар ашиглан хийх вэб сайтанд байрших мэдээлэл Е хичээлийн стандартын хэлбэртэй байна. 2.6 E хичээл гэж юу вэ? Танхимын сургалт нь тогтсон хүгацаандаа нэг л удаа заадаг. Энэ нь удаан ойлгодог, мөн янз бүрийн шалтгаанаар хичээлдээ сууж амжаагүй тохиолдолд тухайн хичээлийг ойлгохгүй өнгөрөх нь бий. Тиймээс цахим сургалт нь танхимын учир дутагдалтай талыг нөхөж хичээлийн агуулгыг гэр, сургууль дээрээсээ, компьютер болон гар утаснаасаа үзэх, ин хичээлд оролцох, багш нар хичээл зохион явуулах таатай орчинг бүрдүүлсэн байдаг. Миний дипломын ажлын хийх ѐстой зүйл бол энэ үйл ажиллагааг цахим хэлбэрт оруулах юм. Ингэснээр бидний цаг хугацаа, хүч хөдөлмөр хэмнэгдэж интернетээр цахим хэлбэрээр сургалт явуулах боломж бүрдэж байгаа юм. Тиймээс цахим сургалт нь танхимын учир дутагдалтай талын нөхөж хичээлийн агуулгыг баяжуулан тал бүрээс судлах гэр болон сургууль зуслан гээд интернетийн сүлжээ бүхий газраас хичээлийг судлах ,оролцох даалгавар гүйцэтгэх зэрэг өргөн боломжит орчин нөхцөл бүхий дэвшилтэт арга технологи билээ. 2.6.1 E хичээлийн давуу тал хамрах хүрээ E-хичээл нь интернетийн орчин нөхцөл бүхий л газарт цагын хязгааргүй үнэ төлбөргүйгээр хэмжээ хязгааргүй олон нийтэд асар хурдтай түгээж болдгоороо бусад төрлийн хичээл заах арга технологиос эрс ялгардаг юм. Хамрах хүрээ нь зөвхөн мэргэжлийн ангийн оюутан багш нар бус интернет хэрэглэх чадвартай хүн бүхэнд нээлттэй төрөл бүрээр баяжуулан судлах бүрэн боломжтой байдаг нь орчин үеийн залуусын шаардлагад бүрэн нийцэж байгаа билээ. 2.6.2 E хичээлийн стандарт
  • 33. I. Эхний хэсэг: /Лекц, семинар, лаборатори/ Сэдвийн нэр Дэд сэдвийн нэр /байгаа тохиолдолд/ Түлхүүр үг, нэр томъѐоны тайлбар Товч хураангуй /2-3 өгүүлбэрээр илэрхийлнэ/ Үндсэн хэсэг: /Лекц, Семинар, Лаборатори/ 8-10хуудас /А4 формат,мөр хоорондын зай 1/ Лекцээ хураангуйлсан дуу оруулах Аудио, видео бичлэг Animation оруулах /Ж: Тоног төхөөрөмжийн эд анги, томъѐоны гаргалгаа, график/ Ашиглах материал: Үндсэн сурах бичиг / Хуудасны дугаар /Вэб хуудас, холбогдож болох линкууд Нэмэлт материалуудыг татаж авах байдлаар тавих/ Лекцийн материалаа өөрөөр баяжуулсан байх / Төгсгөлийн хэсэг: 15-30 Тестийн асуулт, хариултын хамт / Лекц тус бүрт эсвэл бүлэг бүрт байх / Ганцаарчилан болон багаар гүйцэтгэх бие даалтын ажлын даалгавар, заавар Е хичээл техникийн шаардлага: 1. Фонд ижил /Unicode буюу стандарт фонд ашиглах/ 2. Үсгийн хэмжээ 14-18-ийн хооронд, ижил уншихад гаргацтай 3. Текстээ зураг хэлбэрээр биш 4. Нэг TAB дээр дуудагдах /Лекц, семинар, текст гэх мэт/ 5. Сорил, тестнээс буцах товч байх /нүүр хуудасруу/
  • 34. 6. Зураг оруулахдаа чанартай байх /300dpi / E-хичээлийг хэрхэн судалж үзэх талаар оюутанд хүргэх зөвлөмж, санамжийг II. боловсруулах. Е-Хичээлийн материалыг электрон хэлбэрээр хүлээлгэж өгөхдөө эмх цэгцтэй, III. ерөнхий дуудагдах хуудсыг ил гарган (жич: index.html хэлбэрээр нэрлэнэ), лекц семинар тестүүдийг тус тусад нь фолдерт хийсэн байхмөн source файл хавсаргасан байна. 2.7 Бүлгийн дүгнэлт Дипломын төслийн судалгааны үе шатад процесс загваруудын мэдлэгээ сэргээн хүрхрээ загварыг сонгон ажиллах болсон ба сэдэвтэй холбоотой ашиглагдах технологиудыг судалж, Ubuntu үйлдлийн систем дээр MySQL болон Symfony фреймворкийг суулгаж, туршиж үзсэн.
  • 35.
  • 36. Гуравдугаар бүлэг: ВЭБ САЙТЫН АГУУЛГА, ЗАГВАР, ҮНДСЭН БҮТЭЦ Энэ бүлэгт системийн харагдах байдал болон дотоод цэснүүдийн байрлал, задаргаа онцлог булангуудын харагдах байдал түүний бүтэц ашиглах зааврын талаар ойлголттой болно. 3.1 E хичээлийн стандартын нийцэл E хичээлийг бэлтгэхдээ өнгөний сонголт хүний нүдэнд ядаргаа үүсгэхгүй байх, сонирхол төрөлхүйц, мөн Flash ашигласан байх, хөдөлгөөн дуу дүрс агуулсан, байх нэмэлт материал хавсаргасан байх, Online сорил агуулсан байх зэрэг шаардлагууд нь уг сайтад багтсан байгаа билээ.
  • 37. нүүр хуудас нь цөөн тооны зөвхөн хэрэгцээт цэсээр дүүрэн байх ба мэдээ мэдээлэл хэсэгт хамгийн сүүлд нэмэгдэж орсон бүх төрлийн мэдээ жагсаалт хэлбэрээр харагдах юм. Е хичээл цонхонд видѐо болон зураг дуу дүрс flash хичээлүүд байрших юм. Вэб сайтын зорилго чиглэл Вэб сайтын нэр automatic.mn Автомат систем гэсэн утгатай, автомат гэсэн үндсээс гарсан латин үг юм. Уг сайт нь үйлдвэрлэлийн технологи дизайны сургуулийн хөнгөн үйлдвэр машин судлал хэвлэлийн технологийн багийн сайт болж байнгын ажиллагаатай E хичээл байрлуулах болон бэлтгэхэд зориулагдан гарсан тэнхимийн анхны тогтмол ажиллагаатай албан ѐсны эрхтэй онцлог вэб хуудас юм. Вэб хуудсыг мэргэжлийн ангийн XVA ,XYMMT I.LI кодтой оюутнуудад зориулагдсан бөгөөд эдгээр оюутнууд тусгай түлхүүр үгээр бүртгүүлэх лекц, семинар, лабораторийг тухайн долоо хоногт үзэж судлах, ирцээ бүртгүүлэх хичээл уншиж судлах, дэлгэрүүлэх ижил төстэй хичээл арга технологитой харьцуулах дэлгэрүүлэх болон онлайн хэлбэрээр тест өгөх байдлаар уг сайтад зочлож хэрэгцээт мэдээллээ авхад сайтын үндсэн зорилго оршино. Агуулга Автоматик сайтын зорилго нь E хичээл бэлтгэх, нийтэд түгээх, E хичээлийн чанарт хяналт явуулах гэсэн цөөн тооны чухал зорилгоор бүтээгдсэн бөгөөд хэрэглэгчид аль болох элдэв маяг чимэггүй үндсэн зорилго руу чиглэсэн хурд багатай сүлжээнд түргэн ачаалагдах байдлаар энгийн байхаар хийгдсэн. Энэ нь бусад төрлийн хувийн болон тэнхимийн вэб сайтуудаас ялгарах гол онцлог юм. Уг сайтад I.LI354, I.LI311, I.LI392, I.LI395 хичээлийн лекц, семинар, лаборатори болон баяжуулж хөгжүүлсэн хувилбар видео болох зурган хэлбэрээр агуулагдах бөгөөд эндээс оюутнууд өөрсдийн хайж эрсэн мэдээллээ авах бөгөөд нэмэлт мэдээлэл болон мэдлэгээ дээшлүүлэх талаар хичээлийг нийтэлж гаргасан багш болон админд хүсэлт илгээх замаар холбоо барьж нэмэлт мэдээлэл авах боломжтой байгаа нь давуу тал болж байгаа билээ.
  • 38. Энэ зураг дээр гаднах цэсний байрлал болон дотоод задаргаа тодорхой харагдаж байна. 3.2 Вэб сайтын хайлтын хэсэг Automatic.mn сайт бол өдөр бүр мэдээлэл шинэчлэгдэж хуучин мэдээлэл архивлагдан хураангуй болох зарчмаар ажилдаг байхаар бодож төлөвлөсөн билээ. Тиймээс хуучин мэдээлэл архиваас хайж олох шаардлага гардаг үүнийг хайлтын систем төгс гүйцэтгэнэ. Гагцхүү зөв үгийг сонгох ѐстой. 3.3 Бүртгэл болон нэвтрэх хэсэг Бүртгэх хэсэгт түлхүүр үг ашиглан бүртгүүлснээр нэвтрэх эрх авч нийтлэгдсэн хичээл болон бусад мэдээлэлтэй чөлөөтэй танилцах судлах боломж бүрдэнэ. Зайлшгүй
  • 39. түлхүүр үг хэрэглэх шаардлага нь сайтыг хөтлөн явуулах aдмин болон багшид бүртгэлтэй хүмүүсийн мэдээлэлтэй танилцах хяналт явуулахад амар хялбар байх ба цаашлаад онлайн хичээлийн ирц бүртгэлийн програм зохиоход дөхөм болж өгнө. 3.4 Багийн гишүүд болон багш нарын оролцоо Тэнхимийн гишүүд болон багш нар нь оюутан болон энгийн зочидоос давуу эрхтэй байх бөгөөд уг хуудсыг хөтлөн явуулах , хяналт тавих алдаа дутагдлын засаж байнгын тогтмол ажиллагаа хангах үүрэгтэй. 3.5 Admin -тай холбоо тогтоох Сайтын үндсэн admin болох Б.Энмандах миний байнгын холбоо тогтоох facebook хаяг бүхий шууд холбоос , мөн тэнхимийн багш Д.Пүрэвмагнай facebook шууд холбоос
  • 40. ШУТИС -ийн интернет хаяг ҮТДС- ийн шууд хаяг Е -open school -ийн интернет хаяг болон багшийн вэб , оюутны вэб хаягтай шууд холбогдох замуудыг зааж өгнөсөөр хэрэглэгч дурын аргаар багш болон admin- тай холбогдож нэмэлт мэдээлэл хугацаа өнгөрсөн хичээл дахин судлах эрх авах зэрэг үйлдэл хийх боломжтой. 3.6 E хичээл бэлтгэх, байршуулах, засварлах, нийтлэх зааварчилгаа Automatic.mn сайтын удирдах дэлгэц нь монгол хэлээр ойлгоход хялбар цөөн тооны цэстэй. Мэдээ нийтлэх болон Е хичээл бэлтгэх зааврийн дагуу бэлтгэж сайтанд оруулах ба сайтанд оруулахад дараах зүйлсийг анхаарна. Үүнд 1. Текст мэдээ оруулахдаа тусгай үгийн фонд ашиглах тохиромжгүй тул түгээмэл фонд ашиглана. Тусгай фонд ашиглах тохиолдолд unicode converter буюу хөрвүүлэгч програм ашиглана. 2. Том хэмжээний зураг оруулах үед зургийг таслаж хэрэгтэй хэсгийг тасдаж авах. 3. Дүрс болох дуут мэдээлэл байршуулах тохиолдолд интернет рүү хуулж оруулсан байх embed code ашиглах харуулах зэрэг ойлголтууд мэддэг эзэмшсэн байх шаардлагатай. 3.7 E хичээлийн байрших хугацаа, хязгаарлалтыг шийдвэрлэх арга замууд Байрших хугацааг хязгаарлах олон арга зам байдаг байна. Үүний заримтай танилцая 1. Мэдээ оруулсан цагаас эхлэн хугацаа тоолох. Энэ 168 цаг тоолоод тухайн мэдээлэл уншигдахгүй болж архивлагдах 2. Мэдээ байршуулаад дууссах өдөр цаг минутын нарийвчлан зааж өгөх 3. Admin болон мэдээг нийтэлсэн багш мэдээг засварлах, архивлах, устгах 4. Нийтэлсэн мэдээлэлд зочдын хандалтаар зааж өгөх, энэ арга нийт хэдэн удаа мэдээ унших тоог анрийвчлан зааж өгөх явдал юм
  • 41. 3.8 Бүлгийн дүгнэлт Тус бүлэгт www.Automatic.mn сайтын ерөнхий гадаад үзэмж харагдах байдал цэснүүдийн байрлал, доторхи задаргаа , бүртгэл болон admin -тай холбоо тогтоох шууд холболт , Е хичээл байршуулах зэрэг чухал ойлголтуудыг авч үзлээ.
  • 43. Энэ бүлэгт системийн эцсийн хэрэглэгчдийг тодорхойлсон болно. Ингэснээр I.LI354 хичээлийг Е сургалтанд бэлтгэх дипломын талаар улам гүнзгий ойлголттой болох юм. 4.1 Системийн ерөнхий ойлголт Энэ вэб системийг их дээд сургуулийн багш тэнхимийн гишүүд болон оюутанууд ашиглах юм. Е сургалтанд бэлтгэх дипломын ажлаар дараах үйлдлүүд хийгдэнэ. Сайтад Е хичээл хугацааны хязгаартай байршина. Үүнийг системийн админ буюу багш Е хичээл болгон бэлтгэж оруулна. Энэ нь зөвхөн мэргэжлийн ангийн сайтад бүртгэлтэй оюутнуудад харагдах юм. Оюутан хичээлийг уншиж судлаад Е хичээлийн стандартын дагуу цахим хэлбэрээр шалгуур бөглөнө. (Online testing) гарсан үр дүнг системийн админд болон багшид мэдээлж байхаар вэб сайт хийгдсэн. Мэргэжлийн ангийн сайтад бүртгэлтэй оюутан сайтад нэвтэрч ороод мэдээлэл судалхад зарцуулсан хугацааг (Counter) тоолуур тоолж дуусаад гарсан үр дүнг системийн админд болон багшид мэдээлэл илгээх юм. Энэ үйл явц нь системийн админд болон багшид сайтыг удирдах, хяналт тогтоох, тогтвортой ажилгааг хангахад чухал үүрэгтэй. 4.2 Хэрэглэгчийн онцлог Системд ерөнхийдөө хэрэглэгчийн шаардлагаас хамааран 3 төрлийн хэрэглэгчтэй байна. Үүнд: Бүртгэлгүй хэрэглэгч Бүртгэлтэй хэрэглэгч Системийн админ зэрэг юм. Бүртгэлгүй хэрэглэгч: Системд бүртгэлгүй хэрэглэгчийн хувьд системээс зөвхөн ерөнхий мэдээлэл авах Админтай холбоо тогтоож бүртгэлтэй хэрэглэгч болох хүсэлт гаргах эрхтэй. Бүртгэлтэй хэрэглэгч: Бүртгэлтэй хэрэглэгч хийх үйлдлээсээ хамааран хоорондоо ялгаатай байна.
  • 44. Үүнд: Багш Багш нь өөрийн эрхээр системд нэвтрэн орсоноор Е хичээл оруулах,өөрийн хичээлийг шинэчлэх, шаардлагатай гэж үзвэл засварлах, устгах зэрэг үйлдлүүдийг гүйцэтгэнэ. Оюутнуудын асуусан сэдвүүдэд хяналт тавих хичээлд өөрчлөлт оруулах болон нэмэлт хичээл, үүрэг даалгавар өгөх зэрэг үйлдлүүдийг гүйцэтгэнэ. Мөн хүсэлт гаргасан хэрэглэгчийг сонгон бүртгэлтэй хэрэглэгч болгох. Сайтын үндсэн бүтэц харагдах интерфэйсийг, агуулгыг өөрчлөх зэрэг үйлдлүүдийг гүйцэтгэх эрхтэй байна. Оюутан Системд бүртгэлтэй бөгөөд өөрийн нэвтрэх нэр, нууц үгээр нэвтэрч орсноор хичээлийн талаар санал сэдэл дэвшүүлэх болон дипломын сэдвүүдээс сонголт хийх,сэдвүүдийн дэлгэрэнгүй мэдээлэл харах боломжтой. Системийн админ: Админ нь системийг ерөнхийд нь удирдан зохицуулах ба нийт системийн хэрэглэгчдэд хяналт тавина. Мөн хүсэлт гаргасан бүртгэлгүй хэрэглэгчдэд хяналт тавих шаардлагатай гэсэн хэрэглэгчийг бүртгэж авах оруулах мөн сэдэв батлах системийн хэрэглэгчдэд хязгаарлалт тавих зэрэг давуу эрхтэй байна. Мөн системийн админ нь оюутан болон багшын оруулсан сэдвүүдэд хяналт тавин шаардлага хангаагүй буюу өөр утга агуулга бүхий сэдвүүдийг хэрэглэгчдэд харуулахгүй байх боломжтой. Үүний тулд тухайн мэдээг нийтлэгдээгүй гэсэн холбоосыг дарсанаар тухайн нийтлэл хэрэглэгчдэд харагдахгүй. Бүтээгдэхүүний эцсийн хэрэглэгчид Дээр тодорхойлсон системийн ерөнхий шаардлагаас системд хандах эрхтэй дараах хэрэглэгчдийг тодорхойлсон. Үүнд:  Админ:  Багш  Оюутан
  • 45. Системийн админ доорх үйлдлүүдийг гүйцэтгэнэ.  Багш болон оюутан, энгийн хэрэглэгчдэд хяналт явуулах  Тэнхимээс зохиогдох арга хэмжээ, зарлалын чанартай мэдээг түгээж байх  Нийтэлсэн мэдээг хэрэглэгчдэд харуулах  Архивлагдсан болон хуучирсан мэдээг шинэчлэн оруулах Багш доорх үйлдүүдийг гүйцэтгэнэ.  Оюутнуудын бүртгэлийн сан үүсгэх  Хичээл болон дипломын сэдэв оруулах  Өөрийн оруулсан хичээлийн агуулгыг өөрчлөх  Өөрийн оруулсан хичээлийг устгах  Өөрийн оруулсан хичээлийн хугацааг сунгах  Мэдээлэл судлах оюутанг зөвшөөрөх  Мэдээлэл судлах оюутанг хасах  Оюутны хичээл судлах чадварыг дүгнэх  Хайлт хийх нэмэлт даалгавар өгөх Оюутан доорх үйлдлүүдийг гүйцэтгэнэ.  Бүртгэл үүсгэх  Е хичээл болон бусад агуулгатай танилцах судлах,оролцох  Хичээл болон дипломын сэдэв дэвшүүлэх  Сайт болон Е хичээлийн талаар бусдад түгээн дэлгэрүүлэх  Админ болон Е хичээл эрхлэн оруулсан багштай байнгын холбоо тогтоох гэсэн байдлаар байнгын холбоо хамааралтай хамтын ажилгаатай явагдана.
  • 46. Системийн оролцогчид болох оюутан, багш, системийн админ хоорондын хамааралыг илэрхийлсэн зураг.
  • 47. 4.3 Automatic.mn нүүр хуудасны ерөнхий харагдах байдал
  • 48. Ерөнхий бүтэцийг блок схемээр харуулсан загвар. 1. Нүүр хуудсаас тэнхим буланд байрлах агуулгатай шууд холболтоор холбогдоно. 2. Эхлэл хуудаснаас мэдээлэл болон бусад туслах цэсрүү шууд холболтоор холбогдоно. 3. Лекц буланд оруулсан хичээл нүүр хуудсанд давхар харагдах байдлаар хийгдсэн. энэ нь гэдрэг холболтоор холбогдоно. 4. Хичээл цэсэнд оруулсан мэдээлэл нүүр хуудсанд давхар харагдах ба сүүлд шинээр орсон байдлаар харагдхаар хийгдсэн. энэ нь гэдрэг холболтоор холбогдоно. 5. Диплом цэстэй шууд аргаар холбогдох ба диплом буланд орсон мэдээлэл түүний дэлгэрүүлсэн хувилбарыг холбоо барих булангаас админтай холболгдох замаар нэмэлт мэдээлэл авах байдлаар ашиглана 6. Програм нь цэс нь нүүр хуудастай шууд холболтоор холбогдох ба шинээр орсон file нүүр хуудсанд харагдахгүйгээр байрлах юм. 7. Лекц доторхи мэдээллийг зочин уншаад дэлгэрүүлэх болон асууж зөвлөх хэрэгцээ шаардлага гарсан үед холбоо барих цэснээс админтай холбогдож нэмэлт мэдээлэл авах байдлаар хичээлийг уншиж судлана, энэ нь гэдрэг холболт болно
  • 49. 8. Хичээл цэсэнд нийтлэгдэх мэдээг админтай холбоо тогтоох нэмэлт материал авч судлах байдлаар мэдээг уншиж судлана. Энэ нь мөн гэдрэг холболт болно 9. Диплом цэсэнд орсон дипломын сэдвүүд болон өмнөх жилийн оюутнууд нь сэдвээр авч хамгаалж байсан мэдээллийн талаар санал солилцох асууж лавлах хэрэгцээ шаардлагыг холбоо барих цэснээс админтай холбоо тогтоон гүйцэтгэнэ. Энэ нь мөн л гэдрэг холболт болно 10. Програм буланд орсон шинэ програм суулгах заавар зөвөлгөө шинэчлэх хувилбар мөн өөр нэр төрлийн програт ашиглах зааврыг админтай холбоо барих хэсгээс авна. Энэ нь гэдрэг холболт болно 4.4 Automatic.mn вэб сайтын нүүр хуудас кодчилолын түвшинд дараах байдалтай бичигдэнэ. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <link rel="shortcut icon" href="/images/favicon.ico" /> <link rel="stylesheet" type="text/css" media="screen" href="/css/main.css" /> <script type="text/javascript" src="/js/jquery-1.9.1.min.js"></script> <script type="text/javascript" src="/js/jquery.cycle.all.js"></script> <script type="text/javascript" src="/js/global.js"></script> </head> <body> <div id="section-head" class="clearfix"> <div class="encapsulate">
  • 50. <div id="util"> <ul id="top-menu"> <li><a href="/user/login">Нэвтрэх</a></li> <li class="contact"><a href="/user/new">Бүртгүүлэх</a></li> </ul> </div> <div id="logo"><img src="/images/logo.png" /></div> <div id="search-box"> <div class="search-box-wrap"> <form> <input type="text" class="search" /> <a href="#" class="search-button"><em>Search</em></a> </form> </div> </div> </div> <div id="nav-primary"> <ul> <li><a href="/" >ЭХЛЭЛ</a></li> <li> <a href="/page/introduction" >ТЭНХИМ</a> <div class="dropdown"> <a href="/page/introduction">Танилцуулга</a> <a href="/page/vision">Зорилго</a> <a href="/page/about">Бидний тухай</a> </div> </li> <li> <a href="/news/news">Мэдээ</a> <div class="dropdown"> <a href="/news/information">Мэдээ мэдээлэл</a> <a href="/news/video">Видео</a> <a href="/news/competition">Уралдаан тэмцээн</a> <a href="/news/picture">Зургийн цомог</a> </div> </li> <li> <a href="/news/lecture">Лекц</a> <div class="dropdown"> <a href="/news/1week">I-р 7 хоног</a> <a href="/news/2week">II-р 7 хоног</a> <a href="/news/3week">III-р 7 хоног</a> <a href="/news/4week">IV-р 7 хоног</a>
  • 51. <a href="/news/5week">V-р 7 хоног</a> <a href="/news/6week">VI-р 7 хоног</a> <a href="/news/7week">VII-р 7 хоног</a> </div> </li> <li> <a href="/news/lesson">Хичээл</a> <div class="dropdown"> <a href="/news/ili354">I.LI 354</a> <a href="/news/ili311">I.LI 311</a> <a href="/news/ili392">I.LI 392</a> <a href="/news/ili395">I.LI 395</a> </div> </li> <li> <a href="/news/diplom">Диплом</a> <div class="dropdown"> </div> </li> <li> <a href="/news/program">Програм</a> <div class="dropdown"> </div> </li> <li><a href="/page/contactus" >ХОЛБОО БАРИХ</a></li> </ul> </div> </div> <div id="main-content"> <div id="main" class="hastLeftColumn clearfix"> <div id="leftColumn"> <h1>Мэдээ</h1> <ul class="left-menu"> <li > <a href="/news/information">Мэдээ мэдээлэл</a> </li> <li > <a href="/news/video">Видео</a> </li> <li > <a href="/news/competition">Уралдаан тэмцээн</a> </li> <li >
  • 52. <a href="/news/picture">Зургийн цомог</a> </li> </ul> </div> <div id="bodyColumn"> <div class="news_item"> <img width="200px" class="imgleft" src="/uploads/photo/201311/216/5291bbcd8d861.jpg"> <h3><a href="/news/show/id/230">Дурсамж</a></h3> <p> ХҮА-07 </p> <div class="clear infobar"> <div style="padding: 5px 0 0 5px;" class="left"> Нийтэлсэн:2013-11-24 16:41 <span style="color:red;"> </span> </div> <div class="right readmore"> <a href="/news/show/id/230">Дэлгэрэнгүй</a> </div> <div class="right sharebutton"> </div> <div class="clear"> </div> </div> </div> <div class="news_item"> <img width="200px" class="imgleft" src="/uploads/photo/201311/216/527ce4f9c46e5.jpg"> <h3><a href="/news/show/id/214">AUTOMATION Groupees avsan zurguud</a></h3> <p> автоматжуулалт түүх </p> <div class="clear infobar"> <div style="padding: 5px 0 0 5px;" class="left"> Нийтэлсэн:2013-11-08 21:18 <span style="color:red;"> </span> </div> <div class="right readmore"> <a href="/news/show/id/214">Дэлгэрэнгүй</a> </div> <div class="right sharebutton"> </div> <div class="clear"> </div> </div>
  • 53. </div> </div> </div> </div> <br/> <div id="footer"> <div id="footer-wrapper"> <div id="footer-top" class="clearfix"> <div class="copy"> Copyright © 2013. I.LI354 хичээлийг Е сургалтанд бэлтгэх дипломын төслийн хүрээнд хийж гүйцэтгэв. </div> <ul class="social-links"> <li class="facebook"><a href="#"><em></em></a></li> <li class="twitter"><a href="#"><em></em></a></li> <li class="linkedin"><a href="#"><em></em></a></li> <li class="google"><a href="#"><em></em></a></li> <li class="rss"><a href="#"><em></em></a></li> <li class="email"><a href="#"><em></em></a></li> </ul> </div> <div id="footer-bottom" class="clearfix"> <div class="our-address"> Монгол улс Сүхбаатар дүүрэг Бага тойруу <br/> Шинжлэх ухаан технологийн их сургууль <br/> Үйлвэрлэл технологи дизайны сургууль </div> <div class="our-phones"> + 976 96638295<br /> + 976 99909728 </div> </div> </div> </div> </body> </html> 4.3 Мэдээ булан кодчилолын түвшинд дараах байдалтай бичигдэнэ.
  • 54. <?php use_helper('Global')?> <div id="main-content"> <div id="main" class="hastLeftColumn clearfix"> <div id="leftColumn"> <h1><?php if($category_s) echo $category_s->getName()?></h1> <ul class="left-menu"> <?php foreach($categories as $cats):?> <li > <a href="<?php echo url_for('news/index?enname='.$cats>getEnname())?>"><?php echo $cats->getName()?></a> <?php if($category_s) : if($category_s->getId()==3||$category_s>getParentId()):?> <ul class="sub-rigth-menu"> <li><a href="<?php echo url_for('news/index?enname='.$cats>getEnname().'&type=5')?>">Семинари</a></li> <li><a href="<?php echo url_for('news/index?enname='.$cats>getEnname().'&type=6')?>">Лаборатори</a></li> </ul> <?php endif?><?php endif?> </li> <?php endforeach?> </ul> </div> <div id="bodyColumn"> <?php foreach($newss as $news):?> <div class="news_item"> <?php if($news->getType()==1): ?> <img width="200px" class="imgleft" src="/uploads/photo/<?php echo date("Ym", strtotime($news->getCreatedAt())) ?>/216/<?php echo $news>getImageOriginal() ?>"> <?php else:?>
  • 55. <img width="200px" class="imgleft" src="/uploads/post/<?php echo date("Ym", strtotime($news->getCreatedAt())) ?>/420/<?php echo $news->getImageOriginal() ?>"> <?php endif?> <h3><a href="<?php echo url_for('news/show?id='.$news->getId())?>"><?php echo $news>getTitle()?></a></h3> <p> <?php echo $news->getDescription()?> </p> <div class="clear infobar"> <div style="padding: 5px 0 0 5px;" class="left"> Нийтэлсэн:<?php echo time_ago($news->getCreatedAt())?> <span style="color:red;"> <?php if($category_s->getId()>52||$category_s>getId()==3||$category_s->getId()==2){ echo date('d',strtotime($news->getPublishedAt())strtotime(date('Y-m-d H:i:s'))); echo "- хоног үлдлээ"; } ?></span> </div> <div class="right readmore"> <a href="<?php echo url_for('news/show?id='.$news->getId())?>">Дэлгэрэнгүй</a> </div> <div class="right sharebutton"> </div> <div class="clear"> </div> </div> </div> <?php endforeach;?> </div> </div> </div> Бүртгэл болон нэвтрэх хэсэг кодчилолын түвшинд дараах байдалтай бичигдэнэ.
  • 56. Хэрэглэгч болон бүртгэлгүй хэрэглэгчийн ялгааг харуулсан зураг. <?php use_helper('Global'); $types = UserTable::getTypes(); ?> <div id="main-content"> <div id="main" class="hastLeftColumn clearfix"> <div id="leftColumn"> <h1>Хэрэглэгч</h1> <ul class="left-menu"> <li class="active"><a href="<?php echo url_for('user/login')?>">Нэвтрэх</a></li> <li><a href="<?php echo url_for('user/new')?>">Нууц үгээ мартсан</a></li> </ul> </div> <div id="bodyColumn"> <h1>Нэвтрэх</h1> <form action="<?php echo url_for("user/login")?>" method="POST"> <table> <?php echo $form ?> <tr> <td></td> <td><input type="submit" name="smt_signin" value="Нэвтрэх »" class="btnBlue"></td> </tr>
  • 57. </table> </form </div> </div> </div> Admin -тай холбоо тогтоох булан кодчилолын түвшинд дараах байдалтай бичигдэнэ. <div id="main-content"> <div id="recentUpdates" class="clearfix"> <div class="col1" style="width:1032px"> <div id="recent-products" class="product-list box"> <div class="item lecture"> <div class="wrap"> <h3><a href="#"><?php echo $page->getName()?></a></h3> <div style="padding: 10px;"> <?php if($page) echo $page->getBody();?> </div> </div> </div> </div> </div> </div> </div>
  • 58. 4.4 E хичээлийн байрших хугацаа, хязгаарлалтыг шийдвэрлэх арга замууд кодчилолын түвшинд дараах байдалтай бичигдэнэ. <?php class newsActions extends sfActions { public function executeIndex(sfWebRequest $request) { $query = Doctrine::getTable('News') ->createQuery('n') ->orderBy('n.created_at Desc'); if($request->getParameter('id')){ $query->where('n.extra_type=?',$request->getParameter('id'));} $this->category =Doctrine::getTable('Category') ->createQuery('cc') ->where('cc.enname=?',$request>getParameter('enname'))->fetchOne(); $this->category_s = $this->category; if($this->category->getParentId()==0){ $this->categories =Doctrine::getTable('Category') ->createQuery('cat') ->where('cat.parent_id=?',$this->category->getId())>execute(); }else{$this->categories =Doctrine::getTable('Category') ->createQuery('cat') ->where('cat.parent_id=?',$this->category>getParentId())->execute(); } if($this->category->getParentId()==0&&sizeof($this->categories)==0){ $query->where('n.category_id = ?',$this->category->getId()); $this->categories =Doctrine::getTable('Category') ->createQuery('cat') ->where('cat.parent_id=?',$this->category>getParentId())->execute(); }elseif($this->category->getParentId()==0&&sizeof($this->categories)>0){ $query->innerJoin('n.Category c')->where('c.parent_id = ?',$this->category>getId()); }else{ $query->where('n.category_id = ?',$this->category->getId());} if($request->getParameter('type')){ $query->andWhere('n.is_top = ?',$request->getParameter('type')); } if($this->category->getId()>52&&$this->category->getId()<62||$this->category->getId()==3||$this>category->getId()==2){ $query->andWhere('n.published_at > ?',date('Y-m-d H:i:s'));} $this->category =Doctrine::getTable('Category')->find($this->category->getParentId()); $this->id = $request->getParameter('id'); $this->page = $request->getParameter('page', 1); $this->pager = new sfDoctrinePager('News', sfConfig::get('app_max_news_on_list')); $this->pager->setPage($this->page); $this->pager->setQuery($query); $this->pager->init(); $this->newss = $this->pager->getResults();} public function executeShow(sfWebRequest $request) { $this->news = Doctrine::getTable('News')->find(array($request->getParameter('id'))); $this->forward404Unless($this->news); if($this->news->getType()==1) {
  • 59. $this->photos = Doctrine::getTable('NewsPhoto') ->createQuery('n') ->where('n.news_id=?',$this->news->getId())->execute(); Бүлгийн дүгнэлт Тус бүлэгт системийн ажлын дараалал гүйцэтгэлийн талаар дэлгэрэнгүй оруулж өгсөн билээ. Системийн интерфэйсийг, ерөнхий дизайн болон хэрэглэгчийн шаардлага дээр үндэслэн хийж гүйцэтгэсэн ба системийн нарийвчилсан ажиллагаа онцлогийг ойлгомжтой энгийн байдлаар дэлгэрэнгүй тайлбарлан өгсөн байна.