Drupal in Moodle sharing session - session

I have a Moodle site, in one of the Moodle pages I have an iFrame which contains a Drupal application. I want the Drupal application to see whether the user is logged in on Moodle, and if so show extra content.
However, I cannot access the session data from Moodle (especially information on the User) to in Drupal.
I tried two things:
If the iframe was a normal PHP page, I'd pass session_start(); on the top of the page in order for the session to persists, but I have no idea HOW to do that in Drupal.
And since they are on the same server, I tried accessing the config.php file in Moodle from a plain PHP file in the Drupal directory, and, as expect, I was able to get the variable. But as soon as I do this inside the Drupal application, a clash in function name between Moodle and Drupal threw an error.
The other option is to add a plugin in Moodle which sets a cookie on user login, a cookie that Drupal can get. But I'm really against this option since anyone can set a cookie and it persists. (There's no guarantee the user will click log-out)
I've never used/touched Moodle and Drupal until today. Can anyone help me figure out how to check whether a user is logged in on Moodle, from an iframe running a Drupal application?

A quick google gives the following moodle plugin that may be useful: https://moodle.org/mod/forum/discuss.php?d=208285
Looks like it allows single sign-on between the two, I've never used moodle before, but this may be a step in the right direction.

Related

Magento 1.9: frontend pages are blank (only header is visible)

I am new to Magento, We have one Magento 1.9 version website. Actually I want to change the host, for this, I took all files backup from the server and also exported the database and then I have uploaded all files into another host(Godaddy) and imported the database. Everything working fine at the admin panel or backend pages, but front end pages not loading properly, just its loading header part of the page.
I didn't change anything in the files, I just transferred the files from one host into another hosting, but I don't know why frontend pages are not loading.
Please anyone give me a solution to fix that issue. Please see the below screenshot for reference. Thank you in advance.
This behavior could be due to a PHP error that is not being printed to the screen because of the PHP configuration. Try enabling print error on PHP and see if anything shows up. Contact your provider (Godaddy) for guidance.
Also, ensure that all configuration on admin panel is set. When you upload database and make a new installation, even when uploading the old database, if you do not specify the same old encryption key, some configuration will be missing, for example payment provider tokens and so on.
Check also if your home page CMS still exists and is configured to show on home page. Check this on CMS pages and maybe on your theme configuration.
system -> configuration -> general -> web -> homepage CMS
For any further guidance, would need more details.

Joomla com_users component unable to load some templates

I have modified the users component of Joomla, specifically the file components/com_users/controllers/profile.php and included some custom templates in components/com_users/views/profile/tmpl
It is mostly some forms which I am submitting and then redirecting to specific pages for further actions.
Example scenario :
Above option is accessible to user right after login. I have put it on the profile page by modifying default profile template.
So when someone enters a name, and presses search, then this form is submitted through form
action="<?php echo JRoute::_('index.php?option=com_users&task=profile.selectSendMessage'); ?>"
This in turn calls the function named selectSendMessage which is placed in profile.php file. The function looks like :
As you can see the function redirects to
index.php?option=com_users&view=profile&layout=sendMessage
I have placed sendMessage.php template in com_users/views/profile/tmpl
Everything works fine on localhost which I have set up on MAMP in MacOS
I moved the website to a live server a few days ago. I have followed all proper steps to migrate website and database from localhost to live server. Still any of the custom templates I have put in are never reached.
The strange thin is that Edit User Profile which is redirected to from the same profile.php file from a function edit(), with template in the same location as I have put in edit.php in views/profile/tmpl works as expected.
I am using 1and1 shared hosting plan 1&1 Unlimited for hosting the website.
I have been trying to fix this for quite some time now, but cannot understand the problem. I have tried reinstalling the website several times, tried installing from web apps from 1&1 control panel and modifying it, but no success.
Any tips and insights are welcome. Thank you.
It turns out that 1and1.com hosting somehow doesn't support layout names with a capital letter in it. I changed all layout names to lower case alphabets and everything worked fine like it should.
If someone faces the same issue, this is worth a try. It was particularly hard to debug since you will never suspect that could be a problem. I accidentally stumbled on the solution while playing around.
Thanks.

Joomla Login Username & Password Getting Filled In Automatically

I had turned on Joomla cache for a while I came across that Joomla login username & password getting filled in automatically. So I turned of cache and happened to be working for the small period of time. Now I experience the same issue even when Joomla cache is turned off.
Given that Joomla automatically cache in the root folder. In the root, There is a folder called cache and inside there is a folder called pages. When it delete the pages folder it happens to be working fine.
How can I fix this? What could be the issue?
Most probably you have enabled auto fill options on your browser and your browser is filling them automatically when same page loads.
If you want to disable page cache, go to Plugin Manager and disable System - Cache plugin.
The website cache has nothing to do with forms being autofilled. That is a browser function.

Unexpected 302 Redirects in Joomla

I locally designed my site. Then exported MySql database as Sql file and executed the scripts in the real server. Also copied the joomla directory to the server.
Now, I am getting strange 302 redirection errors in my web site, when I am accessing the home page. However, I am able to login into the admin panel. I can see all my contents available.
The redirection happens to the same page, i.e. continuous requests are issued to the index.php/en/ (checked using fiddler).
Am I missing any configurations?
Regards,
Well this is tricky without a link to the site to see the behaviour in person, but it could be that you forgot to upload a .htaccess file or set the Redirect Base or cookie path/domain in the configuration.php (if it's empty then it's probably not a problem, only if you have manually edited it).

Access cakephp session (auth) from outside cakephp

I have a CakePHP website with its own login system using the Auth component. I would like to know if the following is possible:
A user has logged in and is navigating the website. At one point, he can click a link that opens an external php file. With external I mean that it could be in another folder of the same server, but outside the CakePHP app folders.
The "tricky" thing (for me) is to only show the contents of that php file if the user is logged in (to prevent someone without an account accessing those contents). I can't use Auth there because I'm "outside" Cake... I don't know if maybe using $_SESSION, but I don't know how...
Is this even possible? And yes, the php has to be outside the CakePHP app folder system.
Any ideas?
I'll add you also need to set session name to "CAKEPHP" using
session_name('CAKEPHP')
just before your external app session_start() otherwise you could not apply Kashif Khan suggested solution :)
Cheers,
Yes you can access the cakephp SESSION outside cakephp folder. try this session variable
$_SESSION['Auth']
if it exists then check for user here
$_SESSION['Auth']['User']
This is not working in Cakephp3. After calling
session_name("CAKEPHP");
session_start();
Application session is expiring.

Resources