Adding System Pages to Auto-Nav
Permalink 1 user found helpful
Is there a way to add a system page, like Profile, to the auto-nav block. I can't seem to find it. I have reviewed the settings and permissions of the Profile page and checked System Pages in the site map, but it doesn't show up in auto-nav.
EDIT: Still haven't figured it out.
EDIT: Still haven't figured it out.
Oh dear. I made a big mistake. In an effort to figure it out (I think I did figure it out, by the way), I moved the system pages in the site map under a page titled site-stuff, and then I logged out. Now I can't login! The pages are moved so when I try to login I get a page not found error. Any advice on how to fix this problem?
Try to log in by going tohttp://yoursite.com/site-stuff/...
If you aren't using pretty URLs it might be something likehttp://yoursite.com/index.php/site-stuff/...
but I'm not one hundred percent sure about that. You could also go into the database and try to change the stored paths under PagePaths and then click browse in the table view, but i don't know if that will screw it up or not.
If you aren't using pretty URLs it might be something likehttp://yoursite.com/index.php/site-stuff/...
but I'm not one hundred percent sure about that. You could also go into the database and try to change the stored paths under PagePaths and then click browse in the table view, but i don't know if that will screw it up or not.
These paths are what mine looks like in the database:
ppID cID cPath 1 5 /login 2 6 /register 3 7 /profile 4 8 /profile/edit 6 10 /profile/avatar 7 11 /profile/messages 8 12 /profile/friends 9 13 /page_not_found 10 14 /page_forbidden 11 15 /dashboard 12 16 /dashboard/sitemap 13 17 /dashboard/sitemap/full 14 18 /dashboard/sitemap/explore 15 19 /dashboard/sitemap/search
Viewing 15 lines of 31 lines. View entire code block.
I changed the page paths in the database to reflect yours but it still doesn't work. I can access the site-stuff page, but none of the system pages off of it. If I go to site-stuff/login I can get to the login page, but when I click login I get a page not found error.
So I ended up fixing the problem by saving my content elsewhere, deleting my website, and reinstalling Concrete5.
Now I have it up and running again and I need help with the original problem.
I have created an Alias of the Profile page and its subpages under the Page that I want it in, and tried to create a new auto-nav of the profile page and its subpages. It adds Profile, but not the subpages. But the link doesn't work. I get a 404 error when I click it.
Any ideas?
Now I have it up and running again and I need help with the original problem.
I have created an Alias of the Profile page and its subpages under the Page that I want it in, and tried to create a new auto-nav of the profile page and its subpages. It adds Profile, but not the subpages. But the link doesn't work. I get a 404 error when I click it.
Any ideas?
As discussed, line 200 of the autonav block's controller is
Change that to true. Unfortunately, there's no way to change this through an interface (though you can if you're hardcoding the block into a template).
James
public $displaySystemPages = false;
Change that to true. Unfortunately, there's no way to change this through an interface (though you can if you're hardcoding the block into a template).
James
PS (for those that come across this in the future):
1. This is a core file, so any updates to the core will overwrite this. The best way I can think of to solve this is to copy the entire block to your blocks directory and rename it appropriately (I don't think you can just duplicate the controller). Or just remember to make this same change after upgrading.
2. This will "expose" all system pages in the nav, including some pages that aren't very helpful without a parameter (such as /profile). You can always set the 'exclude from nav' attribute on these pages.
James
1. This is a core file, so any updates to the core will overwrite this. The best way I can think of to solve this is to copy the entire block to your blocks directory and rename it appropriately (I don't think you can just duplicate the controller). Or just remember to make this same change after upgrading.
2. This will "expose" all system pages in the nav, including some pages that aren't very helpful without a parameter (such as /profile). You can always set the 'exclude from nav' attribute on these pages.
James
pps :)
You can use
in your template, so that you do not override your core file.
You can use
$controller->displaySystemPages = true;
in your template, so that you do not override your core file.
But that only works if you're hardcoding the block into the template, right?
ie, if you're using it as a "block", by adding it through the "edit page" interface, is there any way to do this?
James
ie, if you're using it as a "block", by adding it through the "edit page" interface, is there any way to do this?
James
You would need to use a custom template, to do this, but you can leave the core alone,
Ie root/blocks/autonav/templates/header_nav/view.php <-- change within this
then if you are loading from a page left click block go to "Custom Template" choose your new Template to apply.
From a Scrapbook you use "Custom Template" link and if your including the global block(stored in the scrapbook) within you header.
Ie root/blocks/autonav/templates/header_nav/view.php <-- change within this
then if you are loading from a page left click block go to "Custom Template" choose your new Template to apply.
From a Scrapbook you use "Custom Template" link and if your including the global block(stored in the scrapbook) within you header.
$block = Block::getByName('Header_Navigation'); if( $block && $block->bID ) $block->display('templates/header_nav');
Oooh. Nice. Clever.
An old post that I thought I would add to as I found an easier solution that doesnt require any code change - just add an external link to the Home node that points to the system page (eg `index.php/register') and this will add to the auto nav