diff --git a/plugins/content/contact/contact.php b/plugins/content/contact/contact.php index ce3d8bec9da55..bb5abb7da6799 100644 --- a/plugins/content/contact/contact.php +++ b/plugins/content/contact/contact.php @@ -57,15 +57,13 @@ public function onContentPrepare($context, &$row, $params, $page = 0) return true; } - $row->contactid = $this->getContactId($row->created_by); + $contact = $this->getContactId($row->created_by); + $row->contactid = $contact->contactid; - if ($row->contactid) + if ($contact) { - $needle = 'index.php?option=com_contact&view=contact&id=' . $row->contactid; - $menu = JFactory::getApplication()->getMenu(); - $item = $menu->getItems('link', $needle, true); - $link = $item ? $needle . '&Itemid=' . $item->id : $needle; - $row->contact_link = JRoute::_($link); + JLoader::register('ContactHelperRoute', JPATH_SITE . '/components/com_contact/helpers/route.php'); + $row->contact_link = JRoute::_(ContactHelperRoute::getContactRoute($contact->contactid . ':' . $contact->alias, $contact->catid)); } else { @@ -93,7 +91,7 @@ protected function getContactId($created_by) $query = $this->db->getQuery(true); - $query->select('MAX(contact.id) AS contactid'); + $query->select('MAX(contact.id) AS contactid, contact.alias, contact.catid'); $query->from($this->db->quoteName('#__contact_details', 'contact')); $query->where('contact.published = 1'); $query->where('contact.user_id = ' . (int) $created_by); @@ -107,7 +105,7 @@ protected function getContactId($created_by) $this->db->setQuery($query); - $contacts[$created_by] = $this->db->loadResult(); + $contacts[$created_by] = $this->db->loadObject(); return $contacts[$created_by]; }