Hikashop Menu messed up after upgrade from 2.5

  • Posts: 30
  • Thank you received: 1
  • Hikaserial Subscription Hikashop Business
10 years 7 months ago #186529

-- HikaShop version -- : 2.3.5
-- Joomla version -- : 3.3.6

Hi, modifying a site for a customer here. They used Virtuemart, I convinced them to move to Hikashop. They were on Joomla 2.5, I'm in the process of upgrading to 3.3. After installing Hikashop Essential and updating to 3.3, the menu-bar of hikashop is injected as a replacement for the title in the module position "title" in the backend. It took me a VERY long time to find out why that was the case. I guess that the 2.5 default is adding it in the title, while the 3.3 default is in the main area. That is VERY confusing, since it looks pretty broken in 3.3 with the 2.5 default.

Long story short: I would consider that a bug and ask you to fix this for future versions.

Thanks

Please Log in or Create an account to join the conversation.

  • Posts: 26264
  • Thank you received: 4043
  • MODERATOR
10 years 7 months ago #186530

Hi,

As explained in the documentation and in a lot of threads in this forum
www.hikashop.com/support/support/documen...html#display_general

Menu position : As you might have already seen, HikaShop does not use the standard joomla menu interface. We decided to do our own interface in order to handle an additional level of menus so that you can easily reach any functionality of the HikaShop backend. Our custom menu is added under the title of the page by default on 2.5 and below but some backend templates have a reduced size for this area, thus hiding the menu. So you have here the possibility to add the HikaShop menu above the main area where you should not have such issues. If you upgrade from 1.5 or 2.5 to 3.0 or above, you will have to turn off that option after the update.


Regards,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

  • Posts: 30
  • Thank you received: 1
  • Hikaserial Subscription Hikashop Business
10 years 7 months ago #186740

I knew that you would point me to a place in the documentation, but the problem is, that I wouldn't even know what to search for. Considering that this option is basically useless in Joomla 3.x, wouldn't it make more sense to disable this feature completely for 3.x?

Besides that, I'm currently going through your codebase, because I got a bunch of routing issues and I hope that you will clean this mess up as soon as possible... As a quick and global measure, please remove all the DS constants from your code. They are never needed. Not in Joomla 1.5 and definitely not in Joomla 3.x. And please drop the support for everything below 3.x asap. You wont have any fun with that if you keep supporting it... If you are interested in some help in all of this, feel free to contact me.

Regards,
Hannes

Please Log in or Create an account to join the conversation.

  • Posts: 84220
  • Thank you received: 13673
  • MODERATOR
10 years 7 months ago #186762

Hi,

Considering that this option is basically useless in Joomla 3.x, wouldn't it make more sense to disable this feature completely for 3.x?

In fact no, it is useless with the "isis" template but is still working with "hathor".
Joomla 3 is around 10% of the Joomla websites. 2.5 is around 40% and Joomla 1.5 have a little less than 45%
I don't think that we will drop the support of Joomla 2.5 like that ! Especially because keeping the compatibility make it easy to migrate from J2.5 to J3.0 with the same component installed.

And when you install HikaShop on a J3 website, the setting is pre-configured to the right value for Isis.
But because not everybody is using "isis" and in J3.0 and J3.1 the menu was still displaying fine ; the option is still there.

We don't plan on removing all the DS in the first. First, removing all of them will probably break the code in some places. The DIRECTORY_SEPARATOR is indeed unecessary in most cases but not in all cases: alanhogan.com/tips/php/directory-separator-not-necessary
If we were to remove them all, the code would break due to paths given by PHP being with \ on windows while the code would then only handle /. And I don't see why changing that would "clean this mess". If you think that the code is messed up, changing DS in / won't change much but will certainly create new real bugs unless the changes are not done automatically and properly tested.

Please Log in or Create an account to join the conversation.

  • Posts: 30
  • Thank you received: 1
  • Hikaserial Subscription Hikashop Business
10 years 7 months ago #186800

nicolas wrote:

Considering that this option is basically useless in Joomla 3.x, wouldn't it make more sense to disable this feature completely for 3.x?

In fact no, it is useless with the "isis" template but is still working with "hathor".

