GoogleCloudAssetSourceType
- Type
- Class
- Namespace
- Craft
- Inherits
- Craft\GoogleCloudAssetSourceType » Craft\BaseAssetSourceType » Craft\BaseSavableComponentType » Craft\BaseComponentType » Craft\BaseApplicationComponent » CApplicationComponent (opens new window) » CComponent (opens new window)
- Implements
- Craft\IComponentType, Craft\ISavableComponentType,
IApplicationComponent
- Since
- 1.0
- Deprecated in
- This class will be removed in Craft 3.0.
The Google Cloud asset source type class. Handles the implementation of Google Cloud as an asset source type in Craft.
See also http://craftcms.com
View source (opens new window)
# Public Properties
Property | Description |
---|---|
$behaviors (opens new window) | array (opens new window) – The behaviors that should be attached to this component. |
$model | Craft\BaseModel |
# Protected Properties
Property | Description |
---|---|
$componentType | string (opens new window) |
$isSourceLocal | boolean (opens new window) |
# Public Methods
Method | Description |
---|---|
__call() (opens new window) | Calls the named method which is not a class method. |
__get() (opens new window) | Returns a property value, an event handler list or a behavior based on its name. |
__isset() (opens new window) | Checks if a property value is null. |
__set() (opens new window) | Sets value of a component property. |
__unset() (opens new window) | Sets a component property to be null. |
asa() (opens new window) | Returns the named behavior object. |
attachBehavior() (opens new window) | Attaches a behavior to this component. |
attachBehaviors() (opens new window) | Attaches a list of behaviors to the component. |
attachEventHandler() (opens new window) | Attaches an event handler to an event. |
canGetProperty() (opens new window) | Determines whether a property can be read. |
canSetProperty() (opens new window) | Determines whether a property can be set. |
copyTransform() | Copy a transform for a file from source location to target location. |
createFolder() | Create a folder. |
deleteFile() | Delete a file. |
deleteFolder() | Delete a folder. |
deleteTransform() | Delete a generated transform for a file. |
detachBehavior() (opens new window) | Detaches a behavior from the component. |
detachBehaviors() (opens new window) | Detaches all behaviors from the component. |
detachEventHandler() (opens new window) | Detaches an existing event handler. |
disableBehavior() (opens new window) | Disables an attached behavior. |
disableBehaviors() (opens new window) | Disables all behaviors attached to this component. |
enableBehavior() (opens new window) | Enables an attached behavior. |
enableBehaviors() (opens new window) | Enables all behaviors attached to this component. |
evaluateExpression() (opens new window) | Evaluates a PHP expression or callback under the context of this component. |
fileExists() | Return true if a physical file exists. |
finalizeTransfer() | Finalize a file transfer between sources for the provided file. |
folderExists() | Return true if a physical folder exists. |
getBaseUrl() | Return the source's base URL. |
getBucketList() | Get bucket list with credentials. |
getClassHandle() | Returns the component’s handle, ideally based on the class name. |
getEventHandlers() (opens new window) | Returns the list of attached event handlers for an event. |
getHasUrls() | Return whether the source has URLs. |
getImageSourcePath() | Get the image source path. |
getIsInitialized() (opens new window) | Checks if this application component has been initialized. |
getLocalCopy() | Make a local copy of the file and return the path to it. |
getName() | Returns the component’s name. |
getPeriodList() | Gets a period list. |
getSettings() | Returns the component’s settings model. |
getSettingsHtml() | Returns the component’s settings HTML. |
getSourceErrors() | Returns true if this is a valid source. Used for type-specific validations. |
getTimeTransformModified() | Get the timestamp of when a file transform was last modified. |
hasEvent() (opens new window) | Determines whether an event is defined. |
hasEventHandler() (opens new window) | Checks whether the named event has attached handlers. |
hasProperty() (opens new window) | Determines whether a property is defined. |
init() (opens new window) | Initializes the application component. |
insertFileByPath() | Insert a file into a folder by it's local path. |
isInitialized() | Checks if this application component has been initialized yet, or not. |
isRemote() | Return true if the source is a remote source. |
isSelectable() | Returns whether this component should be shown when the user is creating a component of this type. |
isSourceLocal() | Returns whether this is a local source or not. |
mergeFile() | Merge a file. |
moveFileInsideSource() | Move file from one path to another if it's possible. Return false on failure. |
moveFolder() | Moves a folder. |
prepSettings() | Preps the settings before they’re saved to the database. |
processIndex() | Process an indexing session. |
putImageTransform() | Put an image transform for the File and Transform Index using the provided path to the source image. |
raiseEvent() (opens new window) | Raises an event. |
renameFolder() | Rename a folder. |
replaceFile() | Replace physical file. |
setSettings() | Sets the setting values. |
startIndex() | Starts an indexing session. |
transferFileIntoSource() | Transfer a file into the source. |
transformExists() | Return true if a transform exists at the location for a file. |
uploadFile() | Upload a file. |
# copyTransform()
Copy a transform for a file from source location to target location.
BaseAssetSourceType::copyTransform()
View source (opens new window)
Arguments
$file
(Craft\AssetFileModel) – The assetFileModel that has the transform to copy.$targetFolderPath
(string (opens new window)) – The target folder path.$source
(Craft\AssetTransformIndexModel) – The source transform index data.$target
(Craft\AssetTransformIndexModel) – The destination transform index data.
Returns
Signature
public boolean copyTransform ( Craft\AssetFileModel $file, $targetFolderPath, Craft\AssetTransformIndexModel $source, Craft\AssetTransformIndexModel $target )
# fileExists()
Return true if a physical file exists.
BaseAssetSourceType::fileExists()
View source (opens new window)
Arguments
$parentPath
(string (opens new window)) – Parent path$fileName
Returns
Signature
public boolean fileExists ( $parentPath, $fileName )
# folderExists()
Return true if a physical folder exists.
BaseAssetSourceType::folderExists()
View source (opens new window)
Arguments
$parentPath
(string (opens new window)) – Parent path$folderName
(string (opens new window)) – The name of the folder to check if it exists.
Returns
Signature
public boolean folderExists ( $parentPath, $folderName )
# getBaseUrl()
Return the source's base URL.
BaseAssetSourceType::getBaseUrl()
View source (opens new window)
Returns
Signature
public string getBaseUrl ( )
# getBucketList()
Get bucket list with credentials.
View source (opens new window)
Arguments
$keyId
$secret
Returns
Throws
Signature
public static array getBucketList ( $keyId, $secret )
# getImageSourcePath()
Get the image source path.
BaseAssetSourceType::getImageSourcePath()
View source (opens new window)
Arguments
$file
(Craft\AssetFileModel)
Returns
mixed
Signature
public mixed getImageSourcePath ( Craft\AssetFileModel $file )
# getLocalCopy()
Make a local copy of the file and return the path to it.
BaseAssetSourceType::getLocalCopy()
View source (opens new window)
Arguments
$file
(Craft\AssetFileModel) – The assetFileModel that has the file to make a copy of.
Returns
mixed
Signature
public mixed getLocalCopy ( Craft\AssetFileModel $file )
# getName()
Returns the component’s name.
This is what your component will be called throughout the Control Panel.
IComponentType::getName()
View source (opens new window)
Returns
string (opens new window) – The component’s name.
Signature
public string getName ( )
# getSettingsHtml()
Returns the component’s settings HTML.
An extremely simple implementation would be to directly return some HTML:
return '<textarea name="foo">'.$this->getSettings()->foo.'</textarea>';
For more complex settings, you might prefer to create a template, and render it via {@link TemplatesService::render()}. For example, the following code would render a template loacated at craft/plugins/myplugin/templates/_settings.html, passing the settings to it:
return craft()->templates->render('myplugin/_settings', array(
'settings' => $this->getSettings()
));
If you need to tie any JavaScript code to your settings, it’s important to know that any name=
and id=
attributes within the returned HTML will probably get {@link TemplatesService::namespaceInputs() namespaced},
however your JavaScript code will be left untouched.
For example, if getSettingsHtml() returns the following HTML:
<textarea id="foo" name="foo"></textarea>
<script type="text/javascript">
var textarea = document.getElementById('foo');
</script>
…then it might actually look like this before getting output to the browser:
<textarea id="namespace-foo" name="namespace[foo]"></textarea>
<script type="text/javascript">
var textarea = document.getElementById('foo');
</script>
As you can see, that JavaScript code will not be able to find the textarea, because the textarea’s id=
attribute was changed from foo
to namespace-foo
.
Before you start adding namespace-
to the beginning of your element ID selectors, keep in mind that the actual
namespace is going to change depending on the context. Often they are randomly generated. So it’s not quite
that simple.
Thankfully, {@link TemplatesService} provides a couple handy methods that can help you deal with this:
- {@link TemplatesService::namespaceInputId()} will give you the namespaced version of a given ID.
- {@link TemplatesService::namespaceInputName()} will give you the namespaced version of a given input name.
- {@link TemplatesService::formatInputId()} will format an input name to look more like an ID attribute value.
So here’s what a getSettingsHtml() method that includes field-targeting JavaScript code might look like:
public function getSettingsHtml()
{
// Come up with an ID value for 'foo'
$id = craft()->templates->formatInputId('foo');
// Figure out what that ID is going to be namespaced into
$namespacedId = craft()->templates->namespaceInputId($id);
// Render and return the input template
return craft()->templates->render('myplugin/_fieldinput', array(
'id' => $id,
'namespacedId' => $namespacedId,
'settings' => $this->getSettings()
));
}
And the _settings.html template might look like this:
<textarea id="{{ id }}" name="foo">{{ settings.foo }}</textarea>
<script type="text/javascript">
var textarea = document.getElementById('{{ namespacedId }}');
</script>
The same principles also apply if you’re including your JavaScript code with {@link TemplatesService::includeJs()}.
ISavableComponentType::getSettingsHtml()
View source (opens new window)
Returns
Signature
public string, null getSettingsHtml ( )
# getTimeTransformModified()
Get the timestamp of when a file transform was last modified.
View source (opens new window)
Arguments
$fileModel
(Craft\AssetFileModel)$transformLocation
(string (opens new window))
Returns
mixed
Signature
public mixed getTimeTransformModified ( Craft\AssetFileModel $fileModel, $transformLocation )
# isRemote()
Return true if the source is a remote source.
BaseAssetSourceType::isRemote()
View source (opens new window)
Returns
Signature
public boolean isRemote ( )
# processIndex()
Process an indexing session.
BaseAssetSourceType::processIndex()
View source (opens new window)
Arguments
$sessionId
(string (opens new window)) – The unique session id to keep track of this indexing operation.$offset
(integer (opens new window)) – The offset of this index.
Returns
mixed
Signature
public mixed processIndex ( $sessionId, $offset )
# putImageTransform()
Put an image transform for the File and Transform Index using the provided path to the source image.
BaseAssetSourceType::putImageTransform()
View source (opens new window)
Arguments
$file
(Craft\AssetFileModel) – The AssetFileModel that the transform belongs to$index
(Craft\AssetTransformIndexModel) – The Transform Index data.$sourceImage
(string (opens new window)) – The source image.
Returns
mixed
Signature
public mixed putImageTransform ( Craft\AssetFileModel $file, Craft\AssetTransformIndexModel $index, $sourceImage )
# startIndex()
Starts an indexing session.
BaseAssetSourceType::startIndex()
View source (opens new window)
Arguments
$sessionId
(string (opens new window)) – The unique session id to keep track of this indexing operation.
Returns
Signature
public array startIndex ( $sessionId )
# transformExists()
Return true if a transform exists at the location for a file.
View source (opens new window)
Arguments
$file
(Craft\AssetFileModel)$location
Returns
mixed
Signature
public mixed transformExists ( Craft\AssetFileModel $file, $location )
# Protected Methods
Method | Description |
---|---|
canMoveFileFrom() | Determines if a file can be moved internally from original source. |
copySourceFile() | Copy a physical file inside the source. |
createSourceFolder() | Creates a physical folder, returns true on success. |
defineSettings() | Defines the settings. |
deleteGeneratedThumbnails() | Delete all the generated images for this file. |
deleteSourceFile() | Delete just the file inside of a source for an Assets File. |
deleteSourceFolder() | Delete the source folder. |
ensureFolderByFullPath() | Ensure a folder entry exists in the DB for the full path and return it's id. |
extractExpiryInformation() | Extract period amount and type from a saved Expires value. |
getMissingFolders() | Return a list of missing folders, when comparing the full folder list for this source against the provided list. |
getNameReplacementInFolder() | Get a name replacement for a filename already taken in a folder. |
getSettingsModel() | Returns the settings model. |
getUserFolderPromptOptions() | Return a result array for prompting the user about folder conflicts. |
getUserPromptOptions() | Return a result object for prompting the user about filename conflicts. |
indexFile() | Indexes a file. |
insertFileInFolder() | Insert a file from path in folder. |
moveSourceFile() | Move a file in source. |
purgeCachedSourceFile() | Purge a file from the Source's cache. Sources that need this should override this method. |
putObject() | Put an object into an S3 bucket. |
renameSourceFolder() | Rename a source folder. |
# canMoveFileFrom()
Determines if a file can be moved internally from original source.
BaseAssetSourceType::canMoveFileFrom()
View source (opens new window)
Arguments
$originalSource
(Craft\BaseAssetSourceType) – The original source to check if a file can be moved from.
Returns
mixed
Signature
protected mixed canMoveFileFrom ( Craft\BaseAssetSourceType $originalSource )
# copySourceFile()
Copy a physical file inside the source.
BaseAssetSourceType::copySourceFile()
View source (opens new window)
Arguments
$sourceUri
(string (opens new window)) – Source subpath$targetUri
(string (opens new window)) – Target subpath
Returns
Signature
protected boolean copySourceFile ( $sourceUri, $targetUri )
# createSourceFolder()
Creates a physical folder, returns true on success.
BaseAssetSourceType::createSourceFolder()
View source (opens new window)
Arguments
$parentFolder
(Craft\AssetFolderModel) – The assetFolderModel that has the parent folder of the folder to create.$folderName
(string (opens new window)) – The name of the folder to create.
Returns
Signature
protected boolean createSourceFolder ( Craft\AssetFolderModel $parentFolder, $folderName )
# defineSettings()
Defines the settings.
BaseSavableComponentType::defineSettings()
View source (opens new window)
Returns
Signature
protected array defineSettings ( )
# deleteSourceFile()
Delete just the file inside of a source for an Assets File.
BaseAssetSourceType::deleteSourceFile()
View source (opens new window)
Arguments
$subpath
(string (opens new window)) – The subpath of the file to delete within the source
Returns
void
Signature
protected void deleteSourceFile ( $subpath )
# deleteSourceFolder()
Delete the source folder.
BaseAssetSourceType::deleteSourceFolder()
View source (opens new window)
Arguments
$parentFolder
(Craft\AssetFolderModel) – The assetFolderModel that has the parent of the folder to be deleted$folderName
(string (opens new window)) – The name of the folder to be deleted.
Returns
Signature
protected boolean deleteSourceFolder ( Craft\AssetFolderModel $parentFolder, $folderName )
# getNameReplacementInFolder()
Get a name replacement for a filename already taken in a folder.
BaseAssetSourceType::getNameReplacementInFolder()
View source (opens new window)
Arguments
$folder
(Craft\AssetFolderModel) – The assetFolderModel that has the file to get a name replacement for.$fileName
(string (opens new window)) – The name of the file to get a replacement name for.
Returns
mixed
Signature
protected mixed getNameReplacementInFolder ( Craft\AssetFolderModel $folder, $fileName )
# insertFileInFolder()
Insert a file from path in folder.
BaseAssetSourceType::insertFileInFolder()
View source (opens new window)
Arguments
$folder
(Craft\AssetFolderModel) – The assetFolderModel that the file will be inserted into.$filePath
(string (opens new window)) – The filePath of the file to insert.$fileName
(string (opens new window)) – The fileName of the file to insert.
Returns
Throws
Signature
protected Craft\AssetFileModel insertFileInFolder ( Craft\AssetFolderModel $folder, $filePath, $fileName )
# moveSourceFile()
Move a file in source.
BaseAssetSourceType::moveSourceFile()
View source (opens new window)
Arguments
$file
(Craft\AssetFileModel) – The assetFileModel of the file to move.$targetFolder
(Craft\AssetFolderModel) – The assetFolderModel that is the target destination of the file.$fileName
(string (opens new window)) – The name of the file to move.$overwrite
(boolean (opens new window)) – If true, will overwrite target destination, if necessary.
Returns
mixed
Signature
protected mixed moveSourceFile ( Craft\AssetFileModel $file, Craft\AssetFolderModel $targetFolder, $fileName = '', $overwrite = false )
# putObject()
Put an object into an S3 bucket.
View source (opens new window)
Arguments
$filePath
$bucket
$uriPath
$permissions
Returns
Signature
protected boolean putObject ( $filePath, $bucket, $uriPath, $permissions )
# renameSourceFolder()
Rename a source folder.
BaseAssetSourceType::renameSourceFolder()
View source (opens new window)
Arguments
$folder
(Craft\AssetFolderModel) – The assetFolderModel that has the folder to be renamed.$newName
(string (opens new window)) – The new name of the folder.
Returns
Signature
protected boolean renameSourceFolder ( Craft\AssetFolderModel $folder, $newName )