Exemplo n.º 1
0
function absPath($inputPath, $baseDir = '.')
{
    // add basedir to inputPath if it's not absolute
    if (!isAbsPath($inputPath)) {
        if (!isAbsPath($baseDir)) {
            // make basedir absolute if it's not already
            $cwd = getcwd();
            if (!isAbsPath($cwd)) {
                die("getcwd() didn't return an absulte path '" . htmlencode($cwd) . "'!");
            }
            $baseDir = absPath($baseDir, $cwd);
        }
        $inputPath = "{$baseDir}/{$inputPath}";
    }
    // remove path prefixes: \\UNC-SERVER or C:
    $uncServerPrefix = '';
    $driveLetterPrefix = '';
    $uncServerRegexp = "|^\\\\\\\\[^\\\\/]+|";
    // matches \\SERVER-NAME UNC style prefixs
    $driveLetterRegexp = "|^[a-z]:(?=[\\\\/])|i";
    // matches W: windows drive letter prefixs
    if (preg_match($uncServerRegexp, $inputPath, $matches)) {
        // match prefix
        $uncServerPrefix = $matches[0];
        $inputPath = preg_replace($uncServerRegexp, '', $inputPath, 1);
        // remove prefix
    } elseif (preg_match($driveLetterRegexp, $inputPath, $matches)) {
        // match prefix
        $driveLetterPrefix = $matches[0];
        $inputPath = preg_replace($driveLetterRegexp, '', $inputPath, 1);
        // remove prefix
    }
    // normalize path components (replace backslashes, remove double-slashes, resolve . and ..)
    $inputPathComponents = preg_split("|[\\\\/]|", $inputPath, null, PREG_SPLIT_NO_EMPTY);
    $outputPathComponents = array();
    foreach ($inputPathComponents as $component) {
        if ($component == '.') {
            /* do nothing */
        } elseif ($component == '..') {
            array_pop($outputPathComponents);
        } else {
            array_push($outputPathComponents, $component);
        }
    }
    $outputPath = implode('/', $outputPathComponents);
    // re-add path prefixes and root slash
    $absPath = $uncServerPrefix . $driveLetterPrefix . '/' . $outputPath;
    //
    return $absPath;
}
Exemplo n.º 2
0
function dirlist(&$files, $dir)
{
    global $cfg;
    if ($handle = opendir($dir)) {
        while ($file = readdir($handle)) {
            if ($file == '.' || $file == '..') {
                continue;
            }
            $fullpath = str_replace('//', '/', $dir . '/' . $file);
            if (is_dir($fullpath)) {
                $indent = str_repeat(' ', count(explode('/', trim(str_replace($cfg['root_dir'], '', $dir), '/'))) * 2);
                $files[] = array('value' => absPath(str_replace($cfg['root_dir'], '', $fullpath) . '/'), 'text' => $indent . ucfirst(basename($fullpath)));
                dirlist($files, $fullpath);
            }
        }
        closedir($handle);
        asort($files);
        return true;
    }
    return false;
}
Exemplo n.º 3
0
function getItems($path, $valid, $list)
{
    global $cfg;
    global $l;
    $path = str_replace('//', '/', $path);
    // remove double slash in path if any
    $retstr = '';
    if ($handle = @opendir($path)) {
        $files = array();
        $valids = implode('|', $valid);
        while (($file = readdir($handle)) !== false) {
            if (is_file($path . $file) && eregi('\\.(' . $valids . ')$', $file, $matches)) {
                $files[$path . $file] = $matches[0];
            }
        }
        closedir($handle);
        ksort($files);
        $dfmt = "m-d-Y";
        foreach ($files as $filename => $ext) {
            $size = @getimagesize($path . basename($filename));
            if ($size === false) {
                continue;
            }
            $fsize = filesize($path . basename($filename));
            $modified = date($dfmt, filemtime($path . basename($filename)));
            $created = date($dfmt, filectime($path . basename($filename)));
            $ctype = iType($size[2]);
            if ($list == true || $list == 1) {
                $retstr .= '<li class="cimgup" ifile="' . basename($filename) . '" iwidth="' . htmlentities($size[0], ENT_QUOTES) . '" iheight="' . htmlentities($size[1], ENT_QUOTES) . '" itype="' . htmlentities($size[2] . '|' . $ctype, ENT_QUOTES) . '" imdate="' . htmlentities($modified, ENT_QUOTES) . '" icdate="' . htmlentities($created, ENT_QUOTES) . '" isize="' . filesize_h($fsize, 2) . '">' . htmlentities(basename($filename), ENT_QUOTES, $l->getCharset()) . '</li>' . "\n";
            } else {
                $src = 'phpThumb/phpThumb.php?src=' . absPath(str_replace($cfg['root_dir'], '', $path)) . basename($filename) . '&w=48&h=48&far=1&bg=ffffff&f=jpg';
                $retstr .= '<li class="cimgup" ifile="' . basename($filename) . '" iwidth="' . htmlentities($size[0], ENT_QUOTES) . '" iheight="' . htmlentities($size[1], ENT_QUOTES) . '" itype="' . htmlentities($size[2] . '|' . $ctype, ENT_QUOTES) . '" imdate="' . htmlentities($modified, ENT_QUOTES) . '" icdate="' . htmlentities($created, ENT_QUOTES) . '" isize="' . filesize_h($fsize, 2) . '">' . '<img src="' . $src . '" width="48" height="48" alt="' . basename($filename) . '; ' . htmlentities($size[0], ENT_QUOTES) . ' x ' . htmlentities($size[1], ENT_QUOTES) . 'px;' . '" title="' . basename($filename) . '; ' . htmlentities($size[0], ENT_QUOTES) . ' x ' . htmlentities($size[1], ENT_QUOTES) . 'px;' . '"/>' . '</li>' . "\n";
            }
        }
        return $retstr;
    }
    echo $l->m('er_036');
    return false;
}
Exemplo n.º 4
0
	function getItems($dir, $valid) {			
		global $clib; // current library 			
		global $cfg;
		global $l;		
		$retstr = ''; 			                           
		if ($handle = opendir($dir)) {			
			$files = array();
			$valids = implode('|', $valid);			
			while (($file = readdir($handle)) !== false) {                                                            
				if (is_file($dir . $file) && eregi('\.(' . $valids . ')$', $file, $matches)) {                                                                                   
					$files[$dir . $file] = $matches[0];
				}
			}
			closedir($handle);                                               
			ksort($files);
			$path  = str_replace('//', '/', $cfg['root_dir'] . $clib); // remove double slash in path				
			foreach ($files as $filename => $ext) {										
				$size     = getimagesize($path . basename($filename));				
				$src      = 'phpThumb/phpThumb.php?src=' . absPath(str_replace($cfg['root_dir'],'', $path)) . basename($filename) . '&w=32&h=32&zc=1'; 				
				$retstr  .= '<div class="ovBtnUp" ifile="' . absPath(str_replace($cfg['root_dir'] ,'', $path)) . basename($filename) . '" >' . '<img src="' . $src . '" width="32" height="32" alt="' . basename($filename) . '; ' . htmlentities($size[0], ENT_QUOTES) . ' x ' . htmlentities($size[1], ENT_QUOTES) . 'px;' . '" title="' . basename($filename) . '; ' . htmlentities($size[0], ENT_QUOTES) . ' x ' . htmlentities($size[1], ENT_QUOTES) . 'px;' . '"/>' . '</div>' .  "\n";
			}			
			return $retstr;
		}
		echo $l->m('er_044');		
		return false;
	}
