2011-11-20 6 views
1

Cette question peut sembler un peu stupide, mais je suis nouveau sur Joomla!Comment faire un fichier dans Joomla?

Et je suis en train d'éditer un composant courant que je veux à un certain moment appeler un petit fichier php qui produit des données. Maintenant dans ce fichier je veux utiliser des classes et des fonctions joomla pour la base de données comme setQuery et etc.

et je veux qu'il lise le préfixe joomla (#__). et le fichier est créé par moi, donc je me demandais ce que je dois inclure et comment.

Quelqu'un peut-il me dire comment faire cela?

Merci à l'avance, Eric

Répondre

1

Eh bien alghimo réponse me conduit à écrire ceci:

define('_JEXEC', 1); 
define('JPATH_BASE', dirname(__FILE__)); 
define('DS', DIRECTORY_SEPARATOR); 
require_once (JPATH_BASE .DS.'includes'.DS.'defines.php'); 
require_once (JPATH_BASE .DS.'includes'.DS.'framework.php'); 

/* Create the Application */ 
$mainframe =& JFactory::getApplication('site'); 

Mais comme mentoined. pas recommandé de le faire.

1

Il serait préférable de ne pas inclure des fichiers php « externes », je veux dire les fichiers de la structure Joomla. Mais si vous voulez toujours le faire, vous pouvez simplement inclure ce fichier php partout où vous en avez besoin, et vous aurez toutes les classes et fonctions Joomla disponibles tant que vous incluez ce fichier d'une autre tuile Joomla (peut-être votre point d'entrée de composant, un contrôleur, un modèle, une vue, etc.). En outre, si votre fichier génère des données, le meilleur endroit pour l'inclure serait à l'intérieur d'un modèle dans votre composant. Si vous l'utilisez à un autre endroit, vous devriez obtenir la sortie de ce fichier (par exemple, avec les méthodes ob_start(), ob_get_contents()), et les enregistrer dans un type de variable pour le sortir d'un modèle. Je suppose que vous savez probablement déjà comment inclure ce fichier, mais si par exemple votre fichier est dans un dossier « mylibs » à l'intérieur de la racine de joomla, vous devez inclure comme ceci:

include JPATH_ROOT . DS . 'mylibs' . DS . 'myfile.php'; 

Pourquoi la raison pour laquelle vous besoin d'inclure ce fichier et il n'est pas possible de le rendre comme un modèle?

J'espère que cela a aidé.

+0

Je ne souhaite pas l'inclure, je souhaite l'appeler avec un appel XmlHtppRequest –

0

La meilleure façon est d'utiliser une extension comme Sourcer ou Jumi

http://extensions.joomla.org/extensions/edition/custom-code-in-content

Bon pour commencer avant d'écrire 'vrais' composants installables Joomla, modules, plugins, etc ...

+0

Salut idea34, je n'ai pas besoin de mettre du code dans le contenu. J'ai un composant que je veux juste ajouter un petit fichier PHP qui est appelé par un XmlHttpRequest. –

0

Je pense que le meilleur moyen serait un dépassement de sortie. Take a look at the documentation. De cette façon, vous n'avez pas besoin d'éditer une extension de base de joomla (bien sûr, maintenant que je regarde de plus près, vous ne dites pas que vous modifiez une extension de base). Quoi qu'il en soit, les remplacements de sortie sont plutôt sympas, l'utilisation de la fonctionnalité d'une extension mais vous devez faire la dernière modification. Dans votre dossier de modèle actuel, créez un dossier appelé 'html', puis jetez un coup d'œil au lien (ou à un autre modèle, comme beez) pour déterminer la structure du dossier de l'extension particulière que vous remplacez. Ensuite, vous pouvez appeler le script à l'intérieur de ce remplacement avec toutes les fonctionnalités de joomla, et sans pirater le noyau.

Questions connexes