Example #1
0
 /**
  * Heart of the viewing process. The runner gets all the meta data for
  * the contact and calls the appropriate type of page to view.
  *
  * @return void
  * @access public
  *
  */
 function preProcess()
 {
     $this->_id = CRM_Utils_Request::retrieve('id', 'Positive', $this, false);
     if (!$this->_id) {
         $session =& CRM_Core_Session::singleton();
         $this->_id = $session->get('userID');
         if (!$this->_id) {
             CRM_Core_Error::fatal(ts('Could not find the required contact id parameter (id=) for viewing a contact record with a Profile.'));
         }
     }
     $this->assign('cid', $this->_id);
     $this->_gid = CRM_Utils_Request::retrieve('gid', 'Positive', $this);
     if ($this->_gid) {
         require_once 'CRM/Profile/Page/Dynamic.php';
         $page =& new CRM_Profile_Page_Dynamic($this->_id, $this->_gid, 'Profile');
         $profileGroup = array();
         $profileGroup['title'] = null;
         $profileGroup['content'] = $page->run();
         $profileGroups[] = $profileGroup;
         $map = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_UFGroup', $this->_gid, 'is_map');
         if ($map) {
             $this->assign('mapURL', CRM_Utils_System::url("civicrm/profile/map", "reset=1&pv=1&cid={$this->_id}&gid={$this->_gid}"));
         }
         if (CRM_Core_Permission::ufGroupValid($this->_gid, CRM_Core_Permission::SEARCH)) {
             $this->assign('listingURL', CRM_Utils_System::url("civicrm/profile", "force=1&gid={$this->_gid}"));
         }
     } else {
         require_once 'CRM/Core/BAO/UFGroup.php';
         $ufGroups =& CRM_Core_BAO_UFGroup::getModuleUFGroup('Profile');
         $profileGroups = array();
         foreach ($ufGroups as $groupid => $group) {
             require_once 'CRM/Profile/Page/Dynamic.php';
             $page =& new CRM_Profile_Page_Dynamic($this->_id, $groupid, 'Profile');
             $profileGroup = array();
             $profileGroup['title'] = $group['title'];
             $profileGroup['content'] = $page->run();
             $profileGroups[] = $profileGroup;
         }
         $this->assign('listingURL', CRM_Utils_System::url("civicrm/profile", "force=1"));
     }
     $this->assign('groupID', $this->_gid);
     $this->assign('profileGroups', $profileGroups);
     $this->assign('recentlyViewed', false);
     $title = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_UFGroup', $this->_gid, 'title');
     //CRM-4131.
     $sortName = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $this->_id, 'display_name');
     if ($sortName) {
         require_once 'CRM/Core/Permission.php';
         require_once 'CRM/Contact/BAO/Contact/Permission.php';
         $session = CRM_Core_Session::singleton();
         $config = CRM_Core_Config::singleton();
         if ($session->get('userID') && CRM_Core_Permission::check('access CiviCRM') && CRM_Contact_BAO_Contact_Permission::allow($session->get('userID'), CRM_Core_Permission::VIEW) && !$config->userFrameworkFrontend) {
             $sortNameUrl = CRM_Utils_System::url('civicrm/contact/view', "action=view&reset=1&cid={$this->_id}", true);
             $sortName = "<a href=\"{$sortNameUrl}\">{$sortName}</a>";
         }
         $title .= ' - ' . $sortName;
     }
     CRM_Utils_System::setTitle($title);
 }
 /**
  * This method returns the links that are given for each search row.
  *
  * @return array
  * @access public
  *
  */
 static function &links($map = FALSE, $editLink = FALSE, $ufLink = FALSE, $gids = NULL)
 {
     if (!self::$_links) {
         self::$_links = array();
         $viewPermission = TRUE;
         if ($gids) {
             // check view permission for each profile id, in case multiple profile ids are rendered
             // then view action is disabled if any profile returns false
             foreach ($gids as $profileId) {
                 $viewPermission = CRM_Core_Permission::ufGroupValid($profileId, CRM_Core_Permission::VIEW);
                 if (!$viewPermission) {
                     break;
                 }
             }
         }
         if ($viewPermission) {
             self::$_links[CRM_Core_Action::VIEW] = array('name' => ts('View'), 'url' => 'civicrm/profile/view', 'qs' => 'reset=1&id=%%id%%&gid=%%gid%%', 'title' => ts('View Profile Details'));
         }
         if ($editLink) {
             self::$_links[CRM_Core_Action::UPDATE] = array('name' => ts('Edit'), 'url' => 'civicrm/profile/edit', 'qs' => 'reset=1&id=%%id%%&gid=%%gid%%', 'title' => ts('Edit'));
         }
         if ($ufLink) {
             self::$_links[CRM_Core_Action::PROFILE] = array('name' => ts('Website Profile'), 'url' => 'user/%%ufID%%', 'qs' => ' ', 'title' => ts('View Website Profile'));
         }
         if ($map) {
             self::$_links[CRM_Core_Action::MAP] = array('name' => ts('Map'), 'url' => 'civicrm/profile/map', 'qs' => 'reset=1&cid=%%id%%&gid=%%gid%%', 'title' => ts('Map'));
         }
     }
     return self::$_links;
 }
