* @static
*/
public static function handlePrimary(&$params, $class) {
- switch ($class) {
- case 'CRM_Core_BAO_Phone':
- $table = 'civicrm_phone';
- break;
-
- case 'CRM_Core_BAO_Email':
- $table = 'civicrm_email';
- break;
-
- case 'CRM_Core_BAO_Address':
- $table = 'civicrm_address';
- break;
- }
+ $table = CRM_Core_DAO_AllCoreTables::getTableForClass($class);
// contact_id in params might be empty or the string 'null' so cast to integer
$contactId = (int) CRM_Utils_Array::value('contact_id', $params);
// If id is set & we haven't been passed a contact_id, retrieve it
--- /dev/null
+<?php
+
+require_once 'CiviTest/CiviUnitTestCase.php';
+class CRM_Core_DAO_AllCoreTablesTest extends CiviUnitTestCase {
+ public function testGetTableForClass() {
+ $this->assertEquals('civicrm_email', CRM_Core_DAO_AllCoreTables::getTableForClass('CRM_Core_DAO_Email'));
+ $this->assertEquals('civicrm_email', CRM_Core_DAO_AllCoreTables::getTableForClass('CRM_Core_BAO_Email'));
+ }
+}
\ No newline at end of file
return FALSE !== array_search($tableName, self::tables());
{rdelim}
+ static public function getCanonicalClassName($className) {ldelim}
+ return str_replace('_BAO_', '_DAO_', $className);
+ {rdelim}
+
static public function getClasses() {ldelim}
return array_values(self::daoToClass());
{rdelim}
return CRM_Utils_Array::value($className, array_flip(self::daoToClass()));
{rdelim}
+ /**
+ * @param string $className DAO or BAO name
+ * @return string|FALSE SQL table name
+ */
+ static public function getTableForClass($className) {ldelim}
+ return array_search(self::getCanonicalClassName($className), self::tables());
+ {rdelim}
+
+
{rdelim}