예제 #1
0
 /**
  * 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;
 }