/**
  * This function will return paginated result. Result is an array where first element is 
  * array of returned object and second populated pagination object that can be used for 
  * obtaining and rendering pagination data using various helpers.
  * 
  * Items and pagination array vars are indexed with 0 for items and 1 for pagination
  * because you can't use associative indexing with list() construct
  *
  * @access public
  * @param array $arguments Query argumens (@see find()) Limit and offset are ignored!
  * @param integer $items_per_page Number of items per page
  * @param integer $current_page Current page number
  * @return array
  */
 function paginate($arguments = null, $items_per_page = 10, $current_page = 1)
 {
     if (isset($this) && instance_of($this, 'MemberCustomProperties')) {
         return parent::paginate($arguments, $items_per_page, $current_page);
     } else {
         return MemberCustomProperties::instance()->paginate($arguments, $items_per_page, $current_page);
     }
     // if
 }
 static function getMemberCustomPropertyMultipleValueByCode($code, $member_id)
 {
     if (!Plugins::instance()->isActivePlugin('member_custom_properties')) {
         return array();
     }
     $values = array();
     $cp = MemberCustomProperties::instance()->findOne(array('conditions' => "code='{$code}'"));
     if ($cp instanceof MemberCustomProperty) {
         $cpvalues = MemberCustomPropertyValues::getMemberCustomPropertyValues($member_id, $cp->getId());
         foreach ($cpvalues as $cpvalue) {
             $values[] = $cpvalue->getValue();
         }
     }
     return $values;
 }
 /**
  * Return manager instance
  *
  * @access protected
  * @param void
  * @return MemberCustomProperty 
  */
 function manager()
 {
     if (!$this->manager instanceof MemberCustomProperties) {
         $this->manager = MemberCustomProperties::instance();
     }
     return $this->manager;
 }