• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP FileNameFilter类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了PHP中FileNameFilter的典型用法代码示例。如果您正苦于以下问题:PHP FileNameFilter类的具体用法?PHP FileNameFilter怎么用?PHP FileNameFilter使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了FileNameFilter类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。

示例1: onBeforeWrite

 public function onBeforeWrite()
 {
     parent::onBeforeWrite();
     // Create the base folder
     if (!$this->owner->BaseFolder && $this->owner->Title) {
         $filter = new FileNameFilter();
         $this->owner->BaseFolder = $filter->filter($this->owner->getTitle());
         $this->owner->BaseFolder = str_replace(' ', '', ucwords(str_replace('-', ' ', $this->owner->BaseFolder)));
     }
     // If name has changed, rename existing groups
     $changes = $this->owner->getChangedFields();
     if (isset($changes['Title']) && !empty($changes['Title']['before'])) {
         $filter = new URLSegmentFilter();
         $groupName = $this->getAdministratorGroupName($changes['Title']['before']);
         $group = self::getGroupByName($groupName);
         if ($group) {
             $group->Title = $this->getAdministratorGroupName($changes['Title']['after']);
             $group->Code = $filter->filter($group->Title);
             $group->write();
         }
         $membersGroupName = $this->getMembersGroupName($changes['Title']['before']);
         $membersGroup = self::getGroupByName($membersGroupName);
         if ($membersGroup) {
             $membersGroup->Title = $this->getMembersGroupName($changes['Title']['after']);
             $membersGroup->Code = $filter->filter($membersGroup->Title);
             $membersGroup->write();
         }
     }
 }
开发者ID:lekoala,项目名称:silverstripe-subsites-extras,代码行数:29,代码来源:SubsiteExtension.php


示例2: run

 public function run($request)
 {
     $filesWithSpaces = File::get()->where('"Filename" LIKE \'% %\'');
     $filter = new FileNameFilter();
     foreach ($filesWithSpaces as $file) {
         DB::alteration_message("Updating file #" . $file->ID . " with filename " . $file->Filename);
         $parts = explode('/', $file->Filename);
         $filtered = array_map(function ($item) use($filter) {
             return $filter->filter($item);
         }, $parts);
         $file->Filename = implode('/', $filtered);
         $file->write();
     }
     DB::alteration_message("All done!");
 }
开发者ID:helpfulrobot,项目名称:lekoala-silverstripe-devtoolkit,代码行数:15,代码来源:RemoveSpacesFromFilenames.php


示例3: determineFolderName

 /**
  * Description
  * @return string
  */
 protected function determineFolderName()
 {
     // Grab paths
     $paths = Config::inst()->get(__CLASS__, 'upload_paths');
     // Grab ancestry from top-down
     $className = get_class($this->record);
     $classes = array_reverse(ClassInfo::ancestry($className));
     $path = $className;
     // Loop over ancestry and break out if we have a match
     foreach ($classes as $class) {
         if (array_key_exists($class, $paths)) {
             $path = $paths[$class];
             break;
         }
     }
     // If there are any parameters which require matching, search for them
     $matches = array();
     preg_match_all('/\\$[a-zA-Z0-9]+?/U', $path, $matches);
     // Replace with field values
     foreach ($matches[0] as $match) {
         $field = str_replace("\$", "", $match);
         $value = FileNameFilter::create()->filter($this->record->getField($field));
         $path = str_replace($match, $value, $path);
     }
     $this->folderName = $path;
     return $path;
 }
开发者ID:Marketo,项目名称:SilverStripe-ContextAwareUploadField,代码行数:31,代码来源:ContextAwareUploadField.php


