Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Проекттин файлдык архитектурасыСодержание книги
Поиск на нашем сайте Баардык веб-долбоорлор төмөнкү элементтерден турат: · Берилиштер базасы, мисалы MySQL же PostgreSQL · Статикалык файлдар(HTML, сүрөттөр, JavaScript файлдар, стильдер жадыбалдары ж.б.) · Колдонуучулар же администраторлор жүктөгөн файлдар · · Сырттан келген китепканалар(башка иштеп чыгуучудан келген скрипт) · Batch файлдар (буйрук сап аркылуу иштетилген скрипттер) · Окуялар журналы(же болбосо логтор, тиркеме же сервер тараптан жүргүзүлгөн отчеттор) · Конфигурация файлдары
Долбоордун директориялары · app/ -эң негизгиси конфигурацияларды камтыйт жана ошонун ичине routing кирет · src/ - проектин коду, bundles · vendor/ -китепканалардын жыйындысы · web/ - аяккы колдонуучуларга жеткиликтүү директория Эми ар бир директорияны тереңиреек изилдеп көрөлү. web/ -бул сырттан жеткиликтүү болгон баардык файлдардын директориясы. Мисал катары: сүрөттөр, css, js файлдар ж.б. Мындан сырткары ушул директорияда тиркемеге кирүү скрипти жайгашкан(front controller). Front controller төмөнкүдөй болушу мүмкүн: // web/app.php require_once __DIR__.'/../app/bootstrap.php.cache'; require_once __DIR__.'/../app/AppKernel.php'; use Symfony\Component\HttpFoundatholds all tests for the bundle.ion\Request; $kernel = new AppKernel('prod', false); $kernel->loadClassCache(); $kernel->handle(Request::createFromGlobals())->send();
Баардык суроо-талаптарды Front Controller иштетип чыгат. Front Controller катарында, кадимки скрипттер чыгышат. · app/console – тиркемеге CLI(буйрук сабы) аркылуу жетүү · app/app.php – тиркемеге web аркылуу жетүү · app/app_dev.php – тиркемеге web аркылуу иштеп чыгуучу режиминде жетүү Жогоруда айтылган баардык фронт контроллерлер бир негиз боюнча түзүлүшөт: · Жүктөөчү класстарды каттоо скриптин кошуу жолу менен autoload (автоматтык түрдө класстарды жүктөө)тураланат; · кээ бир учурда класстардын кэши колдонулат (көп колднулган класстар); · Өзөк иштетилет; Өзөк(Kernel) – бул Symfony системанын движогу. Анын негизги максаты иштөө чөйрөсүн демилгелөө. Өзөк AppKernel.php app/ директориясында жайгашкан.
app/ директориясын тиркемелерди иштеп чыгуу учурунда биз конфигурацияларды жана роутингти өзгөртүү үчүн колдонобуз. Ушу директория кэш жана логторду камтыйт(app/cache, app/logs), андан тышкары app/Resource тиркеме деңгээлиндеги шаблондорду камтыйт.
Symfony фрэмворктун жардамы менен иштеп чыгуунун эң негизги өзгөчөлүгү – бул bundle системасы. Бандл – белгилүү бир максатка жетүү үчүн колдонулган скрипттердин жыйындысы(php, js, html, css ж.б.). Symfonyнин өзгөчөлүгү – “баардык нерсе bundle ”, тиркеме, жадагалса өзөктүн функционалы. Башкача айтканда, биз биринчи кезекте бандл түзүшүбүз керек. 3.3 сүрөттө көрсөтүлгөндөй, src/ директориясы жалаң гана бандлдарды камтыйт.
Бандлдын структурасын карап кетсек: · Admin/ -админ панелине тиешелүү класстарды камтыйт(бандл түзүүдө болбойт, колдонуучу тараптан түзүлө турган директория). · Controller/ -бандлдын контроллери · DependencyInjection [1] – кызматтарды камтыйт · Entity – берилиштер базасы менен иштөөчү класстарды камтыйт · Form – формаларды түзүгө php скрипттерди камтыйт · Resources/views/ -көрсөтүү шаблондорун камтыйт(мисалы Hello/index.html.twig) · Resources/public/ - веб-тиркеменин иштөөсүнө керектүү бөлүкчөлөрдү камтыйт, бирок код болуп саналбайт (сүрөт, css ж.б.). web/ директориясына assets:install буйругу аркылуу көчүрүлөт. · Tests – бандлдын тесттерин камтыйт
Symfony сунуштаган файлдык архитектура MVСнин баардык мыкты идеяларын өзүнө тартып алгандыктан, андан тышкары ийкемдүүлүк жана конфигурацияны өзгөртүү жөндөмдүүлүгү болгондуктан менин дипломдук ишиме негизки каркас болуп тандалды.
Берилиштер базасы Колдонула турган берилиштер жөнүндө маалымат алыш үчүн, биринчиден интернет-дүкөн системасы аткара турган маселелерди белгилейли: · Товарлардын көрсөтүүсү · Товарлардын классификациясы · Колдонуучуларды катто · Товарларды кутучуга кошуу · Кутучанын ичиндегилерди көрсөтүү · Төлөм · ж.б. Маселелер тизмесинен системага маанилүү маңыздарды чыгарсак болот.
Негизги маңыз деген себебим, интернет дүкөн системасына гана тиешелүү жадыбалдар. Жадыбалдар: 1. discs – дисктер жөнүндө маалыматтарды камтыйт 2. disc_info – бир диск жөнүндө маалымат камтыйт 3. producers – иштеп чыгаруучулардын жадыбалы 4. type – дисктердин түрлөрү 5. countries – өлкөлөрдүн жадыбалы 6. formats – форматтардын жадыбалы 7. janrs – жанрлардын жадыбалы 8. bin_orders – заказдардын жадыбалы 9. bin_clients – кардаарлардын жадыбалы 10. gallery – дисктерге тиешелүү медиялардын(сүрөт, видео) жадыбалы 11. users – колдонуучулардын жадыбалы Жогоруда айтылган жадыбалдардын талааларын тереңиреек карап кетели
3.1-жадыбал. discs жадыбалы
3.2-жадыбалы. disc_info жадыбалы
3.3-жадыбалы. producers жадыбалы
3.4-жадыбалы. types жадыбалы
3.5-жадыбалы. formats жадыбалы
3.6-жадыбалы. сountries жадыбалы
3.7-жадыбалы. janrs жадыбалы
3.8-жадыбалы. bin_orders жадыбалы
3.9-жадыбалы. bin_clients жадыбалы
3.10-жадыбалы. gallery жадыбалы
3.11-жадыбалы. users жадыбалы
Бул жерде интернет дүкөнгө гана тиешелүү жадыбалдары көрсөтүлгөн. Мындан сырткары фильмдерди көрүү функцоналынын берилиштер базасы дагы бар. Жадыбалдары төмөнкү 3.5-сүрөттө көрсөтүлгөн.
Жадыбалдар: 1. movies – фильмдер жөнүндө маалыматты камтыйт 2. comments – комментарийлер 3. directors – режиссерлор 4. actors – актерлор 5. countries – өлкөлөр 6. janrs – жанрлар 7. movies_director – many-to-many боюнчабайланыш жадыбалы 8. movies _actors -many-to-many боюнчабайланыш жадыбалы 9. movies _janrs -many-to-many боюнчабайланыш жадыбалы 10. movies_countries -many-to-many боюнчабайланыш жадыбалы 3.12-жадыбалы. movies жадыбалы
3.13-жадыбалы. comments жадыбалы
Жогоруда айтылган функционалга тиешелүү башка жадыбалдарды карай турган болсок, алардын структурасы жөнөкөй. Бирок байланыш жадыбалдарын карап кете турган болсок, алардын негизги максаты эки жадыбал арасындагы many-to-many байланышын түзүү. movies_actors жадыбалын мисал катары алсак,movies жана actors жадыбалдар арасында many-to-many байлынышын түзөт. Албетте, көрсөтүлгөн жадыбалдардан да тышкары кошумча жадыбалдар бар. Бул жерде негизги функционалга түз тиешеси бар жадыбалдар көрсөтүлдү. Кошумча жадыбалдар: · videos – трейлерлердин жадыбалы · feedback – кайтарма жооп жадыбалы · slider_header – баштапкы баракчада турган слайдер жадыбалы · ips – колдонуулардын ip-адрестер жадыбалы · visits – сайтка кирүүнүн санын камтыган жадыбал
Коддук реализация Интернет-дүкөндүн эң маанилүү функционалдарын карап кетели. Интернет-дүкөн дегенде биринчиден биздин оюбузга кутуча келет. Кутучасыз интернет-дүкөн болбойт, ошондуктан биринчиден кутучадан баштасак. Кутуча, BinController.php Кутучага тандалган товар кошуу, өчүрүү, санын көбөйтүү, азайтуу функциялары BinController.php файлында жазылган. BinController.php ичин карап көрсөк. Колдонуучу товар заказ кылгысы келсе, биринчиден заказ кылуу баскычын басат, анан керектүү амал иштейт. Заказ кылынган товар кутучага түшөт, кийинчереек кутучага өтүп колдонуучу стандарттык амалдарын(кошуу, өчүрүү, төлөм) аткара билет. Коддо кутучага кошуу функциясы төмөндө жазылган: public function addAjaxBinAction($id) { if($this->getRequest()->isXmlHttpRequest()) { $discs = $this->getDoctrine() ->getRepository("CinemaxBundle:Discs") ->find($id); $request = $this -> getRequest(); if($discs) { $disc = $request -> cookies -> get("cookieDiscs"); if(!isset($disc[$id]) || empty($disc[$id])) $disc[$id] = 0; $amount = $request->query->get('amount',1);
$discPage = $request->query->get('discPage'); if($discPage == "true") $disc[$id] = $amount; else $disc[$id]++; $response = new Response(); $cookie = new Cookie("cookieDiscs[$id]", $disc[$id], time() + 3600); $response->headers->setCookie($cookie); $response->send(); return $this->render('CinemaxBundle:Bin:addAjaxBin.html.twig', array('disc' => $discs)); } else { throw new \Exception('Что то не так'); } } return new Response(); Заказ кылуу баскычын басканда жогорудагы addAjaxBinAction функциясы аткарылат. Бул эң биринчи иштейт турган функция десек болот. Заказ кылып жаткан учурда дисктин id-си функцияга аргумент катары жиберилет. Ошо id боюнча discs жадыбалынан керектүү диск изделет. Табылган диск кукиге сакталат. Сакталгандан кийин товар кутучага кошулду деген popup чыгат. Popup ajax-тын жардамы менен чакырылат. Ошол чакырылган popup-та кутучага өтүү деген шилтемеси бар. Эгер колдонуучу кааласа кутучага өтүшү мүмкүн же болбосо popup-ты жабып товар тандоону улантып кетиши мүмкүн. Ал эми кутучага өтүү функциясын карасак: public function binAction() { /* @var DiscsRepository $repository */ $request = $this->getRequest(); $discsIds = $request->cookies->get("cookieDiscs"); $discs = null; if (!empty($discsIds)) { $repository = $this->getDoctrine()->getRepository("CinemaxBundle:Discs"); $discs = $repository->getDiscsById($discsIds); } return $this->render('CinemaxBundle:Bin:discsInBin.html.twig', array( 'discs' => $discs, 'discsCount' => $discsIds )); } binAction функциясы эч кандай аргумент албайт. Анын макстаты кутучага өтүү. Өткөндө айтылды, заказ кылынан дисктер кукиде сакталат деп. Ушул функция кукиден баардык товарды алып discsInBin.html.twig файлын чакырат. Ушу менен кутучага өтүү амалы бүтөт. Товардын санын көбөйтүү, азайтуу, товарды, жыйынтыгы чыгару bin.js аттуу файлда жазылган. $(".disc_add").click(function () { var input = $(this).prev('.disc_input'); var amount = input.val(); amount++; input.val(amount); discTotal(input,amount); }); $(".disc_rem").click(function () { var input = $(this).next('.disc_input'); var amount = input.val(); if (amount > 1) amount--; input.val(amount); discTotal(input,amount); }); function discTotal(input,amount){
var html_price = input.nextAll('.disc_total_price').children('.som'); var price = 40; html_price.html(price * amount); calculate();
}
function calculate() { var sumPrice = 0; $('.bin_table').find('tr[id]').each(function (i, el) { var value = $(this).children('td:last').find('.som').html(); sumPrice += parseInt(value); }); $('.total_value').html(sumPrice.toString()); } Товарды өчүрүү функциясын карасак: public function delAjaxBinAction($id) { if ($this->getRequest()->isXmlHttpRequest()) { $request = $this->getRequest();
$response = new Response(); $cookie = new Cookie("cookieDiscs[$id]", null, 9999); $response->headers->setCookie($cookie); $response->send();
return new JsonResponse(array()); } return $this->redirect($this->generateUrl("cinemax_homepage")); } Бул жерде delAjaxBinAction функциясы бир аргумент кабыл алат, анан ошол аргумент аркылуу керектүү дискти кукиден өчүрөт. Дисктер тандалып, сандары берилип, өчүрө тургандар өчүрүлүп бүткөндөн кийин, эң акыркы этап, бул төлөм. Төлөм баскычын баскандан кийин төмөнкү код ишке ашырылат.
public function binFormAction(Request $request) { $response = new RedirectResponse($this->generateUrl('cinemax_bin_discs')); if ($request->isMethod('POST')) { $data = $request->request->get('bin'); $discs = $request->cookies->get("cookieDiscs"); if (!empty($discs)) { foreach ($discs as $key => $value) { if (!isset($data[$key])) { $response->headers->clearCookie("cookieDiscs[$key]"); } } } if (!empty($data)) { foreach ($data as $key => $value) { if ($value == 0) { $response->headers->clearCookie("cookieDiscs[$key]"); } else { $cookie = new Cookie("cookieDiscs[$key]", $value, time() + 3600); $response->headers->setCookie($cookie); } } } if ($request->request->get('button_bin') == 'Оформить заказ') { $response->setTargetUrl($this->generateUrl('cinemax_order')); } elseif ($request->request->get('button_bin') == 'Продолжить выбор') { $response->setTargetUrl($this->generateUrl('cinemax_homepage')); } } return $response;
binFormAction() функциясы кутучадагы болгон маалыматты сактап, мисалы канча диск кошулду, өчүрүлдү ж.б., анан эгер заказды аткаруу баскычы басылган болсо заказ кылуу формасын жиберет. Тандоону улант деген баскычы басылган болсо, сайттын баштапкы баракчасына жиберет. Биздин учурда заказды аткаруу баскычы басылды. public function binOrderAction(Request $request) { /* @var User $user */ /* @var DiscsRepository $repository */ /* @var Discs $disc */ $discsIds = $request->cookies->get("cookieDiscs"); if (empty($discsIds)) { return $this->redirect($this->generateUrl("cinemax_bin_discs")); }
$binClients = new BinClients(); $user = $this->getUser(); if (!is_null($user)) { $binClients->setUser($user); $binClients->setFio($user->getFullname()); $binClients->setEmail($user->getEmail()); $binClients->setPhone($user->getPhone()); $binClients->setAddress($user->getAddress());
} $form = $this->createForm(new BinClientsFormType(), $binClients);
if ($request->isMethod("POST")){ $form->handleRequest($request); if ($form->isValid()){ $em = $this->getDoctrine()->getManager(); $binClients->setDateOrder(new \DateTime()); $em->persist($binClients); $em->flush();
$repository = $this->getDoctrine()->getRepository("CinemaxBundle:Discs"); $discs = $repository->getDiscsById($discsIds); if (!empty($discs)){ foreach ($discs as $disc){ $binOrders = new BinOrders(); $binOrders->setBinClient($binClients); $binOrders->setDisc($disc); $binOrders->setAmount($discsIds[$disc->getId()]); $binOrders->setCoast($disc->getPrice()); $em->persist($binOrders); } $em->flush(); } $this->sendEmail($binClients); $this->ClearCookies($discsIds); $this->get('session')->getFlashBag()->add('notice', 'Ваш заказ принят'); } } return $this->render("CinemaxBundle:Bin:binOrderForm.html.twig", array("form" => $form->createView())); } binOrderAction() функциясы заказ кылынган диск жөнүндө маалыматты кукиден алат. Функция аргумент катары суроо талап алгандыктан, текшерүүдөн өтөт: if ($request->isMethod("POST")) Эгерде суроо талап текшерүүдөн өтпөсө, бизге заказ кылуу формасы жиберилет. Ал жерде колдонуучу жеке маалыматтарын киргизет. Жеке маалыматтарын киргизип бүткөндөн кийин, сактоо баскычын басат. Баскандайн кийин жогорудагы функция кайрадан аткарылат, бирок бул учурда шартка туура келет. Ал эми клиентти bin_clients, заказды bin_orders жадыбалына сактоо амалдары аткарылат. Сактоо аткарылгандан кийин администратордун почтасына жаңы заказ келди деген билдирме жиберилет. Куки тазаланат. Заказынар кабыл алынды деген маалымдоо көрсөтүлөт. Ошентип заказ кылуу амалы бүтөт. SearchController.php
SearchController.php файлында издөө функциясы жазылган. Ар интернет-дүкөндө издөө болушу зарыл. public function indexAction(){ $form = $this->createForm(new SearchType()); $request = $this->getRequest(); if ($request->isMethod('GET')) { $form->submit($request); $searchText =$form->get('search')->getData(); $repository = $this->getDoctrine()->getRepository('CinemaxBundle:Discs'); $discs = $repository->searchDiscs($searchText); $paginator = $this -> get('knp_paginator'); $pagination = $paginator ->paginate($discs, $this->get('request')->query->get('page',1),12); $count = count($pagination); return $this -> render('CinemaxBundle:Search:index.html.twig', array('count'=> $count, 'pagination'=>$pagination, 'searchText'=>$searchText, 'form'=>$form->createView())); } } public function showFormAction(){ $form = $this->createForm(new SearchType); return $this -> render('CinemaxBundle:Search:searchForm.html.twig', array('form'=>$form->createView())); } Бул коддо издөө амалы аткарылбайт. Бул жерде издөө функциясы чакырылат. $discs = $repository->searchDiscs($searchText); searchDiscs() функциясы аргумент катары суралган сөздү алат. Ушу фукнцияны карап көрсөк. public function searchDiscs($searchText){ $query = $this->createQueryBuilder('q') ->orWhere("q.name like:search") ->orWhere('q.description like:search') ->andWhere('q.active = 1') ->setParameter('search', '%'. $searchText. '%'); return $query->getQuery(); } ДемекsearchDiscs() функциясы базага суроо талап жиберип, керектүү сөздү таап чыгат. Мындан сыркары дагы көптөгөн класстар, функциялар ишке ашырлыган. Бирок мен эң маанилүүлөрүн гана көрсөттүм.
4. Интернет-дүкөндүн колдонуу көрсөтмөлөрү 4.1 Интернет дүкөндү башкаруу Интернет-дүкөндү башкаруу - ал эмне? Интернет-дүкөндү башкаруу эки негизги маселени билдирет: · товар жөнүндө маалыматты топтоп даярдоо жана жарялоо · заказ жөнүндө маалыматты кабыл алуу жана иштетүү Бул маселелер интернет-дүкөндүн же болбосо ишкана башкаруу системанын каражаттары менен ишке ашырылат. Ал эми жогорудагы маселелерди ким аткарышы керек? Албетте интернет-дүкөндүн администратору. Эң башкы жана маанилүү рольду аткарган киши – администратор. Ар бир иштеп жаткан интернет-дүкөндүн администратору болушу зарыл же эч болбогондо анын функцияларын аткарган киши. Администратордун функциялары: · дүкөндү колдоо(товар кошуу, өчүрүү, өзгөртүү) · кардаарлар менен катташуу(телефон же онлайн коммуникатор аркылуу) · заказдарды көзөмөлдөө(админ панель аркылуу) · заказдарды жеткирүүсүн көзөмөлдөө · кардаарлардын төлөөсүн көзөмөлдөө(чоң интернет-дүкөндөрдө муну бухгалтерия кылат, бирок биздин дүкөндө өзүбүз кылабыз) Эң маанилүү рольду администратор экенин билдик. Бирок администратордон дагы сырткары рольдор бар. Алар колдонуучулар. Колдонуучу экиге бөлүнөт: катталган колдонуучу жана конок. Катталган колдонуучу кошумча мүмкүнчүлүктөргө ээ. Мисалы, комментарий калтыруу. Бирок заказды баардык колдонуучу кыла алат.
Административдик панель
Жогоруда көрсөтүлгөн форма жалаң гана администратор үчүн. Администратор логин жана паролюн жазып, админ панельге өтөт. Админ панельде болсо, администратор өзүнүн милдетин толук түрдө аткарат. Төмөнкү 4.2-сүрөттө админ панельдин көрүнүшү.
Ал эми кошулган дисктердин тизмесин карасак.
4.5-сүрөт. Фильтрлөө формасы Көрүнүп тургандай эле аты, активдүү, жанр, жана түрү боюнча фильтр процессин ишке ашырса болот. Мындай фильрлөө бардык тизмелердин баракчасында бар. Өзүңөр байкагандай админ панель жөнөкөй жана колдонуучуга эч кандай кыйынчылык алып келбейт. Демек, ар бир колдонуучу интуитивдик деңгээлде панель менен иштей алат.
4.3 Колдонуучулар үчүн интернет-дүкөн Колдонуучу – интернет мейкиндигинде белгилүү бир маселени же функцияны аткарган адам же болбосо уюм. Бирок биздин аймак интернет- маркетинг болгондуктан, колдонуучу - интернет аркылуу арзан жана ишенимдүү байланыш кура билүү мүмкүнчүлүгү жогоруу болгон адамдар. Системада колдонуучунун ролю дагы абдан маанилүү. Колдонуучулар жок болсо администратордун деле кереги жок. Андан сырткары колдонуучулар интернет-маркетинг аймагында киреше булагы катары эсептелинет. Ошондуктан колдонуучуларды кызыктыртуу жана системага тартуу өтө манилүү.
Каттоо процесси.
4.6-сүрөт. Колдонуучуну каттоо формасы
Каттоону өтү зарыл процесс эмес. Интернет-дүкөндүн фукнцияларын баардык колдонуучу аткара алат. Бирок эгер колдонуучу каттоодон өтүүсүн каалаласа, ал эки этаптан өтүшү зарыл. Биринчиден, колдонуучу жогоруда көрсөтүлгөн формада тааларды толтурушу керек. Эгерде баардыгы туура толтурулса, колдонуучу жазган email адреске билдирме жиберилет. Ошо жиберилген билдирме далилдөө шилтемесин камтыйт. Шилтемеден өтүп колдонуучу катталган колдонуучу болуп эсептелет.
4.7-сүрөт. Колдонуучунун авторизация формасы Жогоруда авторизация формасы көрсөтүлгөн. Эгер колдонуучу каттоодон өткөн болсо, логин жана пароль талаасын толтуруп, авториязациядан өтсө болот. Андан сырткары, авторизация форманын астында издөө формасы жайггашкан. Колдонуучу издеп жаткан дисктин атын билсе, ошол формага атын жазып таап алышы мүмкүн.
Каталог
Заказ кылуу процесси Колдонуучу керектүү дискти тапты, анан заказ кылгысы келди. Заказ кылыш үчүн, ал “Заказать” шилтемесин басат, анан 4.9 сүрөттө көрсөтүлгөн popup экранда пайда болот.
4.9-сүрөт. Диск кошулганын билдирген Popup [2]
Кутучада колдонуучу тараптан тандалган дисктердин тизмеси. Ал жерде колдонуучу дисктердин санын көбөйтүп, азайтып, жана өчүрүп салышы мүмкүн. Андан сырткары колдонуучу кааласа тандоону улантып кетиши же болбосо заказды улантышы мүмкүн. Биздин учурда колдонуучу заказды улантууда.
Бул формада сөзсүз түрдө баардык талаа толтурулушу керек. Колдонуучу өзүнүн жеке маалыматтарын жазып, сактоо баскычын басканда, администратордун почтасына билдирме келет. Администратор келген маалымат боюнча кардаар менен байланыш түзөт. Эгер заказ далилденсе, заказ курьерге айтылат, анан кардаардын адресине жеткирилет. Акы жеткирилгенде төлөнөт. Интернет дүкөндүн эң негизги мүмкүнчүлүктөру жогоруда айтылды жана көрсөтүлдү.
4.3.4 Онлайн көрүү функционалы
Дисктерди заказ кылуудан да сырткары фильмдерди көрүү мүмкүнчүлүгү бар. Ар бир зыяратчы, каттоодон өтпөстөн, фильмдерди көрө алат. Төмөндө фильмдердин каталогу. Сүрөттө көрсөтүлгөндөй, жанр боюнча фильтрлөөсө болот. Андан сырткары: актер, режиссер, өлкө, жылы боюнча фильтрлөө мүмкүнчүлүгү бар. Алардын баары фильмдин баракчасында жайгашкан. Эгер колдонуучу кааласа, колдонуучу фильм жөнүндө өзүнүн ой-пикирин калтырса болот. Албетте, аны жалаң гана катталган колдонуучулар аткара алышат.
Иштин натыйжасында башында коюлган максаттардын баары ишке ашырылды. Иштелип чыккан “Онлайн түрдө дисктерди сатуу жана
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Последнее изменение этой страницы: 2017-02-10; просмотров: 159; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.110 (0.012 с.) |