J'utilise un fichier ajax externe pour effectuer un appel ajax dans un module (je ne voulais pas modifier le contrôleur ni créer un sous-contrôleur pour un seul appel).
jQuery(document).ready(function($){
$(document).on('click', '.changeBtn',function(){
var yo="<?php echo 'ip_searchmod_'.$unique_qsid; ?>";
var text="<?php echo JText:: _('COM_IPROPERTY_THANASIS_ADV_SEARCH');?>";
$.ajax({
type:"POST",
url:"/templates/spiti360/html/mod_ip_homesearch/ajaxChangeSimple.php",
success: function(response){
$('#' + yo).html(response);
$('#' + yo).addClass('formSwapper');
$('#top_search_form').addClass('divConSwapper');
$('#swapper').addClass('simpleBtn');
$('#swapper').removeClass('changeBtn');
$('#swapper').text(text);
}
});
});
});
Ajax fonctionne correctement, mon problème est que j'utilise ce JText:: _('COM_IPROPERTY_THANASIS_FOR_SALE');
à l'intérieur du fichier ajax et que cela se répercute comme: COM_IPROPERTY_THANASIS_FOR_SALE
au lieu de For Sale
. Sur le default.php
fichier du module, cette définition de langage fonctionne parfaitement, mais pas dans le fichier ajax.
J'ai essayé d'utiliser le remplacement de langue par l'administrateur joomla, mais cela n'a pas fonctionné.
Dans le fichier ajax, j'utilise les éléments suivants:
require_once( JPATH_BASE . DS . 'includes' . DS . 'defines.php' );
require_once( JPATH_BASE . DS . 'includes' . DS . 'framework.php' );
require_once( JPATH_BASE . DS . 'libraries' . DS . 'joomla' . DS . 'factory.php' );
Dois-je inclure quelque chose de plus pour que cela fonctionne?
Après vous êtes require_once
appels, ajoutez les éléments suivants pour initialiser les applications:
$mainframe = JFactory::getApplication('site');
$mainframe->initialise();
Puis chargez le fichier de langue du composant:
$lang = JFactory::getLanguage();
$lang->load('com_iproperty', JPATH_ROOT);
J'ai deviné com_iproperty
_, donc si ce n'est pas correct, veuillez le changer.