ExpressionEngine Templates

I have to say, when I made a somewhat innocent statement on twitter the other day I had no idea the conversation it would start. But I am glad for it.

** Full Disclosure: Let me say that what you will read here is me without my Product Evangelist EllisLab hat on. But I will say that I have always been a cheerleader for ExpressionEngine as a CMS and the community that surrounds it. I will also point out that I am still the owner of EETemplates.com **

Today Ryan Irelan wrote a piece over on EEInsider about ExpressionEngine templates/themes. I feel like it is a well balanced and thoughtful post on the pros and cons of templates for EE. This is not so much a rebuttal of that article but just some additional thoughts.

But first… some history…

A number of years ago I sat down with a friend that was active in the Joomla template community and we started brainstorming ideas for a business venture that we could run together. Through the course of that he went the route of Wordpress and I went the route of EE. He chose to go that route due to the size of the market. I just couldn’t do it. I felt EE provided a better experience for end users and did not have any other folks doing templates for it so I chose to go off on my own and start EETemplates.

EETemplates was a success in a sense. It never took off like I wanted it but I think that was due to my lack of patience more so than anything else. I rushed it. While I could have taken a year to do proper designs and build out a store with all of the functionality expected from a true marketplace, I didn’t and that hurt me.

I think the other thing that I had working against me was at the time I was the only person building Templates for EE. WooThemes did not enter into the market until a year or so later. I watched with interest as they waded into the market as I have always thought that in order to make templates for EE successful there would have to be several sites making them. The reason for this is that there is no mindset in the larger web community that EE is an option when a template has to be used due to budget constraints or lack of technical ability. Development shops that might choose EE don’t because there is a lack of templates that will speed up their development time. So they move on…

Woothemes never released numbers for how many templates they sold. I am betting that it was not a small number. But I am also betting that it was not nearly as large as what they sell for Wordpress and that from a business perspective it just did not make sense to invest in EE when there was still much to gain in the WordPress theme community. *Adii if you want to email me some number I would welcome them smile *

So that brings us to the current status of no theme shops for ExpressionEngine. Let’s think about that… The #1 commercial CMS with hundreds of thousands of users and many many more installed sites and there is not a single theme shop for it. Ryan pointed to the CMS Usage Statistics by BuiltWith. I look at those statistics regularly as part of my duties at EllisLab. And every time I look at them I see a market that just has not been tapped. I look at the top graph and wonder how many people would gladly pay $300 more than what they already pay to use any of the other CMSs for a better experience and the ability to make changes with only a knowledge of HTML and CSS. As someone that does not know PHP I would gladly pay that money. And while I do not have hard numbers I would think I am not alone in this.

This is not just about money to me. When I started in Web Design I very much studied the work of others. When I ventured in to providing CMS solutions for my clients I used templates as a way to learn how to create templates for Joomla and WordPress. I think there is a very important educational role that templates play in any CMS community. I received many emails from folks that used templates from EETemplates stating that they were worried about EE but that using a template allowed them to see how the basic functionality worked and they were able to learn EE faster through reverse engineering my code.

There is also a huge market for EE in the less expensive website market. As a studio owner I could make a higher rate on the sites that were simpler, where I used template that I made, vs a large custom site. If you want details on that I can cover it in a different post. But I will say that there are a lot of repeating elements in site design. The more that you can standardize and create a repeatable process the more it will allow you to speed up production and close out business faster. I have told several folks in our market that I could sell simple sites using ExpressionEngine for $2-3000 and build the site in a day or so. After licensing fees for EE and an add-on or two that leaves quite a bit or profit for a day’s work.

To those that would say that this will detract from the ExpressionEngine community and marketplace I would say horsehocky.

Are there still sites being built for WordPress, Drupal and Joomla for hundreds of thousands of dollars? Yes.

Will selling templates bring more folks into the community who will purchase add-ons from our totally awesome add-on developers? Yes.

Has the Code Packs provided by add-on developers like Solspace, BrilliantRetail and others been helpful to our community? Yes.

I do not want EE to change. I don’t think it has to in order to support templates and I would never use my position at EllisLab to advocate for a solution that would change what we love about EE. I have talked with several very smart folks in our community that have ideas for how to accomplish this without changing the flexibility of EE. I would argue the solution has already been found by folks like Solspace and BR as they already provide mechanisms for installing code packs into an existing sites without harming the already existing parts of the site. The have the ability to install Template Groups, Templates, Channels and Field Groups/Custom Fields at the click of a button. Last time I checked that was a template.

Ryan closes his article by saying that there are three things that are necessary for Themes to take hold in. I agree with 2 of them:

I think we could stand to have more documentation on how you can template EE. I wrote two articles on this on EETemplates found here and here. But that is certainly not a complete vetting of the abilities. They were written prior to my time at EL so they were not validated by anyone at EL. But they are a good start.

I also think a site similar to Devot-ee but for themes would make things easier for folks. Themeforest has a section dedicated to ExpressionEngine (Woo’s old themes made by Bjorn). At one point in time I considered using EETemplates as a marketplace. Who knows…

But the thing I really don’t think is necessary is a lower priced ExpressionEngine license. Anyone that has used EE and had their lightbulb ‘AHA!’ moment will tell you that it is worth every penny EL charges for it and then some. So to think that EllisLab needs a lower priced tier is just not something I think is necessary.

What is necessary is for 3-4 different folks to say that templates are going to happen in the ExpressionEngine community and start building them. Take different views on whether they should be fully flushed out sites or starter kits for Developers. Build the market. I will put my EllisLab hat on for one second to say that I will promote and talk about what you are doing.

