Concrete 5 7.2.1 - Design and Custom Template Settings drop down not showing up
Permalink 1 user found helpful
I just installed a new site using 5.7.2.1 tonight, and I am trying to add some custom templates. I set up a site in concrete 5.7.2, and I had no problems with this at all. I created a custom autoNav (which was copy-and-paste from my working site)
This time in my new theme, when I select "Design and Custom Template," the settings drop-down which allows me to select my new template does NOT show up. I copied a lot of the working code from my first template, but changed the namespace in the pagetheme.php (where I changed the name) but I can not get this option to work at all in the new template.
What am I missing out? How can I get this settings dropdown to appear?
This time in my new theme, when I select "Design and Custom Template," the settings drop-down which allows me to select my new template does NOT show up. I copied a lot of the working code from my first template, but changed the namespace in the pagetheme.php (where I changed the name) but I can not get this option to work at all in the new template.
What am I missing out? How can I get this settings dropdown to appear?
I put it in the application/blocks/autonav/ folder, just like I did with my first site.
Thanks :)
Thanks :)
Did you try changing the namespace in the block's controller.php?
<?php namespace Application\Block\Autonav;
didn't do anything :/
I have found out that I can not access ANY of the functions on the design and custom template menu anywhere in the site. The buttons don't do anything and the drop down menus don't ever show up. I made sure that there was no z-index conflict too.
I even took out all my custom CSS and I am still not able to use the design menu :/
So I took out my jquery.js and boostrap.min.js in my template. I found a conflict with the boostrap.min.js.
I have this loaded my my template
and this is my page_theme.css
I think there might be something funky going on in here
[code]
<?php
namespace Application\Theme\wovenBook;
use Concrete\Core\Page\Theme\Theme;
class PageTheme extends Theme
{
protected $pThemeGridFrameworkHandle = 'bootstrap3';
public function registerAssets()
{
$this->providesAsset('javascript', 'bootstrap/*');
$this->providesAsset('css', 'bootstrap/*');
$this->providesAsset('css', 'blocks/form');
$this->providesAsset('css', 'core/frontend/*');
$this->requireAsset('javascript', 'jquery');
}
public function getThemeBlockClasses()
{
return array(
'Navigation' => array(
'nav navbar-nav'
)
);
}
}
[code]
I have found out that I can not access ANY of the functions on the design and custom template menu anywhere in the site. The buttons don't do anything and the drop down menus don't ever show up. I made sure that there was no z-index conflict too.
I even took out all my custom CSS and I am still not able to use the design menu :/
So I took out my jquery.js and boostrap.min.js in my template. I found a conflict with the boostrap.min.js.
I have this loaded my my template
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script> <script src="<?=$view->getThemePath()?>/js/bootstrap.min.js"></script>
and this is my page_theme.css
I think there might be something funky going on in here
[code]
<?php
namespace Application\Theme\wovenBook;
use Concrete\Core\Page\Theme\Theme;
class PageTheme extends Theme
{
protected $pThemeGridFrameworkHandle = 'bootstrap3';
public function registerAssets()
{
$this->providesAsset('javascript', 'bootstrap/*');
$this->providesAsset('css', 'bootstrap/*');
$this->providesAsset('css', 'blocks/form');
$this->providesAsset('css', 'core/frontend/*');
$this->requireAsset('javascript', 'jquery');
}
public function getThemeBlockClasses()
{
return array(
'Navigation' => array(
'nav navbar-nav'
)
);
}
}
[code]
Hrm. Did you try ditching jquery in your template and relying on the version loaded up by concrete instead?
yes I did... and boostrap is what seems to be the problem. I took out all references to bootstrap in the page_theme.php and it still isn't working right.
I also can't get the boostrap grid system to work either.
I also can't get the boostrap grid system to work either.
Heya
I was having the same problem just now. None of the options in the "Design & Custom Template" menu bar were working.
My theme (custom web design coded in Bootstrap) also uses Bootstrap.min.js. I tried simply took that link out and now it works!
Not sure what the conflict is though... :(
- Mal
I was having the same problem just now. None of the options in the "Design & Custom Template" menu bar were working.
My theme (custom web design coded in Bootstrap) also uses Bootstrap.min.js. I tried simply took that link out and now it works!
Not sure what the conflict is though... :(
- Mal
yeah :/ to bad I need to use boostrap.min.js in my theme... if I take it out and do the settings and put it back in it will work, but I can not expect a client to do that
From memory, there is some code that you can add that allows you to change the template when in edit mode... maybe that could help?
but instead you could check "if _not_ in edit mode" add then add the link to the bootstrap.min.js?
Cheers
<?php global $c; if ($c->isEditMode()) {do something;} ?>
but instead you could check "if _not_ in edit mode" add then add the link to the bootstrap.min.js?
Cheers
Your suggestion is good, and it works.
I placed this code in my footer:
And now both boostrap is working and also I have access to custom templates when in edit mode.
Thanks for the hint
I placed this code in my footer:
if ($c->isEditMode()) { } else { ?> <script src="<?php echo $this->getThemePath()?>/js/bootstrap.js"></script> <?php } ?>
And now both boostrap is working and also I have access to custom templates when in edit mode.
Thanks for the hint
Hi again -- I came across a fix:
http://www.concrete5.org/documentation/developers/5.7/designing-for...
"Add a DIV around the content of the page (typically right after the opening of the body tag and before the closing of the body tag) and give it this class
Fix various CSS issues where the theme you've chosen might conflict with the concrete5 theme."
I added that page wrapper DIV and added back the bootstrap.min.js and it's all working now!
Cheers
http://www.concrete5.org/documentation/developers/5.7/designing-for...
"Add a DIV around the content of the page (typically right after the opening of the body tag and before the closing of the body tag) and give it this class
<div class="<?php echo $c->getPageWrapperClass()?>">
Fix various CSS issues where the theme you've chosen might conflict with the concrete5 theme."
I added that page wrapper DIV and added back the bootstrap.min.js and it's all working now!
Cheers
That's great to hear – yeah, this DIV is pretty crucial. It adds classes to the page that the panels and UI JavaScript needs to function.
oops Andrew - I celebrated too early :(
I had forgot to add the themepath to bootstrap.min.js when I put it back in my template, so it wasn't really getting loaded when I tested the drop down. Now that it's loading correctly, the "Design & Custom Template" menu bar is not working again :(
I had forgot to add the themepath to bootstrap.min.js when I put it back in my template, so it wasn't really getting loaded when I tested the drop down. Now that it's loading correctly, the "Design & Custom Template" menu bar is not working again :(
Andrew - should I submit the conflict with bootstrap.min.js as a bug?
Because anyone using that framework and that JS would come across the same issue... and I am not sure if the conflict is because C5 uses Bootstrap also or for some other reason.
Because anyone using that framework and that JS would come across the same issue... and I am not sure if the conflict is because C5 uses Bootstrap also or for some other reason.
I'm running into this problem, as well, where if I want to use the Design and Custom menu, the buttons don't work; this despite following all of the steps correctly in setting up the HTML, including the page wrapper class.
Is there a fix for this?
***UPDATE***
A couple of minutes after posting the above, I came to realise that there might be a conflict with Bootstrap's JavaScript file.
Indeed there was.
I had included my own boostrap.js, whilst concrete5's Bootstrap related files were also being called. Removing my own bootstrap.js call solved the problem.
Is there a fix for this?
***UPDATE***
A couple of minutes after posting the above, I came to realise that there might be a conflict with Bootstrap's JavaScript file.
Indeed there was.
I had included my own boostrap.js, whilst concrete5's Bootstrap related files were also being called. Removing my own bootstrap.js call solved the problem.
Yes, you may want to investigating informing concrete5 that your theme includes a modified version of bootstrap, and tell Concrete5 that it [b]shouldn't[/b] include its own bootstrap. You can do that with information from this page
http://www.concrete5.org/documentation/developers/5.7/designing-for...
http://www.concrete5.org/documentation/developers/5.7/designing-for...
The odd thing is I thought I had overwritten it when I had this problem in the first place.
I went ahead and redeveloped by site on my other working theme. Odd because it was the same code.
I went ahead and redeveloped by site on my other working theme. Odd because it was the same code.
Also ran up on this issue in 5.7.4; my version of Bootstrap includes the dropdown.js, but C5 was also supplying, so I added
to my page_theme.php asset registration list, that fixed it.
$this->providesAsset('javascript', 'bootstrap/dropdown');
to my page_theme.php asset registration list, that fixed it.
Where did you put the custom template file?