示例4: find_or_make

 /**
  * Find the given folder or create it as a database record
  *
  * @param string $folderPath Directory path relative to assets root
  * @return Folder|null
  */
 public static function find_or_make($folderPath)
 {
     // replace leading and trailing slashes
     $folderPath = preg_replace('/^\\/?(.*)\\/?$/', '$1', trim($folderPath));
     $parts = explode("/", $folderPath);
     $parentID = 0;
     $item = null;
     $filter = FileNameFilter::create();
     foreach ($parts as $part) {
         if (!$part) {
             continue;
             // happens for paths with a trailing slash
         }
         // Ensure search includes folders with illegal characters removed, but
         // err in favour of matching existing folders if $folderPath
         // includes illegal characters itself.
         $partSafe = $filter->filter($part);
         $item = Folder::get()->filter(array('ParentID' => $parentID, 'Name' => array($partSafe, $part)))->first();
         if (!$item) {
             $item = new Folder();
             $item->ParentID = $parentID;
             $item->Name = $partSafe;
             $item->Title = $part;
             $item->write();
         }
         $parentID = $item->ID;
     }
     return $item;
 }
开发者ID:ivoba,项目名称:silverstripe-framework,代码行数:35,代码来源:Folder.php


示例5: onBeforeWrite

 public function onBeforeWrite()
 {
     parent::onBeforeWrite();
     $this->Title = FileNameFilter::create()->filter($this->Title);
     if (strlen($this->ContentFile)) {
         $templates = $this->fileBasedTemplates();
         if (!isset($templates[$this->ContentFile])) {
             $this->ContentFile = '';
         }
     }
 }
开发者ID:nyeholt,项目名称:silverstripe-usertemplates,代码行数:11,代码来源:UserTemplate.php


示例6: checkFolder

 function checkFolder()
 {
     if (!$this->exists()) {
         return;
     }
     if (!$this->URLSegment) {
         return;
     }
     $baseFolder = '';
     if (class_exists('Subsite') && self::config()->use_subsite_integration) {
         if ($this->SubsiteID) {
             $subsite = $this->Subsite();
             if ($subsite->hasField('BaseFolder')) {
                 $baseFolder = $subsite->BaseFolder;
             } else {
                 $filter = new FileNameFilter();
                 $baseFolder = $filter->filter($subsite->getTitle());
                 $baseFolder = str_replace(' ', '', ucwords(str_replace('-', ' ', $baseFolder)));
             }
             $baseFolder .= '/';
         }
     }
     $folderPath = $baseFolder . "galleries/{$this->URLSegment}";
     $folder = Folder::find_or_make($folderPath);
     if ($this->RootFolderID && $folder->ID != $this->RootFolderID) {
         if ($this->RootFolder()->exists()) {
             // We need to rename current folder
             $this->RootFolder()->setFilename($folder->Filename);
             $this->RootFolder()->write();
             $folder->deleteDatabaseOnly();
             //Otherwise we keep a stupid clone that will be used as the parent
         } else {
             $this->RootFolderID = $folder->ID;
         }
     } else {
         $this->RootFolderID = $folder->ID;
     }
 }
开发者ID:helpfulrobot,项目名称:lekoala-silverstripe-magnific-gallery,代码行数:38,代码来源:MagnificGalleryPage.php


