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

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

LessConf 2012

This past week I spent 2 days at LessConf in Atlanta. I had never heard of this conference before going to Panama City to speak at the meet-up a few months ago. Allan Branch, the person that organized the meet-up, started LessConf about 4 years ago. He is business partners with Steve Bristol at LessEverything and they are a hoot!

I will admit I was a bit confused about what the conference was going to be focused on. There seemed to be a lot of hub-bub surrounding the conference but no speakers were announced and there were not really any old videos of speakers to give any indication of what it would be like. Having said that this conference was probably one of the best I have been to. Turns out the conference is about helping and fostering growth in people that have start-ups. And while EllisLab is not necessarily a start-up there is a lot to be reminded of in how start-ups think, behave and operate.

Spike Jones was the first speaker of the conference. He was easily my favorite. He is active in the Word of Mouth Marketing Association. In his talk he shared about how he helped Fiskar (maker of scissors… of all things) create a word of mouth initiative that fed off of the scrapbooking community.

He also talked about the ins and outs of this. How they created a barrier to entry by making the ambassador program small (4-5 people) to make the Fiskarettes feel special. How they personalized some scissors and sent them to them. How they created a new level in a scrapbooking forums especially for them. And ultimately the positive effect on the Fiskars brand that they carried into scrapbooking community.

He also talked about how to tell stories with powerful identities. His example was the State of Texas. Love them or hate them Texas has an incredible marketing campaign. Don’t mess with Texas, Everything’s bigger in Texas etc. He talked about a great brand as being polarizing. This idea resonated with me…

Rob Walling was the second speaker (don’t worry I am not going to write about all 10 talks). Rob’s talk was excellent for a different reason. Rob runs 5-6 small startups. His talk was all about Cost per Acquisition, Lifetime Value of a customer and how to use the information those numbers provide when making decisions about your business. If I remember correctly he also talked quite extensively about A/B testing and using CPA and LV when doing your A/B testing so that you know whether your changes are working.

He also talked about leveraging low budget ways to get word out about your product (Podcasts, Guest posts etc.) using relationships that you might have with apps that are integrated with yours to get word out by cross-promoting to each other’s communities.

John Crawford talked on the second day about not forgetting your friends. My major take-a-way from his talk was a quote:

Your friends have awesome powers - They can create alternative Universes - Let them

The quote builds on his talk about how the people around you can often open doors or take you in different directions by introducing you new people. In his case it opened up some doors that led to 1.5M in funding. smile Not bad if you ask me.

The final talk I wanted to tell you about was the guys from Intercom.io, Eoghan McCabe & Des Traynor. They talk about how ability and hard work will only take you so far. That without passion you will not acheive as much. And I was struck by something.

The team at EllisLab is a team of positive thinking and passionate people and I am proud to be associated with them.

They discussed the idea that starting (or running) a business is like working on a piece of Art. That there is no scientific forumula that you can follow to get from point A to point B. And that like most pieces of art it only acheives it’s true potential when it is complete. Some really good stuff in this talk…

They also mentioned that Des has called every single one of their (thousands of) customers. That proactively reaching out to their customers is one of the best ways to delight them. I would love to experiment with this. I may not be able to call every new customer to ExpressionEngine but I would like take more time to reach out to the community members that are NOT on twitter. Twitter contains such a small fraction of our community and I often wonder what the rest of our wonderful community is up to (nothing against my twitter friends smile ).

Their final thought (and they were the final talk)? Was that you must be customer obsessed. That we are entering into an age of the customer. I agree with them. Businesses that stand out for me are the ones that provide ridiculous customer service.

For me there was a common thread in all of the talks. My main take-a-way was to focus on the customer/client in a more personal manner. The EllisLab community is waaaay bigger than a lot of the communities the speakers at the conference deal with, but that shouldn’t matter. We not only need to be Bacon, but I also need to take a chance and personally connect with our customers. But that means I have to put myself out there, and that is a bit unnerving…

LessConf was awesome!

Posted by Marcus Neto on 02/28 at 07:54 PM (0) CommentsPermalink
Page 1 of 4 pages  1 2 3 >  Last ›