Unexpected content areas

Hello, I’m learning about concrete by creating a barebones theme. I’ve got it loaded, but for some reason when I go to the home page, I see all sorts of content areas that are not a part of my theme/template.

As far as I can tell the only Areas that should exist are in my ‘full.php’ (default includes this) which has:

<?php
defined('C5_EXECUTE') or die('Access Denied.');

$this->inc('elements/header.php');
?>

<div>
    <?php  
    $a = new Area('Page Header');
    $a->display($c);  
    ?>
</div>

<div>
    <?php  
    $a = new Area('Main');  
    $a->display($c);  
    ?>                                    
</div>

<?php
$this->inc('elements/footer.php');

(there are no Area creations in the the header or footer).

For some reason I see all of these:

Where are the “Column 1 Area”, “Column 2 Area”, “Column 3 Area” coming from, and where is my “Main” ?

Thanks in advance

Whenever you add a layout or container to a page, it creates extra areas for the columns of the layout/container.

For clarity - there was an HR block in there. I’ve removed that and this is what I see:

but I dont have anything added to the page. all I have is a template with 2 content areas defined and no blocks inserted. Why do I see so many content areas?

What core version?
What theme?
How did you get to that empty page?

The core version is Concrete5 packaged by Bitnami 9.0.2-17

The theme is one I’ve created from scratch in order to both learn how Concrete works, and to assure myself that I can design a site without Concrete getting in the way. (At the moment it seems to be inserting all sorts of things not in the template).

The files from the barebones testing theme I’m working on can be seen here:

(note I had to name them .html for codepen, but they are .php files for real of course)

I get to the page simply by going to the root of the site.

Thanks in advance!

Here’s some theories to test.

  1. If your theme does not close all tags in the main area correctly, then html will think the footer is actually part of the main area.
    Your browser will close the footer because its helpful and repairs broken html.

  2. If you got to this stage by installing sample content then deleting it, then its back to my initial suggestion, that you have a layout that wasn’t deleted.

Hmm #2 sounds interesting and promising (I really don’t think there’s enough HTML in the template now for number one to be likely but I will check)

With regard to number 2: the default install does come with a default template and some default blocks installed. I removed them.

If this leaves artifacts that renders even a new Fresh template impacted …

How are users/fresh-installers meant to remove content in a way that won’t destroy any theme I might provide to them?

… If the default install left such artifacts? How can I remove them?

When learning, install with sample content.

When developing a site, install without sample content. You get one empty home page.

Its an option in the concrete installer.

ok but this isn’t a very helpful answer for a number of reasons:

  1. It could happen outside of ‘learning’. In the real world if I were a theme designer, I might send a theme to someone who has a live site where they’ve done stuff. How can I as a theme designer, ensure that some long ago deleted block in a content area no longer even used by my theme doesn’t forevermore insert 7 orphaned content areas?
  • Either there is a way to avoid this in my theme, or a more proper way to remove content from a site … but I still don’t know which.
  1. Where is the “Main” content area that should be there but isn’t?

Also … the concrete installer doesn’t seem to be very reliable. I have failed something like 24/25 times to get it to work.

The more I think about this the more it’s bugging me.

There’s just no reasonable explanation for why there would be so many random content areas to be displayed … Even if some previous template/theme had used them, mine doesn’t.

So … because this site had a previously applied theme, and a user at one point added / removed a block …

There’s no way to now apply a new / fresh template short of reinstall?

Right now, this page has ZERO blocks added to it. The site has only one theme applied, and it creates only 2 areas (none called “column”).

I really need to come to understand what in the current state is causing concrete to add these extra content areas.

What you are seeing in this screenshot are layouts, at some point you have used the Concrete layout tool and added a layout, a 3 column layout followed by a 2 column, and then another 3 column layout. Or they were there from when you had the previous theme installed.

Layouts will not be removed by installing a new theme, nor should they be, what if the end user wants them there? the only time they will be removed is if you install a theme with demo data and then it will implicitly tell the user their content is going to be overwritten.

Your concern about orphaned areas is not really an issue as layouts can be deleted.

I think you may benefit from downloading a free theme from the marketplace, Stucco would be a good choice as it has demo data and is cleary and cleanly coded, it will give you a good overview of how a theme is constructed.

Editable areas are really just foundations for an end-user to place their layout in, yes, you can make templates with various different editable areas, but ultimately the end-user will build layouts as and when they see fit.

1 Like

Thanks @VidalThemes , I was not aware of the layout tool (so while I certainly never used it) that helps explain it.

I understand that themes shouldn’t overwrite layouts but … I’m the user here, and I don’t want them. How can I remove them?

More fundamentally, as user (not a designer), If I apply some package that sets up all these layouts … and then I change my mind. I go wild and delete my blocks and apply a new simple theme. How do I get rid of the old layout?

Also you said:

the only time they will be removed is if you install a theme with demo data and then it will implicitly tell the user their content is going to be overwritten.

Ok, how can I make my package do this and get rid of these things?

Update: I’ve got it. I think.

I had to switch back to the original theme, and then it would allow me to remove the layouts from the home page directly.

I think I’m back to a place where the world makes sense.

Thanks All. I’ll check out that Stucco theme, thanks for the reference as well.

1 Like