Разработка программной системы управления контентом портала с архивом конструкторской документации

Описание системы управления контентом портала с архивом конструкторской документации. Разработка программного модуля-редактора и модуля-вебсайта для редактирования и работы с контентом системы. Расчет технико-экономической эффективности проекта.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 01.02.2016
Размер файла 2,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

$this->form_validation->set_rules('ret_pass','Пароль','trim|required|xss_clean|matches[password]');

if($this->form_validation->run() == FALSE)

{

$error = validation_errors();

$this->session->set_flashdata('error_registration',$error);

$this->session->set_flashdata('data',$data);

redirect('/start','refresh');

}

else

{

array_pop($data);

if($this->User_model->addUser($data))

{

$message = 'Вы успешно зарегистрировались.Ответ прийдет по электронной почте.';

$this->session->set_flashdata('message',$message);

redirect('/start/index','refresh');

}

$error = 'Попробуйте повторить регистрацию';

$this->session->set_flashdata('error_registration',$error);

redirect('/start','refresh');

}

}

public function checkpass()

{

$data = $this->input->post(NULL,TRUE);

$password = $data['password'];

//Проверяем, есть ли пробелы в пароле

if(preg_match("/([\s])/", $password))

{

$html = '<div style="background:#ff0000; width:100%; height:10px;"></div>';

$html .= "Недопустимые символы в пароле";

}

else

{

if(strlen($password) < 6)

{

$html = '<div style="background:#ff0000; width:100%; height:10px;"></div>';

$html .= "*Не менее 6 (Lat&цифры&символы)";

}

else

{

$strong = 0;

//Проверяем, есть ли в пароле числа

if(preg_match("/([0-9]+)/", $password))

{

$strong++;

}

//Проверяем, есть ли в пароле буквы в нижнем регистре

if(preg_match("/([a-z]+)/", $password))

{

$strong++;

}

//Проверяем, есть ли в пароле буквы в верхнем регистре

if(preg_match("/([A-Z]+)/", $password))

{

$strong++;

}

//Проверяем, есть ли в пароле спецсимволы

if(preg_match("/\W/", $password))

{

$strong++;

}

//В зависимости от сложности пароля выводим полоски

if($strong == 1)

{

$html = '<div style="background:#ff0000; width:25%; height:10px;"></div>';

$html .= "Очень слабый";

}

if($strong == 2)

{

$html = '<div style="background:#edc431; width:50%; height:10px;"></div>';

$html .= "Слабый";

}

if($strong == 3)

{

$html = '<div style="background:#edc431; width:50%; height:10px;"></div>';

$html .= "Простой";

}

if($strong == 4)

{

$html = '<div style="background:#2dda2f; width:100%; height:10px;"></div>';

$html .= "Надежный";

}

}

}

echo $html;

}

public function info()

{

echo phpinfo();

}

}

Файл Admin.php

<?php

class Admin extends CI_Controller

