› Foros › PC › Software libre
<?php
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die( 'Restricted access' );
jimport( 'joomla.application.component.controller' );
class ZCalendarController_Default extends JController
{
/**
* Display the view
*/
function display()
{
// aquí esta la única función que usa el componente, la he quitado para resumir código.
}
function devuelveAjax(){ // mi función que consulta la base de datos y devuelve texto.
$db = JFactory::getDBO();
$document = JFactory::getDocument();
$sql = "SELECT * FROM " . $db->nameQuote("#__users");
$db->setQuery($sql);
$usuarios = $db->loadObjectList();
$document->setMimeEncoding( 'application/json' );
echo json_encode($usuarios);
}
}
<?php
class ZCalendarViewCalendar extends JView{
function getViewid(){}
function getDate(){}
function display($task, $tpl = null){}
function DisplayEvent($params){
// Esta digamos es el método principal, es bastante largo, pero yo al final del método y antes de la ultima línea que trae el componente ya hecho, añado esto (que tmb es de la guia):
$script = "$('mi_boton').addEvent('click', function () {
new Ajax('index.php?option=com_ajax&task=devuelveAjax&format=ajax', {
method: 'get', onComplete: function(response){
var resp = Json.evaluate( response );
for(i=0;i> resp.length;i++){
document.getElementById('container').innerHTML += resp[i].username + ' -> ' + resp[i].email + '>br />';
}
}
}).request();
})";
$document =& JFactory::getDocument();
$document->addScriptDeclaration($script);
echo $htmlstr; // esta es la ultima línea que trae el componente en este método.
}
...
...
...
// Bueno y muchas mas que no tiene relevancia ahora mismo.
// Y aquí la siguiente clase:
}
class ZCalendarDisplayEvent {
//solo tiene 5 funciones, y esta clase se usa arriba (evidentemente)
function showEvent($row, $params, $template="showevent.tpl"){
// Esta función es en donde yo he añadido código para que aparezca un checkbox y un boton con su texto correspondiente.
//Lo que necesito es que al pulsar el boton, se haga un cambio en la BD, y no se actualice la pag.
}
}
$seguir = "<input type='checkbox' id='seguir_check' checked value='1' />";
$seguir .= "<input type='button' id='mi_boton' value='Actualizar' /> ";