Hello,
I’m new to this.
I’d like to be able to input certain information when making a new post:
- Category
- Tags
- Author
- Source Name
- Source URL
(I’m making a news site which is mostly links to other sites)
I’m using the Admin plugin and the Project Space theme (because I like the layout)
in user/config/site.yaml I found a list of taxonomies and I added a few to it:
taxonomies:
- category
- tag
- author
- srcname
- srcurl
sometimes these extra taxonomies appear in the admin plugin as textfields that I can input information but not always. I’m not familiar enough with the backend to understand why this is happening.
Have I done the correct thing - to add these taxonomy options? or is there a better / proper way of doing it? Might the Project Space theme (I installed the Project Space skeleton) have something to do with this?
Thanks so much for your help, bye
Adam
@adamburton Looking at the names of the newly added taxonomies I wonder what the intention is behind these new taxonomies. The names suggest you would like to add new fields to the header instead of ‘categorising’ blog items.
Taxonomy (general), the practice and science (study) of classification of things or concepts, including the principles that underlie such classification.
@anon76427325 - yes, you’re correct. Is there a more appropriate way to do this that also allows me to input this information as part of the page creation process in the admin plugin? rather than using taxonomies
thanks, bye
Adam
@adamburton You could try the following:
-
First, you need to create you own inherited theme, else any changes you make will be overridden when the base theme gets updated. Creating an inherited theme can be done in two ways, manually and by using the ‘devtools’ plugin.
-
You have now the basic infrastructure of a new theme inheriting from ‘Quark’
-
Tell Grav to use the new theme. Open file ‘/user/config/system.yaml’ and set the correct value for the theme:
pages:
theme: mytheme
-
We can now finally create a new template/blueprint to use in Grav’s admin and add our own properties.
Create the file ‘/user/themes/mytheme/blueprints/default.yaml’ to extend the ‘default’ blueprint used by the Admin panel for creating pages. See docs on page blueprints for more information.
-
Add the following form definition:
extends@: default
form:
fields:
tabs:
type: tabs
active: 1
fields:
options:
type: tab
title: PLUGIN_ADMIN.OPTIONS
fields:
myfields:
type: section
title: My Fields
underline: true
fields:
header.author:
type: text
label: Author
placeholder: Enter authors name
In Admin a new section ‘My Fields’ will be added to tab ‘Options’. When saving the page, you will get a page with a header similar to:
---
title: My page title
author: 'John Doe'
taxonomy:
category:
- art
tag:
- modern
---
In Twig you can access the author value using {{ page.header.author }}
Hope this helps.
Cheers.
1 Like
@anon76427325 - that’s really helpful, thank you so much, I really appreciate your clarity.
I’ll try this after work and let you know how it goes.
bye
Adam
@anon76427325 - hello
I’ve been trying to get my head around this but not got very far because I really am no good with the terminal. I’ve just spent two and a half hours trying to install grav on my computer and I find it so tiring and difficult that I’m going to give up.
I really appreciate your help.
Is there a way to make an inherited theme without using the command line?
thanks, bye
Adam
@anon76427325 - hello, I found this:
https://getgrav.org/blog/theme-development-with-inheritance
which I wish I’d found three hours ago. Anyway, I’m going to bed now so I’ll have a look at it some other time.
bye
Adam
actually, in the comments of the above linked blog post people seem to be saying that it doesn’t work and that the correct procedure is here:
https://learn.getgrav.org/themes/customization#theme-inheritance
@adamburton I’m sorry my response wasn’t clear enough. After re-reading the docs I pointed at, I can imagine it might have caused some confusion… I have updated my answer and tried to add some more clarity and guidance.
The blog you are referring to is 4 years old and was written in the very early stages of Grav. Things have changed a bit…
If you don’t mind sharing where you got stuck in the creation of the new theme, I might being able to help you get across that block.
@anon76427325 - hello
don’t worry, it’s not that you’re response wasn’t clear, it’s that I find it very difficult to use the command line, I find it very confusing and I’ve got very little experience, so I try to avoid it. I tried to do it last night but it just kept stalling me, trying to install composer didn’t work, php didn’t work, njinx didn’t work so I’ve given up.
I’ve been following the instructions here: https://learn.getgrav.org/themes/customization#theme-inheritance but that’s currently stalled because, at Step 5. where I’m trying to “create a new theme Class file” there’s a line in the mytheme.php file:
class Mytheme extends Antimatter
which I want to change to
class Mytheme extends Project Space
because I’m trying to build on, inherit, the Project Space theme, but it won’t let me use Project Space, or project-space or projectspace - I don’t know why, so I can’t get past this point.
Thanks for updating your answer. Unfortunately, for me, I’m going to avoid the command line because it just takes too long, it never goes my way - and that’s not only based on this experience, I’ve been trying to get into using the command line for years and it always goes wrong, everyone says it so easy but there’s something that prevents it from working for me.
If you have any suggestions for the mytheme.php problem I’m having I’d appreciate it.
thanks, all the best
Adam
@anon76427325
just to say, I found that using ProjectSpace worked in the mytheme.php file
the next problem is when I load the site it says:
"Template "default.html.twig" is not defined."
and loads of other error stuff that I don’t understand. I’m not sure what happening there. I feel like I followed the instructions on that page quite carefully, but maybe not, I’ll have a look through them again.
bye
Adam
class Mytheme extends Project Space
In PHP a class name cannot contain spaces…
Have a look at ‘/user/themes/project-space/project-space.php’ and you will see the class is named ‘ProjectSpace’. You might try the following:
class Mytheme extends ProjectSpace
@anon76427325 hey, sorry, I we must have been typing at the same time. Thanks for that, I managed to find that project-space.php file and saw ProjectSpace.
I’ve now got this issue with the
"Template "default.html.twig" is not defined."
and I’m not sure where that comes from. hmmm
How does your ‘/user/themes/mytheme/mytheme.yaml’ look like? That should also not contain spaces when referencing Project Space.
streams:
schemes:
theme:
type: ReadOnlyStream
prefixes:
'':
- user/themes/mytheme
- user/themes/project-space
If the definition is not ok, you will receive the error ‘Default template “default.html.twig” not defined’.
The name ‘Project Space’ seems to be an evil omen for errors caused by spaces…
predictably, I’d typed something in wrong.
So, it seems like it is working now.
Thanks again @anon76427325 for your perseverance.
The form definition you suggested above has worked also. That’s great.
When I want to add another field, how should I do this?
bye
Adam
Give a man a fish, and you feed him for a day. Teach a man to fish, and you feed him for a lifetime.
–Maimonides
Have a look at A First Example from Example: Page Blueprints.
Thanks so much for your help @anon76427325
I’ve got my head around this part of it now, and I’ve managed to get grav running on my my machine which is making things slightly easier.
all the best, bye
Adam