Disable Joomla! two-factor authentication

The Joomla! two-factor authentication is a great security improvement. But if you got locked out, maybe because your smartphone with the Google Authenticator installed broke down, was factory reset or the app was uninstalled – what to do?

  1. First of all, reinstall the Google Authenticator app back into your smartphone or tablet
  2. Use FTP software or similar to access the Joomla! installation directory
  3. Go to the plugins folder
  4. Rename the folder twofactorauth to something else
  5. Access the backend login page (i.e. /administrator) of your site
  6. Now the secret key field is gone, so proceed and login with just username and password
  7. Once logged in, you can rename the plugin folder back to twofactorauth
  8. Go to Users in the Joomla! backend and find your user account and click on it
  9. Click the Two factor authentication tab and scan the QR code with Google Authenticator on your smartphone/tablet
  10. Done! Now you can login using two factor authentication again

Joomla problem after upgrading to 3.6.3 – Error decoding JSON data: object property name separator ‘:’ expected the bad data is: {“”}

After upgrading to Joomla 3.6.3 I got this error message when trying to login to administrator:

Error decoding JSON data: object property name separator ':' expected the bad data is: {""}

Solution was found here using the method suggested by Brent Laminack.

You need to issue the following SQL command using for example phpmyadmin:

update TABLEPREFIX_modules set params = '' where params like '%{""}%';

Note that you must replace TABLEPREFIX above with the prefix your Joomla installation is using.

How to add search by CTRL-F in Joomla codemirror editor

When working with template files like css in Joomla the codemirror editor is used. However, a great annoyance is that it is not possible to use the browser search (CTRL-F) to find code. When your css becomes large this can be really annoying.

There is a search addon available for codemirror however. This is how you add it to your codemirror editor in Joomla:

Download these files:

https://codemirror.net/addon/search/search.js
https://codemirror.net/addon/search/searchcursor.js

Upload the files into your Joomla and place them in the <Joomla root>/media/editors/codemirror/lib directory.

Edit the file <Joomla root>/plugins/editors/codemirror/layouts/editors/codemirror/init.php

Find the two lines (around line 19-20) looking like this:

JHtml::_('script', $basePath . 'lib/codemirror' . $extJS);
JHtml::_('script', $basePath . 'lib/addons' . $extJS);

After them, add the following lines:

JHtml::_('script', $basePath . 'lib/search.js');
JHtml::_('script', $basePath . 'lib/searchcursor.js');

Save the file and enjoy searching in codemirror using the commands described in the search addons page (like CTRL-F etc)!

Note: A future possible system update will however overwrite the changes made in init.php.

 

Solution by Stefan Helander, HelTech Communication AB.

Joomla Update component missing

Sometimes the Joomla Update component is missing in the Components menu in the backend. A workaround has been to use the extension manager and paste the update package URL and make the update that way.

But when updating to Joomla 3.5.0 that method is not possible. A quick solution, if the Joomla Update component is present but just not displayed in the menu, is to call the URL to the component directly. In the address bar of your web browser, enter:

http://yoursite.com/administrator/index.php?option=com_joomlaupdate

Now you can do the Joomla version update.

To solve the problem on a more permanent basis (i.e. to get it back into the Component menu in the backend), see this article.

How to remove unwanted formatting, like class=”MsoNormal”, in Joomla content

If a content administrator pastes text containing styling into the editor in Joomla, the formatting is kept as it is in the source (another web page or a Microsoft Office Word document for example). The general idea using a template on a website is that the template should control the looks of headers, paragraphs etc. By keeping the formatting on the pasted text, it will cause your website to have a variety of fonts, styles and sizes.

It can also be a problem when a content administrator receives text material for the website, it can be written in Microsoft Office Word, causing a paste to include unwanted formatting, like the class=”MsoNormal” (Mso = Microsoft Office formatting).

This solution removes all class and style tags from the content. This means the user will no longer be able to set a different font style or size on the content. So that will be entirely controlled by the template. However, if you as the super super admin, who knows what you are doing, need to be able to create content with class and style you can add an unfilterered group for your own account. Note that if your content then is being edited and saved by a filtered user, your classes and styles will be lost.

We assume for this example that all content administrators are Super Users.

  1. Go to System -> Global options -> Text filters
  2. For Super Users, select Filter type = My own blacklist
  3. In the column Filter tags enter span
  4. In the column Filter attributes enter class,style
  5. Click Save