Example #3
0
File: View.php Project: kidaa30/yes
 /**
  * Heart of the viewing process. The runner gets all the meta data for
  * the contact and calls the appropriate type of page to view.
  *
  * @return void
  */
 public function preProcess()
 {
     $this->_id = CRM_Utils_Request::retrieve('id', 'Positive', $this, FALSE);
     if (!$this->_id) {
         $session = CRM_Core_Session::singleton();
         $this->_id = $session->get('userID');
         if (!$this->_id) {
             CRM_Core_Error::fatal(ts('Could not find the required contact id parameter (id=) for viewing a contact record with a Profile.'));
         }
     }
     $this->assign('cid', $this->_id);
     $gids = explode(',', CRM_Utils_Request::retrieve('gid', 'String', CRM_Core_DAO::$_nullObject, FALSE, 0, 'GET'));
     $profileIds = array();
     if (count($gids) > 1) {
         if (!empty($gids)) {
             foreach ($gids as $pfId) {
                 $profileIds[] = CRM_Utils_Type::escape($pfId, 'Positive');
             }
         }
         // check if we are rendering mixed profiles
         if (CRM_Core_BAO_UFGroup::checkForMixProfiles($profileIds)) {
             CRM_Core_Error::fatal(ts('You cannot combine profiles of multiple types.'));
         }
         $this->_gid = $profileIds[0];
     }
     if (!$this->_gid) {
         $this->_gid = CRM_Utils_Request::retrieve('gid', 'Positive', $this, FALSE, 0, 'GET');
     }
     $anyContent = TRUE;
     if ($this->_gid) {
         $page = new CRM_Profile_Page_Dynamic($this->_id, $this->_gid, 'Profile', FALSE, $profileIds);
         $profileGroup = array();
         $profileGroup['title'] = NULL;
         $profileGroup['content'] = $page->run();
         if (empty($profileGroup['content'])) {
             $anyContent = FALSE;
         }
         $profileGroups[] = $profileGroup;
         $gidString = $this->_gid;
         if (!empty($profileIds)) {
             $gidString = implode(',', $profileIds);
         }
         $map = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_UFGroup', $this->_gid, 'is_map');
         if ($map) {
             $this->assign('mapURL', CRM_Utils_System::url("civicrm/profile/map", "reset=1&pv=1&cid={$this->_id}&gid={$gidString}"));
         }
         if (CRM_Core_Permission::ufGroupValid($this->_gid, CRM_Core_Permission::SEARCH)) {
             $this->assign('listingURL', CRM_Utils_System::url("civicrm/profile", "force=1&gid={$gidString}"));
         }
     } else {
         $ufGroups = CRM_Core_BAO_UFGroup::getModuleUFGroup('Profile');
         $profileGroups = array();
         foreach ($ufGroups as $groupid => $group) {
             $page = new CRM_Profile_Page_Dynamic($this->_id, $groupid, 'Profile', FALSE, $profileIds);
             $profileGroup = array();
             $profileGroup['title'] = $group['title'];
             $profileGroup['content'] = $page->run();
             if (empty($profileGroup['content'])) {
                 $anyContent = FALSE;
             }
             $profileGroups[] = $profileGroup;
         }
         $this->assign('listingURL', CRM_Utils_System::url("civicrm/profile", "force=1"));
     }
     $this->assign('groupID', $this->_gid);
     $this->assign('profileGroups', $profileGroups);
     $this->assign('recentlyViewed', FALSE);
     // do not set title if there is no content
     // CRM-6081
     if (!$anyContent) {
         CRM_Utils_System::setTitle('');
     }
 }
Example #4
0
 /**
  * This method returns the links that are given for each search row.
  *
  * @return array
  * @access public
  *
  */
 static function &links($map = false, $editLink = false, $ufLink = false, $gid = null)
 {
     if (!self::$_links) {
         self::$_links = array();
         $viewPermission = true;
         if ($gid) {
             $viewPermission = CRM_Core_Permission::ufGroupValid($gid, CRM_Core_Permission::VIEW);
         }
         if ($viewPermission) {
             self::$_links[CRM_Core_Action::VIEW] = array('name' => ts('View'), 'url' => 'civicrm/profile/view', 'qs' => 'reset=1&id=%%id%%&gid=%%gid%%', 'title' => ts('View Profile Details'));
         }
         if ($editLink) {
             self::$_links[CRM_Core_Action::UPDATE] = array('name' => ts('Edit'), 'url' => 'civicrm/profile/edit', 'qs' => 'reset=1&id=%%id%%&gid=%%gid%%', 'title' => ts('Edit'));
         }
         if ($ufLink) {
             self::$_links[CRM_Core_Action::PROFILE] = array('name' => ts('Website Profile'), 'url' => 'user/%%ufID%%', 'qs' => ' ', 'title' => ts('View Website Profile'));
         }
         if ($map) {
             self::$_links[CRM_Core_Action::MAP] = array('name' => ts('Map'), 'url' => 'civicrm/profile/map', 'qs' => 'reset=1&cid=%%id%%&gid=%%gid%%', 'title' => ts('Map'));
         }
     }
     return self::$_links;
 }