ExpressionEngine: how user friendly is it for client admins? - user-interface

Wordpress kind of sets the standard for great interfaces for end-users. Drupal is a little more mixed: it is a great experience if the developer updates the UX when they update the site functionality. Concrete5 and other CMSs basically exist soley on the merit of their end-user experience.
Where does ExpressionEngine fall into the mix? How much control does a non-developer admin have with EE, and how pleasant is that interaction for them?

That's really up to you. The backend of EE is completely customizable. It's a blank canvas by default, so you get to build your own backend that is fully customized to fit the exact needs of the client. You can give them more or less control as needed, and you can create different user groups that see different things (including different modules, different menu items, different channels, even different fields within a channel, etc.)
If I'm working with a client that needs a fairly straightforward site (read: brochure site/portfolio site with or w/o blog) and they're not terribly computer savvy, I almost always go with EE because I know I can make it dead simple for them to update their content. For users with a little more knowledge, I tend to give a little more flexibility. It's really up to you how you set it up for them.
I've never had a client complain that EE was difficult to use, and most are actually really surprised at how easy (and some use the word "fun") it actually is.. great confidence boost for people who have always had difficulty updating their site in the past or had to rely on others to do it for them.
Hope that helps :)

Related

Would a front-end developer used to Ruby on Rails like working with Magento 2?

I am a front-end developer who has worked with Ruby on Rails for 5+ years. Currently considering a job at a company that uses Magento (2). I know little about Magento, but i am getting the feeling by reading about it that it relies heavily on third-party stuff (themes etc). I am a strong believer of separation of concerns (back-end logic decoupled from front-end) and have a healthy aversion against third-party things like frameworks (always hated Bootstrap). Would i be happy working with Magento? Opinions and insight are heavily appreciated!
Currently considering a job at a company that uses Magento (2). I know little about Magento, but i am getting the feeling by reading about it that it relies heavily on third-party stuff (themes etc).
It's going to depend entirely on the agency you work for and what it is they do. You'll either hate it, or be mostly OK if mildly annoyed.
Magento's software is built on a web-MVC pattern. Its routing is based on fixed rules that turn paths into controller class names, or you can inject programatic routing objects yourself. It has a separate model layer that's similar to ActiveRecord. It has an EAV Model system built on top of this ActiveRecord-ish system. It has a view layer that's based on creating layout objects and adding individual template based blocks to this layout object. There's an XML based DSL for manipulating this layout object. There is a theme system that lets you distribute custom templates, CSS, and javascript for your system.
Magento's technology is based on PHP, which means you won't have anything like Rack, and you may be deploying to a Apache/MOD_PHP enviornment, or maybe a PHP-FPM enviornment.
Magento 2 is an -- incomplete? -- refactoring of Magento 1, so a lot of programming patterns you'll find will seem incomplete. Sort of like a house that's structurally sound and wired up, but missing outlets.
What will drive you nuts is the practice of Magento Ecommerce development rarely lets you use the underlying framework to develop features. Instead you rely on a lot of pre-made extensions or themes, and occasionally get to do in-house development on a custom extension. You will spend a lot of time debugging other people's code. So find out what the day-to-day work is before you take a job. Talk to other programmers at the company, and/or ask your potential manager/IT director what the work is. If it's an agency full of marketing folks and there are no other programmers or IT folks, realize that you're going to be the technology department.

Same Product Multiple Prices