If you need to be able to save unfiltered content for a user, such as yourself, do this:

  1. Go to Users -> Groups
  2. Click New to add a new group
  3. Name it Unfiltered and make it a subgroup to Super Users
  4. Click Save & Close
  5. Go to Users -> Users
  6. Click on the user you want to edit (presumbaly yourself)
  7. Click on the Groups tab
  8. Unselect Super Users and select Unfiltered (make sure it really is a subgroup to Super Users, otherwise you have just removed your accounts super users priviliges)
  9. Click Save & Close
  10. Go to System -> Global settings -> Text filters 
  11. Make sure the group Unfiltered has No filtering selected as Filter type
  12. Click Save

 

Unwanted code is displayed on Joomla articles when caching is enabled

Unwanted code, like below, is displayed on articles when System -> Global settings -> Cache is set to ON (both for conservative and progressive caching). The first time the article is loaded it looks ok but when reloading it garbage code like below is displayed. System is Joomla 3.4.8.

Example of unwanted code displayed:

{idkey=7001b0[url=http%3A%2F%2Fsomedomain.com%2Fom-site][title=Om+oss][desc=+%7Bloadposition+undermeny_4_text%7D+%7Bloadposition+undermeny_4_bild%7D+]}{cmp_start idkey=9514[url=http%3A%2F%2Fdomedomain.com%2Fom-site][title=Om+oss][desc=+%7Bloadposition+undermeny_4_text%7D+%7Bloadposition+undermeny_4_bild%7D+]}

This is generally caused by a third party plugin. To track down which one is causing this you need to disable plugins one by one and clear the cache before reloading (reload at least twice).

In my case, it was a plugin called Content – Facebook-Twitter-Google+1 causing the trouble. I tried reordering the plugin, from first to last without any success so I simply just had to ditch it and find another one.

I found out that the BT Social Sharing plugin was a better alternative. Apart from not giving the above trouble it doesn’t slow down the site as the Facebook-Twitter-Google+1 plugin did.

Joomla 1.5 PHP fatal error allowed memory size exhausted in libraries/joomla/error/exception.php [SOLUTION]

After a site move (from one webhosting to another) the site reported error 500 internal server error. When checking the logfile the file libraries/joomla/error/exception.php reported that allowed memor size was exhausted. I tried increasing it by adjusting the php.ini settings all the way up to 2 GB without resolving the problem. This is way more than Joomla should need.

The problem was that I had forgot to update the temp and log paths in Global settings to the ones on the new server. The path the site is running under can be found by the menu Help -> System info. Then I adjusted temp path and log path in Global settings and the problem was resolved.

If your site gives you error 500 internal server error, access your Joomla database using for example phpMyAdmin and delete all rows in the jos_session table.

Another solution if the problem is a corrupted database is to repair the database tables using phpMyAdmin.

In configuration.php, also try setting cache_handler=”file” instead of “memcache”.

Joomla 3.4 too many redirects (303)

On a Joomla site currently in offline mode the front page gave us “too many redirects” error. It turned out the reason was the article connected to the home page menu item had been unpublished. By publishing the article the problem wsa solved.

Joomla t3 bootstrap dropdown submenu not working on tablet and phone

A template based on t3 boostrap framework has a problem when click a menu item where there is a submenu dropping down. The visitor has no possibility to click the submenu item. The problem occurs in the android native browser but works fine in chrome for android. Some reports says the same problem occurs in the iphone/Ipad safari browser too.

To resolve this, go to the templetes in joomla backend and configure the t3 bs. Go to navigation and change dropdown trigger from hover to click (as tablets and phones doesn’t have the possibility of hovering).

Joomla error “Table jf_content doesn’t exist” after migration from Joomla 2.5 to 3.4

I was working on a migration project on site running Joomla 2.5, moving it over to Joomla 3.4. On some pages I received an error screen with SQL errors saying, among other things, “Table jf_content doesn’t exist”.

I found out that the common factor for the pages with errors was that they used the include_content_item plugin. I tried downloading the latest version of the plugin, which was 3.0.12 released in June 2014 supporting up to Joomla 3.3. However I was now running Joomla 3.4 and this didn’t solve my problem.

So I had to start looking for an alternative and found the Articles Anywhere extension which gave me similar functionality. After the include_content_item plugin was uninstalled and replaced by Articles Anywhere my problem was solved.