News:

Support the VirtueMart project and become a member

Main Menu

Virtuemart and Joomla 1.6: opportunities

Started by Erik P, November 01, 2009, 16:28:02 PM

Previous topic - Next topic

Erik P

I've had a close look at the alpha2 version of the Joomla 1.6 source trees in svn, and test-driven it.

The progress is impressive. The new ACL system (fine-grained user access) and unlimited deeply nested categories are there already, in their full glory.

JForm is also there. You can find a detailed description of what alpha2 already implements here: http://developer.joomla.org/coordinator-blog/304-joomla-16-alpha-2-released.html

We're now waiting for JContent to materialize, that is, the promised system of content type plugins. It is on the roadmap and in progress:
http://developer.joomla.org/coordinator-blog/292-feature-patches-for-16.html

With JContent, Joomla will finally sport a Drupal-like CCK (Content Creation Kit). I know that we already have the K2 workaround, but this would be a real native and fully integrated CCK.

While Drupal may have been light years ahead of Joomla 1.5 in the areas of ACL and CCK, this will no longer be the case with Joomla 1.6. The Joomla team seems to be rapidly closing the gap. At the same time, Joomla will hang on to the strong points in which it was already doing better than Drupal.

In terms of the competition between Virtuemart and Magento, it is the underlying integration with Joomla that was keeping Virtuemart in the race, in spite of Magento's impressively larger feature set. The new Joomla 1.6 version is creating opportunities to integrate even more tightly with the underlying CMS and tap into the power of what 1.6 is bringing, and bring that new power directly into the hands of the Virtuemart users.

The new Joomla 1.6 core library will allow for important source code size reductions in many extensions, across many components, including Virtuemart.

I have looked at the opportunities to benefit from J1.6 at the source code level, for the main Virtuemart functional areas:


  • the product catalog
  • the shopper records and shopper groups
  • the cart in the session
  • the checkout pages
  • the order list and order processing
  • interfacing with financial accounting application

If you are interested in a detailed analysis of what has become possible at the source-code level, read my blog post at: http://sankuru.biz/en/blog/5-virtuemart-configuration-issues/55-joomla-16-and-virtuemart.html

My feature request: Regardless of the massive potential payoff, achieving tighter integration with Joomla 1.6, will take quite a bit of effort. Is it feasible in terms of resources for the VM project team?
http://sankuru.biz. Software services. Customizing and fixing Virtuemart installations.

aravot

You are back, I thought you were going to join the team? what is your request? Joomla 1.6 is in alpha.

Erik P

#2
Quote from: aravot
You are back
I have been involved modding and extending Virtuemart at the source code level for mostly commercial projects over the last year. So, even though I have been working with the VM source code trees almost every day, I haven't been involved with the VM project proper as yet.
QuoteI thought you were going to join the team?
I am still interested in joining the core VM team, but I guess the process of joining got stuck somewhere last year. I didn't follow up and the core VM team did not follow up either. So, I didn't really pay attention to this process. I am, however, still interested in going ahead with it.
Quote
what is your request?
I'd like to enter a dialogue with the core team concerning Joomla 1.6 and how VM could benefit from the improvements in the Joomla core library.
QuoteJoomla 1.6 is in alpha.
It's in alpha2 and the core Joomla team is now working on beta1. I've seen the progress from what was alpha1 in SVN to what is now beta1 in SVN. It goes fast. I sense they will release beta1 quite soon. In my impression, we are only a few months away from a solid first Release Candidate.

I want to prepare for J1.6. How does the VM core team view J1.6? To what extent would the VM team be interested in doing a specific J1.6 track for VM? What would it take? Is it possible to commit resources? Is there a need for additional resources? At the moment, I am specifically interested in what the Joomla core team is doing, and how we can benefit from that in the VM world.
http://sankuru.biz. Software services. Customizing and fixing Virtuemart installations.

aravot

Erik when you say core team didn't follow up is not true (users might think we are not interested in recruiting new members.), Soeren posted a comment to your request to join but did not receive a reply, however I admit I didn't send a follow up email because I wasn't sure if you are interest or not.

Lets open a new chapter.

Next version of VirtueMart will be 1.5, this version will be compatible with Joomla 1.5 and php 5.2 only, no major new features are introduced in this version our goal is to make the version MVC style, we have started conversion process of the code, and we need all the help we can get if you are interested checkout out the task manager http://dev.virtuemart.net/cb/proj/tracker/browseTracker.do?tracker_id=4 pick a task and let me know I will assign it to you so no two persons are working on the same task once you complete it send me the files if everything is in order I will give you SVN access so you can commit directly.

If you have questions you can PM me or join us via skype http://forum.virtuemart.net/index.php?topic=21084.0

Please don't come back and say we didn't make the initiative.

Erik P