Please Bear with me as I know It needs research from my side but still want to ask as It would make things a lot easier for me.
Here is what I want to implement.
An online shop where I would configure admin areas for different store owners (vendors). The store owner can belong to same area or different areas. Using the admin area, each store owner can select from pre-configured list of products and define prices for the products in different locations where they have a physical store. The end user can browse the products listing based on his location (area). If multiple vendors belong to same area as customer, the customer will see the product with multiple prices from different vendors. If none of the vendor configured the product of that area, customer will not see the product.
Now the question is, what would be the appropriate option for the above requirements.
Magento, Opencart, nopcommerce or something else?
This is based on my experience. My advice, if you want sth that goes beyond minor tweaks and a couple of new features, stay away from opencart for the time being.
First of all, you will have to pay (not little...) for extensions and mods of often low quality and crappy support. You should also feel lucky to find one that will cover all the features you want and interoperability between extensions is just non-existent. And if you ask for more features chances are you will have to pay again. There are some free extensions but most are a joke. Like, put a link in your footer or disable sth.
So your next option is coding. Opencart is easy to learn if you know basic php and you can start writing code fast. But.. Opencart lacks a solid mechanism for extending it (until v2.0 at least) and after a while it gets both chaotic and frustrating. Also, you will often need to implement stuff that needs some basic backend functionality from opencart but which is either offered in a way that is useless to you or with basic needed features absent. As a result you will find yourself creating your own "library" of functions that will allow you later to focus on your extension. Moreover there is actually no framework on which you can rely. Sure there are some functions and some methods that you can use, but that's it.
Another thing. The opencart community is not one of the easiest to go along with. I don't mean they are bad or that they will bite you, but people there try to make money and do not find it easy to share things with you, be it advice or code. Also, they are competitive. And they do not accept criticism, even suggestions, gladly. And there is a scent of eliticism in some threads that can upset your stomach.
This is how I have experienced opencart. I have to admit that I like opencart itself and I find pleasure in coding for it and even now I am debugging some new extension of mine. But often it reminds me that there is so much lacking and I often spend so much time doing trivial stuff that it makes me wonder if it is worth it.
I do not know about magento. It feels similar to opencart to me.
I would suggest drupal to anyone wanting to implement something custom. There is all a framework and powerful free as in speech extensions and a great truly foss community. There are a couple options there for building an eshop but I would go with the commerce module. It takes a while to get used to all the concepts but you can achieve what you want with just mere clicks. You won't even have to write code if you don't want to.
Again I repeat, avoid opencart if you need sth too custom (as you do). If not, opencart is one of the fastest to deploy.

Joomla versus CodeIgniter/YII

