/** * 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, 'MemberPropertyMembers')) { return parent::paginate($arguments, $items_per_page, $current_page); } else { return MemberPropertyMembers::instance()->paginate($arguments, $items_per_page, $current_page); } // if }
/** * Return manager instance * * @access protected * @param void * @return MemberPropertyMembers */ function manager() { if(!($this->manager instanceof MemberPropertyMembers)) $this->manager = MemberPropertyMembers::instance(); return $this->manager; } // manager
/** * Return manager instance * * @access protected * @param void * @return MemberPropertyMembers */ function manager() { if (!$this->manager instanceof MemberPropertyMembers) { $this->manager = MemberPropertyMembers::instance(); } return $this->manager; }
function core_dim_remove_contacts_member_associations(Member $member) { // one way $associations = DimensionMemberAssociations::getAssociatations ( $member->getDimensionId(), $member->getObjectTypeId() ); foreach ( $associations as $a ) { $condition = "association_id = ".$a->getId()." AND member_id = ".$member->getId()." AND property_member_id IN (SELECT m.id FROM ".TABLE_PREFIX."members m WHERE m.object_type_id=".$a->getAssociatedObjectType()." AND m.dimension_id=".$a->getAssociatedDimensionMemberAssociationId().")"; MemberPropertyMembers::instance()->delete($condition); } // reverse way $associations = DimensionMemberAssociations::findAll(array("conditions" => array("`associated_dimension_id` = ? AND `associated_object_type_id` = ?", $member->getDimensionId(), $member->getObjectTypeId()))); foreach ( $associations as $a ) { $condition = "association_id = ".$a->getId()." AND property_member_id = ".$member->getId()." AND member_id IN (SELECT m.id FROM ".TABLE_PREFIX."members m WHERE m.object_type_id=".$a->getObjectTypeId()." AND m.dimension_id=".$a->getDimensionId().")"; MemberPropertyMembers::instance()->delete($condition); } }
function associate_member_to_status_member($project_member, $old_project_status, $status_member_id, $status_dimension, $status_ot = null, $remove_prev_associations = true) { if ($status_dimension instanceof Dimension && in_array($status_dimension->getId(), config_option('enabled_dimensions'))) { // asociate project objects to the new project_status member if ($old_project_status != $status_member_id) { $object_members = ObjectMembers::instance()->findAll(array('conditions' => "member_id = " . $project_member->getId() . " AND is_optimization=0")); // remove objects from old project_type member if ($old_project_status > 0) { foreach ($object_members as $om) { $obj = Objects::findObject($om->getObjectId()); if ($obj instanceof ContentDataObject) { ObjectMembers::removeObjectFromMembers($obj, logged_user(), null, array($old_project_status)); } } } // add objects to new project_type member if (is_numeric($status_member_id) && $status_member_id > 0) { $member_to_add = Members::findById($status_member_id); foreach ($object_members as $om) { ObjectMembers::addObjectToMembers($om->getObjectId(), array($member_to_add)); } if ($member_to_add instanceof Member && $member_to_add->getObjectId() > 0) { $rel_obj = Objects::findObject($member_to_add->getObjectId()); if ($rel_obj instanceof ContentDataObject) { ObjectMembers::addObjectToMembers($rel_obj->getId(), array($project_member)); $rel_obj->addToSharingTable(); $null = null; Hook::fire("after_auto_classifying_associated_object_of_member", array('obj' => $rel_obj, 'mem' => $project_member), $null); } } } } $member_dimension = $project_member->getDimension(); $a = DimensionMemberAssociations::instance()->findOne(array('conditions' => array('dimension_id=? AND object_type_id=? AND associated_dimension_id=?' . ($status_ot instanceof ObjectType ? ' AND associated_object_type_id=' . $status_ot->getId() : ''), $member_dimension->getId(), $project_member->getObjectTypeId(), $status_dimension->getId()))); // create relation between members and remove old relations if ($a instanceof DimensionMemberAssociation) { if (is_numeric($status_member_id) && $status_member_id > 0) { $mpm = MemberPropertyMembers::findOne(array('id' => true, 'conditions' => array('association_id = ? AND member_id = ? AND property_member_id = ?', $a->getId(), $project_member->getId(), $status_member_id))); if (is_null($mpm)) { $sql = "INSERT INTO " . TABLE_PREFIX . "member_property_members (association_id, member_id, property_member_id, is_active, created_on, created_by_id)\r\n\t\t\t\t\t\tVALUES (" . $a->getId() . "," . $project_member->getId() . "," . $status_member_id . ", 1, NOW()," . logged_user()->getId() . ");"; DB::executeAll($sql); } } if ($remove_prev_associations) { MemberPropertyMembers::instance()->delete('association_id = ' . $a->getId() . ' AND member_id = ' . $project_member->getId() . " AND property_member_id <> '{$status_member_id}'"); } } $a = DimensionMemberAssociations::instance()->findOne(array('conditions' => array('associated_dimension_id=? AND associated_object_type_id=? AND dimension_id=?' . ($status_ot instanceof ObjectType ? ' AND object_type_id=' . $status_ot->getId() : ''), $member_dimension->getId(), $project_member->getObjectTypeId(), $status_dimension->getId()))); // create relation between members and remove old relations if ($a instanceof DimensionMemberAssociation) { if (is_numeric($status_member_id) && $status_member_id > 0) { $mpm = MemberPropertyMembers::findOne(array('id' => true, 'conditions' => array('association_id = ? AND member_id = ? AND property_member_id = ?', $a->getId(), $project_member->getId(), $status_member_id))); if (is_null($mpm)) { $sql = "INSERT INTO " . TABLE_PREFIX . "member_property_members (association_id, member_id, property_member_id, is_active, created_on, created_by_id)\r\n\t\t\t\t\t\tVALUES (" . $a->getId() . "," . $status_member_id . "," . $project_member->getId() . ", 1, NOW()," . logged_user()->getId() . ");"; DB::executeAll($sql); } } if ($remove_prev_associations) { MemberPropertyMembers::instance()->delete('association_id = ' . $a->getId() . ' AND property_member_id = ' . $project_member->getId() . " AND member_id <> '{$status_member_id}'"); } } } }