Hola gente…
Estoy buscando la manera de cargar un cuadro de acuerdo a un parámetro que llega en el vinculo que lo invoca. El problema es que la invocación no se hace desde la misma aplicación a la que pertenece el cuadro, sino que proviene desde internet.
Espero se entienda el planteo. Desde ya muchas Gracias
a ver si te entiendo, vos tenes un link que trae un parametro y en base a ese parametro queres cargar un cuadro X (osea el componente).
Asumiendo que ya tenes recuperado el parametro, lo que harias es en el conf de la pantalla en cuestion:
function conf__pantalla_nombre($pantalla)
{
$pantalla->agregar_dependencia('cuadro_dinamico', 'nombre_proyecto', 'id_componente' );
}
De esa forma agregarias dinamicamente un cuadro a la pantalla, mientras sepas el id del componente y el proyecto no deberias tener inconvenientes.
Lo que deberias tener luego es un metodo conf__cuadro_dinamico($cuadro) para cargarle los datos al componente.
Entendiste muy bien el problema…
En realidad lo que necesito es como armar / desarmar el link. Porque habia pensado armarlo con un vincular, pero no se puede porque hace referencia a una url fuera del proyecto.
Lo que me pasas me simplifica un poco, ya que estaba pensando inyectarle el parámetro al sql en el conf del cuadro.
Una consulta, la url de destino es un proyecto de toba tambien?, si es el caso y ambos 2 estan en la misma instancia, tranquilamente podrias usar toba::vinculador()->get_url(proyecto, item, array(‘pepitoparam’ => ‘45’)); si no estan en la misma instancia entonces deberias armar el link a manopla ya que toba no tendria forma de verificar los permisos de acceso al item.
En cualquiera de los casos si el parametro viaja por URL (que pareciera ser el caso) lo podes recuperar del otro lado con toba::memoria()->get_parametro(‘pepitoparam’);
Lo que me pasas me simplifica un poco, ya que estaba pensando inyectarle el parámetro al sql en el conf del cuadro.
Esto me marea XD… el parametro lo necesitas para decidir que componente tenes que cargar en pantalla o para decidir que datos lleva el cuadro?
Entonces la URL me quedaria algo de la forma http://www.miurl.edu.ar/aplicacion_toba2/?ai=aplicacion_toba2||50000005[b]&pepitoparam=45[/b].
Luego en el conf_cuadro tendria:
$pepitoparam = toba::memoria()->get_parametro('pepitoparam');
$sql = "select * from tabla where id_pepito = $pepitoparam";
Si esto fuera así, ya estaría listo para implementarlo a ver que sale!!!
Joya… .solo tardamos 4 msg en ponernos de acuerdo XD XD XD… por lo que veo no te queda otra que hacer la url a mano, pero como sabes el proyecto y el id de componente no tenes drama (el alias es otra cosa),
esa operacion es publica o que?.. sino vas a tener que autenticarte nuevamente, mas alla de eso …para obtener los datos del cuadro en base al parametro venis bien… yo le agregaria lo siguiente en el item destino:
$pepitoparam = toba::memoria()->get_parametro('pepitoparam');
if (! is_null($pepitoparam)) {
$sql = 'select * from tabla ';
$sql .= ' where id_pepito = '. quote($pepitoparam);
$datos = toba::db()->consultar($sql);
}
Eso es por si el parametro no viene seteado en alguna llamada, ya sea porque el valor no se paso correctamente o porque alguien edito la URL mal XD.
La parte del quote es para reducir la posibilidad de SQL Injection ya que es un parametro que se puede editar muy facilmente en la barra de direcciones.
Deberias agregar algun tipo de manejo de errores o excepciones por si las moscas, asi no tira la estructura de la tabla en el mensaje de error.
Quizas se podria reemplazar por un mensaje mas inocuo estilo ’ Mi abuela va de vacaciones a Mardel, wee wee viejita’, la idea es esconder la estructura
de la tabla para no facilitarle la tarea a alguien con ganas de matufiar el proyecto, sobre todo si es una operacion publica.