Content Management Systems

Upgrading Joomla CMS version 3.x to Joomla CMS 5.x

What?
An article for me or for whoever dares to upgrade their Joomla CMS from version 3 to version 5.

Disclaimer: I'm used to doing this without any third-party extensions. I strongly recommend you do a backup beforehand of the database and of all your files

Why?
I keep getting complaints that my server wants to upgrade my PHP v7.x to PHP v8.x. I also get complaints (from my server not from humans) that my Joomla version needs updating...

I'm writing this in case I ever have to upgrade other people's Joomla CMS and if it helps anyone else out there.

How?
There aren't too many steps but this is what I went through and I might amend this if I see any new issues:

K2 Items disappear

Basically you've woken up this morning, visited your website, and all your K2 articles are gone !!!!

If you login to your Joomla! administration panel (back-end) and look under k2 items, you should get the following error:

Warning: Invalid argument supplied for foreach() in /home/public_html/administrator/components/com_k2/views/items/tmpl/default.php on line 80

If I went to K2 Comments, I'd get an additional error:

 

Warning: Invalid argument supplied for foreach() in /home/public_html/administrator/components/com_k2/views/items/tmpl/default.php on line 80

Warning: Invalid argument supplied for foreach() in /home/public_html/administrator/components/com_k2/views/comments/tmpl/default.php on line 145
 
Installing phpBB3 for Joomla with a RocketTheme template

"OK this should take just a few minutes..."

I've written this because I spent all night on setting up a "quick" demo resulting in a quick 1 hour nap before having to go to my day job...  It sounds straight forward because both phpBB3 and RocketTheme talk about how to install the RocketTheme templates...  But it's not.  I'm rewriting their instructions here so that I can I do this on other websites:

Important Note:  On Linux (Apache), all file names and folder names are case-sensitive, so phpbb3 is NOT the same as phpBB3.  Bear this in mind during the installation process.

 

Add the website name to the page title in Joomla!

Change Page Title in Website
Here are some instructions on changing the page title in Joomla! CMS to display both the actual page title and other stuff. As I like doing this for this particular website (my personal one) in every version of Joomla it's been upgraded to, I've noticed some differences that I've noted down below.

Specific Joomla Template Providers

Everytime I update this article, Joomla seems to come out with a new version. If you have installed Joomla 2.5, this is now a setting in the global configuration... The only problem is that your landing page becomes "HOME - SITENAME.COM" which is ridiculous and I'm sure Joomla will release a new version addressing this.

JComments 2.3.0 with ReCaptcha in Joomla 2.5.x

Applies to: What?
Posting this as it was rather rewarding to achieve and I hope will be of some use to others in the same boat. This article details how to replace jComments built-in kCaptcha with Google's ReCaptcha. Note that I have an article on how to do this with a ReCaptcha alternative called PlayThru by AreYouAHuman.com

Why?
The kCaptcha used by the jComments extension is easily automated and no longer blocks spam comments.

How?
So the main bulk came from the JoomlaTune website but as it was a forum post that may get moved/deleted, I've copied most of it and put it here with my minor revisions/adjustments to get it actually working.

RokDownloads Manager does not list files

Well this isn't a problem for those that don't use RokDownloads. The other day, I logged in to upload some new files and manage some of my downloadable files... Only to find that the Rokdownloads manager would not list any of my files!?!

I am in the middle of writing a component that will hopefully comprise bug-tracking and download management all in one.

Until then, I thought I'd STFW (google) this issue and post a solution considering that even RocketTheme don't want to share this solution unless we continue to pay for the subscription. Understandable to some extent, greedy in another.

So far the solution has been to open this with Internet Explorer with a cleared-cache. A little annoying in view how much I hate Internet Explorer and it's various versions which only work with particular systems... Do not uninstall/install other modules/components as I believe this is some issue with overloading or with the actual code and you can get to this file manager to work without changing your Joomla! setup.

Watch this space for when I find a definitive answer!

ReCaptcha alternative: Integrate PlayThru in JComments 2.3 for Joomla 2.5

Applies to: What?
This article is a follow-up of my article JComments 2.3.0 with Google ReCaptcha (Joomla 2.5.x) but instead of using ReCaptcha, we're going to use an alternative called PlayThru by AreYouAHuman.Com.

Why?
The kCaptcha used by the jComments extension is easily automated and no longer blocks spam comments.

How?
So I have come up with what I consider a pretty stable solution. I adapted it from various legacy solutions when using Google's ReCaptcha.

Migrate Joomla! 1.5.x to 2.5.x+

