/**
  * Function to get the list of ddashlets 
  * ( defaults dashlets defined by admin )
  *
  *  @param boolean $all all or only active  
  *
  * @return array $widgets  array of dashlets
  * @access public
  * @static
  */
 static function getDashlets($all = true)
 {
     $dashlets = array();
     $dao = new CRM_Core_DAO_Dashboard();
     if (!$all) {
         $dao->is_active = 1;
     }
     $dao->domain_id = CRM_Core_Config::domainID();
     $dao->find();
     while ($dao->fetch()) {
         if (!self::checkPermission($dao->permission, $dao->permission_operator)) {
             continue;
         }
         $values = array();
         CRM_Core_DAO::storeValues($dao, $values);
         $dashlets[$dao->id] = $values;
     }
     return $dashlets;
 }
Beispiel #2
0
 /**
  * @param $rev
  *
  * @return bool
  */
 public function upgrade_4_4_4($rev)
 {
     $fkConstraint = array();
     if (!CRM_Core_DAO::checkFKConstraintInFormat('civicrm_activity_contact', 'activity_id')) {
         $fkConstraint[] = "ADD CONSTRAINT `FK_civicrm_activity_contact_activity_id` FOREIGN KEY (`activity_id`) REFERENCES `civicrm_activity` (`id`) ON DELETE CASCADE";
     }
     if (!CRM_Core_DAO::checkFKConstraintInFormat('civicrm_activity_contact', 'contact_id')) {
         $fkConstraint[] = "ADD CONSTRAINT `FK_civicrm_activity_contact_contact_id` FOREIGN KEY (`contact_id`) REFERENCES `civicrm_contact` (`id`) ON DELETE CASCADE;\n";
     }
     if (!empty($fkConstraint)) {
         $fkConstraint = implode(',', $fkConstraint);
         $sql = "ALTER TABLE `civicrm_activity_contact`\n{$fkConstraint}\n";
         // CRM-14036 : delete entries of un-mapped contacts
         CRM_Core_DAO::executeQuery("DELETE ac FROM civicrm_activity_contact ac\nLEFT JOIN civicrm_contact c\nON c.id = ac.contact_id\nWHERE c.id IS NULL;\n");
         // delete entries of un-mapped activities
         CRM_Core_DAO::executeQuery("DELETE ac FROM civicrm_activity_contact ac\nLEFT JOIN civicrm_activity a\nON a.id = ac.activity_id\nWHERE a.id IS NULL;\n");
         CRM_Core_DAO::executeQuery("SET FOREIGN_KEY_CHECKS=0;");
         CRM_Core_DAO::executeQuery($sql);
         CRM_Core_DAO::executeQuery("SET FOREIGN_KEY_CHECKS=1;");
     }
     // task to process sql
     $this->addTask(ts('Upgrade DB to %1: SQL', array(1 => '4.4.4')), 'runSql', $rev);
     // CRM-13892 : add `name` column to dashboard schema
     $query = "\nALTER TABLE civicrm_dashboard\n    ADD name varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'Internal name of dashlet.' AFTER domain_id ";
     CRM_Core_DAO::executeQuery($query, array(), TRUE, NULL, FALSE, FALSE);
     $dashboard = new CRM_Core_DAO_Dashboard();
     $dashboard->find();
     while ($dashboard->fetch()) {
         $urlElements = explode('/', $dashboard->url);
         if ($urlElements[1] == 'dashlet') {
             $url = explode('&', $urlElements[2]);
             $name = $url[0];
         } elseif ($urlElements[1] == 'report') {
             $url = explode('&', $urlElements[3]);
             $name = 'report/' . $url[0];
         }
         $values .= "\n      WHEN {$dashboard->id} THEN '{$name}'\n      ";
     }
     $query = "\n     UPDATE civicrm_dashboard\n  SET name = CASE id\n  {$values}\n  END;\n    ";
     CRM_Core_DAO::executeQuery($query, array(), TRUE, NULL, FALSE, FALSE);
     // CRM-13998 : missing alter statements for civicrm_report_instance
     $this->addTask(ts('Confirm civicrm_report_instance sql table for upgrades'), 'updateReportInstanceTable');
     return TRUE;
 }