return NULL;
}
+ /**
+ * @param array $crudLinkSpec with keys:
+ * - action: int, CRM_Core_Action::UPDATE or CRM_Core_Action::VIEW [default: VIEW]
+ * - entity_table: string, eg "civicrm_contact"
+ * - entity_id: int
+ * @return array|NULL NULL if unavailable, or an array. array has keys:
+ * - path: string
+ * - query: string
+ * - title: string
+ * @see CRM_Utils_System::createDefaultCrudLink
+ */
+ public function createDefaultCrudLink($crudLinkSpec) {
+ switch ($crudLinkSpec['action']) {
+ case CRM_Core_Action::VIEW:
+ return array(
+ 'title' => $this->display_name,
+ 'path' => 'civicrm/contact/view',
+ 'query' => array(
+ 'reset' => 1,
+ 'cid' => $this->id,
+ ),
+ );
+ case CRM_Core_Action::UPDATE:
+ return array(
+ 'title' => $this->display_name,
+ 'path' => 'civicrm/contact/add',
+ 'query' => array(
+ 'reset' => 1,
+ 'action' => 'update',
+ 'cid' => $this->id,
+ ),
+ );
+ }
+ return NULL;
+ }
+
/**
*
* Get the values for pseudoconstants for name->value and reverse.
'civicrm_caseChange'
);
}
+
+ /**
+ * Generate a default CRUD URL for an entity
+ *
+ * @param array $spec with keys:
+ * - action: int, eg CRM_Core_Action::VIEW or CRM_Core_Action::UPDATE
+ * - entity_table: string
+ * - entity_id: int
+ * @param CRM_Core_DAO $bao
+ * @param array $link to define the link, add these keys to $link:
+ * - title: string
+ * - path: string
+ * - query: array
+ * - url: string (used in lieu of "path"/"query")
+ * Note: if making "url" CRM_Utils_System::url(), set $htmlize=false
+ * @return mixed
+ */
+ static function crudLink($spec, $bao, &$link) {
+ return self::singleton()->invoke(3, $spec, $bao, $link,
+ self::$_nullObject, self::$_nullObject, self::$_nullObject,
+ 'civicrm_crudLink'
+ );
+ }
}
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
// lets capture the return stuff rather than echo
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE );
return curl_exec($ch);
}
return
(isset($_SERVER['HTTPS']) &&
!empty($_SERVER['HTTPS']) &&
- strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
+ strtolower($_SERVER['HTTPS']) != 'off') ? TRUE : FALSE;
}
/**
return FALSE;
}
}
+
+ /**
+ * Determine the standard URL for viewing or editing the specified link
+ *
+ * This function delegates the decision-making to (a) the hook system and
+ * (b) the BAO system.
+ *
+ * @param array $crudLinkSpec with keys:
+ * - action: int, CRM_Core_Action::UPDATE or CRM_Core_Action::VIEW [default: VIEW]
+ * - entity_table: string, eg "civicrm_contact"
+ * - entity_id: int
+ * @return array|NULL NULL if unavailable, or an array. array has keys:
+ * - path: string
+ * - query: array
+ * - title: string
+ * - url: string
+ */
+ static function createDefaultCrudLink($crudLinkSpec) {
+ $crudLinkSpec['action'] = CRM_Utils_Array::value('action', $crudLinkSpec, CRM_Core_Action::VIEW);
+ $daoClass = CRM_Core_DAO_AllCoreTables::getClassForTable($crudLinkSpec['entity_table']);
+ if (!$daoClass) {
+ return NULL;
+ }
+
+ $baoClass = str_replace('_DAO_', '_BAO_', $daoClass);
+ if (!class_exists($baoClass)) {
+ return NULL;
+ }
+
+ $bao = new $baoClass();
+ $bao->id = $crudLinkSpec['entity_id'];
+ if (!$bao->find(TRUE)) {
+ return NULL;
+ }
+
+ $link = array();
+ CRM_Utils_Hook::crudLink($crudLinkSpec, $bao, $link);
+ if (empty($link) && is_callable(array($bao, 'createDefaultCrudLink'))) {
+ $link = $bao->createDefaultCrudLink($crudLinkSpec);
+ }
+
+ if (!empty($link)) {
+ if (!isset($link['url'])) {
+ $link['url'] = self::url($link['path'], $link['query'], TRUE, NULL, FALSE);
+ }
+ return $link;
+ }
+
+ return NULL;
+ }
}