But that still means, that it is useless for 3.x, since one user could set the backend template to isis, the other to hathor and your option is only available globally for all users.

nicolas wrote: Joomla 3 is around 10% of the Joomla websites. 2.5 is around 40% and Joomla 1.5 have a little less than 45%
I don't think that we will drop the support of Joomla 2.5 like that ! Especially because keeping the compatibility make it easy to migrate from J2.5 to J3.0 with the same component installed.

I can understand the wish for compatibility to 2.5. Its EOL was just now and there are several people that still need time to upgrade or even didn't get that memo at all yet. But Joomla 1.5 is already several years EOL and quite frankly, someone who still works with Joomla 1.5 does not care for updates. Those people installed the system once and after that never made an update and also don't plan on updating anytime soon. They are also not a group of people that would bring you business. It doesn't matter for those people if you drop support or not, because they wont upgrade to a more recent hikashop version anyway. If you want to keep the door open for these people, you can provide an old version that still works on all systems and which can be used to upgrade from 1.5 to 2.5, etc.

nicolas wrote: We don't plan on removing all the DS in the first. First, removing all of them will probably break the code in some places. The DIRECTORY_SEPARATOR is indeed unecessary in most cases but not in all cases: alanhogan.com/tips/php/directory-separator-not-necessary

In the link that you pointed to yourself, it clearly states that "Windows" does not care if you use / or \. (It is actually PHP that does not care if you use one or the other) So in all cases where you do require_once, the DS stuff is simply a waste of bits and CPU cycles. Using it together with trim() is also not wise, since users will mostly type in / in user options for a path and now you are checking for \ on a windows system instead of / that has been inserted by the user. So you would have to actually hand over '\/ ' to trim as a constant and not DS . ' ' to be safe here. With that I should have covered about 80% of the usecases for the DS that you have in your code. Replace all those and it will still work on all Joomla and PHP versions.

After that, we could start with the issues in URL routing. Right now I have a page where two links to the same resource have different URLs.

I've adviced my customers to use Hikashop, since I thought it is superior to VM and I hoped that you don't stick to that model "We are a shopping software, we have to support EVERYTHING down to our first release". Please tell me that I'm wrong. Otherwise I have to search further for a good webshop. I don't care about support for legacy systems. I care about quality code and systemspeed.

Please Log in or Create an account to join the conversation.

  • Posts: 84220
  • Thank you received: 13673
  • MODERATOR
10 years 7 months ago #186894

Hi,

First, please note that we appreciate your feedback and I'm not trying to be harsh or anything.

But that still means, that it is useless for 3.x, since one user could set the backend template to isis, the other to hathor and your option is only available globally for all users.

So basically, unless we can't cover all the potential cases, we should not try to cover the most common cases (only a handful of administrators all using hathor because they prefer/need it over isis) and just remove that option because you don't need it yourself ? I'm sorry but that won't happen.

I can understand the wish for compatibility to 2.5. Its EOL was just now and there are several people that still need time to upgrade or even didn't get that memo at all yet. But Joomla 1.5 is already several years EOL and quite frankly, someone who still works with Joomla 1.5 does not care for updates. Those people installed the system once and after that never made an update and also don't plan on updating anytime soon. They are also not a group of people that would bring you business. It doesn't matter for those people if you drop support or not, because they wont upgrade to a more recent hikashop version anyway

That's what you say but we see every week someone with a question on the upgrade of a VM1 shop on Joomla 1.5 to a HikaShop shop on Joomla 3 and for these people, having any easy way to upgrade their shop by installing HikaShop on their Joomla 1.5 website before doing the migration of Joomla itself is a big help to them. I believe that keeping that compatibility is mainly helping the work of web developers migrating their clients to Joomla 3 and not the other way around.

In the link that you pointed to yourself, it clearly states that "Windows" does not care if you use / or \. (It is actually PHP that does not care if you use one or the other) So in all cases where you do require_once, the DS stuff is simply a waste of bits and CPU cycles. Using it together with trim() is also not wise, since users will mostly type in / in user options for a path and now you are checking for \ on a windows system instead of / that has been inserted by the user. So you would have to actually hand over '\/ ' to trim as a constant and not DS . ' ' to be safe here. With that I should have covered about 80% of the usecases for the DS that you have in your code. Replace all those and it will still work on all Joomla and PHP versions.

