I forgot to post it here, the correct fix is https://github.com/emanuele45/Dialogo/commit/c4740db0f32e56483bc948a5320f0aca7a5d97b2
So if you want to test it out, revert the changes I suggested and apply just these two:
foreach ($input_fields as $field)
foreach (array_keys($this->_search_fields) as $field)
and:
$customJoin[] = 'LEFT JOIN {db_prefix}custom_fields_data AS cfd' . $curField . ' ON (cfd' . $curField . '.variable = {string:cfd' . $curField . '} AND cfd' . $curField . '.id_member = mem.id_member)';
$query_parameters['cfd' . $curField] = $curField;
$fields += array($customCount++ => 'IFNULL(cfd' . $curField . '.value, {string:blank_string})');
$customJoin[] = 'LEFT JOIN {db_prefix}custom_fields_data AS cfd' . $field . ' ON (cfd' . $field . '.variable = {string:cfd' . $field . '} AND cfd' . $field . '.id_member = mem.id_member)';
$query_parameters['cfd' . $field] = $curField;
$fields += array($customCount++ => 'IFNULL(cfd' . $field . '.value, {string:blank_string})');