示例7: load

 /**
  * Save an file passed from a form post into this object.
  * 
  * @param $tmpFile array Indexed array that PHP generated for every file it uploads.
  * @param $folderPath string Folder path relative to /assets
  * @return Boolean|string Either success or error-message.
  */
 public function load($tmpFile, $folderPath = false)
 {
     if (!$folderPath) {
         $folderPath = Config::inst()->get('Upload', 'uploads_folder');
     }
     // @TODO This puts a HUGE limitation on files especially when lots
     // have been uploaded.
     $base = Director::baseFolder();
     $parentFolder = Folder::find_or_make($folderPath);
     // Generate default filename
     $fileArray = explode('/', $tmpFile);
     $fileName = $fileArray[count($fileArray) - 1];
     $nameFilter = FileNameFilter::create();
     $file = $nameFilter->filter($fileName);
     $fileName = basename($file);
     $relativeFilePath = ASSETS_DIR . "/" . $folderPath . "/{$fileName}";
     // if filename already exists, version the filename (e.g. test.gif to test1.gif)
     while (file_exists("{$base}/{$relativeFilePath}")) {
         $i = isset($i) ? $i + 1 : 2;
         $oldFilePath = $relativeFilePath;
         // make sure archives retain valid extensions
         if (substr($relativeFilePath, strlen($relativeFilePath) - strlen('.tar.gz')) == '.tar.gz' || substr($relativeFilePath, strlen($relativeFilePath) - strlen('.tar.bz2')) == '.tar.bz2') {
             $relativeFilePath = preg_replace('/[0-9]*(\\.tar\\.[^.]+$)/', $i . '\\1', $relativeFilePath);
         } else {
             if (strpos($relativeFilePath, '.') !== false) {
                 $relativeFilePath = preg_replace('/[0-9]*(\\.[^.]+$)/', $i . '\\1', $relativeFilePath);
             } else {
                 if (strpos($relativeFilePath, '_') !== false) {
                     $relativeFilePath = preg_replace('/_([^_]+$)/', '_' . $i, $relativeFilePath);
                 } else {
                     $relativeFilePath .= '_' . $i;
                 }
             }
         }
         if ($oldFilePath == $relativeFilePath && $i > 2) {
             user_error("Couldn't fix {$relativeFilePath} with {$i} tries", E_USER_ERROR);
         }
     }
     if (file_exists($tmpFile) && copy($tmpFile, $base . "/" . $relativeFilePath)) {
         $this->owner->ParentID = $parentFolder->ID;
         // This is to prevent it from trying to rename the file
         $this->owner->Name = basename($relativeFilePath);
         $this->owner->write();
         return true;
     } else {
         return false;
     }
 }
开发者ID:helpfulrobot,项目名称:andrelohmann-silverstripe-extended-file,代码行数:55,代码来源:ExtendedFile.php


示例8: getPdfPreviewImage

 public function getPdfPreviewImage()
 {
     $pdfFile = Director::getAbsFile($this->owner->getFileName());
     $pathInfo = pathinfo($pdfFile);
     if (strtolower($pathInfo['extension']) != 'pdf') {
         //@Todo if dev then exception? else fail silently
         return null;
     }
     $fileName = $pathInfo['filename'];
     $savePath = __DIR__ . '/../../';
     $saveImage = $this->imagePrefix . '-' . $fileName . '.jpg';
     // Fix illegal characters
     $filter = FileNameFilter::create();
     $saveImage = $filter->filter($saveImage);
     $saveTo = $savePath . $this->folderToSave . $saveImage;
     $image = DataObject::get_one('Image', "`Name` = '{$saveImage}'");
     if (!$image) {
         $folderObject = DataObject::get_one("Folder", "`Filename` = '{$this->folderToSave}'");
         if ($folderObject) {
             if ($this->generator->generatePreviewImage($pdfFile, $saveTo)) {
                 $image = new Image();
                 $image->ParentID = $folderObject->ID;
                 $image->setName($saveImage);
                 $image->write();
             }
         }
     } else {
         //check LastEdited to update
         $cacheInValid = false;
         if (strtotime($image->LastEdited) < strtotime($this->owner->LastEdited)) {
             $cacheInValid = true;
         }
         if ($cacheInValid) {
             $this->generator->generatePreviewImage($pdfFile, $saveTo);
             $image->setName($saveImage);
             $image->write(false, false, true);
         }
     }
     return $image;
 }
开发者ID:helpfulrobot,项目名称:ivoba-silverstripe-simple-pdf-preview,代码行数:40,代码来源:SimplePdfPreviewImageExtension.php


示例9: createPdf

 public function createPdf()
 {
     $storeIn = $this->getStorageFolder();
     $name = FileNameFilter::create()->filter($this->Title);
     $name .= '.pdf';
     if (!$name) {
         throw new Exception("Must have a name!");
     }
     if (!$this->Template) {
         throw new Exception("Please specify a template before rendering.");
     }
     $file = new ComposedPdfFile();
     $file->ParentID = $storeIn->ID;
     $file->SourceID = $this->ID;
     $file->Title = $this->Title;
     $file->setName($name);
     $file->write();
     $content = $this->renderPdf();
     $filename = singleton('PdfRenditionService')->render($content);
     if (file_exists($filename)) {
         copy($filename, $file->getFullPath());
         unlink($filename);
     }
 }