Yes, I agree with you and that's what I said too. You can replace 80% of the DS in the code and it will still work the same. The problem is with the 20% (probably even a lot less) where it would be a problem because we use for example the realpath function of HikaShop which would return \ on windows and replacing the DS of the code handling the return from that function would break.
Note that we have more than 5000 DS in the code of HikaShop. And since we can't replace them automatically but check them one after the other when replacing them, it would be a huge work to save a couple of processing cycles. Instead of doing that over a few weeks of work, I prefer to work one afternoon on improving the data retrieval caching system, like I did for HikaShop 2.3.5 which helps reduce the queries on the frontend by approximately 10% and saved a hell of a lot more processing cycles.
It's note that we don't want to replace the DS. It's just that we think that there are a lot more other ways to improve HikaShop than working on that.

After that, we could start with the issues in URL routing. Right now I have a page where two links to the same resource have different URLs.

HikaShop being a Joomla extension, we use the routing system of Joomla along with its pitfalls (menu items) and that includes duplicate URLs. Now, there are already solutions in place in HikaShop to avoid the problem. I invite you to check the "SEF" section of the Features tab of the HikaShop configuration where you can find the "Force canonical URLs on listings" option which, by itself can remove the duplicate URL issue. When you activate it, HikaShop can fill automatically the canonical URLs of your products and categories so that the links on the listings would all use the same URL even if you have links coming from different modules or menus going to the same product/category.

I've adviced my customers to use Hikashop, since I thought it is superior to VM and I hoped that you don't stick to that model "We are a shopping software, we have to support EVERYTHING down to our first release". Please tell me that I'm wrong. Otherwise I have to search further for a good webshop. I don't care about support for legacy systems. I care about quality code and systemspeed.

We care about the quality of the code, the system speed AND backward compatibility. Keeping backward compatibility doesn't mean that we can't evolve. Just as an example, we've integrated with the tags system of Joomla 3.x but we still support Joomla 1.5. Both are not necessarily incompatible. It would be a shame to stop looking at HikaShop because of that I think, but it's your call. We're not here to convince all the planet to use our software and ditch all the other alternatives, which might have qualities that some persons prefer over the qualities of HikaShop and that's fine with us.

Please Log in or Create an account to join the conversation.

  • Posts: 30
  • Thank you received: 1
  • Hikaserial Subscription Hikashop Business
10 years 7 months ago #186927

nicolas wrote: Hi,
First, please note that we appreciate your feedback and I'm not trying to be harsh or anything.

Don't worry, I take this as a discussion between gentlemen. ;) I want to provide quality work for my customers and I embrace the open source idea, so I want to give back to those that make my work possible. That said:

nicolas wrote: That's what you say but we see every week someone with a question on the upgrade of a VM1 shop on Joomla 1.5 to a HikaShop shop on Joomla 3 and for these people, having any easy way to upgrade their shop by installing HikaShop on their Joomla 1.5 website before doing the migration of Joomla itself is a big help to them. I believe that keeping that compatibility is mainly helping the work of web developers migrating their clients to Joomla 3 and not the other way around.

I understand your reasoning here, but I think it is flawed in that you think that you have to provide your latest and greatest version to those on 1.5. Users on 1.5 will have a pretty old version of VM and thus you would not really have to worry about your current migration script to not work anymore with those people. That said, I encourage you to have a look at how Nicholas at Akeeba handles this. He provides an old version that will still run on Joomla 1.5/2.5 and that allows you to work with his software in order to prepare for the upgrade and you can then upgrade from that old version to the latest version in a later step. I see that as a very viable option for you.
You have a 1.5 with VM and want to switch to Hikashop with Joomla 3.x? Please first install this old Hikashop Starter edition first, migrate your data from VM to Hikashop, then do the Joomla update and last update Hikashop to the latest version.
Yes, it is one more step for those users, but it allows you to slim down your code and use more features of the newer Joomla versions.

Regarding the DS topic: I disagree with you here, since I think that a consistent and WTF-free code is the basis for good further development. I think the Joomla project itself learned that in a hard way the last few years and we are getting to a point where our WTF/min are reaching a bearable level. images.cryhavok.org/v/WTFs+per+Minute.jpg.html ;)

