function core_dim_add_contact_member_associations($contact_member, $member) { // one way $associations = DimensionMemberAssociations::findAll(array("conditions" => array("`dimension_id` = ? AND `object_type_id` = ? AND `associated_dimension_id` = ? AND `associated_object_type_id` = ?", $member->getDimensionId(), $member->getObjectTypeId(), $contact_member->getDimensionId(), $contact_member->getObjectTypeId()))); foreach ( $associations as $a ) { $mpm = MemberPropertyMembers::findOne(array('conditions' => array('association_id = ? AND member_id = ? AND property_member_id = ?', $a->getId(), $member->getId(), $contact_member->getId()))); if (!$mpm instanceof MemberPropertyMember) { $mpm = new MemberPropertyMember(); $mpm->setAssociationId($a->getId()); $mpm->setMemberId($member->getId()); $mpm->setPropertyMemberId($contact_member->getId()); $mpm->setIsActive(1); $mpm->save(); } } // reverse way $associations = DimensionMemberAssociations::findAll(array("conditions" => array("`dimension_id` = ? AND `object_type_id` = ? AND `associated_dimension_id` = ? AND `associated_object_type_id` = ?", $contact_member->getDimensionId(), $contact_member->getObjectTypeId(), $member->getDimensionId(), $member->getObjectTypeId()))); foreach ( $associations as $a ) { $mpm = MemberPropertyMembers::findOne(array('conditions' => array('association_id = ? AND property_member_id = ? AND member_id = ?', $a->getId(), $member->getId(), $contact_member->getId()))); if (!$mpm instanceof MemberPropertyMember) { $mpm = new MemberPropertyMember(); $mpm->setAssociationId($a->getId()); $mpm->setMemberId($contact_member->getId()); $mpm->setPropertyMemberId($member->getId()); $mpm->setIsActive(1); $mpm->save(); } } }
function get_associated_status_member_id($member, $dimension, $ot = null) { if ($member instanceof Member && $dimension instanceof Dimension) { $member_dimension = $member->getDimension(); if (!$member_dimension instanceof Dimension) { return 0; } $a = DimensionMemberAssociations::instance()->findOne(array('conditions' => array('dimension_id=? AND object_type_id=? AND associated_dimension_id=?' . ($ot instanceof ObjectType ? ' AND associated_object_type_id=' . $ot->getId() : ''), $member_dimension->getId(), $member->getObjectTypeId(), $dimension->getId()))); // create relation between members and remove old relations if ($a instanceof DimensionMemberAssociation) { $mpm = MemberPropertyMembers::findOne(array('conditions' => array('association_id = ? AND member_id = ?', $a->getId(), $member->getId()))); if ($mpm instanceof MemberPropertyMember) { return $mpm->getPropertyMemberId(); } } } return 0; }