Want to talk more about this? Feel free to .(JavaScript must be enabled to view this email address) your thoughts or disagreements.

 

 

Posted by Marcus on 05/15 at 08:53 AM (0) CommentsPermalink

Chase what you want in life…

I was struck by something in an article about David Rockwell of Rockwell Group in Inc. Magazine the other day. As some background, David is the founder of Rockwell Group. They are an architectural group with a twist. My understanding is that they are a group of creatives (not just architects) that can apply their creativity to anything, from the interior design of a new restaurant to the Oscar ceremonies, with equal success.

All that to say that he is not someone that is “known” in technology circles. But he speaks as someone that has become extremely successful in applying creativity to problems.

In the article he says:

I believe in going after jobs rather than waiting for the phone to ring. I approached JetBlue to do their terminal at JFK. In the office, we are constantly asking ourselves, “Who do we want to work with? Why? How can we make a difference?” We also have a companywide retreat that starts with the question, “What kind of work do we want to be doing?”

When I read this it resonated with me. In the website business studios often go from project to project schlepping their creativity to those that will pay. Many times studios will have bid on work through an RFP process. If they are lucky then the client will have chosen them based on what they were looking for in creativity but more often than not that is not the case. There are a few that I have come across that have figured out a genre or industry that they play well in. But I know that is not the norm.

What if today… right now… you were to stop and write down all of the companies/industries/genres of business that you want to work with? This isn’t about money. Money will follow when you chase your passion. But this is about identifying places that you think you can apply your creativity to instill change. For instance, maybe you are a gamer and want to try and help gaming companies build some awesome websites? Pete and the folks at Digital Surgeons are doing that. Maybe you want to work with non-profit groups to change plight of the afflicted? Blue State Digital does a bit of that.

But enough name dropping… there is a market for everyone. If I were to think of the areas that I would want to help I would go after CrossFit boxes and businesses in the Gun industry. There is so much work in those three genres I could stay busy for years.

Stop chasing work you don’t want just because you think it will be a decent paycheck. Transform your business by chasing the jobs you want. It will make you happier and wealthier in the long run.

Posted by Marcus on 05/08 at 09:39 AM (0) CommentsPermalink

Breaking up a Matrix Field for use in a SafeCracker Form

Recently I built a SafeCracker form that will never see the light of day. It was beautiful but the client didn’t want to use it… But I digress. This for had your basic sign up form and then allowed you to add an additional attendee. The form was designed so that if a parent was bringing children they could add them by filling in a couple of fields and then clicking on Add Row for any additional children. Initially I created this functionality in the normal way by just adding the following to my code:

{field:cf_registration_add_attendees} 


But that did not give me the custom look that I wanted. Plus, my matrix field actually have 8-9 fields in it so I wanted to break apart the Matrix field so that I could lay out the fields in a way that would make more sense for the user. I searched and searched the Matrix forum for hints on how to do this and found some info. In an effort to make this easier for my future self, here is an example of how you would do that:

<fieldset>
          <
legend>Additional Attendees:</legend>
            <
div class="attendee">
                <
input type="hidden" name="cf_registration_add_attendees[row_order][]" value="row_new_0" />
                <
label for="">First Name</label>
                <
input class="input_xlarge" type="text" name="cf_registration_add_attendees[row_new_0][col_id_7]" />
                <
label for="">Last Name</label>
                <
input class="input_xlarge" type="text" name="cf_registration_add_attendees[row_new_0][col_id_8]" />
                <
label for="">T-Shirt Size</label><br />
                <
select name="cf_registration_add_attendees[row_new_0][col_id_14]"><br />
                    <
option value="Child's Small">Child's Small</option>
                    <option value="Child'
s Medium">Child's Medium</option>
                    <option value="
Child's Large">Child's Large</option>
                    <
option value="XS">XS</option>
                    <
option value="S">S</option>
                    <
option value="M">M</option>
                    <
option value="L">L</option>
                    <
option value="XL">XL</option>
                    <
option value="XXL">XXL</option>
                </
select><br /><br />
            </
div>
            <
p><a href="#" class="addrow">Add Row</a>
            <
a href="#" class="remrow">Remove Row</a></p>
    </
fieldset


Notice that in the name of the fields there is a slight change from the normal parameter that you use to pass values to SafeCracker. In these you have cf_registration_add_attendees[row_new_0][col_id_7]. The col_id_7 points to the column ID of that particular field in the Matrix Field. I believe I went old school and used Firebug to inspect the Matrix Field when I was displaying the whole field in the SafeCracker form (for testing purposes).

This next part was provided by Carl Crawley of Made By Hippo. I could not, for the life of me, figure out why my Add Row code was not working. Carl thought to add the Div around the form with a class of Attendee and hook the javascript into that. He also worked out the bits where row_new_X where X gets incrementally higher with each added row. The javascript code is as follows:

<script>
$(
".addrow").live('click',function(e){
    e
.preventDefault();
    var 
$attendee = $("div.attendee:eq(0)");
    var 
$size = $("div.attendee").length;
    var 
$clone $attendee.clone().html().replace(/row_new_0/g,'row_new_'+$size);
    $(
"div.attendee:last").after('<div class="attendee">'+$clone+'</div>');
})

$(
".remrow").click(function(e){
    e
.preventDefault();
    if($(
"div.attendee").length 1)
    
{
        
$("div.attendee:last").remove();
    
}
}
)
</script> 


So that’s it. This example should be enough to get you to a working version on your SafeCracker form. Just make sure to include {safecracker_head} so all of the supporting javascript files are available and you should be good.

Posted by Marcus on 04/28 at 06:50 AM (0) CommentsPermalink
Page 1 of 19 pages  1 2 3 >  Last ›