开发者ID:helpfulrobot,项目名称:silverstripe-australia-pdfrendition,代码行数:24,代码来源:ComposedPdf.php


示例10: sanitize_folder_name

 /**
  * Folder name sanitizer.
  * Checks for valid names and sanitizes
  * against directory traversal.
  * 
  * @param  string $foldername
  * @return string
  */
 public static function sanitize_folder_name($foldername)
 {
     //return $foldername;
     return FileNameFilter::create()->filter(basename($foldername));
 }
开发者ID:arillo,项目名称:silverstripe-cleanutilities,代码行数:13,代码来源:ControlledFolderDataExtension.php


示例11: loadUploadedImage

 /**
  * File names are filtered through {@link FileNameFilter}, see class documentation
  * on how to influence this behaviour.
  *
  * @deprecated 3.2
  */
 public function loadUploadedImage($tmpFile)
 {
     Deprecation::notice('3.2', 'Use the Upload::loadIntoFile()');
     if (!is_array($tmpFile)) {
         user_error("Image::loadUploadedImage() Not passed an array.  Most likely, the form hasn't got the right" . "enctype", E_USER_ERROR);
     }
     if (!$tmpFile['size']) {
         return;
     }
     $class = $this->class;
     // Create a folder
     if (!file_exists(ASSETS_PATH)) {
         mkdir(ASSETS_PATH, Config::inst()->get('Filesystem', 'folder_create_mask'));
     }
     if (!file_exists(ASSETS_PATH . "/{$class}")) {
         mkdir(ASSETS_PATH . "/{$class}", Config::inst()->get('Filesystem', 'folder_create_mask'));
     }
     // Generate default filename
     $nameFilter = FileNameFilter::create();
     $file = $nameFilter->filter($tmpFile['name']);
     if (!$file) {
         $file = "file.jpg";
     }
     $file = ASSETS_PATH . "/{$class}/{$file}";
     while (file_exists(BASE_PATH . "/{$file}")) {
         $i = $i ? $i + 1 : 2;
         $oldFile = $file;
         $file = preg_replace('/[0-9]*(\\.[^.]+$)/', $i . '\\1', $file);
         if ($oldFile == $file && $i > 2) {
             user_error("Couldn't fix {$file} with {$i}", E_USER_ERROR);
         }
     }
     if (file_exists($tmpFile['tmp_name']) && copy($tmpFile['tmp_name'], BASE_PATH . "/{$file}")) {
         // Remove the old images
         $this->deleteFormattedImages();
         return true;
     }
 }
开发者ID:nicocin,项目名称:silverstripe-framework,代码行数:44,代码来源:Image.php


