Creating a "testimonials" form in ExpressionEngine, NO CLUE WHERE TO START

We're using ExpressionEngine v.2.2.0, just FYI.

The boss wants me to create a textfield form (served by EE) that will collect user feed back, have the responses placed in EE's moderation queue and then when approved, have those responses integrated as blockquotes on the site as "testimonials". The idea is that we'll use good feedback to hopefully inspire others to convert.

I have NO idea where to even begin. I am totally EE illiterate and there's no one here to point me in the right direction. The developer who set up EE for our blogger and videographer moved to another part of the state two weeks ago. I've spent the entire morning trying to figure this thing out, but I'm no closer than where I was when I started.

Can someone who knows EE well please give me a little direction? :( Thanks.


3 Answers 3


First of all, you should probably talk to your boss about upgrading to the latest version of EE. 2.2.0 is quite old.

Secondly, you might want to start by reading the ExpressionEngine documentation, such as The Big Picture.

ExpressionEngine uses "channels" to store data, which are basically types of content (each with their own data structure). So in your case, you would probably create a channel called "testimonials", and give it fields such as "Author" and "Body".

You can then use the {exp:channel:entries} tag to pull out random testimonials in your templates. I'm going to assume you are familiar with HTML and CSS, (otherwise you are going to have a very hard time using EE).

In your templates, you would use something like this (once you have set up the channels and added some data):

{exp:channel:entries channel="testimonials" order="random" limit="1"}

EDIT: After re-reading your question, it sounds like you actually want users to submit their own testimonials. In that case, everything above still applies, but you need to use the built in SafeCracker extension to allow users to submit channel entries on the front end. An overview of how to use SafeCracker is beyond the scope of this answer, so I'll leave it to you to read the documentation and feel free to post ask a new question here if you run into any specific issues.

I'll suggest though, make sure you understand the concepts of channels and entries before you bother trying to figure out SafeCracker. Work on creating the channel and entering testimonials in the control panel, then display these on your site using the tags above. Once you have got that far, you will have a much better understanding of how to use SafeCracker.

  • I think he wants user-submissions ... so maybe something about SafeCracker too? Jan 10, 2013 at 21:07
  • True, I totally missed that. So I agree this is a fairly big ask of someone new to EE then :) Hard to explain Safecracker until you know what channels are. Jan 10, 2013 at 21:15
  • Freeform entries can still be displayed on the front end and go through moderation as well. They have their own entries loop though, and so associating a testimonial with an entry in the channel tables wouldn't be possible in the traditional sense. But if it was just for the purpose of having random quotes peppered through the site, Freeform would do the job just fine. Jan 10, 2013 at 21:17
  • I know HTML/CSS and some PHP. I'm just a total noob when it comes to CMS. I'll see about upgrading, though as I said, I lack experience... so I don't know how much an upgrade would alter things. We have a marketing department that relies on EE that isn't very tech savvy. Nor do I know anything about whether or not changes have been made to EE's core code. I'll review The Big Picture. And yes, Adrian is right. The first thing I need to achieve is collecting user submissions on the front end and getting them into EE's moderation queue. Jan 10, 2013 at 21:20
  • Also true - maybe worth fleshing out FreeForm as an alternative answer? Although for fear of overwhelming an EE newcomer, it might be better to try and avoid third party add-ons for now. Jan 10, 2013 at 21:21

Per Adrian's suggestion, I'll elaborate on my comment.

Entries made through the front end require Safecracker, which is a first-party module that allows you to build an entry form on the front end (i.e. the user would not need to be in the EE control panel to add a new entry to the "testimonial quotes" channel. But it's a little tricky to set up, particularly for a beginner - on the upside, it is a native EE solution.

That being said, an alternative for you to consider is a free add-on called Freeform from Solspace. Compared to Safecracker, it's probably considerably easier to implement the form on the front end, since it behaves like EE entries but actually stores the data in its own tables. The documentation is solid with plenty of examples to get you started. And it has a moderation system (using statuses) just like EE, so functionally it would allow you to do the same thing, without having to get into Safecracker.

The downside to this approach would be the flip-side of its strength - because it is not an entry in EE but rather an entry in Freeform itself, you can't easily create a relationship between an entry in Freeform and an entry in EE. SO if you have a "products" channel in EE and you want to "relate" a testimonial quote to a given product in the products channel, Freeform won't give you the ability to do this. But if you don't need something like that, and the quotes can live on their own and not have a specific relationship with individual entries in EE, then Freeform may get you most of the way there.

Updating EE will be critical to this, since the latest version of Freeform requires at least EE2.4.

  • Oh, and because we're talking about upgrading... backup, backup, backup. Depending on what add-ons may be in your site now, the backup process itself could be significant. So above all, be prepared to backup frequently along the way. Jan 10, 2013 at 21:30
  • Just want to add, that I would recommend Safecracker unless you are trying to make a bunch of unique forms. You never know when a client wants to add something new, and to me creating a new channel field of my choosing works best most of the time. With Safecracker, you can use all the FT's you desire and use all the first party provided code. Really though, it just boils down to "if you need fieldtypes", or "wanting to store the data in individual data tables". Jan 10, 2013 at 21:33

When I do testimonials that are simple, I create a channel called testimonials, create 1 entry in it, with comments enabled. Then I use the comment form with that entry's ID as the "submit your testimonial" form, which allows content, name, email. This also allows you to send the site admin an email when a new one is posted, and moderate them, using the built in EE comment moderation functions. Then just use the comment entries loop to output the testimonials to the page.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.