Jump to content

Can't get custom template to work


Brian Peat
 Share

Recommended Posts

Hello! I've got a single client on Processwire and it's completely foreign to me. I've been able to find most things, but they've asked for a custom designed page with a full width header image/section, and then a body block and a right side bar below the header. They're using a landing page template, so I duplicated that, figured out how to add it in the admin, and assigned it to the page. Nothing. It doesn't change a thing.

I feel like I'm missing something obvious. I've made sure all the fields are the same, I tried to set up the parent/child stuff though this page doesn't have a parent that I can tell (though it's under Landing Pages). If I can get the template to actually kick in, I think I can use a bit of code to check for the hero section and load it at the top. I also made a copy of the widget template and set that to load instead of the original. But again, since my main page template isn't kicking in, neither is the new widget template.

I'd just love some tips on what to check or change to get a landing page to actually render what's in the assigned page template.

Hopefully I've used the correct terminology here to make sense.

Thanks!

Link to comment
Share on other sites

Hey @Brian Peat,

Sadly I'm not able to answer your question — hopefully someone else can! — but just a quick note: "Landing Pages" is not a native ProcessWire concept, so presumably that's something that the original developer of this site added while setting things up. You also mentioned "widget template", and that (widgets) is another thing that isn't vanilla ProcessWire stuff.

All in all the thing with ProcessWire is that since there's no "one true way to build sites", it can be hard to say much about the site in question without seeing the source code ?

Normally all you need for a custom template to kick in is...

  • Create a new template in the ProcessWire Admin and assign fields etc. to it.
  • Create a page and select your newly added template as the template.
  • Add a template file at /site/templates/your_template_name.php.
  • View the page on the frontend and ProcessWire will render it using the your_template_name template and your_template_name.php template file.

In case this is not the normal workflow with this site, I'd start by checking which modules are installed (look for something that might affect page rendering). Then check which template files the site has, and if one/some of those are using URL segments to achieve some sort of custom templateish effect. If at doubt, you can paste some code here — just make sure that there's nothing secret in there (keys or passwords etc.) Hopefully this will lead you to the right direction.

... and by the way: if possible, I'd try to contact the original author of the site. And make sure that they didn't leave any documentation (it'd be the decent thing to do, but obviously not everyone does that...) ?

  • Like 3
Link to comment
Share on other sites

I wondered. I'm used to Joomla and Wordpress, so this was completely new and confusing for me. I did follow the exact steps, though I made the php file first, then it popped up as an option to choose when I create the new template from the admin area. Something the original dev did must be getting in the way, because it renders exactly like the original template, not my new one. In fact, even though it's chosen for that page, I can literally empty my file and it still renders on the front end. 

I'll dig a bit more and look at the url segments thing. I'm pretty sure they didn't leave any documentation, but I'll ask.

Thanks!

Link to comment
Share on other sites

Some things to check which tripped me up when taking over from a previous developer:

  • In site/config.php ensure that the template url & path are pointing to YOUR templates url & path. The default is 'template' however is customisable
  • In Set Up ->Templates -> [your template] -> Files tab, that your template file name is not being overridden in the Alternate File Name field by something the original dev entered

HTH

  • Like 1
Link to comment
Share on other sites

I think I figured it out.

This page is considered a "landing page" in this site, so if I load it at domain/mypage it ignores my template. If I load it at domain/landingpages/mypage it DOES load my template. So now I need to figure out how to get it to load my template when the url doesn't have that extra /landingpages/ in the url.

Link to comment
Share on other sites

@Brian Peat Just move your new landing page one level up in the page hierarchy. In the page tree, you will see the "Landing pages" page, and below that your new landing page. Move it up to be on the same level as the "Langing pages" page. If that is not possible due to the template's family settings, you can use the Custom Paths module to overwrite the path for your page to whatever you want.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...