TempAssetSourceType

Type
Class
Namespace
Craft
Inherits
Craft\TempAssetSourceType » Craft\LocalAssetSourceType » Craft\BaseAssetSourceType » Craft\BaseSavableComponentType » Craft\BaseComponentType » Craft\BaseApplicationComponent » CApplicationComponent » CComponent
Implements
Craft\IComponentType, Craft\ISavableComponentType, IApplicationComponent
Since
2.0
Deprecated in
This class will be removed in Craft 3.0.

A temporary asset source type class.

See also http://craftcms.com

View source

Public Properties

PropertyDescription
$behaviorsarray – The behaviors that should be attached to this component.
$modelCraft\BaseModel

Protected Properties

$isSourceLocal

Signature

protected boolean $isSourceLocal = true

Public Methods

MethodDescription
__call()Calls the named method which is not a class method.
__get()Returns a property value, an event handler list or a behavior based on its name.
__isset()Checks if a property value is null.
__set()Sets value of a component property.
__unset()Sets a component property to be null.
asa()Returns the named behavior object.
attachBehavior()Attaches a behavior to this component.
attachBehaviors()Attaches a list of behaviors to the component.
attachEventHandler()Attaches an event handler to an event.
canGetProperty()Determines whether a property can be read.
canSetProperty()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()Detaches a behavior from the component.
detachBehaviors()Detaches all behaviors from the component.
detachEventHandler()Detaches an existing event handler.
disableBehavior()Disables an attached behavior.
disableBehaviors()Disables all behaviors attached to this component.
enableBehavior()Enables an attached behavior.
enableBehaviors()Enables all behaviors attached to this component.
evaluateExpression()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.
getBasePath()Returns the source's base server path.
getBaseUrl()Return the source's base URL.
getClassHandle()Returns the component’s handle, ideally based on the class name.
getEventHandlers()Returns the list of attached event handlers for an event.
getHasUrls()Return whether the source has URLs.
getImageSourcePath()Get the image source path.
getIsInitialized()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.
hasEvent()Determines whether an event is defined.
hasEventHandler()Checks whether the named event has attached handlers.
hasProperty()Determines whether a property is defined.
init()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()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.
uploadFile()Upload a file.

getName()

Returns the component’s name.

This is what your component will be called throughout the Control Panel.

IComponentType::getName()

IComponentType::getName()

View source

Returns

string – 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()

ISavableComponentType::getSettingsHtml()

View source

Returns

string, null

Signature

public string, null getSettingsHtml ( )

isSelectable()

Returns whether this component should be shown when the user is creating a component of this type.

IComponentType::isSelectable()

View source

Returns

boolean – Whether the component should be selectable.

Signature

public boolean isSelectable ( )

prepSettings()

Preps the settings before they’re saved to the database.

ISavableComponentType::prepSettings()

ISavableComponentType::prepSettings()

View source

Arguments

  • $settings (array) – The settings, as they exist in the POST data.

Returns

array – The prepped settings, which will be stored in the database.

Signature

public array prepSettings ( $settings )

processIndex()

Process an indexing session.

BaseAssetSourceType::processIndex()

BaseAssetSourceType::processIndex()

View source

Arguments

  • $sessionId (string) – The unique session id to keep track of this indexing operation.
  • $offset (integer) – The offset of this index.

Returns

mixed

Throws

Signature

public mixed processIndex ( $sessionId, $offset )

startIndex()

Starts an indexing session.

BaseAssetSourceType::startIndex()

BaseAssetSourceType::startIndex()

View source

Arguments

  • $sessionId (string) – The unique session id to keep track of this indexing operation.

Returns

array

Throws

Signature

public array startIndex ( $sessionId )

Protected Methods

MethodDescription
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.
getSourceFileSystemPath()Get the file system path for upload source.
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.
renameSourceFolder()Rename a source folder.

Constants

ConstantDescription
sourceName
sourceType