Hi guys,
We are looking for a new system to replace our pile of WP, theme, dozens of plugins, handful of PHP hacks (our webiste). We have pretty much static website, with just 3 types of regular pages / content:
- Blog post
- Venue listings
- Showcasing weddings we organised
I’ve already read some Grav docs and tried a few things. Looking very interesting so far. But before I dig deeper into it, I wanted to check with you guys if these things are possible with Grav and where is good place to start.
-
Pull JSON data from a REST API and generate Grav pages / process in Twig?
Our main DB is on Airtable, from which we also pull the data using a plugin into our WP website. My idea was to build a plugin that pulls data daily (or on demand) from Airtable via their REST API and just save it as (sub-)pages in Grav.
Or are Twig templates files better place for that? Key point is that we cannot pull the data in real-time from Airtable for each user’s request, because Airtable will block us for too many calls. Once daily is enough. -
Reusable blocks of content / modules?
If I build a block of content, like let’s say a box with 3 CTA buttons, and want to use it on other pages, can I “reference” it rather than copy&pasting? As in if I change the color of these 3 CTA buttons, will it work on all pages where this block is used (referenced)? -
Using existing HTML pieces when creating new theme
Our current theme is Avada which comes with Fusion Builder and many content elements like CTA boxes, FontAwesome icons, column layouts etc. Now I don’t necessarily want to take over exactly same the design when moving to Grav. Also I have a feel like we should design our own Grav theme from scratch, rather than trying to “bend” and slim down existing theme. So I am wondering if it is easy enough to get some existing HTML “content block templates” from Themeforest or elsewhere and use them in our new theme. I am OK with chaning some HTML and CSS, but I do not really want to write all the UI / structure in HTML from scratch.
Any input is welcome!