I have a Magento site with one domain, one store and a store view for each language. I need to add a mobile version of the site and have that in all the languages.
If I add another store for the mobile version then store views for each language, I land up duplicating all the languages in the admin area.
The only solution I can see is to have 2 instances of Magento. One with all the store structures (acting front end – install A) and one with all the product (acting backend – install B)
Install A would have two stores and all languages per store and install B would have one store and store views for each language so we only manage each language once.
We would then need to connect these two Magento instances using the API (xml with SOAP). This way we manage each language once and the front end can have as many variations of that language as we like.
Does this look like a workable solution or is there a simpler way to achieve this functionality?
You don't need 2 magento versions.
Magento supports different themes on the same store view for different devices.
All you need to to is to configure a different theme.
For this go to: System->Configuration->Design, select each store view from the top left selector, or Default config if you want to use the same theme for all languages.
In the Theme section you can click on the Add Exception button under the field you need changed (most probably all that support exceptions) and fill in the following.
Matched Expression - iPhone|iPod|BlackBerry|Palm|Googlebot-Mobile|Mobile|mobile|mobi|Windows Mobile|Safari Mobile|Android|Opera Mini
Value - The name of your mobile theme.
Related
I have a question to Magnolia CMS (integrated with Spring) users.
I have to write e-shop integrated with CMS where we can divide all pages into two categories:
Edited and added by admin
static pages like user account settings, shopping cart etc.
First ones, must be totally customizable by admin - I mean, admin must be able to create his own template, add text areas or graphics/video whenever he wants. He also must be able ( this is very important) to create new products which must be also stored in db to be accessible for the application code ( to fill the products list by myself in the code or to set the prices on the static admin pages).
So user can add as many products as he would like, create separate template for some of them and I have to be able to search for this products in db ( for example when user try to use search criteria). The search panel must be created by me - but where admin will place it is up to him.
The second type of pages are static pages done in JSP and I do not expect to change it using CMS.
As the second type of pages is of course not a problem, I do not know what CMS solution I should use for first type of pages.
I thought about Magnolia CMS, but as I can see all templates must be created by programmer in the code.
Also I'm not sure if it's possible to implement mechanism to maintain products ( inside the e-shop) - from one hand admin must be able to add templates for them in CMS, but I must be able to access them from the code ( to maintain them at shopping cart, make invoice etc). The product prices are set from admin panel ( static pages) as well- not from CMS of course. Maybe I can add any single product at the static pages ( insert it into the db) and somehow connect CMS page with it ?
I also need to add that main page template must be designed by HTML designer, so perhaps it would be plain HTML and this main template would be updated due to the admin needs in CMS.
Cloud anybody please advice me the best CMS solution where I can achieve all this ?
Best Regards
I've seen fair number of shops implemented that way with Magnolia where you use spring & web flow to manage a shopping cart and checkout process, while letting editors to create & customise products & categories & promos available in the shop.
You can also get similar (w/o spring) integration just by installing shop module of Magnolia. It's product and product category management might come in handy even if you were to replace checkout by your own.
To answer the other questions and stipulations
you can write your templates in ftl and models in groovy and have those hosted inside of the repository, thus giving access to them to editor and allowing her to change whatever needs to be changed. However there is also danger in that since templates are responsible for generating html, editor might be able to break html layout by making changes directly to the templates. While you want editor to create new products and modify existing ones, Magnolia lets you separate template of products from the content of products so you can let editor to edit just all the fields that you deem editable for given product without having her to ever access html or ftl directly.
as you mention, html will come from designer, so what you pbly want is to take that html, break it into functional blocks that repeat in multiple pages, save it as ftl templates and replace sample text in there with FM tags to retrieve such data from Magnolia. Actually, even better, download the STK static prototype and hand it over to your graphic designer. Tell her to create design by changing css/js/images only, but not to change structure of the html itself in the prototype, then you can truly just drop in css/js/img provided back to you by the designer.
regarding static pages - you can always serve them from Magnolia even if you don't expect anyone to ever edit them (since it usually happens sooner or later that someone wants to edit them) or you can simply configure bypass for the url for such pages and have Magnolia ignore them so they can be served by underlying application server container
to bring in Spring based application, you might consider looking in more details at and using Magnolia's Blossom module which will in turn let you annotate your spring controllers to be treated as Magnolia templates to make integration even more simple.
HTH, Jan
I am wondering how to manage my product catalog for Magento efficiently. I keep one stock of products and sell them through multiple websites, those websites are in turn all in multiple languages.
The most common advice is to create a store for each website and a different store view per language, in which you can translate the product description. This doesn't seem very efficient to me. For example, if you have 4 different websites, each offering products in English and in Spanish, you have to do the same translation 4 times for each website. This becomes very cumbersome for multiple websites in multiple languages and a lot of products.
What I ideally would do, is maintain one translation per language and keep track of my product stock centrally (ie. still be able to manage the product globally). How can this be achieved in Magento?
Update: after digging around some more, asking in IRC channels, posting on forums, and searching the heck out of Google and the Magento Connect extension repository, I am starting to realise this is one of Magento's short comings. I am going to develop my own solution for this. Please leave a message here if you are interested in the same functionality, if there is enough response I will see if I can make it available for others.
Unfortunately there is no good answer to this question. Product texts are typically entered on the store view level, like you already discovered. Having multiple store views in the same language (but under different websites) will create a burden and overhead to configure.
If this was my store, I would pick one of these routes:
Load data from an external source, where product data is already nicely managed. Managing product data in Magento can be a pain.
Or, if you MUST do it in Magento, create a custom module to update all the relevant fields across multiple websites. You could create an event listener "on product save", that updates all texts for store views with the same language.
or, you can override the product resource model, so product names, descriptions and some other texts are loaded differently from the database (but this would definately be the most complicated route).
In App/Locale/ Directory this is Global locale directory you can read it in all your websites managed from one back-end !
And you can set the local directory for each storeview from
system->configuration->design->Translations
so basically you can use the same locale for different themes as long as you maintain the files updated with all the variables !
I was running 9 websites with different store views from one backend i never had issues with translations !
I'm testing my Magento store with a bought theme at Princessly.com (which I have been testing and customizing since 4 months ago). I have an obsession of testing ALL different / possible pages of a site before launching it. In most cases, the site is simple enough to have about 3 - 10 different types of pages (list page, article page, contact form page, about page, etc.) which I would go through one by one to tweak and customize into every minor detail.
However, Magento (based on Zend Framework) seems to be very versatile in having all different sorts of pages accessible from a variety of different URLs (even for the same content). Understandably, the user experience is much more sophisticated with a eCommerce site than that of a content site, thus having many more types of pages.
In addition to the problem, theme designers may not fully understand Magento. They would usually left many not-so-common pages un-designed with just default styles that would look pretty ugly to users who step on them.
My question is, how can I find a reference / list of ALL possible Magento pages so that I can go through them one by one to make a consistenly good design throughout the entire Magento store?
Thanks a lot! It sucks to have obsessive disorders.
There is no list of "ALL possible Magento pages". Any frontend-routable module can have any number of action controller classes under its controllers directory, and those classes can have any number of route-satisfying methods.
I'm looking for a way to use multiple themes in one XPages application, each theme active in a different section of the application. For instance to support an single .nsf application with both a public facing website (custom theme) and a CMS with a OneUI theme.
You can set which theme is used through the whole application on the XPage Properties tab in Application Properties. It's also possible to change the theme for a user's session with this code:
context.setSessionProperty("xsp.theme", <theme_id>)
But both options set the theme for all pages in the current .nsf, and I'm looking for a way to specify theme X for one part of the application and theme Y for a second part.
Is this possible?
On any page that should use an alternate theme, use the following syntax to apply the property directly to the view root:
<xp:view>
<xp:this.properties>
<xp:parameter name="xsp.theme" value="alternateThemeName" />
</xp:this.properties>
</xp:view>
I tried all of the above, but none of them worked for me. But I found a solution:
Paste this into the view's beforeRenderResponse event:
context.setSessionProperty("xsp.theme", "yourAlternateThemeName")
There is one issue: once you have used this way you have to use it always and on every page as this sets a session property which is stored as long as you are logged in.
Just talked with colleague Tony Mcguckin.
You can change the theme per page. Under all properties of the XPage select data-properties and create a new property with name "xsp.theme" and value "yourThemeName".
While I like the idea of having page-specific themes, based on the specific use case you're describing, the "right" way to do this is to have two separate XPage applications bound to the same back end data store. Not only does this make it simple to specify a different theme for each, it also simplifies the ACL (assuming you'll have different people accessing the public site vs. the CMS), makes it easier to tune performance by having different settings per application, and even without having application-specific settings, should improve performance slightly just because of Java class loader behavior: each NSF acts as a distinct ClassLoader, and each XPage or Custom Control in your NSF results in the storage of a separate class file. So, in theory, if the features of your public site require you to create 5 XPages and the CMS features span 10 XPages, simply splitting these into two separate apps makes it easier for the class loader to retrieve the class for any page a user loads, because it doesn't have to ignore the classes it will never need for that user just to find the one class it does need at the time. So I'm still tempted to find a way to get page-specific themes working just for the "cool" factor of it, but for this specific purpose, I'd recommend using two different applications entirely, with a different theme assigned to each.
I dont know that much about themes but cant you check in your theme (with some ssjs) at which viewroot ( by id? ) you are and according to that include the correct styles , css and other resources?
Joomla comes out standard with registered user, and public user
If I add a third (registered) User that allows the third user to a) create a single separate page in Joomla that the user can input pictures (like you do on face book). b) Access all pages as the standard registered user does.
How do I go about that in Joomla 1.7, add a third (registered) User and give it level 2 accesses?
Then how I create a single page for each user. Somehow I need a reference to each user’s page and show that in a list and control the list search parameters. And i need the page viewable when selected and in the page info needs to be received by the third user. I’m not creating face book but I need that sort of techno somehow.
Can someone point me to what I need to look at, editorials, videos, etc. I know I need to lean PHP better.
Could I make a foulder for each registered user to hold photo's and name the folder acourding to the user's name or email address.
I would recommend to go with a component that offers the functionality that you need. You will find it easier to control the user rights there as they are standard settings available. This is more convenient than building everything from scratch.
Some well known components are:
Community Builder (main component free)
JomSocial (commercial component)
There are more components and plugins available, you may also want to search the Joomla Extensions Directory (JED) for something suitable (http://extensions.joomla.org/extensions/social-web)