Exemplo n.º 5
0
	function liboptions($arr, $prefix = '', $sel = '', $type = '') {
  		global $cfg;
		global $l;
		$retval = '';
				
		if ($type == 'ov') { // called from overlay
			if (isset($cfg['olay']) && $cfg['olay'] != '') {									
				$ovDir = absPath($cfg['olay']);					
				$arr[] = array ( // add overlay image directory to libraries					
					'value'	=> absPath($cfg['olay']),								
					'text' 	=> $l->m('ov_001'),
				);		
			};
		};
		
  		foreach($arr as $lib) {			
    		$retval .= '<option value="' . absPath($lib['value']) . '"' . (($lib['value'] == $sel) ? ' selected="selected"' : '') . '>' . $prefix . $lib['text'] . '</option>' . "\n";
  		}
  		return $retval;
	}	
Exemplo n.º 6
0
function liboptions($arr, $prefix = '', $sel = '')
{
    $retval = '';
    foreach ($arr as $lib) {
        $retval .= '<option value="' . absPath($lib['value']) . '"' . ($lib['value'] == $sel ? ' selected="selected"' : '') . '>' . $prefix . $lib['text'] . '</option>' . "\n";
    }
    return $retval;
}
Exemplo n.º 7
0
    } else {
        if ($impname != "") {
            $file_temp = $REX[INCLUDE_PATH] . "/addons/{$page}/files/{$impname}";
        } else {
            $file_temp = $REX[INCLUDE_PATH] . "/addons/{$page}/files/tar.temp";
        }
        if ($impname != "" || @move_uploaded_file($_FILES['FORM']['tmp_name']['importfile'], $file_temp)) {
            $tar = new tar();
            $tar->openTAR($file_temp);
            if (!$tar->extractTar()) {
                $msg = $I18N_ADDON->msg("problem_when_extracting") . "<br>";
                if (count($tar->message) > 0) {
                    $msg .= $I18N_ADDON->msg("create_dirs_manually") . "<br>";
                    reset($tar->message);
                    for ($fol = 0; $fol < count($tar->message); $fol++) {
                        $msg .= absPath(str_replace("'", "", key($tar->message))) . "<br>";
                        next($tar->message);
                    }
                }
            } else {
                $msg = $I18N_ADDON->msg("file_imported") . "<br>";
            }
            if ($impname == "") {
                @unlink($file_temp);
            }
        } else {
            $msg = $I18N_ADDON->msg("file_could_not_be_uploaded") . " " . $I18N_ADDON->msg("you_have_no_write_permission_in", "addons/{$page}/files/") . " <br>";
        }
    }
} elseif ($function == "export") {
    // ------------------------------ FUNC EXPORT
Exemplo n.º 8
0
    if (version_compare(phpversion(), "4.1.0", "<") == 1) {
        $MSG[err] .= $I18N->msg("setup_010") . "<br>";
    }
    // -------------------------- SCHREIBRECHTE
    $WRITEABLE = array($REX[INCLUDE_PATH] . "/master.inc.php", $REX[INCLUDE_PATH] . "/addons.inc.php", $REX[INCLUDE_PATH] . "/clang.inc.php", $REX[INCLUDE_PATH] . "/ctype.inc.php", $REX[INCLUDE_PATH] . "/generated", $REX[INCLUDE_PATH] . "/generated/articles", $REX[INCLUDE_PATH] . "/generated/templates", $REX[INCLUDE_PATH] . "/addons/stats/logs", $REX[INCLUDE_PATH] . "/generated/cache/", $REX[INCLUDE_PATH] . "/generated/cache/cache.php", $REX[INCLUDE_PATH] . "/generated/files/", $REX[INCLUDE_PATH] . "/addons/import_export/files", $REX[INCLUDE_PATH] . "/addons/stats/logs", $REX[INCLUDE_PATH] . "/../../files/");
    foreach ($WRITEABLE as $item) {
        if (is_dir($item)) {
            if (!@is_writable($item . "/.")) {
                $MSG[err] .= $I18N->msg("setup_012", absPath($item)) . "<br>";
            }
        } elseif (is_file($item)) {
            if (!@is_writable($item)) {
                $MSG[err] .= $I18N->msg("setup_014", absPath($item)) . "<br>";
            }
        } else {
            $MSG[err] .= $I18N->msg("setup_015", absPath($item)) . "<br>";
        }
    }
}
if ($MSG[err] == "" && $checkmodus == 1) {
    setuptitle($I18N->msg("setup_step1"));
    echo $I18N->msg("setup_016");
    echo "<br><br><a href=index.php?page=setup&checkmodus=2&lang={$lang}>&raquo; " . $I18N->msg("setup_017") . "</a><br><br>";
} elseif ($MSG[err] != "") {
    setuptitle($I18N->msg("setup_step1"));
    echo "<b>" . $I18N->msg("setup_headline1") . "</b><br><br>" . $MSG[err] . "\r\n\r\n\t<br>" . $I18N->msg("setup_018") . "<br><br>\r\n\t<a href=index.php?page=setup&checkmodus=1&lang={$lang}>&raquo; " . $I18N->msg("setup_017") . "</a><br><br>";
}
// ---------------------------------- MODUS 2 | master.inc.php - Datenbankcheck
if ($checkmodus == 2 && $send == 1) {
    $h = @fopen($REX[INCLUDE_PATH] . "/master.inc.php", "r");
    $cont = fread($h, filesize("include/master.inc.php"));
Exemplo n.º 9
0
        <tr>
          <td width="200"><?php 
eht('Overview & Setup');
?>
</td>
          <td height="22" style="line-height: 125%">
            <?php 
echo nl2br(t("Background tasks allow programs to run in the background at specific times for tasks such as maintenance, email alerts, etc.\n" . "You don't need to enable this feature unless you have a plugin that requires it."));
?>
<br/><br/>
            <?php 
et("To setup Background Tasks, add a server cronjob or 'scheduled task' to execute the following command every minute:");
?>
<br/>
            <pre>php -q <?php 
echo absPath($GLOBALS['PROGRAM_DIR'] . "/cron.php");
?>
</pre><br/>
          </td>
        </tr>
        <tr>
          <td width="200"><?php 
eht("Status");
?>
</td>
          <td height="22" style="line-height: 150%">
            <?php 
$prettyDate = prettyDate($SETTINGS['bgtasks_lastRun']);
$dateString = $SETTINGS['bgtasks_lastRun'] ? date("D, M j, Y - g:i:s A", $SETTINGS['bgtasks_lastRun']) : $prettyDate;
$logCount = mysql_count('_cron_log');
$failCount = mysql_count('_cron_log', array('completed' => '0'));
function getUploadDirAndUrl($fieldSchema, $settingsUploadDir = null, $settingsUploadUrl = null, $returnOnErrors = false)
{
    if ($settingsUploadDir === null) {
        $settingsUploadDir = $GLOBALS['SETTINGS']['uploadDir'];
    }
    if ($settingsUploadUrl === null) {
        $settingsUploadUrl = $GLOBALS['SETTINGS']['uploadUrl'];
    }
    // get upload dir and url
    if (@$fieldSchema['useCustomUploadDir']) {
        // if field is configured to use custom upload paths, use them
        $uploadDir = $fieldSchema['customUploadDir'];
        $uploadUrl = $fieldSchema['customUploadUrl'];
        list($baseDir, $baseUrl) = getUploadDirAndUrl(array());
        // path for resolving CUSTOM dirs/urls: Uses upload dir/url from general settings made absolute using CMS dir/url
    } else {
        // default to using global SETTINGS upload paths
        $uploadDir = $settingsUploadDir;
        $uploadUrl = $settingsUploadUrl;
        $baseDir = SCRIPT_DIR;
        // paths for resolving relative dirs and urls (CMS Script Dir)
        $baseUrl = dirname(@$GLOBALS['SETTINGS']['adminUrl']) . '/';
        // paths for resolving relative dirs and urls (CMS Script Dir URL)
    }
    $uploadDir = applyFilters('upload_uploadDir', $uploadDir, $fieldSchema);
    $uploadUrl = applyFilters('upload_uploadUrl', $uploadUrl, $fieldSchema);
    doAction('upload_dirAndUrl', $uploadDir, $uploadUrl);
    // make path absolute (and format/normalize it)
    $uploadDir = absPath($uploadDir, $baseDir);
    if (!endsWith('/', $uploadDir)) {
        $uploadDir .= '/';
    }
    // absPath doesn't return trailing slash, but we require that for user entered values and expect it in the code
    // make urls absolute, starting with either http:// or /
    if (!isAbsoluteUrl($uploadUrl) && !preg_match("|^/|", $uploadUrl)) {
        $uploadUrl = coalesce($uploadUrl, './');
        // added ./ so blank upload url gets DIR of $baseUrl, not baseurl with admin.php on the end
        $uploadUrl = realUrl($uploadUrl, $baseUrl);
        $uploadUrl = preg_replace("|^\\w+://[^/]+|", '', $uploadUrl);
        // remove scheme://hostname
    }
    if (!endsWith('/', $uploadUrl)) {
        $uploadUrl .= '/';
    }
    //
    return array($uploadDir, $uploadUrl);
}
function getAbsolutePath($relativePath, $baseDir = '.')
{
    if (!$baseDir || $baseDir == '.') {
        $baseDir = getcwd();
    }
    $absPath = absPath($relativePath, $baseDir);
    return file_exists($absPath) ? $absPath : '';
    // emulate old behaviour, absPath now normalizes paths even if they don't exist
}