Основные функции Joomla во внешних скриптах - PullRequest
0 голосов
/ 21 марта 2011

недавно я работаю над пользовательским компонентом Joomla.И мне нужны основные функции Joomla в некоторых внешних скриптах (которые не являются частью фреймворка Joomla).

Допустим, у меня есть компонент и его пользовательский класс, которые не являются частью структуры Joomla.

www.url.com/components/com_customcomp/custom_classes/some_class.php

Итак, я загружаю в него классы Joomla:

if (!defined('JPATH_COMPONENT') or !constant('JPATH_COMPONENT')){

        define( '_JEXEC', 1 ); //let direct access

        define( 'JPATH', $_SERVER['DOCUMENT_ROOT']);
        define( 'JPATH_BASE', $_SERVER['DOCUMENT_ROOT'] . '/administrator' );
        define( 'DS', DIRECTORY_SEPARATOR );
        define('JPATH_COMPONENT', JPATH_BASE.DS.'components'.DS.'com_customcomp');

        //load joomla framework

        require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
        require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php');
        require_once( JPATH_LIBRARIES .DS.'joomla'.DS.'factory.php');

        $mainframe =& JFactory::getApplication('site');
        $mainframe->initialise();               
    }

Все работает отлично, за исключением некоторых основных функций Joomla, таких как JURI :: root ();который возвращает:

www.url.com/components/com_customcomp/custom_classes

Вместо:

www.url.com/

Также некоторые странные результаты дают JRoute :: _ () и т. д.

В чем проблема?Как заставить эти функции работать должным образом?

Ваша помощь будет оценена.

1 Ответ

1 голос
/ 23 марта 2011

У меня была похожая проблема раньше ... Я создавал альтернативную точку входа для Joomla.Нативные классы используют значения по умолчанию, которые дают плохие результаты, когда «обходятся» ...

Единственный способ обойти это - создать новый объект JURI с правильным uri .

$uri = JFactory::getURI('correct uri');
...