示例12: addUploadToFolder

	/**
	 * Take a file uploaded via a POST form, and save it inside this folder.
	 * File names are filtered through {@link FileNameFilter}, see class documentation
	 * on how to influence this behaviour.
	 */
	function addUploadToFolder($tmpFile) {
		if(!is_array($tmpFile)) {
			user_error("Folder::addUploadToFolder() Not passed an array.  Most likely, the form hasn't got the right enctype", E_USER_ERROR);
		}
		if(!isset($tmpFile['size'])) {
			return;
		}
		
		$base = BASE_PATH;
		// $parentFolder = Folder::findOrMake("Uploads");

		// Generate default filename
		$nameFilter = FileNameFilter::create();
		$file = $nameFilter->filter($tmpFile['name']);
		while($file[0] == '_' || $file[0] == '.') {
			$file = substr($file, 1);
		}

		$file = $this->RelativePath . $file;
		Filesystem::makeFolder(dirname("$base/$file"));
		
		$doubleBarrelledExts = array('.gz', '.bz', '.bz2');
		
		$ext = "";
		if(preg_match('/^(.*)(\.[^.]+)$/', $file, $matches)) {
			$file = $matches[1];
			$ext = $matches[2];
			// Special case for double-barrelled 
			if(in_array($ext, $doubleBarrelledExts) && preg_match('/^(.*)(\.[^.]+)$/', $file, $matches)) {
				$file = $matches[1];
				$ext = $matches[2] . $ext;
			}
		}
		$origFile = $file;

		$i = 1;
		while(file_exists("$base/$file$ext")) {
			$i++;
			$oldFile = $file;
			
			if(strpos($file, '.') !== false) {
				$file = preg_replace('/[0-9]*(\.[^.]+$)/', $i . '\\1', $file);
			} elseif(strpos($file, '_') !== false) {
				$file = preg_replace('/_([^_]+$)/', '_' . $i, $file);
			} else {
				$file .= '_'.$i;
			}

			if($oldFile == $file && $i > 2) user_error("Couldn't fix $file$ext with $i", E_USER_ERROR);
		}
		
		if (move_uploaded_file($tmpFile['tmp_name'], "$base/$file$ext")) {
			// Update with the new image
			return $this->constructChild(basename($file . $ext));
		} else {
			if(!file_exists($tmpFile['tmp_name'])) user_error("Folder::addUploadToFolder: '$tmpFile[tmp_name]' doesn't exist", E_USER_ERROR);
			else user_error("Folder::addUploadToFolder: Couldn't copy '$tmpFile[tmp_name]' to '$base/$file$ext'", E_USER_ERROR);
			return false;
		}
	}
开发者ID:redema,项目名称:sapphire,代码行数:65,代码来源:Folder.php


示例13: setName

 /**
  * Setter function for Name. Automatically sets a default title,
  * and removes characters that might be invalid on the filesystem.
  * Also adds a suffix to the name if the filename already exists
  * on the filesystem, and is associated to a different {@link File} database record
  * in the same folder. This means "myfile.jpg" might become "myfile-1.jpg".
  * 
  * Does not change the filesystem itself, please use {@link write()} for this.
  * 
  * @param String $name
  */
 function setName($name)
 {
     $oldName = $this->Name;
     // It can't be blank, default to Title
     if (!$name) {
         $name = $this->Title;
     }
     // Fix illegal characters
     $filter = FileNameFilter::create();
     $name = $filter->filter($name);
     // We might have just turned it blank, so check again.
     if (!$name) {
         $name = 'new-folder';
     }
     // If it's changed, check for duplicates
     if ($oldName && $oldName != $name) {
         $base = pathinfo($name, PATHINFO_BASENAME);
         $ext = self::get_file_extension($name);
         $suffix = 1;
         while (DataObject::get_one("File", "\"Name\" = '" . Convert::raw2sql($name) . "' AND \"ParentID\" = " . (int) $this->ParentID)) {
             $suffix++;
             $name = "{$base}-{$suffix}{$ext}";
         }
     }
     // Update title
     if (!$this->getField('Title')) {
         $this->__set('Title', str_replace(array('-', '_'), ' ', preg_replace('/\\.[^.]+$/', '', $name)));
     }
     // Update actual field value
     $this->setField('Name', $name);
     // Ensure that the filename is updated as well (only in-memory)
     // Important: Circumvent the getter to avoid infinite loops
     $this->setField('Filename', $this->getRelativePath());
     return $this->getField('Name');
 }
开发者ID:nzjoel,项目名称:sapphire,代码行数:46,代码来源:File.php


示例14: getValidFilename

 /**
  * Given a temporary file and upload path, validate the file and determine the
  * value of the 'Filename' tuple that should be used to store this asset.
  *
  * @param array $tmpFile
  * @param string $folderPath
  * @return string|false Value of filename tuple, or false if invalid
  */
 protected function getValidFilename($tmpFile, $folderPath = null)
 {
     if (!is_array($tmpFile)) {
         throw new InvalidArgumentException("Upload::load() Not passed an array.  Most likely, the form hasn't got the right enctype");
     }
     // Validate
     $this->clearErrors();
     $valid = $this->validate($tmpFile);
     if (!$valid) {
         return false;
     }
     // Clean filename
     if (!$folderPath) {
         $folderPath = $this->config()->uploads_folder;
     }
     $nameFilter = FileNameFilter::create();
     $file = $nameFilter->filter($tmpFile['name']);
     $filename = basename($file);
     if ($folderPath) {
         $filename = File::join_paths($folderPath, $filename);
     }
     return $filename;
 }
