Beispiel #1
0
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;
}
Beispiel #2
0
 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;
 }
Beispiel #3
0
    ?>
,
			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