private function _show_groups() { if (!$this->show_groups || empty($this->contact_details['id'])) { return; } $mc = org_openpsa_contacts_member_dba::new_collector('uid', $this->contact_details['id']); $mc->add_constraint('gid.orgOpenpsaObtype', '>=', org_openpsa_contacts_group_dba::ORGANIZATION); $mc->add_value_property('gid'); $mc->add_value_property('extra'); $mc->execute(); $memberships = $mc->list_keys(); if ($memberships) { foreach ($memberships as $guid => $empty) { try { $group = org_openpsa_contacts_group_dba::get_cached($mc->get_subkey($guid, 'gid')); } catch (midcom_error $e) { $e->log(); continue; } echo "<li class=\"org\">"; if ($mc->get_subkey($guid, 'extra')) { echo "<span class=\"title\">" . $mc->get_subkey($guid, 'extra') . "</span>, "; } if ($group->official) { $group_label = $group->official; } else { $group_label = $group->name; } if ($this->link_contacts) { if (!self::$_contacts_url) { $this->link_contacts = false; } else { $group_label = "<a href=\"" . self::$_contacts_url . "group/{$group->guid}/\">{$group_label}</a>"; } } echo "<span class=\"organization-name\">{$group_label}</span>"; echo "</li>\n"; } } }
/** * List customer contact's groups */ private function _populate_schema_customers_for_contact($contact_id) { $fields =& $this->_schemadb['default']->fields; $organizations = array(); $member_mc = org_openpsa_contacts_member_dba::new_collector('uid', $contact_id); $member_mc->add_constraint('gid.orgOpenpsaObtype', '>', org_openpsa_contacts_group_dba::MYCONTACTS); $groups = $member_mc->get_values('gid'); foreach ($groups as $group) { try { $organization = org_openpsa_contacts_group_dba::get_cached($group); $organizations[$organization->id] = $organization->official; } catch (midcom_error $e) { } } //Fill the customer field to DM $fields['customer']['type_config']['options'] = $organizations; }
/** * Prepares user data for JSON display */ public function get_row(midcom_core_dbaobject $user) { $prefix = midcom_core_context::get()->get_key(MIDCOM_CONTEXT_ANCHORPREFIX); $entry = array(); $entry['id'] = $user->id; $lastname = trim($user->lastname); if (empty($lastname)) { $lastname = $this->_l10n->get('person') . ' #' . $user->id; } $entry['lastname'] = "<a href='" . $prefix . 'view/' . $user->guid . "/'>" . $lastname . "</a>"; $entry['index_lastname'] = $user->lastname; $entry['firstname'] = "<a href='" . $prefix . 'view/' . $user->guid . "/' >" . $user->firstname . "</a>"; $entry['index_firstname'] = $user->firstname; $account = new midcom_core_account($user); $entry['username'] = $account->get_username(); $entry['groups'] = array(); //get groups $mc_member = org_openpsa_contacts_member_dba::new_collector('uid', $user->id); $mc_member->add_constraint('gid.orgOpenpsaObtype', '<', org_openpsa_contacts_group_dba::MYCONTACTS); $mc_member->add_order('gid.official'); $mc_member->add_order('gid.name'); $gids = $mc_member->get_values('gid'); foreach ($gids as $gid) { try { $group = org_openpsa_contacts_group_dba::get_cached($gid); $entry['groups'][] = '<a href="' . $prefix . 'group/' . $group->guid . '/">' . $group->get_label() . '</a>'; } catch (midcom_error $e) { $e->log(); } } $entry['groups'] = implode(', ', $entry['groups']); return $entry; }