CodeIgniter Forums
Integrate with joomla 3 auth. system - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Using CodeIgniter (https://forum.codeigniter.com/forum-5.html)
+--- Forum: General Help (https://forum.codeigniter.com/forum-24.html)
+--- Thread: Integrate with joomla 3 auth. system (/thread-62638.html)



Integrate with joomla 3 auth. system - nasser.man - 08-08-2015

I have a joomla 3 website and i want to create a simple application using CI3, i wondered is it possible (in other word, how i can) integrate my CI3 application with joomla login / acl system?


RE: Integrate with joomla 3 auth. system - nasser.man - 08-09-2015

I asked this question in joomla forum[http://forum.joomla.org/viewtopic.php?f=727&t=892795&p=3321459] , luckly is has an easy solution ( at least for some cases).

here 2 links for that, thanks for joomla/codeigniter community :

http://perfexionit.com/codeigniter-joomla-integration-part-1/

http://perfexionit.com/codeigniter-joomla-integration-part-2/


RE: Integrate with joomla 3 auth. system - nasser.man - 08-09-2015

Now I can copy some lines of code from joomla's index.php file and pase then into codeigniter's index.php and get logined joomla user info:

CI3's index.php file :
PHP Code:
...
// joooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooomla
if (version_compare(PHP_VERSION'5.3.1''<'))
{
die(
'Your host needs to use PHP 5.3.1 or higher to run this version of Joomla!');
}
 
define('_JEXEC'1);

if (
file_exists(realpath(__DIR__ '/..') . '/defines.php'))
{
include_once 
realpath(__DIR__ '/..') . '/defines.php';
}
 
if (!
defined('_JDEFINES'))
{
define('JPATH_BASE'realpath(__DIR__ '/..'));
require_once 
JPATH_BASE '/includes/defines.php';
}
 
require_once 
JPATH_BASE '/includes/framework.php';
// jooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooomla


/*
 * --------------------------------------------------------------------
 * LOAD THE BOOTSTRAP FILE
 * --------------------------------------------------------------------
 *
 * And away we go...
 */
... 

and in any index function of default welcome.php controller :
PHP Code:
...
    public function 
index()
    {
            
$this->output->enable_profiler(TRUE);

            
$this->joomla_app JFactory::getApplication('site');
            
$this->joomla_app->initialise();
            
$this->user JFactory::getUser();
            if(
$this->user->id 0)
            {
                
$this->user_groups $this->user->getAuthorisedGroups();
            }
            
            
print_r($this->user->id);
            echo 
'<br/>';

            
print_r($this->user_groups);
            echo 
'<br/>';
            
            
print_r($this->user->getAuthorisedViewLevels());
            
            
            
        
$this->load->view('welcome_message');
    }
... 

i wondered how it add extra resource usage to normal ci application? i activated ci's profiler and here is some memory usage in different cases:

Just unchanged CI3 welcome page :
~269,000 bytes

Just copied require_once JPATH_BASE . '/includes/framework.php' line into CI's index.php file:
~330,000 bytes

Copies required include file and some lines of code for retrieve user's id and groups (above second code block):
~761,000 bytes

now is it good choice to use this method (checking joomla user) in every page/controller/function? (my application need to check user's access almost in every action)

in real web application/or website, this solution can make issues?


RE: Integrate with joomla 3 auth. system - nasser.man - 12-22-2015

Hi, i have a simple CI application and i want to create a simple module for joomla for injecting some parts of my CI application into that, so i have created a library in CI and some function for that, and one simple module for joomla, now i want to create an object (instance of CI's library) and print its output to user.

now problem is that : which (minimum) files (of CI) i have to include in joomla, to CI works?