Presentation is loading. Please wait.

Presentation is loading. Please wait.

Developing a Model-View-Controller Component for Joomla Part 2

Similar presentations


Presentation on theme: "Developing a Model-View-Controller Component for Joomla Part 2"— Presentation transcript:

1 Developing a Model-View-Controller Component for Joomla Part 2

2 Introduction In the first Part of this series, creating a simple view-controller component using the Joomla! 1.5 CMS framework was demonstrated. In the first part, the greeting was hardcoded into the view. This doesn't follow the MVC pattern exactly because the view is intended to only display the data, and not contain it. In this second part of the series we will demonstrate how to move this out of the view and into a model. In future tutorials we will demonstrate the power and flexibility that this design pattern provides.

3 Creating the Model The concept of model gets its name because this class is intended to represent (or 'model') some entity. In our case, our first model will represent a 'hello', or a greeting. This is in line with our design thus far, because we have one view ('hello'), which is a view of our greeting. The naming convention for models in the Joomla! framework is that the class name starts with the name of the component (in our case 'hello'), followed by 'model', followed by the model name. Therefore, our model class is called HelloModelHello. At this point, we will only model one behaviour of our hello, and that is retrieving the greeting. We will thus have one method, called getGreeting(). It will simply return the string 'Hello, World!'.

4 The code for the model at site/models/hello.php

5 The code for the model at site/models/hello.php
You will notice a line that starts with jimport. The jimport function is used to load files from the Joomla! framework that are required for our component. This particular statement will load the file /libraries/joomla/application/component/model.php. The '.'s are used as directory separators and the last part is the name of the file to load. All files are loaded relative to the libraries directory. This particular file contains the class definition for the JModel class, which is necessary because our model extends this class. Now that we have created our model, we must modify our view so that it uses it to obtain the greeting.

6 Using the Model The Joomla! framework is setup in such a way that the controller will automatically load the model that has the same name as the view and will push it into the view. Since our view is called 'Hello', our 'Hello' model will automatically be loaded and pushed into the view. Therefore, we can easily retrieve a reference to our model using the JView::getModel() method. (If the model had not followed this convention, we could have passed the model name, as a parameter, to JView::getModel())

7 Using the Model Our previous view code contained the lines:
To take advantage of our model, we change this line to:

8 Adding the File to the Package
All that remains is to add an entry to the XML file so that our new model will be copied. The Joomla! framework will look for our model in the models directory, so the entry for this file will look like (it should be added to the site section): <filename>models/hello.php</filename>


Download ppt "Developing a Model-View-Controller Component for Joomla Part 2"

Similar presentations


Ads by Google