I'm not sure what solution Ed is coming up with, but in the meantime there is a method where you can use dataforms to set a tag on new pages or for your users to be able to set a tag on pages via entries they make in a dataform. This will also appear in the forhcoming revision to the dataforms documentation.
This currently works for a single tag. I will post separately with the method for the user to add, change and remove multiple tags from the dataform.
You can combine this with removing the tags button as I described above so the users can only enter, change and remove a tag via the dataform and not via the page options button at the bottom of the page.
As well as dataforms this solution makes use of the iftags and set-tags functionality.
You can apply a level of control over the tags that the user enters by using the select field in the dataform, although it works equally well with a text field.
You can see this solution at http://vineyard.wikidot.com/dogs:_template and http://vineyard.wikidot.com/dogs:1. The permissiions have been relaxed so you can create your own pages to test this.
The code is quite straightforward in that the iftags can take the form data and so can set-tags. So the code I have used is as follows:
%%form_data{description}%%
[[iftags -%%form_data{dogtype}%%]]
[[button set-tags +%%form_data{dogtype}%% text="Confirm dog type"]]
[[/iftags]]
[[iftags +%%form_data{dogtype}%%]]
[[button set-tags -%%form_data{dogtype}%% text="Remove dog type"]]
+++ Add another %%form_data{dogtype}%% page
[[module NewPage category="dogs" tags=%%form_data{dogtype}%%]]
[[/iftags]]
====
[[form]]
fields:
description:
label: Your text
type: text
width:75
dogtype:
label: Type of dog
type: select
values:
1: labrador
2: beagle
3: spaniel
4: greyhound
5: alsation
[[/form]]
Once the user has saved the page they then need to confirm the tag(s) by pressing the "Confrm.." button. Once they have done so the newpage module appears so they can add more pages with that tag.
If they want to change the tag in the dataform they should first press the button to remove the existing tag, otherwise when they confirm the change it will add a second tag.
So this does mean it is a two-step process as the user has to confirm the tag once the page is saved. But it does allow the user to add pages with their own defined tags without affecting other tags that you might have defined as admin.
In case you thought something wasn't working, I was still altering the template code while you were adding a page. Further pages are now created in a sub category so the user doesn't have to enter the tag again. the tag they entered in the first page is now used for sub pages.
+++ %%form_data{dogtype}%%
%%form_data{description}%%
[[iftags -%%form_data{dogtype}%%]]
[[div style="border:2px solid red;text-align:center; width:200px;"]]
[[button set-tags +%%form_data{dogtype}%% text="Please confirm dog type"]]
[[/div]]
[[/iftags]]
[[iftags +%%form_data{dogtype}%%]]
[[button set-tags -%%form_data{dogtype}%% text="Remove dog type"]]
+++ Add another %%form_data{dogtype}%% page
[[module NewPage category="dogs_subpage" parent="dogs" tags="%%form_data{dogtype}%%"]]
[[/iftags]]
====
[[form]]
fields:
description:
label: Your text
type: text
width:75
dogtype:
label: Type of dog
type: select
values:
1: labrador
2: beagle
3: spaniel
4: greyhound
5: alsation
country:
label: Coutry of Origin
type: select
values:
1: canada
2: usa
3: uk
4: egypt
5: germany
[[/form]]
Start from http://vineyard.wikidot.com/dogs where you can see a listing of pages created and create a new main page with the select field in the dataform.