Quote from: aravot on November 05, 2009, 18:55:08 PM
Erik when you say core team didn't follow up is not true (users might think we are not interested in recruiting new members.), Soeren posted a comment to your request to join but did not receive a reply, however I admit I didn't send a follow up email because I wasn't sure if you are interest or not. Lets open a new chapter.

There must indeed have been some miscommunication, and I am probably as much responsible for that as anybody else :-)


QuoteNext version of VirtueMart will be 1.5, this version will be compatible with Joomla 1.5 and php 5.2 only, no major new features are introduced in this version our goal is to make the version MVC style


Even though MVC is definitely a commendable default design pattern, in itself, it does not address any of the real limitations in the current VM source code tree.

Just look at the core Joomla components themselves, many of them have indeed been re-done in MVC style. What did it help? MVC, in itself, does not address the main issues, because extending the component re-done in MVC style, still requires hacking the core source code.  In my impression, just porting VM to MVC would be a massive effort without a commensurate massive pay-off.

The current VM 1.1 version may be hairy (and laced with warts here and there), but it does work fine. Furthermore, the planned VM 1.5 will not work that much better.

The massive payoffs will come from using the J1.6 JForm and JContent classes.

What's more, it will take so much less effort to port VM to J1.6. I estimate that J1.6 will allow for a VM source code tree of 30% of the current size.

For example, just have a look at the difference between the download sizes of Joomla 1.5 (5MB) versus Drupal6 (1.3MB). Drupal6 is so much smaller, while it has substantially more functionality built-in than Joomla 1.5.

Joomla 1.6 is trying to match this property of the Drupal source code, and that is where the core Joomla team has made an excellent decision, with far-reaching strategic implications. The improvements in Joomla 1.6 will allow for better code density all across Joomla. They will (eventually) not only allow for a much smaller Joomla, but also for much smaller extensions (including VM). The trend is fantastic. In my impression, J1.6 will become increasingly smaller, while at the same time becoming increasingly more capable.

By the way, there are still quite a few interesting innovations to look at, test-driven by the Ruby on Rails (RoR) guys, which allow to improve both extensibility and source code density. Even though not every single one of the of the RoR ideas have worked out, it is obvious that some of their ideas have emerged as winners. But then again, those things should probably be implemented at the Joomla level.


Quotewe have started conversion process of the code, and we need all the help we can get if you are interested checkout out the task manager http://dev.virtuemart.net/cb/proj/tracker/browseTracker.do?tracker_id=4 pick a task and let me know I will assign it to you so no two persons are working on the same task once you complete it send me the files if everything is in order I will give you SVN access so you can commit directly. If you have questions you can PM me or join us via skype http://forum.virtuemart.net/index.php?topic=21084.0 Please don't come back and say we didn't make the initiative.


I would be scratching one of my own itches, by helping to increase VM's extensibility. However, merely porting VM to Joomla 1.5 MVC would do very little to attain that goal, while we can all see that it will cost a very substantial effort to achieve it.

I do agree that the current non-MVC 1.1 source code looks a bit old-fashioned and even slightly daft, in these days of generalized MVC everywhere, but it works fine and it is definitely "good enough".

And then there are other issues. Why waste time porting the VM shopper and shopper group management to MVC, when we can already see that, beginning next year, J1.6 will have a fully-fledged ACL system with extensible user records? By the time the porting effort is ready, we could as well throw it away (it will become mostly redundant).

And then we have the product type system and the product attribute system. These systems cannot be fixed in their current incarnation. They should rather be abandoned, instead of painstakingly porting something that will never work properly anyway. We simply need extensible product records instead. The J1.6 JContent class should help solving this issue. Furthermore, the Joomla core team will already spend most of the effort needed to make JContent work. So, as soon as their stuff works, we can just start using it.

There is quite a bit of enthusiasm on my side, to work on a J1.6 port. Concerning the J1.5 port, however, in terms of contributing, the problem might quickly become: lack of enthusiasm.
http://sankuru.biz. Software services. Customizing and fixing Virtuemart installations.

aravot

In my opinion Joomla 1.6 stable will not be ready for another 6 months (at least) even than not everyone will make the jump, Joomla 1.5 is here and will be used by users for at least 18 more months why cut those users.

A year ago you were talking about Joomla 1.5 now it is Joomla 1.6, I get the feeling you don't want to help only give your opinion.

If you are serious and want to help, you know what to do.

Erik P

#6
Quote from: aravot on November 06, 2009, 01:47:29 AM
In my opinion Joomla 1.6 stable will not be ready for another 6 months (at least)

I hear this remark more often. You could be right. But then again, we may all be under-rating their progress ... I'm sitting on the fence concerning this one :-)

Quoteeven than not everyone will make the jump, Joomla 1.5 is here and will be used by users for at least 18 more months why cut those users.