A partner has a website that needs to be rebuild from scratch as it simply can't cope with the large number of visitors (currently build using SilverStripe). The site should be able to deal with 5 million or more members using 20+ languages.
We were considering using CodeIgniter or YII because from research both appear to be excellent performers. However several people advised that we should consider the latest version of Joomla for this. For small websites we are happy to use Joomla but for a heavy load website our feeling says that we have to stay away from that. We are however not able to find any comparison between both from a performance point of view but we do require good arguments why Joomla would or would not at all be a good candidate for this. One comparison can be found here: http://vschart.com/compare/yii/vs/joomla/vs/codeigniter however this doens't tell me what to expect when the number of visitors is really high.
Can some advise how Joomla compares to CodeIngitor or YII considering that the site will receive a very high number of vistors and will use a 20+ languages (for silverstripe we build a translator module as the build in CMS was not usefull when using so many translators).
When you're dealing with a site of that scale, it's probably best not to shift to Joomla. Joomla can handle a fair bit, but I'd suggest that it would be far easier to have a Joomla site that large when the site has been adapting as the traffic increases.
Part of what makes your question hard to answer is that we don't know much about what your current site does.
Is it mainly a CMS? If so, Drupal may be a decent fit for you.
Is it a custom web application? It sounds like it could be, based on the number of translations you're handling.
Is it somewhere in-between? This could also be what you're dealing with.
If you're looking at either of the bottom two options, yes, shifting away from SilverStripe (but not to Joomla) sounds like it might be a good thing.
Given the volume of traffic you're dealing with, it sounds like you probably already have a revenue stream and a development team. In that case, it might be worth having a few of your developers play with CodeIgniter and Yii and see what they think.
I wrote up a detailed answer to a question about what type of framework to choose a while ago, which you can look over here:
https://stackoverflow.com/questions/10095906/yii-or-zend-or-other-frameworks-under-the-following-requirements/10115678#10115678
I'm a Yii fan, having checked out a bunch of other frameworks. Regardless of which framework you use, I'd like to offer one piece of advice that I've found key on all projects I've worked on.
You want to work with objects, not data arrays
The reason for the above is that your models (and the objects they produce) can end up having your business logic built into them. Doing this makes life far, far easier in the long run. A great book on the subject, aimed at manager's and quite high-level (there is no code, although there might be a few lines of psuedo-code), is Object Technology: A Manager's Guide. I'd highly recommend it.
Framework thoughts
CakePHP
I started dabbling with CakePHP until I found out it didn't hand back objects (just arrays), at which point I ran screaming.
CodeIgniter
Looking at what CodeIgniter has for database model support, I think you would quickly hit its limitations with a site of your size, so would recommend against it. And having EllisLabs deciding to leave CodeIgniter behind (see their website for more details) is not a good sign. The signs say stay away.
Of the PHP frameworks out there, these are the ones I hear the most things about:
Symfony 2
Yii (disclosure: I work with this one daily)
Laravel
Symfony
From what I can see of it, has been a huge stimulus to the PHP community and many best practices have come out of that community. Unit testing, Composer, pushes for PSR-1/2, the ideal of modularity of code (some of their core code is ending up in Drupal 8) are all great things that have spurred the PHP community into writing code that's better than spaghetti code. With that said, it feels kind of heavy and enterprise-y and looked to have a pretty heavy learning curve.
Yii
When I was looking for a framework, I had a lot of legacy code that needed migration. Yii's way of handling things, although opinionated at times, has done a lot for me as far as exposing me to good practices that are used heavily on the web. Highly recommended as well.
Laravel
When I was looking for a framework (2+ years ago), Laravel didn't exist. It's apparently quite slick and cutting edge (haven't looked at it yet, I've been busy landing new work regularly in the Yii world), but I am interested in dabbling with it. That said, here's a thoughtful article about Laravel and couple of considerations that I've wondered about.
The main developer, Taylor Ortwell, seemed to be a dominant force. That's a great thing while he's making money doing this and enjoying it. Not sure what would happen to the framework if he decided to do something else.
The speed of development on the framework is an awesome thing and means that all sorts of creative juices are flowing. It's a great place to go look at cool new things. That said, you're going to want your developers to be able to easily find information about the framework they're working with, which in 3-6 months may be severely out of date in the Laravel community. The Ruby on Rails community has the same type of good/bad problem when I've looked around over there; there is so much information about the new stuff that sometimes it's hard to find information about the version of the framework you're dealing with.
That said, there are lots of cool choices out there :-) I should probably wrap up, as this has gone on far longer than I'd intended. Let us know what you end up deciding and how it ends up going.
How big is the site really? Bigger than joomla.org?
Are you talking about big in terms of the amount of content in the database or in terms of the number of visitors.
Joomla really does not have problems with scale unless you are on an older version of MySQL in which case it slows down.
It depends on what kind of application you want.
If you want a CMS, Joomla is the way to go. Because this is what it was build for.
If you are about to create a real "custom" application Yii/Codeigniter is the way to go. (This is what yii was build for)
Regarding performance, from my expericnece Yii is a lot faster, because it comes with way less overhead. You can build the application just as you need it.
Well it's like compare green and salty. Really joomla is CMS, and Yii and CI are frameworks. If you considering make highload on joomla - it's not your job.
If you have high frontend load - maybe watch on js frameworks? Yii+backbone.js or ext.js for frontend is awesome, since you'll move alot to clientside.
CI is dead. I honestly like it, but its dead already. No extensions, no namespaces in future, nothing.
I can say + of Yii:
*faster then CI;
*have great documentation and wiki articles;
*have great and active community and developers;
What else i can add? Active record is good for small databases, but not usable for highloads. Also as i said on yii you can easily make js framework+yii composition. Yii have good caching system. Long time support of stable versions.
I personally manage highload now, but its more backend/api/database. 150+ thousands database records daily, 300+ thousands requests to api, 50 milions records data table. It works like a clock for more then 2 months already.
Choose what you like, or write on native php if its really big system - best choice from practice.
Joomla is an award-winning content management system (CMS), which
enables you to build Web sites and powerful online applications. Many
aspects, including its ease-of-use and extensibility, have made Joomla
the most popular Web site software available. Best of all, Joomla is
an open source solution that is freely available to everyone.
CodeIgniter is an Application Development Framework - a toolkit - for
people who build web sites using PHP. Its goal is to enable you to
develop projects much faster than you could if you were writing code
from scratch, by providing a rich set of libraries for commonly needed
tasks, as well as a simple interface and logical structure to access
these libraries. CodeIgniter lets you creatively focus on your project
by minimizing the amount of code needed for a given task.
Yii is a free, open-source Web application development framework
written in PHP5 that promotes clean, DRY design and encourages rapid
development. It works to streamline your application development and
helps to ensure an extremely efficient, extensible, and maintainable
end product.
Joomla can't compare with CodeIgniter / Yii. But, If you need any CMS for your project, you can use Joomla (or maybe Wordpress). If you want to create any web application, then you need to decide for any PHP Framework. I use CodeIgniter for years, and I like it. They have a huge community, and the best user guide. Yii also has a great community and a lot of features. So, you can decide depending on you demand.

