little fixes and git admin

Dieser Commit ist enthalten in:
o.pinke 2021-05-23 11:17:02 +02:00
Ursprung a7f1f3edb4
Commit dbaaa6ffa5
10 geänderte Dateien mit 611 neuen und 731 gelöschten Zeilen

2
.gitignore vendored
Datei anzeigen

@ -13,3 +13,5 @@
!/cms/data/layouts/ !/cms/data/layouts/
/cms/data/layouts/* /cms/data/layouts/*
/conlite/includes/include.style_edit_form_1.php /conlite/includes/include.style_edit_form_1.php
/cms/config.local.php
/cms/dflip/

6
cms/upload/.gitignore vendored Normale Datei
Datei anzeigen

@ -0,0 +1,6 @@
# Ignore everything in this directory
*
# Except this file
!.gitignore
!/Flexslider
!/Gallery

Datei anzeigen

@ -443,15 +443,13 @@ class cFileHandler {
* true if the given filename is valid, false otherwise * true if the given filename is valid, false otherwise
*/ */
public static function validateFilename($filename, $notifyAndExitOnFailure = true) { public static function validateFilename($filename, $notifyAndExitOnFailure = true) {
$notification = new Contenido_Notification();
// check if filename only contains valid characters // check if filename only contains valid characters
if (preg_match('/[^a-z0-9._-]/i', $filename)) { if (preg_match('/[^a-z0-9._-]/i', $filename)) {
// validation failure... // validation failure...
if ($notifyAndExitOnFailure) { if ($notifyAndExitOnFailure) {
// display notification and exit $notification->displayNotification("error", i18n("Please insert file name."));
cRegistry::addErrorMessage(i18n('Wrong file name.'));
$page = new cGuiPage('generic_page');
$page->abortRendering();
$page->render();
exit(); exit();
} }
@ -463,7 +461,6 @@ class cFileHandler {
// validation failure... // validation failure...
if ($notifyAndExitOnFailure) { if ($notifyAndExitOnFailure) {
// display notification and exit // display notification and exit
$notification = new cGuiNotification();
$notification->displayNotification("error", i18n("Please insert file name.")); $notification->displayNotification("error", i18n("Please insert file name."));
exit(); exit();
} }

Datei anzeigen

@ -194,7 +194,7 @@ class Template {
$sModName = strtolower(uplCreateFriendlyName($tmpModule->get('name'))); $sModName = strtolower(uplCreateFriendlyName($tmpModule->get('name')));
$aModFileEditConf = $tmpModule->getModFileEditConf(); $aModFileEditConf = $tmpModule->getModFileEditConf();
unset($tmpModule); unset($tmpModule);
$sTmpPath = $aModFileEditConf['modPath'] . $sModName . "/template/" . $template; $sTmpPath = $aModFileEditConf['modPath'] . $sModName . "/template/" . str_replace('templates/', '', $template);
if (is_readable($sTmpPath)) { if (is_readable($sTmpPath)) {
$template = $sTmpPath; $template = $sTmpPath;
$bModTplUsed = TRUE; $bModTplUsed = TRUE;

Datei anzeigen

@ -1,4 +1,5 @@
<?php <?php
/** /**
* Project: * Project:
* Contenido Content Management System * Contenido Content Management System
@ -30,7 +31,6 @@
* }} * }}
* *
*/ */
if (!defined('CON_FRAMEWORK')) { if (!defined('CON_FRAMEWORK')) {
die('Illegal call'); die('Illegal call');
} }
@ -187,7 +187,6 @@ function updateFileInformation($iIdClient, $sFilename, $sType, $sAuthor, $sDescr
$oDb->free(); $oDb->free();
} }
/** /**
* Writes passed data into a file using binary mode. * Writes passed data into a file using binary mode.
* *
@ -199,44 +198,31 @@ function updateFileInformation($iIdClient, $sFilename, $sType, $sAuthor, $sDescr
* @return (string|void) Either content of file o nothing * @return (string|void) Either content of file o nothing
*/ */
function fileEdit($filename, $sCode, $path) { function fileEdit($filename, $sCode, $path) {
global $notification; $oNot = new Contenido_Notification();
// FIXME: fileValidateFilename does also the validation but display another message! // FIXME: fileValidateFilename does also the validation but display another message!
if (strlen(trim($filename)) == 0) { if (strlen(trim($filename)) == 0) {
$notification->displayNotification("error", i18n("Please insert filename.")); $oNot->displayNotification("error", i18n("Please insert filename."));
return false; return false;
} }
cFileHandler::validateFilename($filename);
fileValidateFilename($filename, true);
// FIXME: Should be replaced against file_put_contents($path . $filename, FILE_BINARY | LOCK_EX | FILE_APPEND)
if (is_writable($path . $filename)) { if (is_writable($path . $filename)) {
if (strlen(stripslashes(trim($sCode))) > 0) { if (strlen(stripslashes(trim($sCode))) > 0) {
# open file if (!empty($sCode)) {
if (!$handle = fopen($path.$filename, "wb+")) { $sCode = mb_convert_encoding($sCode, 'UTF-8', 'OLD-ENCODING');
$notification->displayNotification("error", sprintf(i18n("Could not open file %s"), $path.$filename));
exit;
} }
# write file cFileHandler::write($path . $filename, $sCode);
if (!fwrite($handle, stripslashes($sCode))) {
$notification->displayNotification("error", sprintf(i18n("Could not write file %s"), $path.$filename));
exit;
}
fclose($handle);
return true; return true;
} else { } else {
return false; return false;
} }
} else { } else {
$notification->displayNotification("error", sprintf(i18n("%s is not writable"), $path.$filename)); $oNot->displayNotification("error", sprintf(i18n("%s is not writable"), $path . $filename));
exit; exit;
} }
} }
/** /**
* Reads content of file into memory using binary mode and returns it back. * Reads content of file into memory using binary mode and returns it back.
* *
@ -247,27 +233,12 @@ function fileEdit($filename, $sCode, $path) {
* @return (string|void) Either content of file o nothing * @return (string|void) Either content of file o nothing
*/ */
function getFileContent($filename, $path) { function getFileContent($filename, $path) {
global $notification; $sCode = cFileHandler::read($path . $filename);
if (!empty($sCode)) {
// FIXME: Should be replaced against file_get_contents($path . $filename, FILE_BINARY) $sCode = mb_convert_encoding($sCode, 'UTF-8', 'OLD-ENCODING');
if (!$handle = fopen($path.$filename, "rb")) {
$notification->displayNotification("error", sprintf(i18n("Can not open file%s "), $path.$filename));
exit;
} }
return $sCode;
do {
$_data = fread($handle, 4096);
if (strlen($_data) == 0) {
break;
} }
$sFileContents .= $_data;
} while(true);
fclose($handle);
return $sFileContents;
}
/** /**
* Returns the filetype (extension). * Returns the filetype (extension).
@ -280,7 +251,6 @@ function getFileType($filename) {
return $aFileName[count($aFileName) - 1]; return $aFileName[count($aFileName) - 1];
} }
/** /**
* Creates a file. * Creates a file.
* *
@ -291,26 +261,18 @@ function getFileType($filename) {
* @return (void|bool) Either true on success or nothing * @return (void|bool) Either true on success or nothing
*/ */
function createFile($filename, $path) { function createFile($filename, $path) {
global $notification; $oNot = new Contenido_Notification();
fileValidateFilename($filename, true); cFileHandler::validateFilename($filename);
# create the file if (cFileHandler::create($path . $filename)) {
if (touch($path.$filename)) {
# change file access permission
if(chmod ($path.$filename, 0777)) {
return true; return true;
} else { } else {
$notification->displayNotification("error", $path.$filename." ".i18n("Unable to change file access permission.")); $oNot->displayNotification("error", sprintf(i18n("Unable to create file %s"), $path . $filename));
exit;
}
} else {
$notification->displayNotification("error", sprintf(i18n("Unable to create file %s"), $path.$filename));
exit; exit;
} }
} }
/** /**
* Renames a existing file. * Renames a existing file.
* *
@ -322,7 +284,7 @@ function createFile($filename, $path) {
* @return (void|string) Either new filename or nothing * @return (void|string) Either new filename or nothing
*/ */
function renameFile($sOldFile, $sNewFile, $path) { function renameFile($sOldFile, $sNewFile, $path) {
global $notification; $oNot = new Contenido_Notification();
fileValidateFilename($sNewFile, true); fileValidateFilename($sNewFile, true);
@ -331,16 +293,15 @@ function renameFile($sOldFile, $sNewFile, $path) {
if (rename($path . $sOldFile, $path . $sNewFile)) { if (rename($path . $sOldFile, $path . $sNewFile)) {
return $sNewFile; return $sNewFile;
} else { } else {
$notification->displayNotification("error", sprintf(i18n("Can not rename file %s"),$path.$sOldFile)); $oNot->displayNotification("error", sprintf(i18n("Can not rename file %s"), $path . $sOldFile));
exit; exit;
} }
} else { } else {
$notification->displayNotification("error", sprintf(i18n("%s is not writable"), $path.$sOldFile)); $oNot->displayNotification("error", sprintf(i18n("%s is not writable"), $path . $sOldFile));
exit; exit;
} }
} }
/** /**
* Validates passed filename. Filename can contain alphanumeric characters, dot, underscore or a hyphen. * Validates passed filename. Filename can contain alphanumeric characters, dot, underscore or a hyphen.
* *
@ -352,13 +313,13 @@ function renameFile($sOldFile, $sNewFile, $path) {
* @return (void|bool) Either validation result or nothing (depends on second parameter) * @return (void|bool) Either validation result or nothing (depends on second parameter)
*/ */
function fileValidateFilename($filename, $notifyAndExitOnFailure = true) { function fileValidateFilename($filename, $notifyAndExitOnFailure = true) {
global $notification;
if (preg_match('/[^a-z0-9._-]/i', $filename)) { if (preg_match('/[^a-z0-9._-]/i', $filename)) {
// validation failure... // validation failure...
if ($notifyAndExitOnFailure == true) { if ($notifyAndExitOnFailure == true) {
$oNot = new Contenido_Notification();
// display notification and exit // display notification and exit
$notification->displayNotification('error', i18n('Wrong filename.')); $oNot->displayNotification('error', i18n('Wrong filename.'));
exit; exit;
} }
return false; return false;

Datei anzeigen

@ -1,4 +1,5 @@
<?php <?php
/** /**
* Project: * Project:
* Contenido Content Management System * Contenido Content Management System
@ -28,7 +29,6 @@
* }} * }}
* *
*/ */
if (!defined('CON_FRAMEWORK')) { if (!defined('CON_FRAMEWORK')) {
die('Illegal call'); die('Illegal call');
} }
@ -45,8 +45,7 @@ $page = new cPage;
$tpl->reset(); $tpl->reset();
if (!$perm->have_perm_area_action($area, $action)) if (!$perm->have_perm_area_action($area, $action)) {
{
$notification->displayNotification("error", i18n("Permission denied")); $notification->displayNotification("error", i18n("Permission denied"));
} else if (!(int) $client > 0) { } else if (!(int) $client > 0) {
#if there is no client selected, display empty page #if there is no client selected, display empty page
@ -56,11 +55,9 @@ if (!$perm->have_perm_area_action($area, $action))
$sTempFilename = stripslashes($_REQUEST['tmp_file']); $sTempFilename = stripslashes($_REQUEST['tmp_file']);
$sOrigFileName = $sTempFilename; $sOrigFileName = $sTempFilename;
if (getFileType($_REQUEST['file']) != $sFileType AND strlen(stripslashes(trim($_REQUEST['file']))) > 0) if (getFileType($_REQUEST['file']) != $sFileType AND strlen(stripslashes(trim($_REQUEST['file']))) > 0) {
{
$sFilename .= stripslashes($_REQUEST['file']) . ".$sFileType"; $sFilename .= stripslashes($_REQUEST['file']) . ".$sFileType";
}else } else {
{
$sFilename .= stripslashes($_REQUEST['file']); $sFilename .= stripslashes($_REQUEST['file']);
} }
@ -83,8 +80,7 @@ if (!$perm->have_perm_area_action($area, $action))
$aFileInfo = getFileInformation($client, $sTempFilename, $sTypeContent, $db); $aFileInfo = getFileInformation($client, $sTempFilename, $sTypeContent, $db);
# create new file # create new file
if ( $_REQUEST['action'] == $sActionCreate AND $_REQUEST['status'] == 'send') if ($_REQUEST['action'] == $sActionCreate AND $_REQUEST['status'] == 'send') {
{
$sTempFilename = $sFilename; $sTempFilename = $sFilename;
createFile($sFilename, $path); createFile($sFilename, $path);
$bEdit = fileEdit($sFilename, $_REQUEST['code'], $path); $bEdit = fileEdit($sFilename, $_REQUEST['code'], $path);
@ -99,10 +95,8 @@ if (!$perm->have_perm_area_action($area, $action))
} }
# edit selected file # edit selected file
if ( $_REQUEST['action'] == $sActionEdit AND $_REQUEST['status'] == 'send') if ($_REQUEST['action'] == $sActionEdit AND $_REQUEST['status'] == 'send') {
{ if ($sFilename != $sTempFilename) {
if ($sFilename != $sTempFilename)
{
$sTempFilename = renameFile($sTempFilename, $sFilename, $path); $sTempFilename = renameFile($sTempFilename, $sFilename, $path);
$sReloadScript .= "<script type=\"text/javascript\"> $sReloadScript .= "<script type=\"text/javascript\">
var right_top = top.content.right.right_top; var right_top = top.content.right.right_top;
@ -111,8 +105,7 @@ if (!$perm->have_perm_area_action($area, $action))
right_top.location.href = href; right_top.location.href = href;
} }
</script>"; </script>";
}else } else {
{
$sTempFilename = $sFilename; $sTempFilename = $sFilename;
} }
@ -135,23 +128,18 @@ if (!$perm->have_perm_area_action($area, $action))
/** /**
* END TRACK VERSION * END TRACK VERSION
* */ * */
$bEdit = fileEdit($sFilename, $_REQUEST['code'], $path); $bEdit = fileEdit($sFilename, $_REQUEST['code'], $path);
} }
# generate edit form # generate edit form
if (isset($_REQUEST['action'])) if (isset($_REQUEST['action'])) {
{
$aFileInfo = getFileInformation($client, $sFilename, $sTypeContent, $db); $aFileInfo = getFileInformation($client, $sFilename, $sTypeContent, $db);
$sAction = ($bEdit) ? $sActionEdit : $_REQUEST['action']; $sAction = ($bEdit) ? $sActionEdit : $_REQUEST['action'];
if ($_REQUEST['action'] == $sActionEdit) if ($_REQUEST['action'] == $sActionEdit) {
{
$sCode = getFileContent($sFilename, $path); $sCode = getFileContent($sFilename, $path);
}else } else {
{
$sCode = stripslashes($_REQUEST['code']); # stripslashes is required here in case of creating a new file $sCode = stripslashes($_REQUEST['code']); # stripslashes is required here in case of creating a new file
} }
@ -183,8 +171,6 @@ if (!$perm->have_perm_area_action($area, $action))
$page->addScript('reload', $sReloadScript); $page->addScript('reload', $sReloadScript);
$page->render(); $page->render();
} }
} }
?> ?>

Datei anzeigen

@ -1,4 +1,5 @@
<?php <?php
/** /**
* Project: * Project:
* Contenido Content Management System * Contenido Content Management System
@ -28,7 +29,6 @@
* }} * }}
* *
*/ */
if (!defined('CON_FRAMEWORK')) { if (!defined('CON_FRAMEWORK')) {
die('Illegal call'); die('Illegal call');
} }
@ -46,8 +46,7 @@ $page->setEncoding("utf-8");
$tpl->reset(); $tpl->reset();
if (!$perm->have_perm_area_action($area, $action)) if (!$perm->have_perm_area_action($area, $action)) {
{
$notification->displayNotification("error", i18n("Permission denied")); $notification->displayNotification("error", i18n("Permission denied"));
} else if (!(int) $client > 0) { } else if (!(int) $client > 0) {
#if there is no client selected, display empty page #if there is no client selected, display empty page
@ -71,11 +70,9 @@ if (!$perm->have_perm_area_action($area, $action))
$sTempFilename = stripslashes($_REQUEST['tmp_file']); $sTempFilename = stripslashes($_REQUEST['tmp_file']);
$sOrigFileName = $sTempFilename; $sOrigFileName = $sTempFilename;
if (getFileType($_REQUEST['file']) != $sFileType AND strlen(stripslashes(trim($_REQUEST['file']))) > 0) if (getFileType($_REQUEST['file']) != $sFileType AND strlen(stripslashes(trim($_REQUEST['file']))) > 0) {
{
$sFilename .= stripslashes($_REQUEST['file']) . ".$sFileType"; $sFilename .= stripslashes($_REQUEST['file']) . ".$sFileType";
}else } else {
{
$sFilename .= stripslashes($_REQUEST['file']); $sFilename .= stripslashes($_REQUEST['file']);
} }
@ -98,8 +95,7 @@ if (!$perm->have_perm_area_action($area, $action))
$aFileInfo = getFileInformation($client, $sTempFilename, $sTypeContent, $db); $aFileInfo = getFileInformation($client, $sTempFilename, $sTypeContent, $db);
# create new file # create new file
if ( $_REQUEST['action'] == $sActionCreate AND $_REQUEST['status'] == 'send') if ($_REQUEST['action'] == $sActionCreate AND $_REQUEST['status'] == 'send') {
{
$sTempFilename = $sFilename; $sTempFilename = $sFilename;
createFile($sFilename, $path); createFile($sFilename, $path);
$bEdit = fileEdit($sFilename, $_REQUEST['code'], $path); $bEdit = fileEdit($sFilename, $_REQUEST['code'], $path);
@ -114,10 +110,8 @@ if (!$perm->have_perm_area_action($area, $action))
} }
# edit selected file # edit selected file
if ( $_REQUEST['action'] == $sActionEdit AND $_REQUEST['status'] == 'send') if ($_REQUEST['action'] == $sActionEdit AND $_REQUEST['status'] == 'send') {
{ if ($sFilename != $sTempFilename) {
if ($sFilename != $sTempFilename)
{
$sTempFilename = renameFile($sTempFilename, $sFilename, $path); $sTempFilename = renameFile($sTempFilename, $sFilename, $path);
$sReloadScript .= "<script type=\"text/javascript\"> $sReloadScript .= "<script type=\"text/javascript\">
var right_top = top.content.right.right_top; var right_top = top.content.right.right_top;
@ -126,8 +120,7 @@ if (!$perm->have_perm_area_action($area, $action))
right_top.location.href = href; right_top.location.href = href;
} }
</script>"; </script>";
}else } else {
{
$sTempFilename = $sFilename; $sTempFilename = $sFilename;
} }
@ -154,10 +147,7 @@ if (!$perm->have_perm_area_action($area, $action))
/** /**
* END TRACK VERSION * END TRACK VERSION
* */ * */
$bEdit = fileEdit($sFilename, $_REQUEST['code'], $path); $bEdit = fileEdit($sFilename, $_REQUEST['code'], $path);
} }
# generate edit form # generate edit form
@ -165,17 +155,14 @@ if (!$perm->have_perm_area_action($area, $action))
$sAction = ($bEdit) ? $sActionEdit : $_REQUEST['action']; $sAction = ($bEdit) ? $sActionEdit : $_REQUEST['action'];
if ($_REQUEST['action'] == $sActionEdit) if ($_REQUEST['action'] == $sActionEdit) {
{
$sCode = getFileContent($sFilename, $path); $sCode = getFileContent($sFilename, $path);
}else } else {
{
$sCode = stripslashes($_REQUEST['code']); # stripslashes is required here in case of creating a new file $sCode = stripslashes($_REQUEST['code']); # stripslashes is required here in case of creating a new file
} }
$aFileInfo = getFileInformation($client, $sTempFilename, "css", $db); $aFileInfo = getFileInformation($client, $sTempFilename, "css", $db);
$form = new UI_Table_Form("file_editor"); $form = new UI_Table_Form("file_editor");
$form->addHeader(i18n("Edit file")); $form->addHeader(i18n("Edit file"));
$form->setWidth("100%"); $form->setWidth("100%");
@ -189,7 +176,6 @@ if (!$perm->have_perm_area_action($area, $action))
$ta_code = new cHTMLTextarea("code", clHtmlSpecialChars($sCode), 100, 35, "code"); $ta_code = new cHTMLTextarea("code", clHtmlSpecialChars($sCode), 100, 35, "code");
$descr = new cHTMLTextarea("description", clHtmlSpecialChars($aFileInfo["description"]), 100, 5); $descr = new cHTMLTextarea("description", clHtmlSpecialChars($aFileInfo["description"]), 100, 5);
$ta_code->setStyle("font-family: monospace;width: 100%;"); $ta_code->setStyle("font-family: monospace;width: 100%;");
$descr->setStyle("font-family: monospace;width: 100%;"); $descr->setStyle("font-family: monospace;width: 100%;");
$ta_code->updateAttributes(array("wrap" => getEffectiveSetting('style_editor', 'wrap', 'off'))); $ta_code->updateAttributes(array("wrap" => getEffectiveSetting('style_editor', 'wrap', 'off')));
@ -207,5 +193,4 @@ if (!$perm->have_perm_area_action($area, $action))
$page->render(); $page->render();
} }
} }
?> ?>

Datei anzeigen

@ -1,4 +1,5 @@
<?php <?php
/** /**
* Project: * Project:
* Contenido Content Management System * Contenido Content Management System
@ -27,7 +28,6 @@
* }} * }}
* *
*/ */
if (!defined('CON_FRAMEWORK')) { if (!defined('CON_FRAMEWORK')) {
die('Illegal call'); die('Illegal call');
} }
@ -76,44 +76,68 @@ $sScriptTemplate = '
$tpl->set('s', 'JAVASCRIPT', $sScriptTemplate); $tpl->set('s', 'JAVASCRIPT', $sScriptTemplate);
# delete file # delete file
if ($action == $sActionDelete) if ($action == $sActionDelete) {
{ if (!strrchr($_REQUEST['delfile'], "/")) {
if (!strrchr($_REQUEST['delfile'], "/")) if (file_exists($path . $_REQUEST['delfile'])) {
{
if (file_exists($path.$_REQUEST['delfile']))
{
unlink($path . $_REQUEST['delfile']); unlink($path . $_REQUEST['delfile']);
removeFileInformation($client, $_REQUEST['delfile'], 'css', $db); removeFileInformation($client, $_REQUEST['delfile'], 'css', $db);
} }
} }
} }
if ($handle = opendir($path)) // show folders
{
function scanAllDir($dir, $sFileType = null, $bShowEmptyDir = false) {
$result = [];
foreach (scandir($dir) as $filename) {
if ($filename[0] === '.')
continue;
$filePath = $dir . DIRECTORY_SEPARATOR . $filename;
if (is_dir($filePath)) {
$tmp = [];
foreach (scanAllDir($filePath, $sFileType) as $childFilename) {
if (is_null($sFileType) || pathinfo($filePath . DIRECTORY_SEPARATOR . $childFilename, PATHINFO_EXTENSION) == $sFileType) {
$tmp[] = $childFilename;
}
}
if ($bShowEmptyDir || !empty($tmp)) {
$result[] = array(
'folder' => $filename,
'files' => $tmp
);
}
unset($tmp);
} else {
if (is_null($sFileType) || pathinfo($filePath, PATHINFO_EXTENSION) == $sFileType) {
$result[] = $filename;
}
}
}
return $result;
}
echo "<pre>";
print_r(scanAllDir($path, 'css', true));
if ($handle = opendir($path)) {
$aFiles = array(); $aFiles = array();
while ($file = readdir($handle)) while ($file = readdir($handle)) {
{ if (substr($file, (strlen($file) - (strlen($sFileType) + 1)), (strlen($sFileType) + 1)) == ".$sFileType" AND is_readable($path . $file)) {
if(substr($file, (strlen($file) - (strlen($sFileType) + 1)), (strlen($sFileType) + 1)) == ".$sFileType" AND is_readable($path.$file))
{
$aFiles[] = $file; $aFiles[] = $file;
}elseif (substr($file, (strlen($file) - (strlen($sFileType) + 1)), (strlen($sFileType) + 1)) == ".$sFileType" AND !is_readable($path.$file)) } elseif (substr($file, (strlen($file) - (strlen($sFileType) + 1)), (strlen($sFileType) + 1)) == ".$sFileType" AND!is_readable($path . $file)) {
{
$notification->displayNotification("error", $file . " " . i18n("is not readable!")); $notification->displayNotification("error", $file . " " . i18n("is not readable!"));
} }
} }
closedir($handle); closedir($handle);
// display files // display files
if (is_array($aFiles)) if (is_array($aFiles)) {
{
sort($aFiles); sort($aFiles);
foreach ($aFiles as $filename) foreach ($aFiles as $filename) {
{
$bgcolor = ( is_int($tpl->dyn_cnt / 2) ) ? $cfg["color"]["table_light"] : $cfg["color"]["table_dark"]; $bgcolor = ( is_int($tpl->dyn_cnt / 2) ) ? $cfg["color"]["table_light"] : $cfg["color"]["table_dark"];
$tpl->set('d', 'BGCOLOR', $bgcolor); $tpl->set('d', 'BGCOLOR', $bgcolor);
@ -131,11 +155,9 @@ if ($handle = opendir($path))
$delTitle = i18n("Delete File"); $delTitle = i18n("Delete File");
$delDescr = sprintf(i18n("Do you really want to delete the following file:<br><br>%s<br>"), $filename); $delDescr = sprintf(i18n("Do you really want to delete the following file:<br><br>%s<br>"), $filename);
if ($perm->have_perm_area_action('style', $sActionDelete)) if ($perm->have_perm_area_action('style', $sActionDelete)) {
{
$tpl->set('d', 'DELETE', '<a title="' . $delTitle . '" href="javascript://" onclick="box.confirm(\'' . $delTitle . '\', \'' . $delDescr . '\', \'deleteFile(\\\'' . $filename . '\\\')\')"><img src="' . $cfg['path']['images'] . 'delete.gif" border="0" title="' . $delTitle . '"></a>'); $tpl->set('d', 'DELETE', '<a title="' . $delTitle . '" href="javascript://" onclick="box.confirm(\'' . $delTitle . '\', \'' . $delDescr . '\', \'deleteFile(\\\'' . $filename . '\\\')\')"><img src="' . $cfg['path']['images'] . 'delete.gif" border="0" title="' . $delTitle . '"></a>');
}else } else {
{
$tpl->set('d', 'DELETE', ''); $tpl->set('d', 'DELETE', '');
} }
@ -146,16 +168,13 @@ if ($handle = opendir($path))
} }
$tpl->next(); $tpl->next();
} }
} }
}else } else {
{
if ((int) $client > 0) { if ((int) $client > 0) {
$notification->displayNotification("error", i18n("Directory is not existing or readable!") . "<br>$path"); $notification->displayNotification("error", i18n("Directory is not existing or readable!") . "<br>$path");
} }
} }
$tpl->generate($cfg['path']['templates'] . $cfg['templates']['files_overview']); $tpl->generate($cfg['path']['templates'] . $cfg['templates']['files_overview']);
?> ?>

Datei anzeigen

@ -1,4 +1,5 @@
<?php <?php
/** /**
* Project: * Project:
* Contenido Content Management System * Contenido Content Management System
@ -27,7 +28,6 @@
* }} * }}
* *
*/ */
if (!defined('CON_FRAMEWORK')) { if (!defined('CON_FRAMEWORK')) {
die('Illegal call'); die('Illegal call');
} }
@ -43,29 +43,22 @@ if (!(int) $client > 0) {
return; return;
} }
function getExpandCollapseButton($item) function getExpandCollapseButton($item) {
{
global $sess, $PHP_SELF, $frame, $area, $appendparameters; global $sess, $PHP_SELF, $frame, $area, $appendparameters;
$selflink = "main.php"; $selflink = "main.php";
if (count($item->subitems) > 0) if (count($item->subitems) > 0) {
{ if ($item->collapsed == true) {
if ($item->collapsed == true)
{
$expandlink = $sess->url($selflink . "?area=$area&frame=$frame&appendparameters=$appendparameters&expand=" . $item->id); $expandlink = $sess->url($selflink . "?area=$area&frame=$frame&appendparameters=$appendparameters&expand=" . $item->id);
return ('<a href="' . $expandlink . '" alt="' . i18n('Open category') . '" title="' . i18n('Open category') . '"><img src="' . $item->collapsed_icon . '" border="0" align="middle" width="18"></a>'); return ('<a href="' . $expandlink . '" alt="' . i18n('Open category') . '" title="' . i18n('Open category') . '"><img src="' . $item->collapsed_icon . '" border="0" align="middle" width="18"></a>');
} else } else {
{
$collapselink = $sess->url($selflink . "?area=$area&appendparameters=$appendparameters&frame=$frame&collapse=" . $item->id); $collapselink = $sess->url($selflink . "?area=$area&appendparameters=$appendparameters&frame=$frame&collapse=" . $item->id);
return ('<a href="' . $collapselink . '" alt="' . i18n('Close category') . '" title="' . i18n('Close category') . '"><img src="' . $item->expanded_icon . '" border="0" align="middle" width="18"></a>'); return ('<a href="' . $collapselink . '" alt="' . i18n('Close category') . '" title="' . i18n('Close category') . '"><img src="' . $item->expanded_icon . '" border="0" align="middle" width="18"></a>');
} }
} else } else {
{ if ($item->custom["lastitem"]) {
if ($item->custom["lastitem"])
{
return '<img src="images/but_lastnode.gif" align="middle" width="18" height="18">'; return '<img src="images/but_lastnode.gif" align="middle" width="18" height="18">';
} else } else {
{
return '<img src="images/grid_collapse.gif" align="middle" width="18" height="18">'; return '<img src="images/grid_collapse.gif" align="middle" width="18" height="18">';
} }
} }
@ -76,8 +69,7 @@ function getExpandCollapseButton($item)
################# #################
#Fixxed by Timo Trautmann double database entries also called by action upl_mkdir #Fixxed by Timo Trautmann double database entries also called by action upl_mkdir
// Use remembered path from upl_last_path (from session) // Use remembered path from upl_last_path (from session)
if (!isset($path) && $sess->is_registered("upl_last_path")) if (!isset($path) && $sess->is_registered("upl_last_path")) {
{
$path = $upl_last_path; $path = $upl_last_path;
} }
@ -93,24 +85,19 @@ if ($tmp_area == "") {
$uplexpandedList = unserialize($currentuser->getUserProperty("system", "upl_expandstate")); $uplexpandedList = unserialize($currentuser->getUserProperty("system", "upl_expandstate"));
$upldbfsexpandedList = unserialize($currentuser->getUserProperty("system", "upl_dbfs_expandstate")); $upldbfsexpandedList = unserialize($currentuser->getUserProperty("system", "upl_dbfs_expandstate"));
if (!is_array($uplexpandedList)) if (!is_array($uplexpandedList)) {
{
$uplexpandedList = array(); $uplexpandedList = array();
} }
if (!is_array($upldbfsexpandedList)) if (!is_array($upldbfsexpandedList)) {
{
$upldbfsexpandedList = array(); $upldbfsexpandedList = array();
} }
if ($action == "upl_renamedir") if ($action == "upl_renamedir") {
{ if ($perm->have_perm_area_action("upl", "upl_renamedir")) {
if ($perm->have_perm_area_action("upl", "upl_renamedir"))
{
uplRenameDirectory($oldname, $newname, $parent); uplRenameDirectory($oldname, $newname, $parent);
$path = $cfgClient[$client]['upl']['path'] . $parent . $newname . "/"; $path = $cfgClient[$client]['upl']['path'] . $parent . $newname . "/";
if (in_array($cfgClient[$client]['upl']['path'].$parent.$oldname."/", $uplexpandedList)) if (in_array($cfgClient[$client]['upl']['path'] . $parent . $oldname . "/", $uplexpandedList)) {
{
$uplexpandedList[] = $cfgClient[$client]['upl']['path'] . $parent . $newname . "/"; $uplexpandedList[] = $cfgClient[$client]['upl']['path'] . $parent . $newname . "/";
} }
} }
@ -121,41 +108,31 @@ if ($action == "upl_renamedir")
################### ###################
$dbfs = new DBFSCollection; $dbfs = new DBFSCollection;
if ($action == "upl_delete") if ($action == "upl_delete") {
{ if (is_dbfs($path)) {
if (is_dbfs($path))
{
$dbfs->remove($path . "/."); $dbfs->remove($path . "/.");
} else } else {
{
/* Check for files */ /* Check for files */
if (uplHasFiles($path)) if (uplHasFiles($path)) {
{
$failedFiles = array(); $failedFiles = array();
$directory = opendir($cfgClient[$client]["upl"]["path"] . $path); $directory = opendir($cfgClient[$client]["upl"]["path"] . $path);
while (false !== ($dir_entry = readdir($directory))) while (false !== ($dir_entry = readdir($directory))) {
{ if ($dir_entry != "." && $dir_entry != "..") {
if ($dir_entry != "." && $dir_entry != "..")
{
$res = @ unlink($cfgClient[$client]["upl"]["path"] . $path . $dir_entry); $res = @ unlink($cfgClient[$client]["upl"]["path"] . $path . $dir_entry);
if ($res == false) if ($res == false) {
{
$failedFiles[] = $dir_entry; $failedFiles[] = $dir_entry;
} }
} }
} }
} }
if (count($failedFiles) > 0) if (count($failedFiles) > 0) {
{
$notification->displayNotification("warning", i18n("Failed to delete the following files:") . "<br><br>" . implode("<br>", $failedFiles)); $notification->displayNotification("warning", i18n("Failed to delete the following files:") . "<br><br>" . implode("<br>", $failedFiles));
} else } else {
{
$res = @ rmdir($cfgClient[$client]['upl']['path'] . $path); $res = @ rmdir($cfgClient[$client]['upl']['path'] . $path);
if ($res == false) if ($res == false) {
{
$notification->displayNotification("warning", sprintf(i18n("Failed to remove directory %s"), $path)); $notification->displayNotification("warning", sprintf(i18n("Failed to remove directory %s"), $path));
} }
} }
@ -206,19 +183,16 @@ if (count($aInvalidDirectories) > 0) {
} }
/* Mark all items in the expandedList as expanded */ /* Mark all items in the expandedList as expanded */
foreach ($uplexpandedList as $key => $value) foreach ($uplexpandedList as $key => $value) {
{
$rootTreeItem->markExpanded($value); $rootTreeItem->markExpanded($value);
} }
/* Collapse and expand the tree */ /* Collapse and expand the tree */
if (is_string($collapse)) if (is_string($collapse)) {
{
$rootTreeItem->markCollapsed($collapse); $rootTreeItem->markCollapsed($collapse);
} }
if (is_string($expand)) if (is_string($expand)) {
{
$rootTreeItem->markExpanded($expand); $rootTreeItem->markExpanded($expand);
} }
@ -233,77 +207,56 @@ unset ($objects[0]);
$bgcolor = (is_int($tpl->dyn_cnt / 2)) ? $cfg["color"]["table_light"] : $cfg["color"]["table_dark"]; $bgcolor = (is_int($tpl->dyn_cnt / 2)) ? $cfg["color"]["table_light"] : $cfg["color"]["table_dark"];
if ($appendparameters == "filebrowser") if ($appendparameters == "filebrowser") {
{
$mtree = new cWidgetTreeView("b58f0ae3-8d4e-4bb3-a754-5f0628863364"); $mtree = new cWidgetTreeView("b58f0ae3-8d4e-4bb3-a754-5f0628863364");
$cattree = conFetchCategoryTree(); $cattree = conFetchCategoryTree();
$marray = array(); $marray = array();
foreach ($cattree as $key => $catitem) foreach ($cattree as $key => $catitem) {
{
$no_start = true; $no_start = true;
$no_online = true; $no_online = true;
$no_start = !strHasStartArticle($catitem["idcat"], $lang); $no_start = !strHasStartArticle($catitem["idcat"], $lang);
$no_online = !$catitem["visible"]; $no_online = !$catitem["visible"];
if ($catitem["visible"] == 1) if ($catitem["visible"] == 1) {
{ if ($catitem["public"] == 0) {
if ($catitem["public"] == 0) if ($no_start || $no_online) {
{
if ($no_start || $no_online)
{
# Error found # Error found
$tmp_img = "folder_on_error_locked.gif"; $tmp_img = "folder_on_error_locked.gif";
} else } else {
{
# No error found # No error found
$tmp_img = "folder_on_locked.gif"; $tmp_img = "folder_on_locked.gif";
} }
} else } else {
{
# Category is public # Category is public
if ($no_start || $no_online) if ($no_start || $no_online) {
{
# Error found # Error found
$tmp_img = "folder_on_error.gif"; $tmp_img = "folder_on_error.gif";
} else } else {
{
# No error found # No error found
$tmp_img = "folder_on.gif"; $tmp_img = "folder_on.gif";
} }
} }
} else } else {
{
# Category is offline # Category is offline
if ($catitem['public'] == 0) if ($catitem['public'] == 0) {
{
# Category is locked # Category is locked
if ($no_start || $no_online) if ($no_start || $no_online) {
{
# Error found # Error found
$tmp_img = "folder_off_error_locked.gif"; $tmp_img = "folder_off_error_locked.gif";
} else {
} else
{
# No error found # No error found
$tmp_img = "folder_off_locked.gif"; $tmp_img = "folder_off_locked.gif";
} }
} else {
} else
{
# Category is public # Category is public
if ($no_start || $no_online) if ($no_start || $no_online) {
{
# Error found # Error found
$tmp_img = "folder_off_error.gif"; $tmp_img = "folder_off_error.gif";
} else {
} else
{
# No error found # No error found
$tmp_img = "folder_off.gif"; $tmp_img = "folder_off.gif";
} }
} }
} }
@ -335,8 +288,7 @@ if ($appendparameters == "filebrowser")
$tpl->set('s', 'CATBROWSER', $mtree->render()); $tpl->set('s', 'CATBROWSER', $mtree->render());
$tpl->set('s', 'APPENDPARAMETERS', 'url += \'&appendparameters=' . $appendparameters . '\''); $tpl->set('s', 'APPENDPARAMETERS', 'url += \'&appendparameters=' . $appendparameters . '\'');
} else } else {
{
$tpl->set('s', 'CATBROWSER', ''); $tpl->set('s', 'CATBROWSER', '');
$tpl->set('s', 'APPENDPARAMETERS', 'url += \'&appendparameters=' . $appendparameters . '\''); $tpl->set('s', 'APPENDPARAMETERS', 'url += \'&appendparameters=' . $appendparameters . '\'');
} }
@ -360,11 +312,8 @@ $tpl->set('d', 'DELETEBUTTON', '');
$tpl->set('d', 'COLLAPSE', ''); $tpl->set('d', 'COLLAPSE', '');
$tpl->next(); $tpl->next();
if (is_array($objects)) {
if (is_array($objects)) foreach ($objects as $a_file) {
{
foreach ($objects as $a_file)
{
$file = $a_file->name; $file = $a_file->name;
$depth = $a_file->custom["level"] - 1; $depth = $a_file->custom["level"] - 1;
$pathstring = str_replace($cfgClient[$client]['upl']['path'], "", $a_file->id); $pathstring = str_replace($cfgClient[$client]['upl']['path'], "", $a_file->id);
@ -379,8 +328,7 @@ if (is_array($objects))
$cnt = $depth; $cnt = $depth;
$indent = 18; $indent = 18;
for ($i = 0; $i < $cnt; $i ++) for ($i = 0; $i < $cnt; $i++) {
{
$indent += 18; $indent += 18;
} }
@ -395,16 +343,12 @@ if (is_array($objects))
$hasFiles = uplHasFiles($pathstring); $hasFiles = uplHasFiles($pathstring);
$hasSubdirs = uplHasSubdirs($pathstring); $hasSubdirs = uplHasSubdirs($pathstring);
if ((!$hasSubdirs) && (!$hasFiles) && $perm->have_perm_area_action($tmp_area, "upl_rmdir")) if ((!$hasSubdirs) && (!$hasFiles) && $perm->have_perm_area_action($tmp_area, "upl_rmdir")) {
{
$deletebutton = '<a style="margin-left:10px;" title="' . i18n("Delete directory") . '" href="javascript://" onclick="event.cancelBubble=true;box.confirm(\'' . i18n("Delete directory") . '\', \'' . i18n("Do you really want to delete the following directory:") . '<b>' . $file . '</b>\', \'deleteDirectory(\\\'' . $pathstring . '\\\')\')"><img src="' . $cfg['path']['images'] . 'delete.gif" border="0" title="' . i18n("Delete directory") . '" alt="' . i18n("Delete directory") . '"></a>'; $deletebutton = '<a style="margin-left:10px;" title="' . i18n("Delete directory") . '" href="javascript://" onclick="event.cancelBubble=true;box.confirm(\'' . i18n("Delete directory") . '\', \'' . i18n("Do you really want to delete the following directory:") . '<b>' . $file . '</b>\', \'deleteDirectory(\\\'' . $pathstring . '\\\')\')"><img src="' . $cfg['path']['images'] . 'delete.gif" border="0" title="' . i18n("Delete directory") . '" alt="' . i18n("Delete directory") . '"></a>';
} else } else {
{ if ($hasFiles) {
if ($hasFiles)
{
$message = i18n("Directory contains files"); $message = i18n("Directory contains files");
} else } else {
{
$message = i18n("Permission denied"); $message = i18n("Permission denied");
} }
@ -419,13 +363,10 @@ if (is_array($objects))
$gline = ""; $gline = "";
for ($i = 1; $i < $depth; $i ++) for ($i = 1; $i < $depth; $i++) {
{ if ($dlevels[$i] == false && $i != 0) {
if ($dlevels[$i] == false && $i != 0)
{
$gline .= '<img src="images/grid_linedown.gif" align="middle" width="18">'; $gline .= '<img src="images/grid_linedown.gif" align="middle" width="18">';
} else } else {
{
$gline .= '<img src="images/spacer.gif" width="18" height="18" align="middle">'; $gline .= '<img src="images/spacer.gif" width="18" height="18" align="middle">';
} }
} }
@ -438,7 +379,6 @@ if (is_array($objects))
$tpl->set('d', 'COLLAPSE', $gline . $imgcollapse); $tpl->set('d', 'COLLAPSE', $gline . $imgcollapse);
$tpl->next(); $tpl->next();
} }
} }
@ -459,19 +399,16 @@ $rootTreeItem->custom["level"] = 0;
uplRecursiveDBDirectoryList("", $rootTreeItem, 2); uplRecursiveDBDirectoryList("", $rootTreeItem, 2);
/* Mark all items in the expandedList as expanded */ /* Mark all items in the expandedList as expanded */
foreach ($upldbfsexpandedList as $key => $value) foreach ($upldbfsexpandedList as $key => $value) {
{
$rootTreeItem->markExpanded($value); $rootTreeItem->markExpanded($value);
} }
/* Collapse and expand the tree */ /* Collapse and expand the tree */
if (is_string($collapse)) if (is_string($collapse)) {
{
$rootTreeItem->markCollapsed($collapse); $rootTreeItem->markCollapsed($collapse);
} }
if (is_string($expand)) if (is_string($expand)) {
{
$rootTreeItem->markExpanded($expand); $rootTreeItem->markExpanded($expand);
} }
@ -505,10 +442,8 @@ $dbfsc = new DBFSCollection;
$dlevels = array(); $dlevels = array();
if (is_array($objects)) if (is_array($objects)) {
{ foreach ($objects as $a_file) {
foreach ($objects as $a_file)
{
$file = $a_file->name; $file = $a_file->name;
$depth = $a_file->custom["level"] - 1; $depth = $a_file->custom["level"] - 1;
$pathstring = $a_file->id; $pathstring = $a_file->id;
@ -519,8 +454,7 @@ if (is_array($objects))
$fileurl = rawurlencode($path . $file . '/'); $fileurl = rawurlencode($path . $file . '/');
$pathurl = rawurlencode($path); $pathurl = rawurlencode($path);
if($file == 'tmp') if ($file == 'tmp') {
{
echo 'tmp2<br>'; echo 'tmp2<br>';
} }
@ -528,8 +462,7 @@ if (is_array($objects))
$cnt = $depth; $cnt = $depth;
$indent = 18; $indent = 18;
for ($i = 0; $i < $cnt; $i ++) for ($i = 0; $i < $cnt; $i++) {
{
# 18 px for every level # 18 px for every level
$indent += 18; $indent += 18;
} }
@ -542,16 +475,12 @@ if (is_array($objects))
$hasFiles = $dbfsc->hasFiles($pathstring); $hasFiles = $dbfsc->hasFiles($pathstring);
if (!$hasFiles && $perm->have_perm_area_action($tmp_area, "upl_rmdir")) if (!$hasFiles && $perm->have_perm_area_action($tmp_area, "upl_rmdir")) {
{
$deletebutton = '<a style="margin-left:10px;" title="' . i18n("Delete directory") . '" href="javascript://" onclick="event.cancelBubble=true;box.confirm(\'' . i18n("Delete directory") . '\', \'' . i18n("Do you really want to delete the following directory:") . '<b>' . $file . '</b>\', \'deleteDirectory(\\\'' . $pathstring . '\\\')\')"><img src="' . $cfg['path']['images'] . 'delete.gif" border="0" title="' . i18n("Delete directory") . '" alt="' . i18n("Delete directory") . '"></a>'; $deletebutton = '<a style="margin-left:10px;" title="' . i18n("Delete directory") . '" href="javascript://" onclick="event.cancelBubble=true;box.confirm(\'' . i18n("Delete directory") . '\', \'' . i18n("Do you really want to delete the following directory:") . '<b>' . $file . '</b>\', \'deleteDirectory(\\\'' . $pathstring . '\\\')\')"><img src="' . $cfg['path']['images'] . 'delete.gif" border="0" title="' . i18n("Delete directory") . '" alt="' . i18n("Delete directory") . '"></a>';
} else } else {
{ if ($hasFiles) {
if ($hasFiles)
{
$message = i18n("Directory contains files"); $message = i18n("Directory contains files");
} else } else {
{
$message = i18n("Permission denied"); $message = i18n("Permission denied");
} }
@ -566,13 +495,10 @@ if (is_array($objects))
$gline = ""; $gline = "";
for ($i = 1; $i < $depth; $i ++) for ($i = 1; $i < $depth; $i++) {
{ if ($dlevels[$i] == false && $i != 0) {
if ($dlevels[$i] == false && $i != 0)
{
$gline .= '<img src="images/grid_linedown.gif" align="middle">'; $gline .= '<img src="images/grid_linedown.gif" align="middle">';
} else } else {
{
$gline .= '<img src="images/spacer.gif" width="18" height="18" align="middle">'; $gline .= '<img src="images/spacer.gif" width="18" height="18" align="middle">';
} }
} }
@ -583,12 +509,10 @@ if (is_array($objects))
$tpl->set('d', 'DELETEBUTTON', $deletebutton); $tpl->set('d', 'DELETEBUTTON', $deletebutton);
$tpl->set('d', 'COLLAPSE', $gline . $collapse); $tpl->set('d', 'COLLAPSE', $gline . $collapse);
$tpl->next(); $tpl->next();
} }
} }
$tpl->set('s', 'ID_PATH', $path); $tpl->set('s', 'ID_PATH', $path);
chdir($cfg["path"]["contenido"]); chdir($cfg["path"]["contenido"]);
$tpl->generate($cfg['path']['templates'] . $cfg['templates']['upl_dirs_overview']); $tpl->generate($cfg['path']['templates'] . $cfg['templates']['upl_dirs_overview']);
?> ?>