Розробка середовища для управління сайтами на основі HTML5

Автор: Пользователь скрыл имя, 15 Января 2012 в 22:00, дипломная работа

Описание работы

У нашій епосі всесвітня павутина має дуже велике значення. Великі корпорації, маленькі фірми, навіть фізичні особи мають свої власні сайти. Сучасні сайти знатно відрізняються від сайтів, які створювались декілька років тому – нові веб-технології з’являються майже з кожним роком та доповнюють існуючі сайти. Кожен, хто вирішив створити собі власний сайт, хоче зробити його, використовуючи останні новинки веб-індустрії. Однак не всі можуть створювати сайти взагалі.

Содержание

Вступ 5
Постановка завдання 7
1. Огляд існуючих технологій 8
1.1 Веб-розробка 8
1.1.1 Серверні мови 8
1.1.2 Клієнтські мови 17
1.2 Системи керування вмістом 21
1.3 HMTL5 26
2. Вибір технологій розробки 30
2.1 Мова програмування 30
2.2 Система керування базами даних 32
2.3 JavaScript фреймворк 32
2.4 WYSIWYG редактор 33
3. Опис роботи 34
3.1 Абстрактна модель програми 34
3.2 Проектування бази даних 34
3.3 Створення структури програми 36
3.4 Розробка ядра програми 37
Висновки 39
Література 40
Додаток А 41
Додаток Б 44

Работа содержит 1 файл

Диплом.doc

— 262.50 Кб (Скачать)

                              $id = $post['id'];

                              Pages::getInstance()->deletePage($id);

                        break;

                        case 'load':

                              $result = array();

                              $id = $post['id'];

                              $result = Pages::getInstance()->getPage($id);

                              echo json_encode($result);

                        break;

                        case 'save':

                              $id = $post['id'];

                              $url = $post['url'];

                              $content = $post['content'];

                              Pages::getInstance()->setPage(array('url'=>$url,'content'=>$content), $id);

                        break;

                        }

                  }

            }

      }

controllers\ Admin\ Settings.php

<?php

      class Admin_Settings extends Controller_Admin

      {

            public $layout = 'admin';

            public function init()

            {

                  $req = Application::getInstance()->getRequest('_params');

                  if ($req && $req[0]='ajax')

                  {

                        $this->render = false;

                        $post = Application::getInstance()->getRequest();

                        switch ($post['oper'])

                        {

                        case 'save':

                              foreach ($post as $key=>$val)

                              {

                                    switch ($key)

                                    {

                                    case 'SITE_NAME':

                                    case 'HEADER_CONTENT':

                                    case 'HOME_CONTENT':

                                          Settings::getInstance()->$key = $val;

                                    break;

                                    }

                              }

                        break;

                        }

                  }

            }

      }

models\ Auth.php

<?php

      class Auth

      {

            static function _auth($login,$pass)

            {

                  if ($login && $pass)

                  {

                        $config = parse_ini_file(CONFIG_PATH.'/access.ini');

                        $users = array();

                        if ($config['users'] && is_array($config['users']))

                        {

                              foreach ($config['users'] as $user_hash)

                              {

                                    list($user,$_pass) = explode(';',$user_hash);

                                    $users[$user] = $_pass;

                              }

                        }

                        if (isset($users[$login]) && $users[$login]==$pass)

                              return $login;

                        else

                              return false;

                  }

                  return null;

            }

      }

models\ Menu.php

<?php

      class Menu

      {

            static $instance; 

            /**

             *

             * @return Menu

             */

            static function getInstance()

            {

                  if (!self::$instance)

                        self::$instance = new self();

                  return self::$instance;

            } 

            const MENU_ITEM_TYPE_HOME  = 'home';

            const MENU_ITEM_TYPE_PAGE  = 'page';

            const MENU_ITEM_TYPE_URL  = 'url'; 

            public function getItems()

            {

                  return DB::getInstance()->select("SELECT * FROM `menu` ORDER BY `order`");

            } 

            public function getItem($id)

            {

                  $id = (int)$id;

                  if ($id)

                  {

                        $result = DB::getInstance()->select("SELECT * FROM `menu` WHERE `id`={$id} LIMIT 1");

                        if ($result[0])

                        {

                              return $result[0];

                        }

                  }

                  return false;

            } 

            public function setItem($data,$id=null)

            {

                  $set_sql = "SET ";

                  $set_data = array();

                  $id = (int)$id;

                  if (!$id && !$data['order'])

                  {

                        $result = DB::getInstance()->select("SELECT `order` FROM `menu` WHERE `order` = (SELECT MAX(`order`) FROM `menu`)");

                        if ($result && $result[0] && $result[0]['order'])

                              $data['order'] = $result[0]['order']+1;

                        else

                              $data['order'] = 0;

                  }

                  foreach ($data as $key=>$val)

                  {

                        switch ($key)

                        {

                        case 'id':

                        case 'title':

                        case 'type':

                        case 'page_id':

                        case 'article_id':

                        case 'url':

                        case 'order':

                        case 'active':

                              $val = str_replace("'", "\\'", $val);

                              $set_data[] = "`$key` = '$val'";

                        break;

                        }

                  }

                  if ($set_data)

                  {

                        $set_sql .= implode(',',$set_data);

                        if ($id)

                        {

                              DB::getInstance()->update("UPDATE `menu` {$set_sql} WHERE `id`='{$id}'");

                              return true;

                        }

                        else

                        { 

                              return DB::getInstance()->insert("INSERT INTO `menu` {$set_sql}");

                        }

                  } 

                  return false;

            } 

            public function deleteItem($id)

            {

                  $id = (int)$id;

                  if ($id)

                  {

                        DB::getInstance()->update("DELETE FROM `menu` WHERE `id`='{$id}'");

                  }

                  return false;

            } 

            public function reorderItems($order_list)

            {

                  if ($order_list && is_array($order_list))

                  {

                        $old_items = array();

                        foreach ($this->getItems() as $item)

                              $old_items[$item['id']] = $item;

                        foreach ($order_list as $order=>$id)

                        {

                              $this->setItem(array('order'=>$order), $id);

                              unset($old_items[$id]);

                        }

                        if ($old_items)

                        foreach($old_items as $id=>$item)

                              $this->deleteItem($id);

                  }

            } 

            public function getLink($item=null,$id=null)

            {

                  if ($item===null && $id)

                        $item = $this->getItem($id);

                  if ($item)

                  {

                        $url = "/";

                        switch ($item['type'])

                        {

                        case self::MENU_ITEM_TYPE_PAGE:

                              $page = Pages::getInstance()->getPage($item['page_id']);

                              if ($page)

                                    $url .= $page['url'];

                        break;

                        case self::MENU_ITEM_TYPE_URL:

                              $url = $item['url'];

                        break;

                        }

                        return $url;

                  }

                  return false;

            }

      }

models\ Pages.php

<?php

      class Pages

      {

            static $instance; 

            /**

             *

             * @return Pages

             */

Информация о работе Розробка середовища для управління сайтами на основі HTML5