QuickPostWidget
- Type
- Class
- Namespace
- Craft
- Inherits
- Craft\QuickPostWidget » Craft\BaseWidget » Craft\BaseSavableComponentType » Craft\BaseComponentType » Craft\BaseApplicationComponent » CApplicationComponent (opens new window) » CComponent (opens new window)
- Implements
- Craft\IComponentType, Craft\ISavableComponentType, Craft\IWidget,
IApplicationComponent
- Since
- 1.0
Class QuickPostWidget
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 |
$multipleInstances | boolean (opens new window) |
# $multipleInstances
Signature
public boolean $multipleInstances = true
# Protected Properties
Property | Description |
---|---|
$componentType | string (opens new window) |
$multi | 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. |
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. |
getBodyHtml() | Returns the widget's body HTML. |
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. |
getIconPath() | Returns the path to the widget’s SVG icon. |
getIsInitialized() (opens new window) | Checks if this application component has been initialized. |
getMaxColspan() | Returns the widget's maximum colspan. |
getName() | Returns the component’s name. |
getSettings() | Returns the component’s settings model. |
getSettingsHtml() | Returns the component’s settings HTML. |
getTitle() | Returns the widget's title. |
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. |
isInitialized() | Checks if this application component has been initialized yet, or not. |
isSelectable() | Returns whether this component should be shown when the user is creating a component of this type. |
prepSettings() | Preps the settings before they're saved to the database. |
raiseEvent() (opens new window) | Raises an event. |
setSettings() | Sets the setting values. |
# getBodyHtml()
Returns the widget's body HTML.
IWidget::getBodyHtml()
IWidget::getBodyHtml()
View source (opens new window)
Returns
string (opens new window), false (opens new window) – The widget’s body HTML, or false
if the widget
should not be visible. (If you don’t want the widget
to be selectable in the first place, use {@link isSelectable()}.)
Signature
public string, false getBodyHtml ( )
# getIconPath()
Returns the path to the widget’s SVG icon.
IWidget::getIconPath()
IWidget::getIconPath()
View source (opens new window)
Returns
string (opens new window) – The path to the widget’s SVG icon
Signature
public string getIconPath ( )
# 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 getSettingsHtml ( )
# getTitle()
Returns the widget's title.
IWidget::getTitle()
IWidget::getTitle()
View source (opens new window)
Returns
string (opens new window) – The widget’s title.
Signature
public string getTitle ( )
# prepSettings()
Preps the settings before they're saved to the database.
View source (opens new window)
Arguments
$settings
(array (opens new window))
Returns
Signature
public array prepSettings ( $settings )
# Protected Methods
Method | Description |
---|---|
defineSettings() | Defines the settings. |
getSettingsModel() | Returns the settings model. |
# defineSettings()
Defines the settings.
BaseSavableComponentType::defineSettings()
View source (opens new window)
Returns
Signature
protected array defineSettings ( )