开发者ID:assertchris,项目名称:silverstripe-framework,代码行数:31,代码来源:Upload.php


示例15: generateExportFileData

 /**
  * Generate export fields for Excel.
  *
  * @param GridField $gridField
  * @return PHPExcel
  */
 public function generateExportFileData($gridField)
 {
     $class = $gridField->getModelClass();
     $columns = $this->exportColumns ? $this->exportColumns : ExcelImportExport::exportFieldsForClass($class);
     $fileData = '';
     $singl = singleton($class);
     $singular = $class ? $singl->i18n_singular_name() : '';
     $plural = $class ? $singl->i18n_plural_name() : '';
     $filter = new FileNameFilter();
     if ($this->exportName) {
         $this->exportName = $filter->filter($this->exportName);
     } else {
         $this->exportName = $filter->filter('export-' . $plural);
     }
     $excel = new PHPExcel();
     $excelProperties = $excel->getProperties();
     $excelProperties->setTitle($this->exportName);
     $sheet = $excel->getActiveSheet();
     if ($plural) {
         $sheet->setTitle($plural);
     }
     $row = 1;
     $col = 0;
     if ($this->hasHeader) {
         $headers = array();
         // determine the headers. If a field is callable (e.g. anonymous function) then use the
         // source name as the header instead
         foreach ($columns as $columnSource => $columnHeader) {
             $headers[] = !is_string($columnHeader) && is_callable($columnHeader) ? $columnSource : $columnHeader;
         }
         foreach ($headers as $header) {
             $sheet->setCellValueByColumnAndRow($col, $row, $header);
             $col++;
         }
         $endcol = PHPExcel_Cell::stringFromColumnIndex($col - 1);
         $sheet->setAutoFilter("A1:{$endcol}1");
         $sheet->getStyle("A1:{$endcol}1")->getFont()->setBold(true);
         $col = 0;
         $row++;
     }
     // Autosize
     $cellIterator = $sheet->getRowIterator()->current()->getCellIterator();
     try {
         $cellIterator->setIterateOnlyExistingCells(true);
     } catch (Exception $ex) {
         continue;
     }
     foreach ($cellIterator as $cell) {
         $sheet->getColumnDimension($cell->getColumn())->setAutoSize(true);
     }
     //Remove GridFieldPaginator as we're going to export the entire list.
     $gridField->getConfig()->removeComponentsByType('GridFieldPaginator');
     $items = $gridField->getManipulatedList();
     // @todo should GridFieldComponents change behaviour based on whether others are available in the config?
     foreach ($gridField->getConfig()->getComponents() as $component) {
         if ($component instanceof GridFieldFilterHeader || $component instanceof GridFieldSortableHeader) {
             $items = $component->getManipulatedData($gridField, $items);
         }
     }
     foreach ($items->limit(null) as $item) {
         if (!$item->hasMethod('canView') || $item->canView()) {
             foreach ($columns as $columnSource => $columnHeader) {
                 if (!is_string($columnHeader) && is_callable($columnHeader)) {
                     if ($item->hasMethod($columnSource)) {
                         $relObj = $item->{$columnSource}();
                     } else {
                         $relObj = $item->relObject($columnSource);
                     }
                     $value = $columnHeader($relObj);
                 } else {
                     $value = $gridField->getDataFieldValue($item, $columnSource);
                     if ($value === null) {
                         $value = $gridField->getDataFieldValue($item, $columnHeader);
                     }
                 }
                 $value = str_replace(array("\r", "\n"), "\n", $value);
                 $sheet->setCellValueByColumnAndRow($col, $row, $value);
                 $col++;
             }
         }
         if ($item->hasMethod('destroy')) {
             $item->destroy();
         }
         $col = 0;
         $row++;
     }
     return $excel;
 }