Update June 2013 - How to use this migration script:

  1. Make a backup copy of your old Joomla website (1.5.x)

  2. Download and install the latest Joomla CMS
    • Go through the Joomla Web-based Installation GUI until the process deletes the Installation folder.
    • Avoid installing Sample Data if possible (there will be some but this script has been reworked to potentially accommodate).

  3. Download my migration script
    • Decide on which script to use:
      1. If you have a small site (less than 10'000 articles), then you will use the single script "migrate_j15_to_j25_new_v1_8.sql"
      2. For larger sites (~200'000 articles), then you will need to use the 3-part script "migrate_j15_to_j25_new_v1_6_pt1.sql", "migrate_j15_to_j25_new_v1_6_pt2.sql", "migrate_j15_to_j25_new_v1_6_pt3.sql". Part 2 is dedicated to content migration, the commands are split to do about 5000 articles on each iteration so as to avoid session timeouts and memory issues.
    • Edit the script, renaming the database and table names used (DO NOT CONFUSE THE FOLLOWING DATABASE NAMES OR YOU WILL END UP WITH NEITHER SITE WORKING!!!)
      1. Open the SQL file in your favorite text-editor
      2. Rename any instance of "my_old_database.jos_" to the name of your old Joomla 1.5 database or a copy of (note the "jos_" prefix to all J15 tables, if you have changed this then reflect this in the SQL file).
      3. Rename any instance of "my_new_database" to the name of your new Joomla 3.0 database (don't change the table prefix for the new Joomla and instead do this as the next step).
      4. Rename any instance of "my_new_database.my_prefix_" to the name of your new Joomla 3.0 database (note that we're reflecting the prefix to use but also the database name - by this step, "my_new_database" should have been renamed).
      5. Save the SQL file, this is now unique to your website and this process. It does not contain usernames or passwords but has the real database names and all website content, so do not redistribute without taking security measures.

  4. Run the SQL against your new database
    • Open your favorite database management tool (phpMyAdmin, workBench, navicat, sqlyog?) and connect to the new database.
    • This script will use both databases, reading from the old Joomla database and writing to the new one.
    • To run this script, your user needs SELECT, INSERT and UPDATE privileges on the new database (only SELECT on the old database will do). Special care has been made to avoid the use of functions, stored procedures, temporary tables, etc. This allows broader compatibility and customers who do not have DBAs to run this themselves. Personally I grant the user who will be executing the script full privileges or at least the same as needed to install Joomla CMS.
    • Cross your fingers and use your DB management tool to run the SQL file (or copy the contents of the SQL file into the input field)

  5. Re-build/Auto-correct some Joomla inconsistencies
    • Login to your Joomla Admin Panel using a System Administrator account ("Super User"?)
    • Go to Categories > click on the "REBUILD" icon (top right)
    • Go to Menus > click on the "REBUILD" icon (top right)

  6. Check your Joomla Admin User
    • Each new Joomla version is trying a different method making this very diffcult to maintain. Check that the "super administrators" for Joomla 1.5 are in your new Joomla site (as "Super Users").
    • Check that the system administrator for the new Joomla site (created on installation) is still a "Super User" (e-mail address, receives sys emails) and note their ID (identifier number).
    • See if elements created on install show as created by the admin user and not by one of your users who coincidentally has the same identifier.
    • Check that your OddUser (will be last user listed in users table) can login and their respective articles are still attributed to them.

  7. Prepare for Go Live
    • This migration script is not a silver bullet. It was created to take away the hours I know I would spend without it.
    • This is not an upgrade; it is likely that your client may reconsider the template they are using or may want to add new 3rd-party components.
    • If asked: "how long will it take", do not say 5 minutes. This script runs on average in 15 seconds. The remaining hours, days, weeks will be spent on bringing your website up to standard with all issues addressed and sporting the latest version of the Joomla CMS!


UPDATE 2012 - Valid for Joomla 2.5.x but only experimental for Joomla 3.0.x!
I still do not recommend using this for your site if you have no test environment, however... I have used this script continuously to migrate J1.5.x websites to J2.5.x without issue. I have managed to do whole migrations in under 2 hours (this script runs in about 20 seconds based on 1000 articles and 5000 users) and my clients are satisfied! I am so pleased I made this script; it has saved me so much time!

What does this do?
After many tweaks and corrections having upgraded multiple sites in the past few years with this script, the version below migrates the following:
  • Articles
  • Banners
  • Categories & Sections
  • Menus * NEW
  • Messages
  • Newsfeeds
  • Users * UPDATED
  • Weblinks

So this is fun. We've waited and waited and Joomla 1.6 is now stable... Exciting because this is not a simple 1.5.21 to 1.5.22 upgrade. But don't believe the drama across the web, the system introduces only a few new fundamental improvements (particularly Access Control and Groups) which actually only means some minor database alterations.

I've googled, yahood and binged, but still can't find a good way to upgrade my site from Joomla version 1.5 to 1.6 so as usual I find myself writing the first migration script. Why use a script? Well apps like jUpgrade didn't work for me. This is how to manually migrate using a MySQL database management tool like PhpMyAdmin. I'm not too bothered about upgrading my own personal site (Joomla 1.5), it's just the silly number of client websites I have to upgrade.

This I find a lot simpler, my day job involves working with SQL so this script was rather basic and quick to write. You have two databases, one with your Joomla 1.5 old content, and one following a fresh install of the latest Joomla (at time of last print: 2.5.6 - preferably no sample data pre-installed). Change the database names in this script (including the new random prefix for J2.5) and run it. 20 seconds later your Joomla 1.6-2.5.x website will have all your J1.5 articles and users...

DISCLAIMER:

This is to help ME migrate Joomla 1.5 sites to Joomla 1.6 automatically. I have also been using this happily for Joomla 2.5.x websites and more recently for an experimental Joomla 3.0.x website.

  • I do not work for Joomla!
  • This script is for my own use.
  • Joomla! are in no way liable for this script.
  • You can copy this script as long as you specify a link to its source.
  • You can use this script as long as you don't hold me responsible for the results.
  • If you don't understand what this script is doing, you shouldn't be running it. Please ask someone who does.

Please publish modules in offcanvas position.