Nos\Orm_Behaviour_Sharable¶Adds the sharable behaviour on a Nos\Orm\Model.
Nos\Orm_Behaviour_Sharable::$data¶Associative array of different types of data forming a content nuggets.
Keys can be one of DataCatcher constants.
Values are associative array.
value: A column name or a closure. See Examples. useTitle: Help label indicate which property of item is use as default value. options: Associative array of different options. Only for DataCatcher::TYPE_URL.possibles: Associative array of possibles values. Only for DataCatcher::TYPE_IMAGE.
Nos\Orm_Behaviour_Sharable::get_default_nuggets()¶| Returns: | Array containing the default content nuggets of an item. |
|---|
Nos\Orm_Behaviour_Sharable::get_catcher_nuggets($catcher = Model_Content_Nuggets::DEFAULT_CATCHER)¶| Parameters: |
|
|---|---|
| Returns: | The |
Nos\Orm_Behaviour_Sharable::get_sharable_property($property = null, $default = null)¶| Parameters: |
|
|---|---|
| Returns: |
|
Nos\Orm_Behaviour_Sharable::data_catchers()¶Retrieves all the data catchers that can use the content nugget of this item (checks the required_data of a
data catcher and ).
returns: All the valid data catchersfor this item (keys are thedata catchernames).
Nos\Orm_Behaviour_Sharable::possible_medias()¶Retrieves all possible medias that can be associated with the item. Search for linked medias and images inserted in the WYSIWYGs.
returns: Associative array of all Model_Media,Model_MediaID in keys, of item.
Nos\Orm_Behaviour_Sharable::get_nugget_content($catcher)¶Retrieves the personalised content nugget of a data catcher, merged with the default content nugget of
the item.
param string $catcher: Data catchersID.returns: ArrayAcontent nugget.
<?php
array(
\Nos\DataCatcher::TYPE_TITLE => array(
'value' => 'monk_name',
),
);
<?php
array(
\Nos\DataCatcher::TYPE_TITLE => array(
'value' => function($monkey) {
return $monkey->monk_name;
},
),
);
From the Monkey example application. config/model/monkey.config.php (we’re using a config file here, because we
can’t put functions in a class property):
<?php
return array(
'behaviours' => array(
'Nos\Orm_Behaviour_Sharable' => array(
'data' => array(
\Nos\DataCatcher::TYPE_TITLE => array(
'value' => 'monk_name',
'useTitle' => __('Use monkey name'),
),
\Nos\DataCatcher::TYPE_URL => array(
'value' => function($monkey) {
$urls = $monkey->urls();
if (empty($urls)) {
return null;
}
reset($urls);
return key($urls);
},
'options' => function($monkey) {
return $monkey->urls();
},
),
\Nos\DataCatcher::TYPE_TEXT => array(
'value' => function($monkey) {
return $monkey->monk_summary;
},
'useTitle' => __('Use monkey summary'),
),
\Nos\DataCatcher::TYPE_IMAGE => array(
'value' => function($monkey) {
$possible = $monkey->possible_medias();
return Arr::get(array_keys($possible), 0, null);
},
'possibles' => function($monkey) {
return $monkey->possible_medias();
},
),
),
),
),
);