function active_context_can_contain_member_type($dimension_id, $member_type_id) { $context = active_context(); foreach ($context as $selection) { if ($selection instanceof Dimension && $selection->getId() == $dimension_id) { // if no member of this dimension is selected return true return true; } else { if ($selection instanceof Member && $selection->getDimensionId() == $dimension_id) { // check if member type parameter can be descendant of the selected member type $child_ots = DimensionObjectTypeHierarchies::getAllChildrenObjectTypeIds($dimension_id, $selection->getObjectTypeId()); return in_array($member_type_id, $child_ots); } } } return true; }
function canBeDeleted(&$error_message) { $childs = $this->getAllChildren(); if (MemberPropertyMembers::isMemberAssociated($this->getId())) { $error_message = lang("cannot delete member is associated"); return false; } $continue_check = false; if (count($childs) == 0) { $continue_check = true; } else { if ($this->getParentMemberId() > 0) { $child_ots = DimensionObjectTypeHierarchies::getAllChildrenObjectTypeIds($this->getDimensionId(), $this->getParentMember()->getObjectTypeId(), false); } foreach ($childs as $child) { // check if child can be put in the parent (or root) if ($this->getParentMemberId() == 0) { $dim_ot = DimensionObjectTypes::findOne(array("conditions" => array("`dimension_id` = ? AND `object_type_id` = ?", $this->getDimensionId(), $child->getObjectTypeId()))); if (!$dim_ot->getIsRoot()) { $error_message = lang("cannot delete member cannot be root"); return false; } } else { if (!in_array($child->getObjectTypeId(), $child_ots)) { $error_message = lang("cannot delete member childs cannot be moved to parent"); return false; } } } $continue_check = true; } if (!$continue_check) { return false; } else { $child_ids = $this->getAllChildrenIds(); $child_ids[] = $this->getId(); $child_ids_str = implode(",", $child_ids); $objects_in_member = ObjectMembers::instance()->findAll(array('conditions' => 'member_id = ' . $this->getId())); if (!$objects_in_member || count($objects_in_member) == 0) { return true; } else { $more_conditions = ""; if (Plugins::instance()->isActivePlugin('core_dimensions')) { $person_dim = Dimensions::findByCode('feng_persons')->getId(); $more_conditions = " AND member_id NOT IN (SELECT id FROM " . TABLE_PREFIX . "members WHERE dimension_id={$person_dim})"; } $object_id_condition = $this->getObjectId() > 0 ? " AND o.id <> " . $this->getObjectId() : ""; foreach ($objects_in_member as $om) { $obj_members = ObjectMembers::findAll(array("conditions" => array("`object_id` = ? AND `is_optimization` = 0 AND member_id IN ({$child_ids_str}) AND EXISTS (SELECT o.id FROM " . TABLE_PREFIX . "objects o WHERE o.id = ? AND o.trashed_by_id=0 {$object_id_condition})" . $more_conditions, $om->getObjectId(), $om->getObjectId()))); if (count($obj_members) >= 1) { $error_message = lang("cannot delete member has objects"); return false; } $db_res = DB::execute("SELECT object_type_id FROM " . TABLE_PREFIX . "objects WHERE id=" . $om->getObjectId()); $row = $db_res->fetchRow(); if ($row && array_var($row, 'object_type_id')) { $req_dim_ids = DimensionObjectTypeContents::getRequiredDimensions(array_var($row, 'object_type_id')); if (in_array($this->getDimensionId(), $req_dim_ids)) { $error_message = lang("cannot delete member is required for objects"); return false; } } } } } return true; }
?> , quickAdd: <?php echo intval($dimension->getOptionValue('quickAdd')) ? 'true' : 'false'; ?> , minHeight: 10 //animate: false, //animCollapse: false } <?php $dim_obj_types = DimensionObjectTypes::getObjectTypeIdsByDimension($dimension->getId()); $dim_obj_type_descendants[$dimension->getId()] = array(); foreach ($dim_obj_types as $ot_id) { $all_child_ots = DimensionObjectTypeHierarchies::getAllChildrenObjectTypeIds($dimension->getId(), $ot_id); $dim_obj_type_descendants[$dimension->getId()][$ot_id] = array_values($all_child_ots); } ?> <?php } ?> ]; og.dimension_object_type_descendants = Ext.util.JSON.decode('<?php echo json_encode($dim_obj_type_descendants); ?> '); og.contextManager.construct(); og.objPickerTypeFilters = []; <?php