nicolas wrote:

After that, we could start with the issues in URL routing. Right now I have a page where two links to the same resource have different URLs.

HikaShop being a Joomla extension, we use the routing system of Joomla along with its pitfalls (menu items) and that includes duplicate URLs. Now, there are already solutions in place in HikaShop to avoid the problem. I invite you to check the "SEF" section of the Features tab of the HikaShop configuration where you can find the "Force canonical URLs on listings" option which, by itself can remove the duplicate URL issue. When you activate it, HikaShop can fill automatically the canonical URLs of your products and categories so that the links on the listings would all use the same URL even if you have links coming from different modules or menus going to the same product/category.

I would strongly encourage you to help me out with my project here: www.joomlager.de/crowdfunding
It can reduce the amount of code necessary for your router a lot, clean up your URLs greatly and provide a lot of new options to your users. It will however also require you to make some changes to your system. If you are interested on more regarding this, feel free to contact me personally. You got my contact details in this account and on that website.

nicolas wrote: We care about the quality of the code, the system speed AND backward compatibility. Keeping backward compatibility doesn't mean that we can't evolve. Just as an example, we've integrated with the tags system of Joomla 3.x but we still support Joomla 1.5. Both are not necessarily incompatible. It would be a shame to stop looking at HikaShop because of that I think, but it's your call. We're not here to convince all the planet to use our software and ditch all the other alternatives, which might have qualities that some persons prefer over the qualities of HikaShop and that's fine with us.

I have a strong interest in a powerfull shopping solution in the Joomla eco-system that is reliable and of high quality. And be it just to be able to point users to a better system than VM. So far I'm not interested in ditching Hikashop, but I also need some improvements to be able to sell this to my customers further. I would not be happy if I have to do those as core-hacks instead of proper implementations upstream.

Please Log in or Create an account to join the conversation.

  • Posts: 26264
  • Thank you received: 4043
  • MODERATOR
10 years 7 months ago #186930

Hi,

I would strongly encourage you to help me out with my project here: www.joomlager.de/crowdfunding
It can reduce the amount of code necessary for your router a lot, clean up your URLs greatly and provide a lot of new options to your users. It will however also require you to make some changes to your system. If you are interested on more regarding this, feel free to contact me personally. You got my contact details in this account and on that website.


I'm sure that you know that HikaShop has already contributed financially to your indiegogo campaign (taking the "Big Component-Level" one)
We are listed in the contributors and we also put a comment during the campaign:

All the HikaShop team is excited about that project and we’re looking forward to see that new router in Joomla !

So, yes I think that we will be in contact for that. And if there are things that can then be improved in HikaShop thanks to that improvement in the Joomla router system, that's good !

That said, I encourage you to have a look at how Nicholas at Akeeba handles this.

Yeah, we already talked several times with Nicholas during last Joomla events (JAB, JWC or JF), sharing our experiences about packaging and support ; about Akeeba Backup or Akeeba Subscription.

I would not be happy if I have to do those as core-hacks instead of proper implementations upstream.

Knowing the fact that HikaMarket is a full multi-vendor component which does not have any code in HikaShop but that is just using the triggers ; I am quite sure that you can do a lot of things in HikaShop without having to hack the core.
For sure some elements have 3 or 4 years old and could need a little bit of refreshing ; and that's we are doing when we are not answering to the support messages (like I am writing a refactoring of the checkout system in order to make it fully dynamic using AJAX).
We are also sending PR to the Joomla projects, participating the Joomla events (local or worldwide), etc.

And if you have things that you have modified in HikaShop and that you would like to be integrated upstream on our end, we will be happy to look at them.
We've had contributions from 10s of other developers already in HikaShop so we're definitely not closed on third party integration of code modifications.
You can use our contact form to contact us about that so that we can discuss together the modifications that you want to be integrated.
www.hikashop.com/support/contact-us.html

Regards,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.
Last edit: 10 years 7 months ago by Jerome. Reason: formating

Please Log in or Create an account to join the conversation.

Time to create page: 0.071 seconds
Powered by Kunena Forum