I’m currently working on a website where I will design each page as html manually/static in german and english in PineGrow.
I looked at components for the menu, but this looks rather tedious with multiple menu levels and two languages when adding pages regularly and having 30+ pages…
ATM this is the main thing missing for me to make PG really usable as a (semi-) static CMS. If it would allow to have components be a bit more “dynamic” in that they know on what page they are (so that the current page can be active in the menu automatically and submenus can be unfolded) etc. it would be really powerful.
So I wondered: Would anybody know of a simple way to have an automatically updating menu in PG?
I looked at integrating some small flatfile CMS (was using several in the past), static site generators etc. but it all seems rather complicated to integrate if all I need is a menu.
What I want in the end is static html, but I’d love to have the menu in PG to be automatically built from the existing pages with some simple rules/syntax.
Has anybody done something like this and found a solution that’s easy to maintain?
I’ve searched the forum but nothing useful came up.
Thanks a lot for any suggestions and tips!
i looked for this too, and just ended up building my own menu (without js)
not looking forward to maintenance issues when it comes time to add a page bc, while it is a component on a master page, when i force an update of the “structure” it will also overwrite all my tailoring for “current page” behavior.
which is going to suck.
Yeah, that’s my impression too.
Menus are the one thing where the current components fall on their face IMO, as soon as it’s not a 1-4 page site in a single language - but then it may be almost as fast to do it manually with copy paste.
Pinegrow should easily be able to do something like that, it would probably need some kind of list for the order of things, but otherwise it already knows what pages are there etc.
Probably my number one wish for future updates…
it would probably need to involve the introduction of PG specific markup (like classes and IDs) and maybe even js to manage it all.
PG seems more designed around getting out of your way, than doing things for you.
i’d be open to a plugin or something tho, if it existed. preferably js free.
maybe what we really in in PG is a macro feature where we can record our own steps in maintaining our markup, then just play them back with different variables when we want to change something.
I hope you are aware of the possibility to make use of PHP includes.This implicates converting all pages to PHP and only make the navigation/footer and anything static in all languages ones only on one page for every item you want to include.
To include your navigation:
<?php include 'navigation-from-thomas-german'; ?>
<?php include 'footer-from-thomas-german'; ?>
Only thing is that PHP includes are still not recognized in Pinegrow, but there comes MAMP local server at the rescue. There is even a free version. Or you can check it on a live server of course.
To make it even better you could use:
Hm - not so hot on using php if I can avoid it.
I was recently thinking if I should maybe use the Pinegrow components in their current static form and have some JS on the pages to set the visibility and active classes on the fly. That should be rather painless and simple and only half-manual once.
As for if this makes sense for PG to have or not: Since it already places itself as a static CMS, the only thing missing to make this actually work is a way to have menus that adapt themselves to the site structure.
The components already have to keep track of pages using them, the step from there to having them keeping track of on which page they are and some kind of structure/order list isn’t that great in my view and would make it actually viable as a static site generator, which the current incarnation of components isn’t really in my book.
I could probably also write something in node.js that generates the menu from the existing pages as HTML files and have includes loading that (I do not really want to write it into the pages themselves) into each page.
Still not really elegant though…
Cheers and thanks for all the feedback so far!
Don’t understand why you say that!
It’s the most common way of dealing with the issue you have! We use it in every website we make.
Works cross browser and only needs a small line of code for every item you include.
Only thing you need is a local/server, but when your used to that it’s super easy.
I just don’t like php much and it’s not required to understand that
I’d prefer to keep the pages fully static on the server and only have a semi-automatic system for the menu in Pinegrow. That’s the basis of my inquiry.
i feel the same way about js.
there are always more complex solutions, but the elegance of simplicity is becoming a lost art.
old engineering proverb: make your designs just as complex as they need to be, and no more.
Yeah, agree, at least partially, although I am willing to use a certain amount of JS where it makes sense.
I grew up before the Internet and spent a lot of time creating pages in the past, fully manual, tables, frames, then Flash, Frontpage, GoLive, Dreamweaver then used flatfile CMS’ for years but returned to basically creating my designs mostly in an editor.
Pinegrow is nice in addition to that and as much “fancy” as I need.
So yeah, the only thing missing is a way to do menus in a clear, simple and integrated way…
Otherwise I can just continue to use a CMS right away.
You sound like a spoiled child to me!
This is a forum and asking why you say something is a very normal procedure when you try to solve a problem!
But next time I will not spent my energy trying to solve your problems, because your response is cynical and negative.
All the best with your multilingual 30+ pages website and the use of only html, happy copying all the same code on all those pages. And imagine that there is only one error in the footer or navigation or a new link somewhere, then you have to fix the error on all the pages.
So if anybody has some input I’m still interested.
Master pages are the same as components - they have no awareness of where they are and are just as manual and limited. Also, since each of my pages will be quite different, they are more in the way than helpful in my case.
I looked at everything that is available in Pinegrow, that’s why I ask here if somebody came up with a clever solution “outside the box”
No Master Pages are not the same as components, but Master Pages go a little bit in to the direction of what your looking for.
I’m involved in web design since 20 years and I can assure you that I know what’s on the market.
Have been fiddling with Master Pages in Dreamweaver a long time a go and experienced that is was a disaster, especially when a file got corrupted and your whole project was gone.
When you are looking for a solution you should be open minded and not in saying advance “I don’t like PHP” so I don’t try a good solution. And keep the discussion open for good arguments.
Nothing is more simple then the use of PHP includes! And more importantly it’s the professional and most common way to solve the problem you are describing.
At the moment I’m working in Belgium on a 4 language website. Dutch, German, French and English. No way you can make that easily with HTML.
We start with PHP pages from the beginning.
And we made 4 navigation’s with language switch in the top header, 4 footers and all you do is include the files with a tiny bit of code on your pages.
<?php include 'navigation-german'; ?> this is one include simple or not?
Say you want to change something in the German navigation you only have 1 include file with that German text to edit for the whole site.
The only thing you have to invest in is MAMP Pro that cost you € 70,-
Its a local server that I use next to Sublime text 3 and Pinegrow. All you have to do is open MAMP find the folder of the website, turn on the server by saving that particular location and your online in your own environment. You can connect and name as many websites with MAMP Pro as you like. Every server uses PHP it’s cross browser friendly and solves exactly the problem you have. So why not give it a try?
Their free version works a 100% with only one website.
If you need help you can always ask me on this forum. There are plenty applications with multiple master pages etc. but I know for a fact that it only makes in more complicated.
The Pinegrow devs should take a look at Bootstrap Studio’s Linked Components feature and User Component Library feature. They are extremely well executed and user-friendly.
Ok, I’ll try again:
Has anybody encountered a good and clever solution for (semi-) automatic menu building that works locally without using php on the server and allows me to have static html pages but not build the menu manually or with components/master pages?
And that is easy to use (most static site generators aren’t).
I really know all of what you saying and do and use it for many years.
What I’m currently looking for is not what everybody is doing for a long time but if there is something less common that would allow me to do it a bit differently.
If you don’t know of such a solution, that’s totally fine, you don’t have to convince me of the way you are doing it since that is what I’m doing as well.
I’ve seen some interesting suggestions in other threads that were unknown to me, so that’s why I’m asking here.
Thanks and cheers,
Without using a language that embeds separate files into a single page the answer is… You will have to place your menu into each and every static page on your site that uses that menu.
Ajax, vanilla JS, PHP, ASP etc… or a framework that uses any of the previous or something else will be required.
You can use PHP without having dynamic pages you do not have to use the php extension either but you will need to tell your webserver the extension you want PHP to use such as htm, html etc…
With current versions of PHP and properly configured webserver / cloud service, there would be no perceivable delay by the end user / visitor.
I personally shy away from JS powered design / layout for critical parts of pages. Not every device works the same with JS and if the user or antivirus program or content ad blocker blocks your JS from loading, then your page won’t load correctly and your menu won’t show or possibly not be aligned with the rest of the design. Boo to JS for design specific or critical purpose.