Joomla com_weblinks not working after upgrade from Joomla 2.5 to 3.4

After upgrading my Joomla 2.5 site to Joomla 3.4 the com_weblinks stopped working. I got error messages like these:

Notice: Trying to get property of non-object in /var/www/SOMESITE/components/com_weblinks/models/category.php on line 87 Warning: Creating default object from empty value in /var/www/SOMESITE/components/com_weblinks/models/category.php on line 88 Notice: Undefined property: stdClass::$url in /var/www/clients/client1/web2/web/webhotel24-2/modules/mod_weblinks/helper.php on line 92
Notice: Undefined property: stdClass::$title in /var/www/SOMESITE/modules/mod_weblinks/tmpl/default.php on line 21 Notice: Undefined property: stdClass::$description in /var/www/SOMESITE/modules/mod_weblinks/tmpl/default.php on line 38

As of Joomla 3.4 the com_weblinks is no longer a core part of the Joomla distribution. Instead it is found in the Joomla Extensions Directory (JED). To try to solve the problem I downloaded the latest com_weblinks from JED and tried to install it in my Joomla 3.4 site. This failed with an SQL error however

After trying to manually delete the weblinks package originating from Joomla 2.5 from the site (by deleting the folders com_weblinks folders and renaming the table ending with the name “_weblinks”) I ended up in a kind of deadlock situation where I wasn’t able to install the new weblinks from Joomla Extensions directory either. It didn’t install due to SQL errors.

The problem with upgrading a weblinks package that has been present during a Joomla 2.5.28 -> Joomla 3.4.0 problems are being adressed here. However, just downloading the suggested pkg_weblinks341 didn’t solve the problem for me either. Trying to install it in my Joomla 3.4 site gave SQL errors about columns images and version already existing in the table ending with the name “_weblinks”. Just deleting the table “_weblinks” gave another error about the table “_weblinks” not exisiting.

This is how I solved it.

Warning! 1) The below solution will have the drawback of deleting all your existing weblinks, but it will get the extension up and running with Joomla 3.4 and 2) make backup of your site and database before you begin!

So my solution was:

  • Using phpMyAdmin I made a copy of the table with the name ending with “_weblinks” to a name ending with “_weblinks_OLDJ25” (just to have an easily accessible backup of the table)
  • Using phpMyAdmin I deleted the columns images and version from the table “_weblinks”
  • I downloaded pkg_weblinks341 and now it was possible to install it using the normal Joomla extension install