Tengo un componente simple que realizará CRUD para mi aplicación móvil en el sitio de Joomla.
Estas son la estructura de mis archivos.
http://localhost/chichi-server/components/com_chichi/controller.php
http://localhost/chichi-server/components/com_chichi/chichi.php
http://localhost/chichi-server/components/com_chichi/controllers/getdata.php
http://localhost/chichi-server/components/com_chichi/controllers/postdata.php
en mi chichi.php tengo esto
<?php
defined('_JEXEC') or die('access dedied');
jimport('joomla.application.component.controller');
$input = JFactory::getApplication()->input;
$controller=JControllerLegacy::getInstance('ChichiMobilePost');
$controller->execute($input->get('task'));
$controller->redirect();
Y en controller.php tengo
<?php
defined('_JEXEC') or die('access dedied');
jimport('joomla.application.component.controller');
class ChichiMobilePostController extends JControllerLegacy{
function diplay(){
echo 'Noting to do';
}
function create(){
echo 'Welcom to Create';
}
}
En mi /controllers/getdata.php
<?php
defined('_JEXEC') or die('access dedied');
jimport('joomla.application.component.controller');
class ChichiMobilePostController extends JControllerLegacy{
//GET USER COLLECTIONS
function getcollection(){
//Prevent template from showing
$app =JFactory::getApplication();
$input = JFactory::getApplication()->input;
$userID = $input->post->get('userID');
$db = JFactory::getDbo();
// Create a new query object.
$query = $db->getQuery(true);
try
{
$query
->select(array('*'))
->from($db->quoteName('#__user'))
->where($db->quoteName('id') .'=' . $userID .'');
$db->setQuery($query);
$results = $db->loadAssocList();
}
catch (Exception $e)
{
$this->setError('The error message you want');
return false;
}
echo json_encode(array('collect'=>$results));
$app->close();
}
};
Mi pregunta, ¿cómo obtengo una consulta en/controllers/getdata/php para ejecutar
Traté de acceder a través de
http://localhost/chichi-server/index.php?option=com_chichi&task=getdata.getcollection
Pero recibo este error "(Vista no encontrada [nombre, tipo, prefijo]: get.getcollection, html, chichimobilepostView)"
Sin embargo si uso
http://localhost/chichi-server/index.php?option=com_chichi&task=create
el controller.php puede generar "Bienvenido a crear"
la razón por la que estoy haciendo esto es porque habrá muchas publicaciones y solicitudes de la aplicación móvil y aunque podría procesar cada una en su propio archivo.
Me alegrará si alguien puede ayudar. me resuelvo esto, muchas gracias
Intente cambiar el nombre de su clase en /controllers/getdata.php a: ChichiMobilePostController Getdata Entonces Joomla puede encontrar la clase correcta y ejecutar getcollection () si lo llamas a través de
http://localhost/chichi-server/index.php?option=com_chichi&task=getdata.getcollection