{

public $viewData = array();

public function __construct() {

parent::__construct();

$this->load->model('User_model');

$this->viewData = array();

if(!$this->User_model->isAuthorize() || !$this->User_model->isAdmin())

{

redirect('start/index');

}

}

public function Staff()

{

$referer_page = site_url('public_html/1081.html');

if(isset($_SERVER['HTTP_REFERER']))

{

$referer_page = $_SERVER['HTTP_REFERER'];

}

$this->db->order_by("level", "ASC");

$all_user_object = $this->db->get('user');

$users = array();

$i = 0;

foreach($all_user_object->result() as $all_user)

{

$users[$i]['id'] = $all_user->iduser;

$users[$i]['name'] = $all_user->name;

$users[$i]['job'] = $all_user->job;

$users[$i]['subdivision'] = $all_user->subdivision;

$users[$i]['position'] = $all_user->position;

$users[$i]['email'] = $all_user->email;

$users[$i]['password'] = $all_user->password;

$users[$i]['level'] = $all_user->level;

$i++;

}

$this->viewData['jobs'] = $this->User_model->GetJobsArray();

$this->viewData['jobs_string'] = $this->User_model->GetJobs();

$this->viewData['users'] = $users;

$this->viewData['referer'] = $referer_page;

$this->load->view('Admin/staff',$this->viewData);

}

public function ChangeUser()

{

$data = $this->input->post(NULL,TRUE);

$result = array();

$error = '';

$this->load->library('form_validation');

$this->form_validation->set_error_delimiters('<div class="alert alert-danger fade in">', '</div>');

// $this->form_validation->set_rules('staffNumber','Номер','trim|required|xss_clean|is_natural_no_zero');

$this->form_validation->set_rules('staffName','ФИО','trim|required|xss_clean');

$this->form_validation->set_rules('staffPosition','Место работы','trim|required|xss_clean');

$this->form_validation->set_rules('staffSubdivision','Подразделение','Работа','trim|required|xss_clean');

$this->form_validation->set_rules('staffJob','Должность','trim|required|xss_clean');

if($data['newUser'])

{

$this->form_validation->set_rules('staffEmail','Email','trim|required|xss_clean|valid_email|is_unique[user.email]');

$this->form_validation->set_rules('staffPass','Пароль','trim|required|xss_clean|min_length[3]|is_unique[user.password]');

}

else

{

$this->form_validation->set_rules('staffEmail','Email','trim|required|xss_clean|valid_email');

$this->form_validation->set_rules('staffPass','Пароль','trim|required|xss_clean|min_length[3]');

}

$this->form_validation->set_rules('staffNote','Уровень','trim|required|xss_clean|is_natural');

if($this->form_validation->run() == FALSE)

{

$success = FALSE;

$error = validation_errors();

}

else

{

$email = $data['staffEmail'];

$data_update['name'] = $data['staffName'];

$data_update['job'] = $this->User_model->identifiedJob($data['staffJob']);

$data_update['subdivision'] = $data['staffSubdivision'];

$data_update['position'] = $data['staffPosition'];

$data_update['password'] = $data['staffPass'];

$data_update['level'] = $data['staffNote'];

$data_update['email'] = $email;

$this->db->where('email',$email);

$this->db->from('user');

$count = $this->db->count_all_results();

if($count)

{

$changePass = $this->User_model->strPass($data['staffPass'],$data['staffEmail']);

if($changePass && $data['staffNote'] == 0)

{

$data_update['level'] = 1;

}

$this->db->where('email',$email);

$success = $this->db->update('user', $data_update);

$result['type'] = 'update';

$result['changePass'] = $changePass;

}

else

{

$success = $this->User_model->addUser($data_update);

$result['type'] = 'insert';

}

$result['data'] = $data_update;

// echo $success

}

$result['success'] = $success;

$result['error'] = $error;

print(json_encode($result));

}

public function ChangeJob()

{

$data = $this->input->post(NULL,TRUE);

$result = array();

$this->load->library('form_validation');

$this->form_validation->set_rules('addJob','Работа','trim|required|xss_clean');

$this->form_validation->set_rules('id','ID','trim|required|xss_clean');

if($this->form_validation->run() == FALSE)

{

$result['success'] = FALSE;

}

else

{

$data['id'] = preg_replace('/[^0-9]/', '', $data['id']);

if($data['id'] && $data['id'] == 1)

{

$result['id'] = $this->User_model->InsertAndUpdateJob($data,1);

if($result['id'])

{

$result['success'] = TRUE;

}

else

{

$result['success'] = FALSE;

}

$result['type'] = 'insert';

}

else

{

$result['success'] = $this->User_model->InsertAndUpdateJob($data);

$result['id'] = $data['id'];

$result['type'] = 'update';

}

$result['newJob'] = $data['addJob'];

$result['jobs_string'] = $this->User_model->GetJobs();

print json_encode($result);

}

}

public function SortUser()

{

$data = $this->input->post(NULL,TRUE);

switch ($data['type'])

{

case 'fname':

$famyli = 1;

break;

case 'level':

$famyli = 0;

break;

default :

$famyli = -1;

break;

}

if($famyli != -1)

{

$result['success'] = TRUE;

$result['sort'] = $this->User_model->Sort_User($famyli);

}

else

{

$result['success'] = FALSE;

}

print(json_encode($result));

}

}

?>

Файл Dashboard.php

<?php

class Dashboard extends CI_Controller

{

public $viewData = array();

public function __construct() {

parent::__construct();

$this->viewData = array();

if(!$this->User_model->isAuthorize())

{

redirect('start/index');

}

}

public function index()

{

//echo 'hello';

//redirect(site_url('public_html/1081.html'));

$this->viewData['num'] = 2;

//$this->load->view('public_html/1081.html');

session_start();

$_SESSION['user_id'] = $this->session->userdata('user_id');

redirect('public_html/1081.html');

}

public function logout()

{

session_start();

session_unset();

$this->session->unset_userdata('user_id');

redirect('start/');

}

public function Search()

{

$data = $this->input->post(NULL,TRUE);

$error = '';

$success = TRUE;

$querys = array();

$flag = 1;

$this->load->library('form_validation');

$this->form_validation->set_rules('query','Запрос','trim|required|xss_clean|min_length[3]');

if($this->form_validation->run() == FALSE)

{

$error = validation_errors();

$success = FALSE;

}

else

{

if($data['station'] == 'Главная')

{

$this->db->like('name',$data['query']);

$this->db->order_by('aes','ASC');

$query_result = $this->db->get('shemas');

$this->db->like('name',$data['query']);

$this->db->from('shemas');

$count = $this->db->count_all_results();

$this->db->like('name',$data['query']);

$this->db->from('rig');

$count_rig = $this->db->count_all_results();

}

else

{

$this->db->like('name',$data['query']);

$this->db->like('aes',$data['station']);

$query_result = $this->db->get('shemas');

$this->db->like('name',$data['query']);

$this->db->like('aes',$data['station']);

$this->db->from('shemas');

$count = $this->db->count_all_results();

$count_query_rig = $this->db->query("SELECT COUNT(*) as cnt FROM rig INNER JOIN shemas ON rig.idshemas = shemas.idshemas WHERE rig.name LIKE '%".$data['query']."%' AND shemas.aes = '$data[station]'");

foreach ($count_query_rig->result() as $cnt)

{

$count_rig = $cnt->cnt;

}

}

if($count_rig)

{

/*$rigs_id_array = array();

$this->db->like('name',$data['query']);

$resulr_id_rig = $this->db->get('rig');

foreach($resulr_id_rig->result() as $id_rig)

{

$rigs_id_array[] = $id_rig;

}

$this->db->select('rig.picture as picture,shemas.aes as aes,shemas.block as block,shemas.link as link');

$this->db->from('rig');

$this->db->join('shemas','rig.idshemas = shemas.idshemas');

$query_rig = $this->db->get();*/

$query_rig = $this->db->query("SELECT rig.picture as picture,rig.name as name,shemas.aes as aes,shemas.block as block,shemas.link as link FROM rig INNER JOIN shemas ON rig.idshemas = shemas.idshemas

WHERE rig.name LIKE '%".$data['query']."%'");

}

$i = 1;

if($count)

{

foreach($query_result->result() as $query)

{

$querys[$i]['idshemas'] = $query->idshemas;

$querys[$i]['picture'] = $query->picture;

$querys[$i]['name'] = $query->name;

$querys[$i]['aes'] = $query->aes;

$querys[$i]['block'] = $query->block;

$querys[$i]['link'] = $query->link;

$querys[$i]['rigname'] = '';

$i++;

}

}

else

{

$flag = 0;

}

if($count_rig)

{

$flag = 1;

foreach($query_rig->result() as $rigs)

{

$querys[$i]['picture'] = $rigs->picture;

$querys[$i]['aes'] = $rigs->aes;

$querys[$i]['block'] = $rigs->block;

$querys[$i]['name'] = $rigs->link;

$querys[$i]['rigname'] = $rigs->name;

$i++;

}

}

}

if(!$flag)

{

$error = 'Нет результатов';

$success = FALSE;

}

$result = array('success' => $success,'error'=>$error,'querys'=>$querys,'count' => $count,'query' => $data['query']);

print(json_encode($result));

}

}

Файл user_model.php

<?php

class User_model extends CI_Model

{

private $user_id = 0;

public function __construct()

{

parent::__construct();

if($this->session->userdata('user_id'))

{

$this->user_id = $this->session->userdata('user_id');

}

}

public function hello()

{

return 'hello';

}

public function isAuthorize()

{

return (($this->user_id)?(true):(false));

}

public function addUser($data = array())

{

$this->db->select_max('iduser');

$query = $this->db->get('user');

$id = 0;

foreach($query->result() as $idusr)

{

$id = $idusr->iduser;

break;

}

$id++;

// $this->user_id = $id;

// $this->session->set_userdata('user_id',$id);

$data['iduser'] = $id;

return $this->db->insert('user',$data);

}

public function checkPass($password = '')

{

$id = 0;

$this->db->select('iduser');

$this->db->where('password',$password);

$this->db->where('level >',0);

$query = $this->db->get('user');

foreach($query->result() as $iduser)

{

$id = $iduser->iduser;

break;

}

if($id)

{

$this->user_id = $id;

$this->session->set_userdata('user_id',$id);

return TRUE;

}

return FALSE;

}

}

Приложение Б. Исходный код модуля редактор

using System.Collections.Generic;

using System.Windows.Forms;

using System.IO;

using System.Threading;

namespace StationGuide.Browser

{

static class Program

{

/// <summary>

/// The main entry point for the application.

/// </summary>

[STAThread]

static void Main()

{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

//check,if there are some .SPG files in the folder with application

FileInfo[] files = (new DirectoryInfo(Directory.GetCurrentDirectory())).GetFiles();

List<FileInfo> spgList = new List<FileInfo>();

foreach (FileInfo fi in files)

{

if (fi.Extension.ToLower() == ".spg")

{

spgList.Add(fi);

}

}

//if file with this extension is only one...

String packName = String.Empty;

if (spgList.Count == 1)

{

// ... we take this file as secured package for application;

packName = spgList[0].Name;

}

else

{

String message = spgList.Count == 0 ? "Файл пакета библиотеки не найден. В следующем окне выберите необходимый файл" : "Найдено несколько файлов пакетов библиотек. В следующем окне выберите необходимый файл";

MessageBox.Show(message, "Ошибка открытия файла пакета библиотеки");

// ottherwise (if there are no files or more then one) - we ask user where and which package file is

OpenPackageForm opf = new OpenPackageForm();

opf.ShowDialog();

if (opf.IsAppClosing)

{

return;

}

packName = opf.PackageName;

}

// if we haven't name of package file we stop application's work

if (String.IsNullOrEmpty(packName))

{

return;

}

SecurePackaging.ISecuredPackageReader package = new StationGuide.SecurePackaging.DesSecuredPackageReader(packName);

//try to open package in sdpec password checking window

Application.Run(new PasswordForm(package));

//if package was opend we start server and browser, otherwise - app would be closed

if (package.IsOpened)

{

Server.StationGuideServer server = new Server.StationGuideServer(package);

server.Start();

Application.Run(new BrowserForm());

server.Stop();

}

}

}

}

using System;

using System.Collections.Generic;

using System.Text;

using System.Drawing;

namespace StationGuide.Browser.GraphicsResources

{

/// <summary>

/// Brushes, using in Browser application

/// </summary>

public static class AppBrushes

{

/// <summary>

/// Gets brush for border

/// </summary>

public static Brush Border { get { return Brushes.Gray; } }

/// <summary>

/// Gets brush for active tab

/// </summary>

public static Brush ActiveTab { get { return new System.Drawing.Drawing2D.LinearGradientBrush(new Point(0, 30), new Point(0, 0), Color.White, SystemColors.ControlLight); } }

/// <summary>

/// Gets brush for unactive tab

/// </summary>

public static Brush UnactiveTab { get { return new System.Drawing.Drawing2D.LinearGradientBrush(new Point(0, 30), new Point(0, 0), SystemColors.Control, Color.Silver); } }

/// <summary>

/// Gets brush for panels

/// </summary>

public static Brush Panel { get { return Brushes.White; } }

/// <summary>

/// Gets brush for text

/// </summary>

public static Brush Text { get { return Brushes.Black; } }

}

}

using System;

using System.Collections.Generic;

using System.Text;

using System.Drawing;

namespace StationGuide.Browser.GraphicsResources

{

/// <summary>

/// Pens' collection, using in Browser application

/// </summary>

public static class AppPens

{

/// <summary>

/// Gets pen for border

/// </summary>

public static Pen Border { get { return new Pen(AppBrushes.Border); } }

/// <summary>

/// Gets pen for erase border by drawing another line

/// </summary>

public static Pen NoBorder { get { return new Pen(AppBrushes.Panel); } }

}

}

using System;

using System.Collections.Generic;

using System.Text;

using StationGuide.SecurePackaging;

using System.Windows.Forms;

namespace StationGuide.Browser.Server

{

/// <summary>

/// Handler of http-request for secured package with StationGuide library

/// </summary>

public class GuideRequestHandler : HybridDSP.Net.HTTP.IHTTPRequestHandler

{

/// <summary>

/// main constructor

/// </summary>

/// <param name="package"></param>

public GuideRequestHandler(SecurePackaging.ISecuredPackageReader package)

{

_package = package;

}

/// <summary>

/// Handles request

/// </summary>

/// <param name="request">request-object</param>

/// <param name="response">responce-object</param>

public void HandleRequest(HybridDSP.Net.HTTP.HTTPServerRequest request, HybridDSP.Net.HTTP.HTTPServerResponse response)

{

System.IO.FileInfo fi = new System.IO.FileInfo(System.Web.HttpUtility.UrlDecode(request.URI, Encoding.UTF8));

Byte[] buffer = null;

try

{

try

{

buffer = _package.Read(fi.Name);

}

catch

{

response.StatusAndReason = HybridDSP.Net.HTTP.HTTPServerResponse.HTTPStatus.HTTP_NOT_FOUND;

response.Send();

}

String type = String.Empty;

Encoding enc = null;

switch (fi.Extension.ToLower())

{

case ".html":

type = "text/html";

enc = Encoding.UTF8;

//Form1 f = new Form1();

//f.Text = Encoding.Default.GetString(buffer);

//f.ShowDialog();

break;

case ".htm":

type = "text/html";

enc = Encoding.UTF8;

break;

case ".css":

type = "text/css";

enc = Encoding.UTF8;

break;

case ".js":

type = "text/javascript";

enc = Encoding.UTF8;

break;

case ".png":

type = "image/png";

break;

case ".jpg":

type = "image/jpeg";

break;

case ".gif":

type = "image/gif";

break;

}

response.SendBuffer(buffer, type);

}

catch

{

response.StatusAndReason = HybridDSP.Net.HTTP.HTTPServerResponse.HTTPStatus.HTTP_NOT_FOUND;

response.Send();

}

}

SecurePackaging.ISecuredPackageReader _package;

}

}

using System;

using System.Collections.Generic;

using System.Text;

namespace StationGuide.Browser.Server

{

/// <summary>

/// Factory of requests' handlers for StationGuide's server

/// </summary>

public class HttpRequestHandlerFactory : HybridDSP.Net.HTTP.IHTTPRequestHandlerFactory

{

/// <summary>

/// Main caonstructor

/// </summary>

/// <param name="package">secured package</param>

public HttpRequestHandlerFactory(SecurePackaging.ISecuredPackageReader package)

{

_package = package;

}

/// <summary>

/// Creates handler

/// </summary>

/// <param name="request">object of http-request</param>

/// <returns>handler for current request</returns>

public HybridDSP.Net.HTTP.IHTTPRequestHandler CreateRequestHandler(HybridDSP.Net.HTTP.HTTPServerRequest request)

{

return new GuideRequestHandler(_package);

}

/// <summary>

/// secured package of StationGuide's library

/// </summary>

SecurePackaging.ISecuredPackageReader _package;

}

}

using System;

using System.Collections.Generic;

using System.Text;

using HttpServer;

using System.Net.Sockets;

namespace StationGuide.Browser.Server

{

/// <summary>

/// Web Server, resources of which are in the secured package

/// </summary>

public class StationGuideServer

{

#region constants

/// <summary>

/// Number of first server's port on LocalHost, maybe another port if this is busy

/// </summary>

protected const Int32 StartPortNumber = 50000;

#endregion

#region public static members

/// <summary>

/// Gets or privately sets Home page's name

/// </summary>

public static String HomePage { get; private set; }

public static Int32 PortNumber { get; private set; }

#endregion

#region public constructors

/// <summary>

/// Main constructor

/// </summary>

/// <param name="package">package with all server's resources</param>

public StationGuideServer(StationGuide.SecurePackaging.ISecuredPackageReader package)

{

PortNumber = StartPortNumber;

_listener = HttpListener.Create(new System.Net.IPAddress(new Byte[] { 127, 0, 0, 1 }), PortNumber);

_listener.RequestReceived += OnRequest;

_package = package;

HomePage = _package.HomePage;

}

#endregion

#region public methods

/// <summary>

/// Starts the server

/// </summary>

public void Start()

{

PortNumber = _listener.Start(1);

}

/// <summary>

/// Stops the server (not is nesessary at the end of app's work)

/// </summary>

public void Stop()

{

_listener.Stop();

}

#endregion

#region protected methods

/// <summary>

/// Handler of http-request

/// </summary>

protected void OnRequest(object sender, HttpServer.RequestEventArgs e)

{

e.Response.Connection.Type = HttpServer.Headers.ConnectionType.Close;

System.IO.FileInfo fi = new System.IO.FileInfo(e.Request.Uri.LocalPath);

Byte[] buffer = null;

try

{

buffer = _package.Read(fi.Name);

}

catch

{

e.Response.Status = System.Net.HttpStatusCode.NotFound;

}

if (buffer != null)

{

String type = String.Empty;

Encoding enc = null;

type = ContentTypeHelper.GetType(fi.Extension);

if (type.StartsWith("text"))

{

enc = Encoding.UTF8;

}

e.Response.ContentType = new HttpServer.Headers.ContentTypeHeader(type);

if (enc != null)

{

e.Response.Encoding = enc;

}

if (type.StartsWith("application") && type!="application/x-shockwave-flash")

{

e.Response.Add(new HttpServer.Headers.StringHeader("Content-Disposition", String.Format("attachment; filename=\"{0}\"", fi.FullName)));

}

e.Response.Body.Write(buffer, 0, buffer.Length);

}

}

#endregion

#region private fields

/// <summary>

/// http-listener

/// </summary>

private HttpListener _listener;

/// <summary>

/// secured package - main source of all server resources

/// </summary>

private StationGuide.SecurePackaging.ISecuredPackageReader _package;

#endregion

}

}

Размещено на Allbest.ru


Подобные документы

  • Краткая характеристика функционала Solid Works Enterprise PDM. Методы и средства разработки системы управления контентом портала с архивом конструкторской документации. Логическая и компонентная архитектура. Решения по пользовательскому интерфейсу.

    дипломная работа [2,1 M], добавлен 10.02.2017

  • Понятие и основные функции систем управления web-контентом. Система управления web-контентом как программный комплекс, предоставляющий функции создания, редактирования, контроля и организации web-страниц. Обзор и анализ существующих систем WCMS.

    курсовая работа [419,4 K], добавлен 29.12.2014

  • Разработка и практическое внедрение контента "Joomla!", порядок установки и настройки системы управления им. Выбор дизайна, цветовой гаммы и анимации сайта, методика его добавления. Создание информационной структуры в системе управления контентом.

    дипломная работа [3,4 M], добавлен 22.06.2009

  • Разработка концептуальной модели базы данных. Реализация алгоритмов и разработка управляющей программы. Разработка структуры системы управления данными. Методика проведения и результаты тестирования. Функционирование разработанного программного модуля.

    курсовая работа [550,5 K], добавлен 08.06.2023

  • Описания системы управления контентом сайта, предназначенной для создания, внедрения и управления коммерческими или некоммерческими веб-сайтами и порталами. Возможности системы DotNetNuke. Анализ функций управления контентом. Установка сайта на сервер.

    курсовая работа [2,9 M], добавлен 11.01.2015

  • Процесс создания и развития динамических веб-страниц с использованием систем управления контентом. Последовательность установки и настройки движка и плагинов CMS E-107 на хостинге. Разграничение ролей администратора и пользователей интернет-портала.

    курсовая работа [2,3 M], добавлен 29.06.2014

  • Наиболее распространенные программы. Внешний вид и программирование сайта. Система управления контентом и веб-контентом. Хранение и публикация большого количества документов, изображений, музыки или видео. Инструменты хранения и публикации информации.

    презентация [481,3 K], добавлен 19.08.2013

  • Организация совместного процесса создания, редактирования и управления контентом. Достоинства разработанной CMS. Добавление, редактирование и удаление страниц, файлов, новостей. Программный продукт для создания и легкого управления контентом страницы.

    дипломная работа [2,1 M], добавлен 15.10.2013

  • Проект программного продукта, представляющего собой веб-приложение в виде системы управления веб-контентом и предназначенного для быстрого создания простых сайтов. Функциональные требования в рамках языка UML. Разработка визуальных интерфейсов системы.

    дипломная работа [5,0 M], добавлен 11.07.2012

  • Компьютерные обучающие системы. Основные принципы новых информационных технологий обучения. Развитие глобальной сети Интернет, понятие web-сайта. Процессор гипертекста, СУБД MySQL. Система управления контентом "Joomla". Установка локального сервера.

    дипломная работа [4,4 M], добавлен 19.04.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.