X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCore%2FDAO.php;h=cab84ffeb0ee3720ee91810ef5ed0ca91b2bc8f2;hb=3d04355de56e2293afda299bc4e00d5816010082;hp=d5eab412c1ea9775066b6ce247afbd1969dd4a82;hpb=b74f7a4dede9bb12ef1d1ffd28bf4dba73aaf56b;p=civicrm-core.git diff --git a/CRM/Core/DAO.php b/CRM/Core/DAO.php index d5eab412c1..cab84ffeb0 100644 --- a/CRM/Core/DAO.php +++ b/CRM/Core/DAO.php @@ -1,9 +1,9 @@ fields(); $allNull = TRUE; foreach ($fields as $name => $value) { @@ -636,7 +642,14 @@ class CRM_Core_DAO extends DB_DataObject { if ($pValue === '') { $this->$dbName = 'null'; } + elseif ($serializeArrays && is_array($pValue) && !empty($value['serialize'])) { + $this->$dbName = CRM_Core_DAO::serializeField($pValue, $value['serialize']); + $allNull = FALSE; + } else { + if (!$serializeArrays && is_array($pValue) && !empty($value['serialize'])) { + Civi::log()->warning(ts('use copyParams to serialize arrays (' . __CLASS__ . '.' . $name . ')'), ['civi.tag' => 'deprecated']); + } $this->$dbName = $pValue; $allNull = FALSE; } @@ -1649,10 +1662,10 @@ FROM civicrm_domain * * @param $componentIDs * @param string $tableName - * + * @param string $idField * @return array */ - public static function &getContactIDsFromComponent(&$componentIDs, $tableName) { + public static function getContactIDsFromComponent($componentIDs, $tableName, $idField = 'id') { $contactIDs = array(); if (empty($componentIDs)) { @@ -1663,7 +1676,7 @@ FROM civicrm_domain $query = " SELECT contact_id FROM $tableName - WHERE id IN ( $IDs ) + WHERE $idField IN ( $IDs ) "; $dao = CRM_Core_DAO::executeQuery($query);