Actions

J1.5 talk

Difference between revisions of "Developing a MVC Component/Creating an Administrator Interface"

From Joomla! Documentation

(Some minor extensions could help extend the form and add additional information)
(Really a great tutorial ... but too many hello.php's: new section)
Line 72: Line 72:
  
 
[[User:craigmoore|Craig Moore]] 13:06, 09 May 2009 (UTC)
 
[[User:craigmoore|Craig Moore]] 13:06, 09 May 2009 (UTC)
 +
 +
== Really a great tutorial ... but too many hello.php's ==
 +
 +
First of all, great tutorial, a very good effort to explain the basics.
 +
 +
Maybe just my problem:
 +
I personally prefer to edit several files at a time, what means, i have 10-20 tabs open in my editor (UltraEdit).
 +
In my case that means, that my editor tab-bar looks like:
 +
 +
hello.php - controller.php - hello.php - hello.php - hello.php - controller.php - hellos.php - and so on ...
 +
 +
I would kiss the shoes of everyone who would:
 +
- precisely explain naming conventions for files (which file may, which file must be called hello.php)
 +
- resolve the hello.php-maze in this tutorial with more speaking gilenames
 +
 +
 +
Thanks to the authors, best regards and a hello to everyone
 +
 +
Jochen

Revision as of 10:31, 3 June 2009

Contents

Renaming Part 4

I checked out the comment below. ;-) Certainly, the multitude of hello(s) is confusing. What I did is to rename most everything.

Whenever there's something like HelloWhateverHello, the first Hello represents the component front-end, and the second represents the view/model. By the way, each view has its own model, which I think is pretty much standard MVC architecture. On the other hand, one controller can control several views, although this example doesn't do so.

Conversely, if you see HellosWhateverHello or HellosWhateverHellos, the first Hellos represents the adminstrative back-end, and the Hello or Hellos at the end refers to the view for editing one greeting or for listing all greetings, respectively. (Replace *Whatever* with Model, View, or Controller as appropriate.)

So, I renamed all this to look like FrontWhateverContent, AdminWhateverEdit, AdminWhateverList, and so on. Then I had to rename directories and files as well, so that models/hello.php became models/content.php in the front-end and models/edit.php in the back-end. Likewise, views/hello/ becomes views/content/ in the front-end and views/edit in the back-end. Also, in the back-end only, models/hellos.php & views/hellos/ become models/list.php & views/list. Lastly, I changed controllers/hello.php to controllers/edit.php, to reflect the change from HellosControllerHello to AdminControllerEdit.

Hope this clears things up a bit. It's a tedious refactoring exercise to do all this renaming, but it *is* doable. Good luck.

"Hello" Overloaded

I'm not sure if anybody checks this, but I'm having a difficult time making my own component out of this document.

The first three chapters of this documentation are great. They are simple and to the point. The fourth, this page, is very confusing.

First off, the word "hello" is way over loaded. In the Creating an Admin Interface there are two models and two views: Hello and Hellos

It's impossible to know why we need two different models. Why cant we use one model and two views? Its totally impossible to understand which one gets called when.

I have discovered there are a lot of name conventions used here, but after reading this document over and over, it's still very difficult to know what the conventions are. This is probably stemming from "hello" being way too overloaded.

The method "get()" in JView is called in both views. It is supposed to automatically know which model to use, and which method to call. However, I don't think I followed the naming convention correctly, as it simply is not working (I get empty data with no error).

I think I could untangle the naming conventions myself, but with "hello" so overloaded in this example, I am having no luck guessing.

Great up to chapter 3

The documentation was great upto chapter 3. Got confused in 4th chapter.

Also, this doesn't cover how to create sub menus for a component File:Http://www.vojtechovsky.net/joomla/component/tutorial-joomla-1.5-free-component.png

Suggestions for improvement

  • This is a really long and tedious tutorial with a lot of very useful information in it. I think it would help to break it down into parts or creating separate tutorials covering this material.

Link title

REALLY GOOD DOCUMENTATION

Apart from a small error in part 4 which I have now corrected

did read:

       $row =& $this->items[$i];
       $checked    = JHTML::_( 'grid.id', $i, $row->id );
       $link = JRoute::_( 'index.php?option=com_hello>controller=hello>task=edit>cid[]='. $row->id );

now reads:

       $row =& $this->items[$i];
       $checked    = JHTML::_( 'grid.id', $i, $row->id );
       $link = JRoute::_( 'index.php?option=com_hello&controller=hello&task=edit&cid[]='. $row->id );


James Conroy 16:29, 16 February 2009 (UTC)

Excellent documentation, but could use a slight extension

Have been able to create components using this set of tutorials, but am missing how to use non-string based data in the administrator interface.

The admin form only has one field (a string) and it might be useful to have either examples of, or a link to some other examples of how to view / capture other types of data such as :

Checkboxes (boolean) Dropdown menus / radio button (int or string)

While it is easy to add the HTML form components (and even populate them with the values from the model), it isn't immediately clear how to recapture the data of these alternative types.

There is another tutorial I have seen on this wiki that has the "build in a rich editor" function, could use a link from this page.

Craig Moore 13:06, 09 May 2009 (UTC)

Really a great tutorial ... but too many hello.php's

First of all, great tutorial, a very good effort to explain the basics.

Maybe just my problem: I personally prefer to edit several files at a time, what means, i have 10-20 tabs open in my editor (UltraEdit). In my case that means, that my editor tab-bar looks like:

hello.php - controller.php - hello.php - hello.php - hello.php - controller.php - hellos.php - and so on ...

I would kiss the shoes of everyone who would: - precisely explain naming conventions for files (which file may, which file must be called hello.php) - resolve the hello.php-maze in this tutorial with more speaking gilenames


Thanks to the authors, best regards and a hello to everyone

Jochen