/** * Returns true if the object blongs to the texmplate context ($memberIds) * @author Ignacio Vazquez - elpepe.uy@gmail.com * @param ContentDataObject $object * @param array $memberIds */ static function validateObjectContext($object, $memberIds) { $valid = true; // Dimensiones requeridas para el tipo de objecto $dimensions = Dimensions::getAllowedDimensions(self::instance()->getObjectTypeId()); $requiredDimensions = array(); foreach ($dimensions as $dim) { if ($dim['is_required']) { $requiredDimensions[$dim['dimension_id']] = $dim; // Performance, dim id in the array key ! ! ! } } // Miembros del Objeto $objMembers = $object->getMemberIds(); // P/cada miembro foreach ($objMembers as $mid) { $member = Members::instance()->findById($mid); if ($member instanceof Member) { /* @var $member Member */ $did = $member->getDimensionId(); // Si la dimension del miembro esta en la requeridas if ($requiredDimensions[$did]) { if (!in_array($mid, $memberIds)) { $valid = false; } } } } if (!$valid) { throw new DAOValidationError($this, array(lang("template members do not match object members"))); } }