Hola, del lado del controlador podes hacer lo siguiente:
1) Render de un twig:
function accion__zzzzzzzzzzzzzzzzz()
{
$dato1 = $this->validate_param('dato1', 'post', validador::TIPO_TEXTO);
$dato2 = $this->validate_param('dato2', 'post', validador::TIPO_TEXTO, array('allowempty' => true));
..................................
$datos_twig['dato1'] ='xxxxxxxxxxxxxxxxxx';
$datos_twig['dato2'] = 'yyyyyyyyyyyyyyyyyy';
$this->render_template('archivo.twig', $datos_twig);
}
en el js se accede asi:
success: function(paquete) {
var contenido_archivo = paquete.cont;
}
2) Render de un pagelet:
function accion__zzzzzzzzzzzzzzzzz()
{
..................................
$pagelet = $this->vista()->pagelet('nombre_pagelet'); // sin el "pagelet_"
kernel::renderer()->add($pagelet);
..................................
kernel::renderer()->add_to_ajax_response('hubo_error', $hubo_error); //También se pueden agregar mas datos a la respuesta...
kernel::renderer()->add_to_ajax_response('mensaje_error', $mensaje_error); //...así cuantos quieras
}
en el js se accede asi:
success: function(paquete) {
var contenido_pagelet = paquete.cont;
var hubo_error = paquete.hubo_error;
var mensaje_error = paquete.mensaje_error;
}
saludos.