2009-08-08 6 views
1

J'utilise Joomla 1.5. J'ai créé un composant personnalisé qui extrait parfaitement les données de la base de données. J'initialiser la base de données dans mon fichier de composants comme ceci:Joomla inclure des fonctions de base de données

$db =& JFactory::getDBO(); 

Le problème est que j'ai un plugin jQuery autocomplete sur ma page composant qui effectue des appels vers un fichier PHP à partir de mon dossier composant. Ce fichier PHP recherche dans la base de données les résultats correspondants, mais je ne peux pas faire la requête car je ne peux pas appeler $db =& JFactory::getDBO(); car il s'agit d'une page PHP personnalisée et je ne peux pas accéder à ces fonctions sans références.

Quelqu'un peut-il m'aider à appeler les fonctions Joomla dans mon fichier personnalisé?

Merci.

+0

Je ne l'ai pas utilisé Joomla, mais il semblent être plusieurs options pour inclure un fichier php dans un fichier Joomla. La solution pourrait être de créer un nouveau fichier Joomla pour remplacer le fichier php personnalisé, mais il suffit d'inclure le fichier php qui existe déjà. – Cahlroisse

+0

Je sais comment inclure un fichier PHP dans Joomla, je ne sais pas quoi et comment inclure afin que j'ai accès à JFactory et fonctions ... –

Répondre

2

Je vous recommande de ne pas appeler un fichier PHP séparé et d'utiliser le format d'affichage raw dans votre composant. Pour ce faire, créez une vue dans votre composant pour les données que jQuery va extraire. Pour discussion, nous appellerons cette vue autocomplete. Configurez la vue autocomplete comme vous le feriez avec d'autres, en utilisant uniquement view.raw.php au lieu de view.html.php. Ensuite, dans votre JavaScript, appelez le index.php?option=com_yourcomponent&view=autocomplete&format=raw. Cet appel HTTP retournera SEULEMENT ce que vous produisez dans votre vue.

Si vous devez absolument exécuter un fichier PHP externe, jetez un oeil à la création d'une application autonome à l'aide de Joomla! Cadre: http://docs.joomla.org/How_to_create_a_stand-alone_application_using_the_Joomla%21_Framework Il s'agit d'un code suffisant pour insérer JFactory et la connexion à la base de données. Mais n'utilisez ceci que si vous en avez vraiment besoin: sinon, vous créez simplement un autre point d'entrée dans Joomla! application que vous devrez maintenir et sécuriser.

Vous pouvez trouver le poste de Louis Landry à faire JSON utile: http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/5ac0b49c0f458b1a

J'ai aussi blogué sur ce sujet récemment: http://www.designvsdevelop.com/the-way-not-to-do-javascript-in-joomla/

+0

Merci! J'ai appelé un format brut. –

0

j'utiliser la classe JLoader pour inclure des fichiers PHP externes et des classes à joomla.

        

JLoader::register('classname', dirname(__FILE__).DS.'classfoldername'.DS.'classfile.php'); 

Cela inclut la classe et le rendre prêt à l'emploi:

$theClass = new classname(); 
Questions connexes