joomla vs concrete5 for database driven site

I have to build a administration site for my association, and I was in doubt between choosing joomla or concrete 5 for it.
In the specific I need to have administrators that can watch the data and users who must be able to modify database data. The data of course is user specific.
Which solution could be better for my needs?
Does this site only handle this data task? Or is it a "normal" website with lots of content, and this data function is only one part of that?
If the website isn't primarily page- and content-focused, then you don't want to use a CMS at all -- you'd be better served by one of the frameworks (in php, try CodeIgniter, or if you're a more advanced programmer try Symfony or Kohana).
But if you do have a website that has lots of pages and content, and this data function is only one part of it, well then it really depends on what you're familiar with already. Are you currently experienced in either Joomla or Concrete5? If so, stick with what you know (unless you're looking for an excuse to learn a new system, in which case by all means use the one you don't know). I personally think Concrete5 is vastly superior to work with, both because it "stays out of your way" as a developer and lets you code your custom functionality up any way you want (check out the "single_page" functionality, which is what you'd want for this project), and also because it provides a much more intuitive editing interface for the users of the site. Concrete5 is one of the newer php CMS's, so I believe it has the benefit of "learning from the mistakes" of earlier systems like Joomla, Drupal, etc. But on the other hand, because the older systems (like Joomla) have been around longer, there is a lot more documentation, books, forums, etc. available.
Best of luck.

Building an international site focusing on interface and layout

I've been asked to research what the best practices are when building the international version of your site.
The main question being asked of me is how we handle Chinese and Arabic.
For example, when the user selects Arabic as a language, should only text be right aligned or should our nav, logo and general layout also switch around?
When comparing to other large corporations, Apple and IBM don't change their layout but Microsoft switches almost everything around.
My good friend Google hasn't been much help so I was hoping someone here could help me out. Does anybody have answers? Some tips and/or resources?
This is a very broad topic, but you did mention that Microsoft "switches everything around," so I'll talk a little about that.
There are a few components to supporting many cultures with your application. Some of the considerations might be:
According to the W3C, internationalization refers to preparing your application for other cultures by removing hard-coded strings and making other kinds of resources, like images, localizable. This should be part of your software design/build/test process from the beginning.
Localization can be broken down into two specific areas:
Language localization is the focus of most international software. Strings and images are converted to another language and loaded dynamically using the current culture.
Cultural localization (something for which Microsoft is famous) is the practice of changing UI elements to better-fit other cultures. For example, in the US, red implies an error or unfavorable message. In other countries, this is not always the case.
For software to genuinely be cross-cultural, you need to address both types of localization. For your web site, though, it's probably sufficient to localize the language strings and images as appropriate; you probably don't have the resources to have user interaction designers working on laying out your application for different cultures.
As ever in UI design, "it depends."
In this case the things you want to check include:
What kind of users are you expecting? What technical level?
What Web experience are they used to?
What resources do you have for the localisation?
Technical users (e.g. developers) will most likely prefer the same layout on the site as other content.
For Arabic, while Web-savvy users are reasonably familar with left-to-right usage, it feels "wrong" and so your site will need to be quite compelling to make sure people stay. If you can change your layout then do.
For both Arabic and Chinese there are many customs and idioms that are quite different, especially when it comes to graphic design. Popular sites in particular look much "noisier" than is usual in the West: a site like stackoverflow.com would be very minimalist in these cultures.
Similarly be careful with things like lucky and unlucky numbers, colours with traditional associations, and suchlike. (This naturally goes everywhere: I could mention the comments we had from Northern Ireland about a very orange-branded theme that was once chosen for a site I worked on...)
What I'd recommend is that you allocate some of your translation budget to a local native-speaking UI consultant. They'd be able to give you proper advice on what bits of your site need to be localised as well as translated.
This guy has a raft of information. Beyond that, my problem is that I'm used to helping people do this via a multi-day consultation, and I'm not sure how to summarize into a post that fits here. That really isn't our business any more, so, honestly, I'm not shilling for work.

Resources