De paso pregunto si está bien lo que hice.
Supuestamente el segundo parámetro de la función get_sql_where del ei_filtro sirve para devolver sql where del filtro con las columnas deseadas, pero no lo estaba haciendo asi,
Agregue un poco de código y ahora si funciona.
Saludos!
function get_sql_where($separador = 'AND', $clausulas=null)
{
if (! isset($clausulas)) {
$clausulas = $this->get_sql_clausulas();
return "\t\t".implode("\n\t$separador\t", $clausulas);
}
if (! empty($clausulas)) {
//return "\t\t".implode("\n\t$separador\t", $clausulas);
/****************** UADER AGREGADO *********************
permite sacar una clausula del where
*/
foreach ($this->_columnas_datos as $columna) {
if ($columna->tiene_estado() && in_array($columna->get_nombre(), $clausulas)) {
$where[] = $columna->get_sql_where();
}
}
return implode(" $separador ", $where);
/****************** FIN UADER AGREGADO **********************/
} else {
return '1=1';
}
}
creo que existe una diferencia de interpretacion sobre que trae el parametro clausulas. Segun se desprende de la implementacion, en el parametro clausulas viene un arreglo de clausulas a unir, no un arreglo de columnas a las cuales pedirles el estado y formar las clausulas… es cierto que es medio bizarro pasar un arreglo para que simplemente devuelva lo mismo que un implode que podemos hacer manualmente, supongo que quedo ahi por un tema de acceso homogeneo.
Basicamente, la diferencia es de comportamiento… en tu version, vos pedis que se arme el “where” con solo ciertas columnas pero manteniendo los valores del filtro, en la interpretacion que hago yo… el valor de las clausulas no depende del filtro en lo absoluto, es meramente un “unificador” si se quiere.
De todas maneras, si es la funcionalidad que buscas… no hay problema pero tene en cuenta que hay diferencia semantica.
Gracias Ricardo, ya entiendo, pensé que no se había terminado ese método.
Me parece que es una buena funcionalidad para que el componente traiga de fábrica.
Saludos!