DEV Community

Cover image for How to create a flexible hero block
ExpressionEngine for ExpressionEngine

Posted on • Edited on • Originally published at u.expressionengine.com

How to create a flexible hero block

So you want to offer your authors the ability to specify a “hero” style header for your entry, but have a fallback for when they don’t want one.

For the purposes of this example, we’ll assume your hero block will have an image, heading, and description.

Let’s set up some fields

Field Name Field Short Name Fieldtype
Hero Image hero_image File
Hero Heading hero_heading Text
Hero Description hero_description Text

Now add some code

{exp:channel:entries channel="my_channel" limit="1"}

{if hero_image}
  <div class="hero" style="background-image:url({hero_image});">
      <h1>{hero_heading}</h1>
      <p>{hero_description}</p>
  </div>
{if:else}
    <h1>{hero_heading}</h1>
    <p>{hero_description}</p>
{/if}

...

{/exp:channel:entries}

Enter fullscreen mode Exit fullscreen mode

What we’re doing here is using a conditional {if hero_image} to check if the image exists. If it does, then we output the image as a background image using the style= parameter in the div container. If it doesn’t exist, then we just output our plain heading and description.

That’s it! All you need to do is add some style!

--
Originally published by Rob Allen at u.expressionengine.com

Top comments (0)