/** * Function to add dashlets * * @param array $params associated array * * @return object $dashlet returns dashlet object * @access public * @static */ static function addDashlet(&$params) { // special case to handle duplicate entires for report instances $dashboardID = null; if (CRM_Utils_Array::value('instanceURL', $params)) { $query = "SELECT id\n FROM `civicrm_dashboard`\n WHERE url LIKE '" . CRM_Utils_Array::value('instanceURL', $params) . "&%'"; $dashboardID = CRM_Core_DAO::singleValueQuery($query); } require_once "CRM/Core/DAO/Dashboard.php"; $dashlet = new CRM_Core_DAO_Dashboard(); if (!$dashboardID) { // check url is same as exiting entries, if yes just update existing $dashlet->url = CRM_Utils_Array::value('url', $params); $dashlet->find(true); } else { $dashlet->id = $dashboardID; } if (is_array($params['permission'])) { $params['permission'] = implode(',', $params['permission']); } $dashlet->copyValues($params); $dashlet->created_date = date("YmdHis"); $dashlet->domain_id = CRM_Core_Config::domainID(); $dashlet->save(); // now we need to make dashlet entries for each contact self::addContactDashlet($dashlet); return $dashlet; }