The existing J1.5-VM1.1 users will not upgrade any time soon. I definitely agree with that.

People choose VM, and therefore, install Joomla. It usually works that way. For new sites, few people will mind installing J1.6, if that is a requirement for a new VM version.

QuoteA year ago you were talking about Joomla 1.5 now it is Joomla 1.6

VM1.1 now works absolutely fine with J1.5. The VM team has added very quickly support to run VM natively under J1.5. I think the team has done a great job. That effort worked out really fine. I am quite happy with the current J1.5-VM1.1 combo. Thanks to everybody who worked on it.

QuoteI get the feeling you don't want to help only give your opinion. If you are serious and want to help, you know what to do.

I understand that the core VM team wants to do a J1.5 version first. That's ok. It won't harm anybody, will it? In the meanwhile, I am looking for other people to start brainstorming about a J1.6 version. We should all be able to live in peace with each other, shouldn't we?

And you're right. It's hard to get people to volunteer.
http://sankuru.biz. Software services. Customizing and fixing Virtuemart installations.

aravot

Are you a politician? Can't get a straight answer from you.

Simple question do you want to help with the current code conversion of VirtueMart yes or no?

Erik P

#8
Quote from: aravot on November 06, 2009, 18:24:17 PM
Are you a politician? Can't get a straight answer from you.

A forum is a public place. Therefore, it does indeed make sense to carefully phrase replies. These things show up even years later in Google search results, and can give unfavourable impressions about the people involved in the conversation. So, indeed, yes,  I do watch my words, and probably still not enough :-)

QuoteSimple question do you want to help with the current code conversion of VirtueMart yes or no?

I am interested in helping with the VM1.1 series, in order to contribute the following extension hooks:


  • onCartProductAdded, onCartProductRemoved --> in order to use the hook to add free products and promotional items. It would allow external promotion tools to intervene in the cart.
  • onOrderStatusChanged --> in order to use the hook to send out invoices, sms confirmations, send a purchase order to dropshippers, and so on.
  • beforeMenuRender,afterMenuRender --> in order to use the hook to add any new type of menu items to VM, at the top or at the bottom.

To make these hooks effective, the API's signatures should be designed carefully. I'd be more than happy to chat with the team about what parameters these functions could have, to be effective, and contribute the patches that would result from our discussions.

It is perfectly possible to add two plugin groups in J1.5 for VM such as vmcart, vmorderstatus, and vmmenu.

By simply using the J1.5 plugin system, we would save ourselves the effort to design an additional plugin system for VM. The amount of code would be very limited, but it would massively help extension developers to extend and customize VM.

The plugins will probably only work in J1.5, but that does not matter, because people would still be able to run such VM version in Mambo and J1.0. They would simply not be able to use any of these plugins without upgrading to J1.5.

Another thing that would make sense, is to reform the VM back end into a series of admin use case extensions ("vmcomponents").

For example, the product management (list+detail) can become a use case extension. We could just keep the current code, but install into separate folders, containing the current scripts for the use case in html and classes. The use case manifest would contain the menu items to list for the use case.

One such use case could be, for example:


  • html/product.XXXXX.php
  • classes/ps_product_XXXXX.php

going into something like:

administrator/com_virtuemart/vmcomponents/product containing the folders: "html" and "classes"

The use case would only contain that what is needed to manage the product list, records, and subordinate entities. The things that are used elsewhere too -- especially in the front end -- should remain where they are now (in the core html and classes folders).

An internal redesign to MVC of the vmcomponents use cases, could wait, until someone feels like doing it :-)

Granularizing the current VM use cases first, would seriously help in the porting effort to MVC. Everything that still not been ported can remain in the core folders, while waiting to get ported and then re-designed to MVC.

In the meanwhile, the vmcomponents extension system can already be used to replace builtin VM use cases or add external ones.

In that way, VM 1.5 would gradually emerge from the current VM 1.1, instead of doing a complete (and actually dangerous) rewrite.

As far as I am concerned, the front end with its theme system, including its handy overlay file system, is really "good enough", to keep using verbatim, until J1.6 materializes and can take over theming.

So, if the refactoring efforts are small, useful, consecutive, geared at increasing VM's extensibility, and gradually make an internal use case/component structure emerge from the current VM1.1 source tree, I am definitely willing to come on board for this effort.

So, yes, I am interested in helping out, but only in the areas that I personally find interesting. For the other areas, I am quite confident that other volunteers will show up to help out, bringing the additional assistance that will materialize at your earliest convenience.
http://sankuru.biz. Software services. Customizing and fixing Virtuemart installations.

bass28

We are interested in anyone who would like to convert some of the old vm code into new views/models.  If you are interested in doing some of these smaller views please let us know.  For the initial release of 1.5, no changes will be done on the frontend...only converting administrator area view.