home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2004 April
/
CMCD0404.ISO
/
Software
/
Freeware
/
Programare
/
groupoffice-com-2.01
/
modules
/
cms
/
properties.php
< prev
next >
Wrap
PHP Script
|
2004-03-08
|
13KB
|
434 lines
<?php
/*
Copyright Intermesh 2003
Author: Merijn Schering <mschering@intermesh.nl>
Version: 1.0 Release date: 08 July 2003
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
*/
require("../../Group-Office.php");
require($GO_CONFIG->class_path.'cms.class.inc');
$cms = new cms();
//authenticate the user
$GO_SECURITY->authenticate();
//see if the user has access to this module
//for this to work there must be a module named 'example'
$GO_MODULES->authenticate('cms');
//get the language file
require($GO_LANGUAGE->get_language_file('cms'));
$site_id = isset($_REQUEST['site_id']) ? $_REQUEST['site_id'] : 0;
if(!$site = $cms->get_site($site_id))
{
header('Location: index.php');
}
if (!$GO_SECURITY->has_permission($GO_SECURITY->user_id, $site['acl_write']))
{
require($GO_THEME->theme_path."header.inc");
require($GO_CONFIG->root_path.'error_docs/403.inc');
require($GO_THEME->theme_path."footer.inc");
exit();
}
//set the folder id we are in
$folder_id = isset($_REQUEST['folder_id']) ? $_REQUEST['folder_id'] : $site['root_folder_id'];
//set the folder id we are in
$file_id = isset($_REQUEST['file_id']) ? $_REQUEST['file_id'] : 0;
//what to do before output
$task = isset($_REQUEST['task']) ? $_REQUEST['task'] : '';
$return_to = isset($_REQUEST['return_to']) ? $_REQUEST['return_to'] : $_SERVER['HTTP_REFERRER'];
$link_back = isset($_REQUEST['link_back']) ? $_REQUEST['link_back'] : $_SERVER['REQUEST_URI'];
switch ($task)
{
case 'save_file_properties':
$task = 'file_properties';
$name = trim($_POST['name']);
if ($name == '')
{
$feedback = '<p class="Error">'.$error_missing_field.'</p>';
}else
{
if ($_POST['extension'] != '')
{
$name = $name.'.'.$_POST['extension'];
}
$existing_id = $cms->file_exists($folder_id, $name);
if($existing_id && ($_POST['file_id'] != $existing_id))
{
$feedback = '<p class="Error">'.$fbNameExists.'</p>';
}elseif(!$file=$cms->get_file($_POST['file_id']))
{
$feedback = '<p class="Error">'.$strSaveError.'</p>';
}else
{
if (!$cms->update_file($_POST['file_id'], $name, addslashes($file['content']), $_POST['title'], $_POST['description'], $_POST['keywords'], $_POST['priority']))
{
$feedback = '<p class="Error">'.$strSaveError.'</p>';
}else
{
if($_POST['close'] == 'true')
{
header('Location: '.$return_to);
exit();
}
}
}
}
break;
case 'save_folder_properties':
$task = 'folder_properties';
$name = trim($_POST['name']);
if ($name == '')
{
$feedback = '<p class="Error">'.$error_missing_field.'</p>';
}elseif(!$folder=$cms->get_folder($folder_id))
{
$feedback = '<p class="Error">'.$strSaveError.'</p>';
}else
{
$disabled = isset($_POST['disabled']) ? '1' : '0';
if (!$cms->update_folder($folder_id, $name, $disabled, $_POST['priority']))
{
$feedback = '<p class="Error">'.$strSaveError.'</p>';
}else
{
if($_POST['close'] == 'true')
{
header('Location: '.$return_to);
exit();
}
}
}
break;
case 'save_search_words':
$cms2 = new cms();
$selected_search_words = isset($_POST['selected_search_words']) ? $_POST['selected_search_words'] : array();
$cms->get_search_words($site_id);
while ($cms->next_record())
{
$attached = $cms2->file_is_attached($_POST['file_id'], $cms->f('id'));
$selected = in_array($cms->f('id'), $selected_search_words);
if ($selected && !$attached)
{
$cms2->attach_file($_POST['file_id'], $cms->f('id'));
}
if ($attached && !$selected)
{
$cms2->detach_file($_POST['file_id'],$cms->f('id'));
}
}
$task = 'file_properties';
if($_POST['close'] == 'true')
{
header('Location: '.$return_to);
exit();
}
break;
case 'search_file':
$task = 'file_properties';
$search_file = true;
break;
}
//set the page title for the header file
$page_title = $lang_modules['cms'];
//require the header file. This will draw the logo's and the menu
require($GO_THEME->theme_path."header.inc");
echo '<form name="cms" method="post" action="'.$_SERVER['PHP_SELF'].'">';
echo '<input type="hidden" name="site_id" value="'.$site_id.'" />';
echo '<input type="hidden" name="folder_id" value="'.$folder_id.'" />';
echo '<input type="hidden" name="return_to" value="'.$return_to.'" />';
echo '<input type="hidden" name="link_back" value="'.$link_back.'" />';
echo '<input type="hidden" name="close" value="false" />';
$tabtable = new tabtable('properties',$fbProperties, '400', '400', '100','', true);
if ($task == 'file_properties')
{
echo '<input type="hidden" name="task" value="file_properties" />';
echo '<input type="hidden" name="file_id" value="'.$file_id.'" />';
$write_perms = true;
$item = $cms->get_file($file_id);
$item['parent_id'] = $item['folder_id'];
$item['size'] = format_size($item['size']);
$tabtable->add_tab($fbProperties, 'properties');
if (strtolower($item['content_type']) == 'text/html')
{
$tabtable->add_tab('meta', 'meta');
}
$tabtable->add_tab('search_words', $cms_search_words);
}else
{
echo '<input type="hidden" name="task" value="folder_properties" />';
$item = $cms->get_folder($folder_id);
$item['content_type'] = 'folder';
$item['size'] = '-';
if ($item['parent_id'] == 0)
{
$no_hide = true;
}else
{
$no_hide = false;
}
}
if(isset($_REQUEST['set_active_tab']))
{
$tabtable->set_active_tab($_REQUEST['set_active_tab']);
}
$tabtable->print_head();
switch($tabtable->get_active_tab_id())
{
case 'meta':
echo '<input type="hidden" name="name" value="'.strip_extension($item['name']).'" />';
echo '<input type="hidden" name="extension" value="'.get_extension($item['name']).'" />';
echo '<input type="hidden" name="priority" value="'.$item['priority'].'" />';
?>
<table border="0" cellpadding="4" cellspacing="0">
<?php
if(isset($feedback)) echo '<tr><td colspan="2">'.$feedback.' </td></tr>';
?>
<tr>
<td>
<?php echo $strTitle; ?>:
</td>
<td>
<?php
$title = ($item['title'] != '') ? $item['title'] : $site['name'];
?>
<input type="text" class="textbox" name="title" value="<?php echo $title; ?>" maxlength="100" style="width: 250" />
</td>
</tr>
<tr>
<td valign="top">
<?php echo $strDescription; ?>:
</td>
<td>
<?php
$description = ($item['description'] != '') ? $item['description'] : $site['description'];
?>
<textarea class="textbox" name="description" style="width: 250" rows="5"><?php echo $description; ?></textarea>
</td>
</tr>
<tr>
<td valign="top">
<?php echo $cms_keywords; ?>:
</td>
<td>
<?php
$keywords = ($item['keywords'] != '') ? $item['keywords'] : $site['keywords'];
?>
<textarea class="textbox" name="keywords" style="width: 250" rows="5"><?php echo $keywords; ?></textarea>
</td>
</tr>
<tr>
<td colspan="2">
<br />
<?php
$button = new button($cmdOk, "javascript:_save('".$task."', 'true');");
echo ' ';
$button = new button($cmdApply, "javascript:_save('".$task."', 'false');");
echo ' ';
$button = new button($cmdClose, "javascript:document.location='$return_to';");
?>
</td>
</tr>
</table>
<?php
break;
case 'search_words':
echo '<table border="0" cellspacing="8">';
echo '<tr><td><a class="normal" href="site.php?task=edit_search_words&site_id='.$site_id.'&return_to='.urlencode($link_back).'">'.$cms_edit_search_words.'</a></td></tr>';
echo '<tr><td><table border="0">';
$cms2 = new cms();
if (isset($search_file))
{
$cms->get_search_words($site_id);
}else
{
$cms->get_attached_search_words($file_id);
}
while ($cms->next_record())
{
if(!isset($search_file) || preg_match("/\b(?<!\/)".$cms->f('search_word')."\b/i", $item['content']) || preg_match("/\b(?<!\/)".htmlentities($cms->f('search_word'))."\b/i", $item['content']))
{
echo '<tr><td><input type="checkbox" name="selected_search_words[]" value="'.$cms->f('id').'" checked />';
echo '<td>'.$cms->f('search_word').'</td></tr>';
}
}
echo '</td></tr></table>';
echo '<tr><td nowrap>';
$button = new button($cmdOk, "javascript:_save('save_search_words', 'true');");
echo ' ';
$button = new button($cmdApply, "javascript:_save('save_search_words', 'false');");
echo ' ';
$button = new button($cms_search_files, "javascript:_save('search_file', 'false');");
echo ' ';
$button = new button($cmdClose, "javascript:document.location='$return_to';");
echo '</td></tr></table>';
break;
default:
if ($task == 'file_properties')
{
echo '<input type="hidden" name="title" value="'.$item['title'].'" />';
echo '<input type="hidden" name="description" value="'.$item['description'].'" />';
echo '<input type="hidden" name="keywords" value="'.$item['keywords'].'" />';
}
?>
<table border="0" cellpadding="4" cellspacing="0">
<tr>
<td colspan="2"><?php if(isset($feedback)) echo $feedback; ?> </td>
</tr>
<tr>
<td>
<?php echo $strName; ?>:
</td>
<td>
<?php
if($task == 'file_properties')
{
echo '<input type="text" class="textbox" name="name" value="'.strip_extension($item['name']).'" maxlength="100" size="30" />';
echo '<input type="hidden" name="extension" value="'.get_extension($item['name']).'" />';
}else
{
echo '<input type="text" class="textbox" name="name" value="'.$item['name'].'" maxlength="100" size="30" />';
}
?>
</td>
</tr>
<tr>
<td>
<?php echo $fbLocation; ?>:
</td>
<td>
<?php
echo $cms->get_path($item['parent_id']);
?>
</td>
</tr>
<tr>
<td valign="top">
<?php echo $strType; ?>:
</td>
<td>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top">
<?php
if ($item['content_type'] == 'folder')
{
echo '<img border="0" width="16" height="16" src="'.$GO_THEME->images['folder'].'" />';
echo ' </td><td valign="top">';
echo $fbFolder;
}else
{
echo '<img border="0" width="16" height="16" src="'.$GO_CONFIG->control_url.'icon.php?extension='.$item['extension'].'" />';
echo ' </td><td valign="top">';
echo $item['content_type_friendly'];
if (($item['content_type'] != $item['content_type_friendly']) && $item['content_type'] != '')
{
echo '<br />('.$item['content_type'].')';
}
}
?>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td><?php echo $strSize; ?>:</td>
<td><?php echo $item['size']; ?></td>
</tr>
<tr>
<td>
<?php echo $strModified; ?>:
</td>
<td>
<?php echo date($_SESSION['GO_SESSION']['date_format'].' '.$_SESSION['GO_SESSION']['time_format'], $item['mtime']+($_SESSION['GO_SESSION']['timezone']*3600)); ?>
</td>
</tr>
<tr>
<td valign="top">
<?php echo $cms_priority; ?>:
</td>
<td>
<?php
$priority = ($item['priority'] != '') ? $item['priority'] : $site['priority'];
?>
<input type="text" class="textbox" name="priority" value="<?php echo $priority; ?>" maxlength="3" size="3" />
</td>
</tr>
<?php
if ($item['content_type'] == 'folder')
{
$disabled_check = ($item['disabled'] == '1') ? true : false;
echo '<tr><td colspan="2">';
$checkbox = new checkbox('disabled', '1', $cms_hide_folder, $disabled_check, $no_hide);
echo '</td></tr>';
}
?>
<tr>
<td colspan="2">
<br />
<?php
$button = new button($cmdOk, "javascript:_save('".$task."', 'true');");
echo ' ';
$button = new button($cmdApply, "javascript:_save('".$task."', 'false');");
echo ' ';
$button = new button($cmdClose, "javascript:document.location='$return_to';");
?>
</td>
</tr>
</table>
<?php
break;
}
$tabtable->print_foot();
?>
<script type="text/javascript" language="javascript">
function _save(task, close)
{
document.forms[0].task.value=task;
document.forms[0].close.value=close;
document.forms[0].submit();
}
</script>
<?php
require($GO_THEME->theme_path."footer.inc");
?>