if ($this->delete_folder($site['root_folder_id']))
{
if($this->query("DELETE FROM cms_sites WHERE id='$site_id'"))
{
global $GO_SECURITY;
$GO_SECURITY->delete_acl($site['acl_read']);
$GO_SECURITY->delete_acl($site['acl_write']);
return true;
}
}
}
return false;
}
function update_site($site_id, $name, $description, $keywords, $template_id, $acl_read)
{
return $this->query("UPDATE cms_sites SET name='".smart_addslashes($name)."', description='".smart_addslashes($description)."', keywords='".smart_addslashes($keywords)."', template_id='$template_id', acl_read='$acl_read' WHERE id='$site_id'");
}
function set_publishing($site_id, $publish_style, $publish_path)
{
return $this->query("UPDATE cms_sites SET publish_style='$publish_style', publish_path='$publish_path' WHERE id='$site_id'");
}
function get_site_by_publish_path($path)
{
$this->query("SELECT * FROM cms_sites WHERE publish_path='$path'");
if ($this->next_record())
{
return $this->Record;
}else
{
return false;
}
}
function get_site($site_id)
{
$this->query("SELECT * FROM cms_sites WHERE id='$site_id'");
if ($this->next_record())
{
return $this->Record;
}
return false;
}
function get_site_by_name($name)
{
$this->query("SELECT * FROM cms_sites WHERE name='".smart_addslashes($name)."'");
if ($this->next_record())
{
return $this->Record;
}
return false;
}
function get_sites()
{
$this->query("SELECT * FROM cms_sites");
return $this->num_rows();
}
function get_authorized_sites($user_id)
{
$sql = "SELECT DISTINCT cms_sites.* FROM cms_sites, acl, users_groups WHERE ".
"cms_sites.acl_write = acl.acl_id".
" AND (( acl.group_id = users_groups.group_id AND users_groups.user_id = ".$user_id." AND acl.user_id = 0 ) OR (".
"acl.group_id = 0 AND acl.user_id = ".$user_id." ) )";
$this->query($sql);
return $this->num_rows();
}
function get_subscribed_sites($user_id)
{
$this->query("SELECT cms_sites.* FROM cms_sites LEFT JOIN cms_subscribed ON (cms_subscribed.site_id=cms_sites.id) WHERE cms_subscribed.user_id='$user_id' ORDER BY cms_sites.name ASC");
return $this->num_rows();
}
function subscribe_site($user_id, $site_id)
{
return $this->query("INSERT INTO cms_subscribed (user_id, site_id) VALUES ('$user_id', '$site_id')");
}
function unsubscribe_site($user_id, $site_id)
{
return $this->query("DELETE FROM cms_subscribed WHERE user_id='$user_id' AND site_id='$site_id'");
}
function is_subscribed($user_id, $site_id)
{
$this->query("SELECT * FROM cms_subscribed WHERE user_id='$user_id' AND site_id='$site_id'");
return $this->next_record();
}
//functions for files and folders of sites
function get_files($folder_id, $sort = "name", $direction = "ASC")
{
$sql = "SELECT cms_files.*, filetypes.friendly FROM cms_files INNER JOIN filetypes ON filetypes.extension=cms_files.extension WHERE folder_id='$folder_id' ORDER BY $sort $direction";
$this->query($sql);
return $this->num_rows();
}
function get_visible_folders($folder_id)
{
$this->query("SELECT * FROM cms_folders WHERE parent_id='$folder_id' AND disabled='0' ORDER BY priority ASC");
return $this->num_rows();
}
function get_folders($folder_id, $sort = "name", $direction = "ASC")
{
$this->query("SELECT * FROM cms_folders WHERE parent_id='$folder_id' ORDER BY '$sort' $direction");
return $this->num_rows();
}
function add_folder($parent_id, $name, $priority=0)
$this->query("SELECT * FROM cms_folders WHERE id='$folder_id';");
if ($this->next_record())
{
return $this->Record;
}
return false;
}
function update_folder($folder_id, $name, $disabled, $priority)
{
return $this->query("UPDATE cms_folders SET name='".smart_addslashes($name)."', mtime='".get_gmt_time()."', disabled='$disabled', priority='$priority' WHERE id='$folder_id'");
}
function folder_exists($parent_id, $name)
{
$this->query("SELECT id FROM cms_folders WHERE parent_id='$parent_id' AND name='".smart_addslashes($name)."'");
if($this->next_record())
{
return $this->f('id');
}
return false;
}
function delete_folder($folder_id)
{
if ($folder_id > 0)
{
//add a second cms object for simultanious select and delete from the db
$cms2 = new cms();
//get all folders
$this->get_folders($folder_id);
while($this->next_record())
{
if (!$cms2->delete_folder($this->f('id')))
{
return false;
}
}
$this->get_files($folder_id);
while ($this->next_record())
{
if(!$cms2->delete_file($this->f('id')))
{
return false;
}
}
return $this->query("DELETE FROM cms_folders WHERE id='$folder_id'");
}else
{
return false;
}
}
function delete_file($file_id)
{
return $this->query("DELETE FROM cms_files WHERE id='$file_id'");
}
function get_file($file_id)
{
$this->query("SELECT cms_files.*, filetypes.mime AS content_type, filetypes.friendly AS content_type_friendly FROM cms_files LEFT JOIN filetypes ON (filetypes.extension=cms_files.extension) WHERE id='$file_id'");
if ($this->next_record())
{
return $this->Record;
}
return false;
}
function add_file($folder_id, $name, $content, $title='', $description='', $keywords='', $priority='0')
return $this->query("UPDATE cms_templates SET restrict_editor='$restrict_editor', name='".smart_addslashes($name)."', style='".smart_addslashes($style)."', additional_style='".smart_addslashes($additional_style)."' WHERE id='$template_id'");
}
function get_templates()
{
$this->query("SELECT * FROM cms_templates");
return $this->num_rows();
}
function get_authorized_templates($user_id)
{
$sql = "SELECT DISTINCT cms_templates.* FROM cms_templates, acl, users_groups WHERE ".
"(cms_templates.acl_write = acl.acl_id OR cms_templates.acl_read = acl.acl_id)".
" AND (( acl.group_id = users_groups.group_id AND users_groups.user_id = ".$user_id." AND acl.user_id = 0 ) OR (".
"acl.group_id = 0 AND acl.user_id = ".$user_id." ) )";
$this->query($sql);
return $this->num_rows();
}
function get_template($template_id)
{
$this->query("SELECT * FROM cms_templates WHERE id='$template_id'");
if ($this->next_record())
{
return $this->Record;
}
return false;
}
function get_template_by_name($user_id, $name)
{
$this->query("SELECT * FROM cms_templates WHERE user_id='$user_id' AND name='".smart_addslashes($name)."'");
if ($this->next_record())
{
return $this->Record;
}
return false;
}
function delete_template($template_id)
{
if($this->query("DELETE FROM cms_template_items WHERE template_id='$template_id'"))
{
return $this->query("DELETE FROM cms_templates WHERE id='$template_id'");
}
return false;
}
function add_template_item($template_id, $name, $content)
function update_template_item($template_item_id, $name, $content)
{
return $this->query("UPDATE cms_template_items SET name='".smart_addslashes($name)."',content='".smart_addslashes($content)."' WHERE id='$template_item_id'");
}
function get_template_items($template_id)
{
$this->query("SELECT * FROM cms_template_items WHERE template_id='$template_id'");
return $this->num_rows();
}
function get_template_item($template_item_id)
{
$this->query("SELECT * FROM cms_template_items WHERE id='$template_item_id'");
if ($this->next_record())
{
return $this->Record;
}
return false;
}
function delete_template_item($template_item_id)
{
return $this->query("DELETE FROM cms_template_items WHERE id='$template_item_id'");
}
function get_template_item_by_name($template_id, $name)
{
$this->query("SELECT * FROM cms_template_items WHERE template_id='$template_id' AND name='".smart_addslashes($name)."'");
if ($this->next_record())
{
return $this->Record;
}
return false;
}
function set_main_template_item($template_id, $template_item_id)
{
$this->query("UPDATE cms_template_items SET main='0' WHERE template_id='$template_id' AND main='1'");
$this->query("UPDATE cms_template_items SET main='1' WHERE template_id='$template_id' AND id='$template_item_id'");
}
function get_main_template_item($template_id)
{
$this->query("SELECT * FROM cms_template_items WHERE template_id='$template_id' AND main='1'");
if ($this->next_record())
{
return $this->Record;
}
return false;
}
function get_template_files($template_id)
{
$this->query("SELECT cms_template_files.*, filetypes.mime AS content_type, filetypes.friendly AS content_type_friendly FROM cms_template_files LEFT JOIN filetypes ON (filetypes.extension=cms_template_files.extension) WHERE template_id='$template_id'");
return $this->num_rows();
}
function add_template_file($template_id, $name, $content)
$this->query("SELECT cms_template_files.*, filetypes.mime AS content_type, filetypes.friendly AS content_type_friendly FROM cms_template_files LEFT JOIN filetypes ON (filetypes.extension=cms_template_files.extension) WHERE id='$template_file_id'");
if ($this->next_record())
{
return $this->Record;
}
return false;
}
function template_file_exists($template_id, $name)
{
$this->query("SELECT id FROM cms_template_files WHERE template_id='$template_id' AND name='".smart_addslashes($name)."'");
if ($this->next_record())
{
return $this->f('id');
}
return false;
}
function delete_template_file($template_file_id)
{
return $this->query("DELETE FROM cms_template_files WHERE id='$template_file_id'");
$sql = "SELECT id FROM cms_files WHERE extension='html' AND folder_id='$folder_id' AND (UPPER(content) REGEXP '[[:<:]]".strtoupper($search_word['search_word'])."[[:>:]]' OR UPPER(content) REGEXP '[[:<:]]".htmlentities(strtoupper($search_word['search_word']))."[[:>:]]')";
$this->query($sql);
while ($this->next_record())
{
if ($attach_results && !$cms->file_is_attached($this->f('id'), $search_word_id))
$this->query("SELECT cms_files.* FROM cms_files LEFT JOIN cms_search_files ON (cms_search_files.file_id=cms_files.id) WHERE cms_search_files.search_word_id='$search_word_id'");
return $this->num_rows();
}
function get_attached_search_words($file_id)
{
$this->query("SELECT cms_search_words.* FROM cms_search_words LEFT JOIN cms_search_files ON (cms_search_files.search_word_id=cms_search_words.id) WHERE cms_search_files.file_id='$file_id'");