2

I am joomla user and I have created some extensions's and templates for joomla 2.5, but now I upgraded to joomla 3 because of bootstrap framework and responsive templates. I need your help here:

How to update joomla 2.5 extension to work with joomla 3 and be responsive?

I googled for a wile and couldn't find any answer about "extensions".

Irakli
  • 1,151
  • 5
  • 30
  • 55

3 Answers3

3

It's a big question, but here are some baseline steps.

First, make sure that your 2.5 code is clean. That is if you are still using any classes that were deprecated in 2.5 first go ahead and update them in your 2.5 version or else do that first in your 3 version. If you aren't logging deprecated classes you should do so to make sure you don't miss any. In particular you want to get rid of JRequest and look for any methods you might have extended that themselves extended JObject and make sure you are not relying on those methods. Also, you need to make sure you have changed any extends JModel to extends JModelLegacy (and similar for JView and JController). Depending on the complexity of your outputs you can likely follow the core code as a model for your administrator layouts. For the front endin my experience you are mainly just changing layout files to use the newer classes and ids.

Elin
  • 6,507
  • 3
  • 25
  • 47
2

If you use the Component Creator to develop your component framework you can specify if you want to build Joomla 2.5 or Joomla 3.0 compatible code.

Søren Beck Jensen
  • 1,676
  • 1
  • 12
  • 22
1

Since 2.5 is the current LTS version until 3.5; the majority of the core changes are deprecated versus being completely removed. Meaning you can still use them and there are overall not many things required to migrate a 2.5 component, for now. I would definitely read through the walk through provided by Soren, but here are the three "major" required changes to get a 2.5 component working on 3.1 and above Joomla... with caveats of course! :D

1) Make sure all your view classes extend JViewLegacy

2) Make sure your primary controller extends JControllerLegacy instead of JController

3) Make sure your primary component entry point (my_component_name.php file in component root) use JControllerLegacy::getInstance('my_component_name') instead of JController::getInstance('my_component_name')

Brian Bolli
  • 1,873
  • 1
  • 12
  • 14