J'ai un composant simple qui effectuera CRUD pour mon application mobile sur le site Joomla.
Voici la structure de mes fichiers
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
dans mon chichi.php j'ai ce
<?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();
Et dans controller.php j'ai
<?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';
}
}
Dans mon /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();
}
};
Ma question comment puis-je interroger dans/controllers/getdata/php pour s'exécuter
J'ai essayé d'y accéder par
http://localhost/chichi-server/index.php?option=com_chichi&task=getdata.getcollection
Mais j’obtiens cette erreur "(Affichage non trouvé [nom, type, préfixe]: get.getcollection, html, chichimobilepostView)" "
Cependant si j'utilise
http://localhost/chichi-server/index.php?option=com_chichi&task=create
le controller.php est capable de produire "Welcome to create"
la raison pour laquelle je le fais est parce qu’il y aura beaucoup de publications et de demandes de l’application mobile et que je pourrais traiter chacune dans son propre fichier.
Je serai heureux si quelqu'un peut aider. moi résoudre ceci, merci beaucoup
Essayez de renommer votre classe dans /controllers/getdata.php en: ChichiMobilePostController Getdata Alors Joomla peut trouver la bonne classe et exécuter getcollection () si vous l'appelez via
http://localhost/chichi-server/index.php?option=com_chichi&task=getdata.getcollection