Applying 'theme' to existing single pages

Hi there, I’m desperately trying to apply ‘theme’ to single pages, specifically login.php, page_forbidden.php & page_not_found.php.

I have downloaded them from:

 concrete > single_pages 

and saved them into:

 application > single_pages

I have altered the file in concrete > config > app.php to:


return array(

    'theme_paths'         => array(
        '/login'            => 'my_theme'


and uploaded that to application > config > app.php

This is now giving me an unstyled login page (do I do the same for page_forbidden & page_not_found ?)

But now I’m stuck… I can insert the bare code from login.php into my ‘styled template’ but what do I do from here?

If you can help me out and point me in the right direction, I’d be very grateful. Thanks in advance :slight_smile:

  1. Yeah, you are doing it right.
return [
    'theme_paths' => [
        '/login' => 'theme',
  1. Now, you want to create/modify view.php template (which will display login page etc.):

    Important part is $innerContent variable, which will display login form (concrete/single_pages/login.php) - or any other content of single page.

    Look at atomik theme view.php file. It also includes header and footer, so theme’s css/js will be loaded, menu/logo/footer etc. will be displayed.


defined('C5_EXECUTE') or die("Access Denied.");


    <div class="container">
        <div class="row">
            <div class="col-sm-12">
                View::element('system_errors', [
                    'format' => 'block',
                    'error' => isset($error) ? $error : null,
                    'success' => isset($success) ? $success : null,
                    'message' => isset($message) ? $message : null,

                echo $innerContent;

  1. If css styling is not enough and you want to modify code in php file you can copy:

  2. If you don’t want to share template across all single pages, you can also create file inside theme folder:

    Just remember about adding $innerContent and stuff (like in view.php)

1 Like

Thanks once again Parasek, nailed it! :smiley: