function quick_add_form()
 {
     $this->setLayout('empty');
     if ($dimension_id = array_var($_GET, 'dimension_id')) {
         $dimension = Dimensions::instance()->findById($dimension_id);
         $dimensionOptions = $dimension->getOptions(true);
         $object_Types = array();
         $parent_member_id = array_var($_GET, 'parent_member_id');
         if ($parent_member_id) {
             $parent_member = Members::instance()->findById($parent_member_id);
             $object_types = DimensionObjectTypes::getChildObjectTypes($parent_member_id);
         } else {
             $object_types = DimensionObjectTypes::instance()->findAll(array("conditions" => "dimension_id = {$dimension_id} AND is_root = 1 "));
         }
         if (count($object_types)) {
             if (count($object_types) == 1) {
                 // Input Hidden
                 tpl_assign('object_type', $object_types[0]);
                 tpl_assign('object_type_name', ObjectTypes::instance()->findById($object_types[0]->getObjectTypeId())->getName());
             } else {
                 // Input combo
                 tpl_assign('object_types', $object_types);
             }
         } else {
             tpl_assign("error_msg", $parent_member->getName() . " does not accept child nodes ");
         }
         $editUrls = array();
         foreach ($object_types as $object_type) {
             /* @var $object_type DimensionObjectType */
             if (ObjectTypes::instance()->findById($object_type->getObjectTypeId())->getType() != 'dimension_object') {
                 continue;
             }
             $options = $object_type->getOptions(1);
             if (isset($options->defaultAjax) && $options->defaultAjax->controller != "dashboard") {
                 $editUrls[$object_type->getObjectTypeId()] = get_url($options->defaultAjax->controller, 'add');
             } else {
                 $t = ObjectTypes::instance()->findById($object_type->getObjectTypeId());
                 /* @var $t ObjectType */
                 $class_name = ucfirst($t->getName()) . "Controller";
                 if ($t && controller_exists($t->getName(), $t->getPluginId())) {
                     $editUrls[$object_type->getObjectTypeId()] = get_url($t->getName(), 'add');
                 } else {
                     $editUrls[$object_type->getObjectTypeId()] = get_url('member', 'add', array("dim_id" => $dimension_id));
                 }
             }
         }
         tpl_assign('editUrls', $editUrls);
         tpl_assign('parent_member_id', $parent_member_id);
         tpl_assign('dimension_id', $dimension_id);
         if (is_object($dimensionOptions) && is_object($dimensionOptions->quickAdd) && $dimensionOptions->quickAdd->formAction) {
             tpl_assign('form_action', ROOT_URL . "/" . $dimensionOptions->quickAdd->formAction);
         } else {
             tpl_assign('form_action', get_url('member', 'add', array('quick' => '1')));
         }
     } else {
         die("SORRY. Invalid dimension");
     }
 }
	/**
	 * Return manager instance
	 *
	 * @access protected
	 * @param void
	 * @return DimensionObjectTypes 
	 */
	function manager() {
		if (! ($this->manager instanceof DimensionObjectTypes))
			$this->manager = DimensionObjectTypes::instance ();
		return $this->manager;
	} // manager
 /**
  * Return manager instance
  *
  * @access protected
  * @param void
  * @return DimensionObjectTypes 
  */
 function manager()
 {
     if (!$this->manager instanceof DimensionObjectTypes) {
         $this->manager = DimensionObjectTypes::instance();
     }
     return $this->manager;
 }
Example #4
0
        continue;
    }
    if (!isset($dimensions_info[$dimension->getName()])) {
        $dimensions_info[$dimension->getName()] = array('members' => array(), 'icon' => $member->getIconClass());
    }
    if (!isset($dimensions_info[$dimension->getName()]['icon'])) {
        $dimensions_info[$dimension->getName()]['icon'] = $member->getIconClass();
    }
    $parents = array_reverse($member->getAllParentMembersInHierarchy(true));
    foreach ($parents as $p) {
        $dimensions_info[$dimension->getName()]['members'][$p->getId()] = array('p' => $p->getParentMemberId(), 'name' => $p->getName(), 'ot' => $p->getObjectTypeId(), 'color' => $p->getMemberColor());
    }
}
foreach ($dimensions_info as &$dim_info) {
    if (!isset($dim_info['icon'])) {
        $dots = DimensionObjectTypes::findAll(array('conditions' => 'dimension_id = ' . $dim_info['id']));
        if (count($dots) > 0) {
            $ot = ObjectTypes::findById($dots[0]->getObjectTypeId());
            if ($ot instanceof ObjectType) {
                $dim_info['icon'] = $ot->getIconClass();
            }
        }
    }
}
if (count($dimensions_info) > 0) {
    ksort($dimensions_info, SORT_STRING);
    ?>
<div class="commentsTitle"><?php 
    echo lang('related to');
    ?>
</div>
 function quick_add_form()
 {
     ajx_current("empty");
     $this->setLayout('empty');
     $dimension_id = array_var($_GET, 'dimension_id');
     $dimension = is_numeric($dimension_id) ? Dimensions::instance()->findById($dimension_id) : null;
     if ($dimension instanceof Dimension) {
         $object_Types = array();
         $parent_member_id = array_var($_GET, 'parent_member_id');
         $parent_member = Members::instance()->findById($parent_member_id);
         if ($parent_member instanceof Member) {
             $object_types = DimensionObjectTypes::getChildObjectTypes($parent_member);
             if (count($object_types) == 0) {
                 $parent_member = null;
                 $object_types = DimensionObjectTypes::instance()->findAll(array("conditions" => "enabled=1 AND dimension_id = {$dimension_id} AND is_root = 1 AND object_type_id<>(SELECT id from " . TABLE_PREFIX . "object_types WHERE name='company')"));
             }
         } else {
             $object_types = DimensionObjectTypes::instance()->findAll(array("conditions" => "enabled=1 AND dimension_id = {$dimension_id} AND is_root = 1 AND object_type_id<>(SELECT id from " . TABLE_PREFIX . "object_types WHERE name='company')"));
         }
         $obj_types = array();
         $editUrls = array();
         foreach ($object_types as $object_type) {
             $options = $object_type->getOptions(1);
             if (isset($options->defaultAjax) && $options->defaultAjax->controller != "dashboard") {
                 $editUrls[$object_type->getObjectTypeId()] = get_url($options->defaultAjax->controller, 'add');
             } else {
                 $t = ObjectTypes::instance()->findById($object_type->getObjectTypeId());
                 $obj_types[$t->getId()] = $t;
                 $class_name = ucfirst($t->getName()) . "Controller";
                 $controller_exists = controller_exists($t->getName(), $t->getPluginId());
                 if ($controller_exists) {
                     Env::useController(ucfirst($t->getName()));
                     eval('$controller = new ' . $class_name . '();');
                 }
                 if ($t && controller_exists($t->getName(), $t->getPluginId()) && $t->getHandlerClass() != '' && $controller_exists && method_exists($controller, 'add')) {
                     $params = array("type" => $t->getId());
                     if ($parent_member instanceof Member) {
                         $params['parent'] = $parent_member->getId();
                     }
                     $editUrls[$t->getId()] = get_url($t->getName(), 'add', $params);
                 } else {
                     $params = array("dim_id" => $dimension_id, "type" => $t->getId());
                     if ($parent_member instanceof Member) {
                         $params['parent'] = $parent_member->getId();
                     }
                     $editUrls[$t->getId()] = get_url('member', 'add', $params);
                 }
             }
         }
         $urls = array();
         foreach ($editUrls as $ot_id => $url) {
             $ot = array_var($obj_types, $ot_id);
             if ($ot instanceof ObjectType) {
                 $link_text = ucfirst(strtolower(lang('new ' . $ot->getName())));
                 $iconcls = $ot->getIconClass();
             } else {
                 $link_text = lang('new');
                 $iconcls = "";
             }
             $urls[] = array('link_text' => $link_text, 'url' => $url, 'iconcls' => $iconcls);
         }
         Hook::fire('member_quick_add_urls', array('dimension' => $dimension, 'object_types' => $object_types, 'parent_member' => $parent_member), $urls);
         if (count($urls) > 1) {
             ajx_extra_data(array('draw_menu' => 1, 'urls' => $urls));
         } else {
             ajx_extra_data(array('urls' => $urls));
         }
     } else {
         Logger::log("Invalid dimension: {$dimension_id}");
     }
 }
 function buildMemberList($all_members, $dimension, $allowed_member_type_ids, $allowed_object_type_ids, $item_object, $object_type_id, $return_only_name = false)
 {
     $dot_array = array();
     // Dimension Object Types array (cache)
     $membersset = array();
     foreach ($all_members as $m) {
         $membersset[$m->getId()] = true;
     }
     $members = array();
     foreach ($all_members as $m) {
         /* @var  $m Member */
         //		if ($m->getArchivedById() > 0) continue;
         if ($object_type_id != null) {
             $selectable = in_array($m->getObjectTypeId(), $allowed_object_type_ids) ? true : false;
             if ($selectable && isset($item_object)) {
                 if (!$item_object->canAdd(logged_user(), array($m))) {
                     continue;
                 }
             }
         } else {
             $selectable = true;
         }
         if (count($allowed_member_type_ids) && !in_array($m->getObjectTypeId(), $allowed_member_type_ids)) {
             continue;
         }
         $tempParent = $m->getParentMemberId();
         //check if have parent member id from Contact Member Cache
         if (isset($m->cached_parent_member_id)) {
             $tempParent = $m->cached_parent_member_id;
         } else {
             if (!logged_user()->isAdministrator()) {
                 $x = $m;
                 while ($x instanceof Member && !isset($membersset[$tempParent])) {
                     $tempParent = $x->getParentMemberId();
                     if ($x->getParentMemberId() == 0) {
                         break;
                     }
                     $x = $x->getParentMember();
                 }
                 if (!$x instanceof Member) {
                     $tempParent = 0;
                 }
             } else {
                 $tempParent = $m->getParentMemberId();
             }
         }
         $memberOptions = '';
         // SET member options (dimension object types table)
         // CHeck dot cache, if not set goto database and add to cache
         if (empty($dot_array[$dimension->getId()]) || empty($dot_array[$dimension->getId()][$m->getObjectTypeId()])) {
             $dot = DimensionObjectTypes::instance()->findOne(array("conditions" => "dimension_id = " . $dimension->getId() . " AND object_type_id = " . $m->getObjectTypeId()));
             if ($dot instanceof DimensionObjectType) {
                 if (empty($dot_array['dimension_id'])) {
                     $dot_array[$dimension->getId()] = array();
                 }
                 $dot_array[$dimension->getId()][$m->getObjectTypeId()] = $dot;
             }
         }
         if (!empty($dot_array[$dimension->getId()]) || $dot_array[$dimension->getId()][$m->getObjectTypeId()] instanceof DimensionObjectType) {
             $dot = $dot_array[$dimension->getId()][$m->getObjectTypeId()];
             if ($dot) {
                 $memberOptions = $dot->getOptions(true);
             }
         }
         if ($return_only_name) {
             $path = trim($m->getPath());
             $member = array("id" => $m->getId(), "name" => $m->getName(), "path" => $path, "depth" => $m->getDepth(), "to_show" => $m->getName() . ($path != "" ? " ({$path})" : ""), "dim" => $m->getDimensionId(), "ico" => "ico-color" . $m->getColor() . " " . $m->getIconClass());
         } else {
             //Do not use contact member cache for superadmins
             if (!logged_user()->isAdministrator()) {
                 //check childs from contact member cache
                 $childsIds = ContactMemberCaches::getAllChildrenIdsFromCache(logged_user()->getId(), $m->getId());
             } else {
                 $childsIds = $m->getAllChildrenIds(false, null, "");
             }
             $totalChilds = count($childsIds);
             $haveChilds = $totalChilds > 0 ? true : false;
             /* @var $m Member */
             $additional_member_class = "";
             Hook::fire('additional_member_node_class', $m, $additional_member_class);
             $member = array("id" => $m->getId(), "color" => $m->getMemberColor(), "name" => clean($m->getName()), "text" => clean($m->getName()), "leaf" => true, "parent" => $tempParent, "realParent" => $m->getParentMemberId(), "object_id" => $m->getObjectId(), "options" => $memberOptions, "depth" => $m->getDepth(), "cls" => $additional_member_class, "iconCls" => "ico-color" . $m->getColor() . " " . $m->getIconClass(), "selectable" => isset($selectable) ? $selectable : false, "dimension_id" => $m->getDimensionId(), "object_type_id" => $m->getObjectTypeId(), "expandable" => $haveChilds, "realTotalChilds" => $totalChilds, "allow_childs" => $m->allowChilds());
             // Member Actions
             if (can_manage_dimension_members(logged_user())) {
                 $editUrl = '';
                 // If member has an object linked, take object edit url
                 if ($ot = ObjectTypes::findById($m->getObjectTypeId())) {
                     if ($handler = $ot->getHandlerClass()) {
                         eval("\$itemClass = {$handler}::instance()->getItemClass();");
                         if ($itemClass) {
                             $instance = new $itemClass();
                             $instance->setId($m->getObjectId());
                             $instance->setObjectId($m->getObjectId());
                             if ($instance instanceof Contact) {
                                 if ($ot->getName() == 'company') {
                                     $instance->setIsCompany(1);
                                 }
                             }
                             $editUrl = $instance->getEditUrl();
                         }
                     }
                 }
                 // Take default membewr edit url if not overwitten
                 if (!$editUrl) {
                     $editUrl = get_url('member', 'edit', array('id' => $m->getId()));
                 }
                 $member['actions'] = array(array('url' => $editUrl, 'text' => '', 'iconCls' => 'ico-edit', 'class' => 'action-edit'));
             }
         }
         $members[] = $member;
     }
     // re-sort by parent and name
     $tmp_members = array();
     foreach ($members as $m) {
         $tmp_members[str_pad(array_var($m, 'depth'), 20, "0", STR_PAD_LEFT) . strtolower(array_var($m, 'name')) . array_var($m, 'id')] = $m;
     }
     ksort($tmp_members, SORT_STRING);
     $members = $tmp_members;
     return $members;
 }
	function buildMemberList($all_members, $dimension,  $allowed_member_type_ids, $allowed_object_type_ids, $item_object, $object_type_id, $return_only_name=false) {
		$dot_array = array(); // Dimension Object Types array (cache)
		$membersset = array();
		foreach ($all_members as $m) {
			$membersset[$m->getId()] = true;
		}
		$members = array();
		foreach ($all_members as $m) {
			/* @var  $m Member */
			if ($m->getArchivedById() > 0) continue;
			if ($object_type_id != null){
				$selectable = in_array($m->getObjectTypeId(), $allowed_object_type_ids) ? true : false;
				if ($selectable && isset($item_object)) {
					if (! $item_object->canAdd(logged_user(), array($m)) ) continue;
				}
			}else{
				$selectable = true ;
			}
			if ( count($allowed_member_type_ids) && !in_array($m->getObjectTypeId(), $allowed_member_type_ids) ) {
				continue;	
			}
			$tempParent = $m->getParentMemberId();
			$x = $m;
			while ($x instanceof Member && !isset($membersset[$tempParent])) {
				$tempParent = $x->getParentMemberId();
				if ($x->getParentMemberId() == 0) break;
				$x = $x->getParentMember();
			}
			if (!$x instanceof Member) {
				$tempParent = 0;
			}
			$memberOptions = '';
			
			// SET member options (dimension object types table)
			// CHeck dot cache, if not set goto database and add to cache
			if ( empty($dot_array[$dimension->getId()]) || empty ($dot_array[$dimension->getId()][$m->getObjectTypeId()]) ) {
				$dot = DimensionObjectTypes::instance()->findOne(array("conditions" =>"dimension_id = ".$dimension->getId() ." AND object_type_id = ".$m->getObjectTypeId()));
				if ($dot instanceof DimensionObjectType){
					if (empty($dot_array['dimension_id'])) {
						$dot_array[$dimension->getId()] = array();
					}
					$dot_array[$dimension->getId()][$m->getObjectTypeId()] = $dot;
				}
			}
			if ( !empty($dot_array[$dimension->getId()]) || ($dot_array[$dimension->getId()][$m->getObjectTypeId()]) instanceof DimensionObjectType ) {
				$dot =  $dot_array[$dimension->getId()][$m->getObjectTypeId()];
				$memberOptions = $dot->getOptions(true);
			}
			
			if ($return_only_name) {
				$path = trim($m->getPath());
				$member = array(
					"id" => $m->getId(),
					"name" => $m->getName(),
					"path" => $path,
					"to_show" => $m->getName() . ($path != "" ? " ($path)" : ""),
					"dim" => $m->getDimensionId(),
					"ico" => $m->getIconClass(),
				);
			} else {
				/* @var $m Member */
				$member = array(
					"id" => $m->getId(),
					"name" => clean($m->getName()),
					"parent" => $tempParent,
					"realParent" => $m->getParentMemberId(),
					"object_id" => $m->getObjectId(),
					"options"  => $memberOptions,
					"depth" => $m->getDepth(),
					"iconCls" => $m->getIconClass(),
					"selectable" => isset($selectable) ? $selectable : false,
					"dimension_id" => $m->getDimensionId(),
					"object_type_id" => $m->getObjectTypeId(),
					"allow_childs" => $m->allowChilds()
				);
				// Member Actions
				if (can_manage_dimension_members(logged_user())){
					$editUrl = '';
					// If member has an object linked, take object edit url
					
					if ($ot = ObjectTypes::findById($m->getObjectTypeId())) {
						if ($handler = $ot->getHandlerClass() ){
							eval ("\$itemClass = $handler::instance()->getItemClass();");
							if ($itemClass) {
								$instance = new $itemClass();
								$instance->setId($m->getObjectId());
								$instance->setObjectId($m->getObjectId());
								if ($instance instanceof Contact) {
									if ($ot->getName() == 'company') $instance->setIsCompany(1);
								}
								$editUrl = $instance->getEditUrl();
							}
						}
					}
					
					// Take default membewr edit url if not overwitten
					if (!$editUrl) {
						$editUrl = get_url('member', 'edit', array('id'=> $m->getId()));
					}
					$member['actions'] = array(array(
						'url' => $editUrl,
			  			'text' => '',
			  			'iconCls' => 'ico-edit',
			  			'class' => 'action-edit'
					));	
				}
			}
			$members[] = $member;
		}
		
		// re-sort by parent and name
		$tmp_members = array();
		foreach ($members as $m) {
			$tmp_members[array_var($m, 'parent') . strtolower(array_var($m, 'name')) . array_var($m, 'id')] = $m;
		}
		ksort($tmp_members, SORT_STRING);
		$members = $tmp_members;
		
		return $members ;
	}
 function dimension_options()
 {
     if (!can_manage_dimensions(logged_user())) {
         flash_error(lang('no access permissions'));
         ajx_current("empty");
         return;
     }
     $enabled_dimensions = config_option('enabled_dimensions');
     // custom dimension name
     $dimensions = Dimensions::findAll(array('conditions' => 'id IN (' . implode(',', $enabled_dimensions) . ')'));
     $custom_dimension_names = array();
     foreach ($dimensions as $dim) {
         $cdim_name = $dim->getOptionValue('custom_dimension_name');
         if (is_null($cdim_name)) {
             $cdim_name = "";
         }
         $custom_dimension_names[$dim->getId()] = $cdim_name;
     }
     // enabled dimension object types
     $dots = DimensionObjectTypes::findAll(array('conditions' => 'dimension_id IN (' . implode(',', $enabled_dimensions) . ')'));
     tpl_assign('custom_dimension_names', $custom_dimension_names);
     tpl_assign('dimension_ots', $dots);
 }
Example #9
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;
 }
 /**
  * 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, 'DimensionObjectTypes')) {
         return parent::paginate($arguments, $items_per_page, $current_page);
     } else {
         return DimensionObjectTypes::instance()->paginate($arguments, $items_per_page, $current_page);
     }
     // if
 }
 function buildMemberList($all_members, $dimension, $allowed_member_type_ids, $allowed_object_type_ids, $item_object, $object_type_id)
 {
     $dot_array = array();
     // Dimensio Object Types array (cache)
     $start_time = microtime(1);
     $membersset = array();
     foreach ($all_members as $m) {
         $membersset[$m->getId()] = true;
     }
     $members = array();
     foreach ($all_members as $m) {
         /* @var  $m Member */
         if ($m->getArchivedById() > 0) {
             continue;
         }
         if ($object_type_id != null) {
             $selectable = in_array($m->getObjectTypeId(), $allowed_object_type_ids) ? true : false;
             if ($selectable && isset($item_object)) {
                 if (!$item_object->canAdd(logged_user(), array($m))) {
                     continue;
                 }
             }
         } else {
             $selectable = true;
         }
         if (count($allowed_member_type_ids) && !in_array($m->getObjectTypeId(), $allowed_member_type_ids)) {
             continue;
         }
         $tempParent = $m->getParentMemberId();
         $x = $m;
         while ($x instanceof Member && !isset($membersset[$tempParent])) {
             $tempParent = $x->getParentMemberId();
             $x = $x->getParentMember();
         }
         if (!$x instanceof Member) {
             $tempParent = 0;
         }
         $memberOptions = '';
         // SET member options (dimension object types table)
         // CHeck dot cache, if not set goto database and add to cache
         if (empty($dot_array[$dimension->getId()]) || empty($dot_array[$dimension->getId()][$m->getObjectTypeId()])) {
             if ($dot = DimensionObjectTypes::instance()->findOne(array("conditions" => "\n\t\t\t\t\tdimension_id = " . $dimension->getId() . " AND\n\t\t\t\t\tobject_type_id = " . $m->getObjectTypeId()))) {
                 if (empty($dot_array['dimension_id'])) {
                     $dot_array[$dimension->getId()] = array();
                 }
                 $dot_array[$dimension->getId()][$m->getObjectTypeId()] = $dot;
             }
         }
         if (!empty($dot_array[$dimension->getId()]) || $dot_array[$dimension->getId()][$m->getObjectTypeId()] instanceof DimensionObjectType) {
             $dot = $dot_array[$dimension->getId()][$m->getObjectTypeId()];
             $memberOptions = $dot->getOptions(true);
         }
         /* @var $m Member */
         $member = array("id" => $m->getId(), "name" => clean($m->getName()), "parent" => $tempParent, "realParent" => $m->getParentMemberId(), "object_id" => $m->getObjectId(), "options" => $memberOptions, "depth" => $m->getDepth(), "iconCls" => $m->getIconClass(), "selectable" => isset($selectable) ? $selectable : false, "dimension_id" => $m->getDimensionId(), "object_type_id" => $m->getObjectTypeId(), "allow_childs" => $m->allowChilds());
         // Member Actions
         if (can_manage_dimension_members(logged_user())) {
             $editUrl = '';
             // If member has an object linked, take object edit url
             if ($otid = $m->getObjectTypeId()) {
                 if ($ot = ObjectTypes::findById($otid)) {
                     if ($handler = $ot->getHandlerClass()) {
                         eval("\$itemClass = {$handler}::instance()->getItemClass();");
                         if ($itemClass) {
                             $instance = new $itemClass();
                             $instance->setId($m->getObjectId());
                             $instance->setObjectId($m->getObjectId());
                             if ($instance) {
                                 $editUrl = $instance->getEditUrl();
                             }
                         }
                     }
                 }
             }
             // Take default membewr edit url if not overwitten
             if (!$editUrl) {
                 $editUrl = get_url('member', 'edit', array('id' => $m->getId()));
             }
             $member['actions'] = array(array('url' => $editUrl, 'text' => '', 'iconCls' => 'ico-edit'));
         }
         $members[] = $member;
     }
     return $members;
 }
function workspaces_additional_dashboard_actions($ignored, &$actions)
{
    $ws_dim = Dimensions::findByCode('workspaces');
    $wot = ObjectTypes::findByName('workspace');
    $wdot = DimensionObjectTypes::findOne(array('conditions' => 'dimension_id=' . $ws_dim->getId() . ' AND object_type_id=' . $wot->getId()));
    if ($wdot instanceof DimensionObjectType && $wdot->getEnabled()) {
        if (active_context_can_contain_member_type($ws_dim->getId(), $wot->getId())) {
            $actions[] = array('id' => 'workspaces-list', 'assoc_ot' => $wot->getId(), 'assoc_dim' => $ws_dim->getId(), 'name' => lang('workspaces list'), 'class' => 'link-ico ico-workspace', 'onclick' => "og.openLink(og.getUrl('member', 'init', {dim_id:" . $ws_dim->getId() . ", type_id:" . $wot->getId() . "}), {caller:'" . $ws_dim->getCode() . "'}); return false;");
        }
    }
    $tags_dim = Dimensions::findByCode('tags');
    $tot = ObjectTypes::findByName('tag');
    $tdot = DimensionObjectTypes::findOne(array('conditions' => 'dimension_id=' . $tags_dim->getId() . ' AND object_type_id=' . $tot->getId()));
    if ($tdot instanceof DimensionObjectType && $tdot->getEnabled()) {
        if (active_context_can_contain_member_type($tags_dim->getId(), $tot->getId())) {
            $actions[] = array('id' => 'tags-list', 'assoc_ot' => $tot->getId(), 'assoc_dim' => $tags_dim->getId(), 'name' => lang('tags list'), 'class' => 'link-ico ico-tag', 'onclick' => "og.openLink(og.getUrl('member', 'init', {dim_id:" . $tags_dim->getId() . ", type_id:" . $tot->getId() . "}), {caller:'" . $tags_dim->getCode() . "'}); return false;");
        }
    }
}
Example #13
0
,
			isManageable: <?php 
    echo (int) $dimension->getIsManageable();
    ?>
,
			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);
?>
');