开发者ID:lekoala,项目名称:silverstripe-excel-import-export,代码行数:94,代码来源:ExcelGridFieldExportButton.php


示例16: image

 /**
  * Get a random image
  * @return Image
  */
 public static function image()
 {
     $images = DataObject::get('Image', "Filename LIKE 'assets/Faker/%'");
     if (!count($images)) {
         $rss = file_get_contents(self::$imageRss);
         $xml = simplexml_load_string($rss);
         $nodes = $xml->xpath("//image");
         $i = 0;
         $folder = Folder::find_or_make('Faker');
         $dir = $folder->getFullPath();
         $filter = new FileNameFilter();
         foreach ($nodes as $node) {
             $i++;
             $image = file_get_contents((string) $node->url);
             $filename = $dir . '/' . basename($filter->filter((string) $node->title) . '.jpg');
             file_put_contents($filename, $image);
         }
         $folder->syncChildren();
         $images = DataObject::get('Image', "Filename LIKE 'assets/Faker/%'");
     }
     $rand = rand(0, count($images));
     foreach ($images as $key => $image) {
         if ($key == $rand) {
             return $image;
         }
     }
     return $images->First();
 }
开发者ID:lekoala,项目名称:silverstripe-devtoolkit,代码行数:32,代码来源:FakeRecordGenerator.php


示例17: send


//.........这里部分代码省略.........
         if (is_string($bcc_email)) {
             $params['bcc_address'] = $bcc_email;
         }
     }
     // Google analytics domains
     if (self::getUseGoogleAnalytics() && !Director::isDev()) {
         if (!isset($params['google_analytics_domains'])) {
             // Compute host
             $host = str_replace(Director::protocol(), '', Director::protocolAndHost());
             // Define in params
             $params['google_analytics_domains'] = array($host);
         }
     }
     // Handle files attachments
     if ($attachedFiles) {
         $attachments = array();
         // Include any specified attachments as additional parts
         foreach ($attachedFiles as $file) {
             if (isset($file['tmp_name']) && isset($file['name'])) {
                 $attachments[] = $this->encodeFileForEmail($file['tmp_name'], $file['name']);
             } else {
                 $attachments[] = $this->encodeFileForEmail($file);
             }
         }
         $params['attachments'] = $attachments;
     }
     if ($customheaders) {
         $params['headers'] = $customheaders;
     }
     if (self::getEnableLogging()) {
         // Append some extra information at the end
         $logContent = $htmlContent;
         $logContent .= '<pre>';
         $logContent .= 'To : ' . print_r($original_to, true) . "\n";
         $logContent .= 'Subject : ' . $subject . "\n";
         $logContent .= 'Headers : ' . print_r($customheaders, true) . "\n";
         if (!empty($params['from_email'])) {
             $logContent .= 'From email : ' . $params['from_email'] . "\n";
         }
         if (!empty($params['from_name'])) {
             $logContent .= 'From name : ' . $params['from_name'] . "\n";
         }
         if (!empty($params['to'])) {
             $logContent .= 'Recipients : ' . print_r($params['to'], true) . "\n";
         }
         $logContent .= '</pre>';
         // Store it
         $logFolder = BASE_PATH . '/' . self::getLogFolder();
         if (!is_dir($logFolder)) {
             mkdir($logFolder, 0777, true);
         }
         $filter = new FileNameFilter();
         $title = substr($filter->filter($subject), 0, 20);
         $r = file_put_contents($logFolder . '/' . time() . '-' . $title . '.html', $logContent);
         if (!$r) {
             throw new Exception('Failed to store email in ' . $logFolder);
         }
     }
     if (self::getSendingDisabled()) {
         $customheaders['X-SendingDisabled'] = true;
         return array($original_to, $subject, $htmlContent, $customheaders);
     }
     try {
         $ret = $this->getMandrill()->messages->send($params);
     } catch (Exception $ex) {
         $ret = array(array('status' => 'rejected', 'reject_reason' => $ex->getMessage()));
     }
     $this->last_result = $ret;
     $sent = 0;
     $failed = 0;
     $reasons = array();
     if ($ret) {
         foreach ($ret as $result) {
             if (in_array($result['status'], array('rejected', 'invalid'))) {
                 $failed++;
                 if (!empty($result['reject_reason'])) {
                     $reasons[] = $result['reject_reason'];
                 } else {
                     if ($result['status'] == 'invalid') {
                         $reasons[] = 'Email "' . $result['email'] . '" is invalid';
                     }
                 }
                 continue;
             }
             $sent++;
         }
     }
     if ($sent) {
         $this->last_is_error = false;
         return array($original_to, $subject, $htmlContent, $customheaders);
     } else {
         $this->last_is_error = true;
         $this->last_error = $ret;
         SS_Log::log("Failed to send {$failed} emails", SS_Log::DEBUG);
         foreach ($reasons as $reason) {
             SS_Log::log("Failed to send because: {$reason}", SS_Log::DEBUG);
         }
         return false;
     }
 }
