Как сделать файл частью Joomla? - PullRequest
1 голос
/ 21 ноября 2011

Этот вопрос может показаться немного глупым, но я новичок в Joomla!

И я редактирую текущий компонент, который я хочу в какой-то момент вызвать небольшим php файл, который выводит данные. Теперь в этом файле я хочу использовать классы и функции joomla для базы данных как setQuery и т. д.

и я хочу, чтобы он прочитал префикс joomla (#__). и файл создан мной, поэтому я подумал, что мне нужно включить и как.

Может кто-нибудь сказать мне, как это сделать?

Заранее спасибо, Eric

Ответы [ 4 ]

1 голос
/ 05 января 2012

Ну, ответ alghimo привел меня к написанию этого:

    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');

Но как ментой.не рекомендуется делать это.

1 голос
/ 21 ноября 2011

Было бы лучше не включать "внешние" файлы php, я имею в виду файлы вне структуры Joomla. Но если вы все еще хотите это сделать, вы можете просто включить этот php-файл из любого места, где вам это нужно, и у вас будут доступны все классы и функции Joomla, если вы включите этот файл из другой плитки Joomla (может быть, точка входа вашего компонента, контроллер, модель, вид и т. д.). Кроме того, если ваш файл выводит данные, лучшее место для их включения - шаблон внутри вашего компонента. Если вы используете его в любом другом месте, вы должны получить выходные данные для этого файла (например, с помощью методов ob_start (), ob_get_contents ()) и сохранить их в некоторой переменной, чтобы вывести их из шаблона. Я думаю, вы, вероятно, уже знаете, как включить этот файл, но если, например, ваш файл находится внутри папки «mylibs» внутри корня joomla, вы должны включить его следующим образом:

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

Почему вы должны включить этот файл, и его невозможно отобразить как шаблон?

Надеюсь, это помогло.

0 голосов
/ 29 ноября 2011

Я думаю, что лучшим способом было бы переопределение вывода. Посмотрите документацию .Таким образом, вам не нужно редактировать базовое расширение Joomla (конечно, теперь, когда я посмотрю немного ближе, вы не говорите, что редактировали базовое расширение).В любом случае, переопределение вывода довольно круто, используйте функциональность расширения, но вы можете сделать окончательную модификацию.

В текущей папке шаблонов создайте папку с именем «html», а затем посмотрите на ссылку (или другой шаблон, например, beez), чтобы определить структуру папки для конкретного расширения, которое вы переопределяете.Затем вы можете вызвать скрипт из этого переопределения со всеми функциями joomla и без взлома ядра.

0 голосов
/ 21 ноября 2011

Лучший способ - использовать расширение вроде Sourcer или Jumi

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

Хорошо для начала, прежде чем писать «настоящие» устанавливаемые компоненты Joomla, модули, плагины и т. Д. *

...