本文整理汇总了PHP中gpFiles::CheckDir方法的典型用法代码示例。如果您正苦于以下问题:PHP gpFiles::CheckDir方法的具体用法?PHP gpFiles::CheckDir怎么用?PHP gpFiles::CheckDir使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类gpFiles
的用法示例。
在下文中一共展示了gpFiles::CheckDir方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: CheckDir
/**
* Check recursively to see if a directory exists, if it doesn't attempt to create it
*
* @param string $dir The directory path
* @param bool $index Whether or not to add an index.hmtl file in the directory
* @return bool True on success
*/
public static function CheckDir($dir, $index = true)
{
global $config;
if (!file_exists($dir)) {
$parent = common::DirName($dir);
gpFiles::CheckDir($parent, $index);
//ftp mkdir
if (isset($config['useftp'])) {
if (!gpFiles::FTP_CheckDir($dir)) {
return false;
}
} else {
if (!@mkdir($dir, gp_chmod_dir)) {
return false;
}
@chmod($dir, gp_chmod_dir);
//some systems need more than just the 0755 in the mkdir() function
}
// make sure there's an index.html file
// only check if we just created the directory, we don't want to keep creating an index.html file if a user deletes it
if ($index && gp_dir_index) {
$indexFile = $dir . '/index.html';
if (!file_exists($indexFile)) {
//not using gpFiles::Save() so we can avoid infinite looping (it's safe since we already know the directory exists and we're not concerned about the content)
file_put_contents($indexFile, '<html></html>');
@chmod($indexFile, gp_chmod_file);
}
}
}
return true;
}
示例2: Install_DataFiles_New
static function Install_DataFiles_New($destination = false, $config = array(), $base_install = true)
{
global $langmessage;
if ($destination === false) {
$destination = $GLOBALS['dataDir'];
}
//set config variables
//$config = array(); //because of ftp values
$gpLayouts = array();
//use bootswatch theme if server has enough memory
$gpLayouts['default']['theme'] = 'Bootswatch_Flatly/4_Sticky_Footer';
$gpLayouts['default']['label'] = 'Bootswatch_Flatly/4_Sticky_Footer';
if (@ini_set('memory_limit', '96M') === false) {
$limit = ini_get('memory_limit');
$limit = common::getByteValue($limit);
if ($limit < 100663296) {
$gpLayouts['default']['theme'] = 'Three_point_5/Shore';
$gpLayouts['default']['label'] = 'Three_point_5/Shore';
}
}
$gpLayouts['default']['color'] = '#93c47d';
$_config['toemail'] = $_POST['email'];
$_config['gpLayout'] = 'default';
$_config['title'] = Install_Tools::Install_Title();
$_config['keywords'] = CMS_NAME . ' , Easy CMS, Content Management, PHP, Free CMS, Website builder, Open Source';
$_config['desc'] = 'A new ' . CMS_NAME . ' installation. You can change your site\'s description in the configuration.';
$_config['timeoffset'] = '0';
$_config['langeditor'] = 'inherit';
$_config['dateformat'] = '%m/%d/%y - %I:%M %p';
$_config['gpversion'] = gpversion;
$_config['passhash'] = 'sha512';
$_config['gpuniq'] = common::RandomString(20);
$_config['combinecss'] = Install_Tools::BooleanValue('combinecss', true);
$_config['combinejs'] = Install_Tools::BooleanValue('combinejs', true);
$_config['etag_headers'] = Install_Tools::BooleanValue('etag_headers', true);
$_config['language'] = 'en';
$config += $_config;
//directories
gpFiles::CheckDir($destination . '/data/_uploaded/image');
gpFiles::CheckDir($destination . '/data/_uploaded/media');
gpFiles::CheckDir($destination . '/data/_uploaded/file');
gpFiles::CheckDir($destination . '/data/_uploaded/flash');
gpFiles::CheckDir($destination . '/data/_sessions');
// gp_index
$new_index = array();
$new_index['Home'] = 'a';
$new_index['Heading_Page'] = 'b';
$new_index['Help_Videos'] = 'c';
$new_index['Child_Page'] = 'd';
$new_index['More'] = 'e';
$new_index['About'] = 'f';
$new_index['Contact'] = 'special_contact';
$new_index['Site_Map'] = 'special_site_map';
$new_index['Galleries'] = 'special_galleries';
$new_index['Missing'] = 'special_missing';
$new_index['Search'] = 'special_gpsearch';
// gpmenu
$new_menu = array();
$new_menu['a'] = array('level' => 0);
$new_menu['b'] = array('level' => 0);
$new_menu['c'] = array('level' => 1);
$new_menu['d'] = array('level' => 1);
$new_menu['e'] = array('level' => 0);
$new_menu['f'] = array('level' => 1);
$new_menu['special_contact'] = array('level' => 1);
// links
$new_titles = array();
$new_titles['a']['label'] = 'Home';
$new_titles['a']['type'] = 'text';
$new_titles['b']['label'] = 'Heading Page';
$new_titles['b']['type'] = 'text';
$new_titles['c']['label'] = 'Help Videos';
$new_titles['c']['type'] = 'text';
$new_titles['d']['label'] = 'Child Page';
$new_titles['d']['type'] = 'text';
$new_titles['e']['label'] = 'More';
$new_titles['e']['type'] = 'text';
$new_titles['f']['label'] = 'About';
$new_titles['f']['type'] = 'text';
$new_titles['special_contact']['lang_index'] = 'contact';
$new_titles['special_contact']['type'] = 'special';
$new_titles['special_site_map']['lang_index'] = 'site_map';
$new_titles['special_site_map']['type'] = 'special';
$new_titles['special_galleries']['lang_index'] = 'galleries';
$new_titles['special_galleries']['type'] = 'special';
$new_titles['special_missing']['label'] = 'Missing';
$new_titles['special_missing']['type'] = 'special';
$new_titles['special_gpsearch']['label'] = 'Search';
$new_titles['special_gpsearch']['type'] = 'special';
$pages = array();
$pages['gp_index'] = $new_index;
$pages['gp_menu'] = $new_menu;
$pages['gp_titles'] = $new_titles;
$pages['gpLayouts'] = $gpLayouts;
echo '<li>';
if (!gpFiles::SaveData($destination . '/data/_site/pages.php', 'pages', $pages)) {
echo '<span class="failed">';
//echo 'Could not save pages.php';
echo sprintf($langmessage['COULD_NOT_SAVE'], 'pages.php');
echo '</span>';
//.........这里部分代码省略.........
示例3: SaveBackup
/**
* Save a backup of the file
*
*/
function SaveBackup()
{
global $dataDir;
$dir = $dataDir . '/data/_backup/pages/' . $this->gp_index;
gpFiles::CheckDir($dir);
$time = time();
if (isset($_REQUEST['revision']) && is_numeric($_REQUEST['revision'])) {
$time = $_REQUEST['revision'];
}
$contents = gpFiles::GetRaw($this->file);
//backup file name
$len = strlen($contents);
$backup_file = $dir . '/' . $time . '.' . $len;
if (isset($this->file_stats['username']) && $this->file_stats['username']) {
$backup_file .= '.' . $this->file_stats['username'];
}
//compress
if (function_exists('gzencode') && function_exists('readgzfile')) {
$backup_file .= '.gze';
$contents = gzencode($contents, 9);
}
gpFiles::Save($backup_file, $contents);
$this->CleanBackupFolder();
}
示例4: CreateImage
/**
* Create a resized image of the file at $src_relative
*
*/
static function CreateImage($src_relative, $width, $height)
{
global $dataDir;
$src_path = $dataDir . '/data/_uploaded' . $src_relative;
if (!file_exists($src_path)) {
return false;
}
//compare to actual size
includeFile('tool/Images.php');
$src_img = thumbnail::getSrcImg($src_path);
if (!$src_img) {
return false;
}
//Original Size
$actual_w = imagesx($src_img);
$actual_h = imagesy($src_img);
if ($actual_w <= $width && $actual_h <= $height) {
return false;
}
$info = gp_resized::ImageInfo($src_relative, $width, $height);
if (!$info) {
return false;
}
$dest_index = $info['index'];
if (!$dest_index) {
$dest_index = gp_resized::NewIndex();
}
$dest_path = $dataDir . '/data/_resized/' . $dest_index . '/' . $info['name'];
$exists_before = file_exists($dest_path);
//make sure the folder exists
if (!gpFiles::CheckDir(common::DirName($dest_path))) {
return false;
}
//create new resized image
if (!thumbnail::createImg($src_img, $dest_path, 0, 0, 0, 0, $width, $height, $actual_w, $actual_h)) {
return false;
}
//not needed if the resized image is larger than the original
if (filesize($dest_path) > filesize($src_path)) {
if (!$exists_before) {
unlink($dest_path);
}
return false;
}
$data['index'] = $dest_index;
$data['w'] = $width;
$data['h'] = $height;
$data['img'] = $src_relative;
return $data;
}
示例5: FinderChange
/**
* Performs actions after changes are made to files in elFinder
*
*/
static function FinderChange($cmd, $result, $args, $elfinder)
{
global $dataDir, $config;
includeFile('image.php');
gp_resized::SetIndex();
$base_dir = $dataDir . '/data/_uploaded';
$thumb_dir = $dataDir . '/data/_uploaded/image/thumbnails';
admin_uploaded::SetRealPath($result, $elfinder);
switch ($cmd) {
case 'rename':
admin_uploaded::RenameResized($result['removed'][0], $result['added'][0]);
break;
case 'rm':
admin_uploaded::RemoveResized($result['removed']);
break;
case 'paste':
admin_uploaded::MoveResized($result['removed'], $result['added']);
break;
//check the image size
//check the image size
case 'upload':
admin_uploaded::MaxSize($result['added']);
break;
}
//removed files first
// - Remove associated thumbnail
if (isset($result['removed']) && count($result['removed']) > 0) {
foreach ($result['removed'] as $removed) {
$removed_path = $removed['realpath'];
$thumb_path = str_replace($base_dir, $thumb_dir, $removed_path) . '.jpg';
if (file_exists($thumb_path)) {
unlink($thumb_path);
}
}
}
//addded files
if (isset($result['added']) && count($result['added']) > 0) {
foreach ($result['added'] as $added) {
$added_path = $added['realpath'];
$thumb_path = str_replace($base_dir, $thumb_dir, $added_path) . '.jpg';
gpFiles::CheckDir($thumb_dir);
thumbnail::createSquare($added_path, $thumb_path, $config['maxthumbsize']);
gpPlugin::Action('FileUploaded', $added_path);
}
}
//changed files (resized)
if (isset($result['changed']) && count($result['changed']) > 0) {
foreach ($result['changed'] as $changed) {
$changed_path = $changed['realpath'];
$thumb_path = str_replace($base_dir, $thumb_dir, $changed_path) . '.jpg';
gpFiles::CheckDir($thumb_dir);
thumbnail::createSquare($changed_path, $thumb_path, $config['maxthumbsize']);
}
}
gp_resized::SaveIndex();
//debug
/*
$log_file = $dataDir.'/data/_temp/finder_log-all_vars.txt';
$data = get_defined_vars();
$content = print_r($data,true);
gpFiles::Save($log_file,$content);
*/
}
示例6: Install_DataFiles_New
function Install_DataFiles_New($destination = false, $config, $base_install = true)
{
global $langmessage;
if ($destination === false) {
$destination = $GLOBALS['dataDir'];
}
//set config variables
//$config = array(); //because of ftp values
$gpLayouts = array();
$gpLayouts['default']['theme'] = 'Light_Texture/Blue';
$gpLayouts['default']['color'] = '#93c47d';
$gpLayouts['default']['label'] = $langmessage['default'];
$config['toemail'] = $_POST['email'];
$config['gpLayout'] = 'default';
$config['title'] = Install_Tools::Install_Title();
$config['keywords'] = 'gpEasy CMS, Easy CMS, Content Management, PHP, Free CMS, Website builder, Open Source';
$config['desc'] = 'A new gpEasy CMS installation. You can change your site\'s description in the configuration.';
$config['timeoffset'] = '0';
$config['langeditor'] = 'inherit';
$config['dateformat'] = '%m/%d/%y - %I:%M %p';
$config['gpversion'] = $GLOBALS['gpversion'];
$config['shahash'] = function_exists('sha1');
if (!isset($config['gpuniq'])) {
$config['gpuniq'] = common::RandomString(20);
}
$config['combinecss'] = Install_Tools::BooleanValue('combinecss', true);
$config['combinejs'] = Install_Tools::BooleanValue('combinejs', true);
$config['etag_headers'] = Install_Tools::BooleanValue('etag_headers', true);
//directories
gpFiles::CheckDir($destination . '/data/_uploaded/image');
gpFiles::CheckDir($destination . '/data/_uploaded/media');
gpFiles::CheckDir($destination . '/data/_uploaded/file');
gpFiles::CheckDir($destination . '/data/_uploaded/flash');
gpFiles::CheckDir($destination . '/data/_sessions');
$content = '<h2>Welcome!</h2>
<p>Welcome to your new gpEasy powered website. Now that gpEasy is installed, you can start editing the content and customising your site.</p>
<h3>Getting Started</h3>
<p>You are currently viewing the default home page of your website. Here\'s a quick description of how to edit this page.</p>
<ol>
<li>First make sure you're ' . Install_Tools::Install_Link_Content('Admin_Main', 'logged in', 'file=Home') . '.</li>
<li>Then, to edit this page, click the "Edit" link that appears when you move your mouse over the content.</li>
<li>Make your edits, click "Save" and you're done!</li>
</ol>
<h3>More Options</h3>
<ul>
<li>Adding, renaming, deleting and organising your pages can all be done in the ' . Install_Tools::Install_Link_Content('Admin_Menu', 'Page Manager') . '.</li>
<li>Choose from a ' . Install_Tools::Install_Link_Content('Admin_Theme_Content', 'variety of themes') . ' to give your site a custom look.</li>
<li>Then, you can ' . Install_Tools::Install_Link_Content('Admin_Theme_Content', 'add, remove and rearrange', 'cmd=editlayout') . ' the content of your site without editing the html.</li>
<li>Take a look at the Administrator Toolbar to access all the features of gpEasy.</li>
</ul>
<h3>Online Resources</h3>
<p>gpEasy.com has a number of resources to help you do even more with gpEasy.</p>
<ul>
<li>Find more community developed <a href="http://gpeasy.com/Special_Addon_Themes" title="gpEasy CMS Themes">themes</a> and <a href="http://gpeasy.com/Special_Addon_Plugins" title="gpEasy CMS Plugin">plugins</a> to enhance your site.</li>
<li>Get help in the <a href="http://gpeasy.com/Special_Forum" title="gpEasy CMS Forum">gpEasy forum</a>.</li>
<li>Show off your <a href="http://gpeasy.com/Special_Powered_by" title="Sites Using gpEasy CMS">gpEasy powered site</a> or list your <a href="http://gpeasy.com/Special_Service_Provider" title="Businesses Using gpEasy CMS">gpEasy related business</a>.</li>
</ul>';
gpFiles::NewTitle('Home', $content);
gpFiles::NewTitle('Help_Videos', "<h1>Help Videos</h1>\n\t\t<p>Video tutorials are often a fast and easy way to learn new things quickly.\n\t\tSo far, we only have one in Deutsch (German) made by <a href=\"http://gpeasy.com/Special_Service_Provider?id=57\" title=\"IT Ricther on gpEasy.com\">IT Richter</a>.\n\t\tIf you make a video tutorial for gpEasy, <a href=\"http://gpeasy.com/Contact\">let us know</a>, and we'll make sure it's included in our list.\n\t\t</p>\n\t\t<p>And as always, to edit this page, just click the \"Edit\" button while logged in.</p>\n\t\t<h2>Deutsch</h2>\n\t\t<p><iframe width=\"560\" height=\"315\" src=\"http://www.youtube.com/embed/04cNgR1EiFY\" frameborder=\"0\" allowfullscreen></iframe></p>\n\t\t");
gpFiles::NewTitle('Child_Page', '<h1>A Child Page</h1><p>This was created as a subpage of your <em>Help Videos</em> . You can easily change the arrangement of all your pages using the ' . Install_Tools::Install_Link_Content('Admin_Menu', 'Page Manager') . '.</p>');
gpFiles::NewTitle('About', '<h1>About gpEasy CMS</h1><p><a href="http://gpEasy.com" title="gpEasy.com">gp|Easy</a> is a complete Content Management System (CMS) that can help you create rich and flexible web sites with a simple and easy to use interface.</p>
<h2>gpEasy CMS How To</h2>
<p>Learn how to <a href="http://docs.gpeasy.com/Main/Admin" title="gpEasy File Management">manage your files</a>,
<a href="http://docs.gpeasy.com/Main/Creating%20Galleries" title="Creating Galleries in gpEasy CMS">create galleries</a> and more in the
<a href="http://docs.gpeasy.org/index.php/" title="gpEasy CMS Documentation">gpEasy Documentation</a>.
</p>
<h2>gpEasy CMS Features</h2>
<ul>
<li>True WYSIWYG (Using CKEditor)</li>
<li>Galleries (Using ColorBox)</li>
<li>SEO Friendly Links</li>
<li>Free and Open Source (GPL)</li>
<li>Runs on PHP</li>
<li>File Upload Manager</li>
<li>Drag \'n Drop Theme Content</li>
<li>Deleted File Trash Can</li>
<li>Multiple User Administration</li>
<li>Flat File Storage</li>
<li>Fast Page Loading</li>
<li>Fast and Easy Installation</li>
<li>reCaptcha for Contact Form</li>
<li>HTML Tidy (when available)</li>
</ul>
<h2>If You Like gpEasy...</h2>
<p>If you like gpEasy, then you might also like:</p>
<ul>
<li><a href="http://phpeasymin.com" title="Minimize JavaScript and CSS files easily">phpEasyMin.com</a> - Minimize multiple JavaScript and CSS files in one sweep.</li>
</ul>');
//Side_Menu
$file = $destination . '/data/_extra/Side_Menu.php';
$content = '<h3>Join the gpEasy Community</h3>
<p>Visit gpEasy.com to access the many <a href="http://gpeasy.com/Special_Resources" title="gpEasy Community Resources">available resources</a> to help you get the most out of our CMS.</p>
<ul>
<li><a href="http://gpeasy.com/Special_Addon_Themes" title="gpEasy CMS Themes">Download Themes</a></li>
<li><a href="http://gpeasy.com/Special_Addon_Plugins" title="gpEasy CMS Plugin">Download Plugins</a></li>
<li><a href="http://gpeasy.com/Special_Forum" title="gpEasy CMS Forum">Get Help in the Forum</a></li>
<li><a href="http://gpeasy.com/Special_Powered_by" title="Sites using gpEasy CMS">Show off Your Site</a></li>
<li><a href="http://gpeasy.com/Special_Resources" title="gpEasy Community Resources">And Much More...</a></li>
</ul>
//.........这里部分代码省略.........
示例7: CheckDir
/**
* Check recursively to see if a directory exists, if it doesn't attempt to create it
*
* @param string $dir The directory path
* @param bool $index Whether or not to add an index.hmtl file in the directory
* @return bool True on success
*/
function CheckDir($dir, $index = true)
{
global $config, $checkFileIndex;
if (!file_exists($dir)) {
$parent = dirname($dir);
gpFiles::CheckDir($parent, $index);
//ftp mkdir
if (isset($config['useftp'])) {
if (!gpFiles::FTP_CheckDir($dir)) {
return false;
}
} else {
if (!@mkdir($dir, gp_chmod_dir)) {
return false;
}
@chmod($dir, gp_chmod_dir);
//some systems need more than just the 0755 in the mkdir() function
}
}
//make sure there's an index.html file
if ($index && $checkFileIndex) {
$indexFile = $dir . '/index.html';
if (!file_exists($indexFile)) {
gpFiles::Save($indexFile, '<html></html>', false);
}
}
return true;
}
示例8: write_package
function write_package($dir, &$files)
{
global $langmessage;
if (!gpFiles::CheckDir($dir)) {
echo '<p class="gp_warning">';
echo sprintf($langmessage['COULD_NOT_SAVE'], $folder);
echo '</p>';
return false;
}
//get archive root
$archive_root = false;
foreach ($files as $file) {
if (strpos($file['filename'], '/Addon.ini') !== false) {
$root = dirname($file['filename']);
if (!$archive_root || strlen($root) < strlen($archive_root)) {
$archive_root = $root;
}
}
}
$archive_root_len = strlen($archive_root);
foreach ($files as $file_info) {
$filename = $file_info['filename'];
if ($archive_root) {
if (strpos($filename, $archive_root) !== 0) {
continue;
/*
trigger_error('$archive_root not in path');
echo '<p class="gp_warning">';
echo $langmessage['error_unpacking'];
echo '</p>';
return false;
*/
}
$filename = substr($filename, $archive_root_len);
}
$filename = '/' . trim($filename, '/');
$full_path = $dir . '/' . $filename;
if ($file_info['folder']) {
$folder = $full_path;
} else {
$folder = dirname($full_path);
}
if (!gpFiles::CheckDir($folder)) {
echo '<p class="gp_warning">';
echo sprintf($langmessage['COULD_NOT_SAVE'], $folder);
echo '</p>';
return false;
}
if ($file_info['folder']) {
continue;
}
if (!gpFiles::Save($full_path, $file_info['content'])) {
echo '<p class="gp_warning">';
echo sprintf($langmessage['COULD_NOT_SAVE'], $full_path);
echo '</p>';
return false;
}
}
return true;
}
示例9: SaveCommentData
/**
* Save the comment data for a blog post
*
*/
public static function SaveCommentData($post_index, $data)
{
global $langmessage;
// check directory
$dir = self::$data_dir . '/comments';
if (!gpFiles::CheckDir($dir)) {
return false;
}
$commentDataFile = $dir . '/' . $post_index . '.txt';
$dataTxt = serialize($data);
if (!gpFiles::Save($commentDataFile, $dataTxt)) {
return false;
}
// clean pre 1.7.4 files
$commentDataFile = self::$data_dir . '/comments_data_' . $post_index . '.txt';
if (file_exists($commentDataFile)) {
unlink($commentDataFile);
}
SimpleBlogCommon::AStrSet('comment_counts', $post_index, count($data));
SimpleBlogCommon::SaveIndex();
SimpleBlogCommon::ClearCommentCache();
return true;
}
示例10: SaveCommentData
/**
* Save the comment data for a blog post
*
*/
function SaveCommentData($post_index, $data)
{
global $langmessage;
// check directory
$dir = $this->addonPathData . '/comments';
if (!gpFiles::CheckDir($dir)) {
return false;
}
$commentDataFile = $dir . '/' . $post_index . '.txt';
$dataTxt = serialize($data);
if (!gpFiles::Save($commentDataFile, $dataTxt)) {
return false;
}
// clean pre 1.7.4 files
$commentDataFile = $this->addonPathData . '/comments_data_' . $post_index . '.txt';
if (file_exists($commentDataFile)) {
unlink($commentDataFile);
}
SimpleBlogCommon::AStrValue('comment_counts', $post_index, count($data));
$this->SaveIndex();
//clear comments cache
$cache_file = $this->addonPathData . '/comments/cache.txt';
if (file_exists($cache_file)) {
unlink($cache_file);
}
return true;
}
示例11: PrepFolder
/**
* Make Sure the trash folder exists
* admin_trash::PrepFolder();
*/
function PrepFolder()
{
global $dataDir;
$trash_dir = $dataDir . '/data/_trash';
gpFiles::CheckDir($trash_dir);
}
示例12: ExtractArchive
/**
* Write Archive
*
*/
function ExtractArchive($dir, $archive_path)
{
global $langmessage;
// Unzip uses a lot of memory, but not this much hopefully
@ini_set('memory_limit', '256M');
includeFile('thirdparty/pclzip-2-8-2/pclzip.lib.php');
$archive = new PclZip($archive_path);
$archive_files = $archive->extract(PCLZIP_OPT_EXTRACT_AS_STRING);
if (!gpFiles::CheckDir($dir)) {
$this->message(sprintf($langmessage['COULD_NOT_SAVE'], $folder));
return false;
}
//get archive root
$archive_root = false;
foreach ($archive_files as $file) {
if (strpos($file['filename'], '/Addon.ini') !== false) {
$root = dirname($file['filename']);
if (!$archive_root || strlen($root) < strlen($archive_root)) {
$archive_root = $root;
}
}
}
$archive_root_len = strlen($archive_root);
foreach ($archive_files as $file_info) {
$filename = $file_info['filename'];
if ($archive_root) {
if (strpos($filename, $archive_root) !== 0) {
continue;
}
$filename = substr($filename, $archive_root_len);
}
$filename = '/' . trim($filename, '/');
$full_path = $dir . '/' . $filename;
if ($file_info['folder']) {
$folder = $full_path;
} else {
$folder = dirname($full_path);
}
if (!gpFiles::CheckDir($folder)) {
$this->message(sprintf($langmessage['COULD_NOT_SAVE'], $folder));
return false;
}
if ($file_info['folder']) {
continue;
}
if (!gpFiles::Save($full_path, $file_info['content'])) {
$this->message(sprintf($langmessage['COULD_NOT_SAVE'], $full_path));
return false;
}
}
return true;
}
示例13: CopyAddonDir
/**
* Recursive copy folder
*
*/
function CopyAddonDir($fromDir, $toDir)
{
if (!gpFiles::CheckDir($toDir)) {
return 'Copy failed: ' . $fromDir . ' to ' . $toDir;
}
$files = scandir($fromDir);
if ($files === false) {
return 'scandir failed: ' . $fromDir;
}
foreach ($files as $file) {
if (strpos($file, '.') === 0) {
continue;
}
$fullFrom = $fromDir . '/' . $file;
$fullTo = $toDir . '/' . $file;
//directories
if (is_dir($fullFrom)) {
$result = self::CopyAddonDir($fullFrom, $fullTo);
if ($result !== true) {
return $result;
}
continue;
}
//files
//If the destination file already exists, it will be overwritten.
if (!copy($fullFrom, $fullTo)) {
return 'Copy failed: ' . $fullFrom . ' to ' . $fullTo . ' (2)';
}
}
return true;
}
示例14: PutFiles
/**
* Put the files in $file_list in the destination folder
* If the second destination folder is set, use gpFiles methods
*
* @param array $file_list List of files
* @param string $dest_rel The relative destination directory for $file_list
* @param bool $gpfiles False to use $gp_filesystem for file replacement, True for gpFiles methods
* @return bool
*/
function PutFiles($file_list, $dest_rel, $gpfiles = false)
{
global $gp_filesystem, $langmessage, $dataDir;
$dest_fs = $gp_filesystem->get_base_dir() . $dest_rel;
if ($gpfiles) {
$dest = $dataDir . $dest_rel;
}
//create destination
if (!$gp_filesystem->mkdir($dest_fs)) {
message($langmessage['revert_failed'] . ' Directory not created (0)');
return false;
}
foreach ($file_list as $file_info) {
$path =& $file_info['filename'];
$flag = (int) $file_info['typeflag'];
$full_fs = $dest_fs . $file_info['relative_path'];
$full = false;
if ($gpfiles) {
$full = $dest . $file_info['relative_path'];
}
//create directories
if ($flag === 5) {
if ($full) {
if (!gpFiles::CheckDir($full, false)) {
message($langmessage['revert_failed'] . ' Directory not created (1)');
return false;
}
continue;
}
if (!$gp_filesystem->mkdir($full_fs)) {
message($langmessage['revert_failed'] . ' Directory not created (2)');
return false;
}
continue;
}
//create files
if ($flag === 0) {
$contents = $this->GetImportContents($path);
if ($full) {
if (!gpFiles::Save($full, $contents)) {
message($langmessage['revert_failed'] . ' File not created (1)');
return false;
}
}
if (!$gp_filesystem->put_contents($full_fs, $contents)) {
message($langmessage['revert_failed'] . ' File not created (2)');
return false;
}
continue;
}
//symbolic link
if ($flag === 2) {
$target = $this->FixLink($file_info['link']);
/*
* This is too restrictive
* Can't even check the new folders being created in case the target hasn't been prepared yet
*
if( !file_exists($target) ){
message($langmessage['revert_failed'].' Symlink target doesn\'t exist.');
return false;
}
*/
if (!symlink($target, $full)) {
message($langmessage['revert_failed'] . ' Symlink not created (1)');
return false;
}
}
}
return true;
}
示例15: CopyThemes
function CopyThemes($destination, $args = false)
{
global $rootDir;
if ($args === false) {
$args = $_POST;
}
//selection of themes
if (!gpFiles::CheckDir($destination . '/themes')) {
message('Failed to create <em>' . $destination . '/themes' . '</em>');
return false;
}
$count = 0;
foreach ($args['themes'] as $theme) {
$target = $rootDir . '/themes/' . $theme;
if (!file_exists($target)) {
continue;
}
$name = $destination . '/themes/' . $theme;
if ($this->Create_Symlink($target, $name)) {
$count++;
}
}
if ($count == 0) {
message('Failed to populate <em>' . $destination . '/themes' . '</em>');
return false;
}
return true;
}