开发者ID:helpfulrobot,项目名称:lekoala-silverstripe-mandrill,代码行数:101,代码来源:MandrillMailer.php


示例18: generateFilepath

 /**
  * Returns a path unique to a specific transfer, including project/environment details.
  * Does not create the path on the filesystem. Can be used to store files related to this transfer.
  *
  * @param DNDataTransfer
  * @return String Absolute file path
  */
 public function generateFilepath(DNDataTransfer $dataTransfer)
 {
     $data = DNData::inst();
     $transferDir = $data->getDataTransferDir();
     $filter = FileNameFilter::create();
     return sprintf('%s/%s/%s/transfer-%s/', $transferDir, $filter->filter(strtolower($this->OriginalEnvironment()->Project()->Name)), $filter->filter(strtolower($this->OriginalEnvironment()->Name)), $dataTransfer->ID);
 }
开发者ID:antons-,项目名称:deploynaut,代码行数:14,代码来源:DNDataArchive.php


示例19: testDuplicateDashesRemoved

 public function testDuplicateDashesRemoved()
 {
     $name = 'test--document.txt';
     $filter = new FileNameFilter();
     $this->assertEquals('test-document.txt', $filter->filter($name));
 }
开发者ID:ivoba,项目名称:silverstripe-framework,代码行数:6,代码来源:FileNameFilterTest.php


示例20: addNewImage

 /**
  * Adds a new image to the given product.
  * 
  * @param SilvercartProduct $product           Product to add image to
  * @param string            $filename          Filename
  * @param string            $description       Description
  * @param int               $consecutiveNumber Consecutive number
  */
 protected function addNewImage(SilvercartProduct $product, $filename, $description, $consecutiveNumber)
 {
     $fileEnding = strrev(substr(strrev($filename), 0, strpos(strrev($filename), '.')));
     $nameFilter = FileNameFilter::create();
     $targetFilename = $product->ProductNumberShop . '-' . $nameFilter->filter($product->Title) . '-' . $consecutiveNumber . '.' . $fileEnding;
     $originalFile = self::get_absolute_upload_folder() . '/' . $filename;
     $targetFile = self::get_absolute_product_image_folder() . '/' . $targetFilename;
     $parentFolder = Folder::find_or_make('Uploads/product-images');
     rename($originalFile, $targetFile);
     $image = new Image();
     $image->Name = basename($targetFilename);
     $image->ParentID = $parentFolder->ID;
     $image->write();
     $silvercartImage = new SilvercartImage();
     $silvercartImage->ImageID = $image->ID;
     $silvercartImage->Title = $description;
     $silvercartImage->write();
     $product->SilvercartImages()->add($silvercartImage);
 }
开发者ID:silvercart,项目名称:silvercart,代码行数:27,代码来源:SilvercartProductImageAdmin.php



注:本文中的FileNameFilter类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP FilePermissions类代码示例发布时间:2022-05-23
下一篇:
PHP FileModel类代码示例发布时间:2022-05-23
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap