Серверная часть системы создания и управления сайтами
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
draftSavePageDraft ($project_uid, $page_uid, $draft_uid,
$template_uid = FALSE,
$modification_time = FALSE,
$page_url = FALSE,
$object_data = FALSE,
$published = FALSE,
$new_draftuid = FALSE,
$new_pageuid = FALSE)
{
// Checking if input is correct(! valcheck:isuid ($project_uid) ||! valcheck:isuid ($page_uid))
{Bad input 1;
}(($draft_uid &&! valcheck:isuid ($draft_uid)) ||
($template_uid &&! valcheck:isuid ($template_uid)) ||
($page_url &&! valcheck:isurl ($page_url)) ||
($modification_time &&! valcheck:isunixtime ($modification_time)) ||
($object_data &&! valcheck:isobjectdata ($object_data)) ||
($published &&! is_bool (strbool:tobool($published))) ||
($new_draftuid &&! valcheck:isuid ($new_draftuid)) ||
($new_pageuid &&! valcheck:isuid ($new_pageuid)))
{Bad input 2;
}
$this->dbm->SelectDatabase ($this->db_name);
$project_id = $this->getIdByUid ($this->db_tables_projects, project_uid, $project_uid);
// Assume url wont change
$old_page_url = FALSE;($page_url)
{
// Getting old url to delete old data
$what = array (page_url);
$from = array ($this->db_tables_pages);
$condition = array (page_uid=>$page_uid);
$row = $this->dbm->GetData ($what, $from, $condition);
$old_page_url = $row[0];
// Updating url
$table_name = $this->db_tables_pages;
$new_data = array (page_url=>$page_url);
$condition = array (page_uid=>$page_uid);
$this->dbm->UpdateData ($table_name, $new_data, $condition);
}($draft_uid)
{
$page_id = $this->getIdByUidCond ($this->db_tables_pages, page_uid, $page_uid, project_id, $project_id);
$draft_id = $this->getIdByUidCond ($this->db_tables_page_drafts, draft_uid, $draft_uid, page_id, $page_id);
// Updating draft
$table_name = $this->db_tables_page_drafts;
$new_data = array();($modification_time) $new_data [modification_time] = $modification_time;($object_data) $new_data [object_data] = $object_data;($published)
{(strbool:istrue($published))
{
// Unpublish all drafts
$table_name = $this->db_tables_page_drafts;
$new_data = array (published=>FALSE);
$condition = array (page_id=>$page_id);
$this->dbm->UpdateData ($table_name, $new_data, $condition);
}
$new_data[published] = strbool:tobool($published);
}($template_uid)
{
$template_id = $this->getIdByUidCond ($this->db_tables_templates, template_uid, $template_uid, project_id, $project_id);($template_id == 0)Error. No such template.;
$new_data [template_id] = $template_id;
}($new_draftuid)
{
$new_data [draft_uid] = $new_draftuid;
$draft_uid = $new_draftuid;
}
$condition = array (id=>$draft_id);
$this->dbm->UpdateData ($table_name, $new_data, $condition);
// Change uid of page($new_pageuid)
{
$table_name = $this->db_tables_pages;
$new_data = array (page_uid=>$new_pageuid);
$condition = array (id=>$page_id);
$this->dbm->UpdateData ($table_name, $new_data, $condition);
$page_uid = $new_pageuid;
}
}
$this->PublishPage ($project_id, $page_uid, $old_page_url);OK;
}
function PublishPage ($project_id, $page_uid, $old_page_url = FALSE)
{
// Getting page id from uid
$page_id = $this->getIdByUidCond ($this->db_tables_pages, page_uid, $page_uid, project_id, $project_id);
// Getting page url
$what = array (page_url);
$from = array ($this->db_tables_pages);
$condition = array (id=>$page_id);
$row = $this->dbm->GetData ($what, $from, $condition);
$page_url = $row[0];
// Getting draft uid
$what = array (draft_uid);
$from = array ($this->db_tables_page_drafts);
$condition = array (page_id=>$page_id,
published=>TRUE);
$row = $this->dbm->GetData ($what, $from, $condition);
$draft_uid = $row[0];
// If no drafts to publish, remove previous from disk(empty ($draft_uid))
{
$gen = new Generator();
$gen->RemovePage ($page_url);FALSE;
}
$draft_id = $this->getIdByUidCond ($this->db_tables_page_drafts, draft_uid, $draft_uid, page_id, $page_id);
// Getting page draft data
$what = array (object_data, template_id, modification_time);
$from = array ($this->db_tables_page_drafts);
$condition = array (id=>$draft_id);
$row = $this->dbm->GetData ($what, $from, $condition);
$page_data = $row[0];
$template_id = $row[1];
$modification_time = $row[2];
// Getting template data
$what = array (object_data);
$from = array ($this->db_tables_template_drafts);
$condition = array (template_id=>$template_id);
$row = $this->dbm->GetData ($what, $from, $condition);
$template_data = $row[0];
// Generate pae
$gen = new Generator();
$gen->GeneratePage ($page_url, $page_data, $template_data, $old_page_url);
// Update generation time
$generated_modification_time = $modification_time;
$generated_draft_uid = $draft_uid;
$table_name = $this->db_tables_pages;
$new_data = array (generated_modification_time=>$generated_modification_time,
generated_draft_uid=>$generated_draft_uid);
$condition = array (page_uid=>$page_uid);
$this->dbm->UpdateData ($table_name, $new_data, $condition);
}
// Removes resourceRemoveResource ($project_uid, $uid, $fromdisk = FALSE)
{
// Checking if input is correct(! valcheck:isuid ($project_uid) ||! valcheck:isuid($uid))
{Bad input;
}
$this->dbm->SelectDatabase ($this->db_name);
$project_id = $this->getIdByUid ($this->db_tables_projects, project_uid, $project_uid);($fromdisk)
{
// Getting resource path
$what = array(path);
$from = array ($this->db_tables_resources);
$condition = array (resource_uid=>$uid,
project_id=>$project_id);
$row = $this->dbm->GetData ($what, $from, $condition);
$path = $row[0];
// Removing resource
$gen = new Generator();
$gen->RemoveResourceFile($path);
}
// Removing links to resource
$resource_id = $this->getIdByUidCond ($this->db_tables_resources, resource_uid, $uid, project_id, $project_id);
$table_name = $this->db_tables_resource_usedin;
$condition = array (resource_id=>$resource_id);
$this->dbm->RemoveData ($table_name, $condition);
// Removing resource
$table_name = $this->db_tables_resources;
$condition = array (resource_uid=>$uid);
$this->dbm->RemoveData ($table_name, $condition);OK;
}
// Removes pageRemovePage ($project_uid, $uid, $fromdisk = FALSE)
{
// Checking if input is correct(! valcheck:isuid ($project_uid) ||! valcheck:isuid($uid))
{Bad input;
}
$this->dbm->SelectDatabase ($this->db_name);
$project_id = $this->getIdByUid ($this->db_tables_projects, project_uid, $project_uid);($fromdisk)
{
// Getting page url
$what = array (page_url);
$from = array ($this->db_tables_pages);
$condition = array (page_uid=>$uid,
project_id=>$project_id);
$row = $this->dbm->GetData ($what, $from, $condition);
$url = $row[0];
// Removing page
$gen = new Generator();
$gen->RemovePage($url);
}
// Removing drafts
$page_id = $this->getIdByUidCond ($this->db_tables_pages, page_uid, $uid, project_id, $project_id);
$table_name = $this->db_tables_page_drafts;
$condition = array (page_id=>$page_id);
$this->dbm->RemoveData ($table_name, $condition);
// Removing page
$table_name = $this->db_tables_pages;
$condition = array (page_uid=>$uid);
$this->dbm->RemoveData ($table_name, $condition);OK;
}
// Removes templateRemoveTemplate ($project_uid, $uid)
{
// Checking if input is correct(! valcheck:isuid ($project_uid) ||! valcheck:isuid($uid))
{Bad input;
}
$this->dbm->SelectDatabase ($this->db_name);
$project_id = $this->getIdByUid ($this->db_tables_projects, project_uid, $project_uid);
// Removing template
$table_name = $this->db_tables_templates;
$condition =