model-view-controllerjoomlacomjoomla-component

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 :

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 :

function selectSendMessage

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.


Solution

  • 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.