Twinnable

class Nos\Orm_Behaviour_Twinnable
It adds the ability to twin together different items with different contexts.

Configuration

property Nos\Orm_Behaviour_Twinnable::$common_id_property

Required. Column used to store the common ID between twinned items. Data type must be int.

property Nos\Orm_Behaviour_Twinnable::$is_main_property

Required. Column used to store if the item is the main item among twin items. Data type must be boolean.

property Nos\Orm_Behaviour_Twinnable::$common_fields

Array of fields which are common to all context twins.

Providers

This behaviour adds 2 providers to link WYSIWYGs and medias to context twins.

property Nos\Orm_Behaviour_Twinnable::$shared_medias_context

Provider for Nos\Media\Model_Link linked to context twins.

<?php
$item->shared_medias_context->avatar; // Get a Model_Link named 'avatar'
$item->shared_medias_context->avatar->media; // Get Model_Media named 'avatar'

$item->shared_medias_context->cv = $Model_Media; // Attach a Model_Media named 'cv'

$item->shared_medias_context->cv = null; // Detach a media from items context twins
// or
unset($item->shared_medias_context->cv);
property Nos\Orm_Behaviour_Twinnable::$shared_wysiwygs_context

Provider for Nos\Model_Wysiwyg linked to context twins.

<?php
$item->shared_wysiwygs_context->content; // Get a Model_Wysiwyg named 'content'
$item->shared_wysiwygs_context->content->wysiwyg_text; // Get content of Model_Wysiwyg named 'content'

$item->shared_wysiwygs_context->summary = 'foo'; // Set a Model_Wysiwyg named 'content', with content 'foo'.

$item->shared_wysiwygs_context->summary = null; // Remove a wysiwyg from items context twins
// or
unset($item->shared_wysiwygs_context->summary);

Methods

static Nos\Orm_Behaviour_Twinnable::hasCommonFields
Returns:True if model has common fields, medias or WYSIWYGs.
static Nos\Orm_Behaviour_Twinnable::isCommonField($name)
Parameters:
  • $name (string) – The field name to check.
Returns:

True if the field name is a common field or, media or WYSIWYG.

Nos\Orm_Behaviour_Twinnable::delete_all_context()

Removes all items twinned to the current item, including the current item itself.

Nos\Orm_Behaviour_Twinnable::is_main_context()
Returns:True if item is the main among twin items.
Nos\Orm_Behaviour_Twinnable::find_context($context)
Parameters:
  • $context (mixed) –

    Can be

    • Array of contexts ID.
    • all, to receive all contexts.
    • Context ID.
    • main, to receive main twin item.
Returns:

A twinned item, or an array of twinned items, null or array() if none.

Nos\Orm_Behaviour_Twinnable::find_main_context()
Returns:The main item among the twins.

Alias for ->find_context('main').

Nos\Orm_Behaviour_Twinnable::find_other_context($filter = array())
Parameters:
  • $filter (array) – Array of contexts ID. If set, return only twin items which the context belongs to array $filter.
Returns:

Array of twin items, current item exclude.

Nos\Orm_Behaviour_Twinnable::get_all_context()
Returns:Array of all twinned contexts, including the one of the current item.
Nos\Orm_Behaviour_Twinnable::get_other_context($filter = array())
Parameters:
  • $filter (array) – Array of contexts ID. If set, return only twinned contexts which belongs to array $filter.
Returns:

Array of all twinned contexts ID, excluding the one of the current item.

Nos\Orm_Behaviour_Twinnable::get_possible_context()
Returns:Array of possible contexts ID for current item.
static Nos\Orm_Behaviour_Twinnable::findMainOrContext($context, array $options = array())
Parameters:
  • $context (mixed) – A context ID or array of context IDs.
  • $options (array) – Array of others options like in find().
Returns:

Array of items, like find(), either in the given context, either the main.

Example

<?php
class Model_Page extends \Nos\Orm\Model
{
        protected static $_behaviours = array(
                'Nos\Orm_Behaviour_Twinnable' => array(
                        'events' => array('before_insert', 'after_insert', 'before_save', 'after_delete', 'change_parent'),
                        'context_property'      => 'page_context',
                        'common_id_property' => 'page_context_common_id',
                        'is_main_property' => 'page_context_is_main',
                        'common_fields'   => array(),
                ),
        );
}
Read the Docs v: elche
Versions
latest
stable
elche
dubrovka
chiba.2
chiba.1
Downloads
pdf
htmlzip
epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.