Taxonomy url alias with an anchorΒΆ
This will walk you through how to re-write a taxonomy's url alias with an anchor ('#') (on creation or save). For this example we will use movie "gCinema (genre)" taxonomy.
We need to add two fields to our taxonomy term at "/admin/structure/taxonomy/manage/cinema_genre/overview/fields" All fields will be "plain text" "simeple text". Name the fields: field_cinema_g_name_html, and field_cinema_g_name_node_view.
Now go to /admin/config/workflow/eca
and create a "New Model", this will be our canvas to work with.
- First things first, lets give our model a name, so on the right side of your screen, you will find your details palate, (which we will refer later also).
-
General --> Name: Cinema (genre) Now click the "Save" button at the top of your screen"
-
Drag and drop "Create StartEvent" (the circle from the palate on the left), This will be our "Event to fire on" That will tell eca when to activate our code.
- Template: Pre-save content entity
Next we will add create a task for our code to do.
Click on our circle on our canvas, and you will see a small pop-up palete that contains a few items. Drag and drop the square or "Append Task" on to your canvas.
This task we are going to fill the "field_cinema_g_name_node_view" field that we created in our taxonomy term. - Genreal --> Name: set field value - Template: Entity: set field value - Custom properties --> Field name: field_cinema_g_name_node_view - Custom properties --> Field value: [term:name] (the reason we move the term name directly to the text field because in drupal using the term name in views and other systems is a bit tough, but a text field all system support)
Click on the circle again and add another task. This task chain will fill the "field_cinema_g_name_html" field we created on our taxonomy term. (the first event in this chain is to replace the spaces with dashes) - General --> Name: replace - Template: Tamper: find replace regex - Custom properties --> Data to be tampered: [term:name] - Custom properties --> Regex to find: /[\s]/ - Custom properties --> Replacement pattern: - - Custom properties --> Result token name: [cinema_g_name_html_replace]
While clicked on the square, use the small pop-up and add a task.
(now we need to take our resulting string from the above task and turn it all lowercase)
- General --> Name: lowercase
- Template: Tamper convert case
- Custom properties -- > Data to be tampered: [cinema_g_name_html_replace]
- Custom properties -- > How to convert case: Convert to lowercase
- Custom properties -- > Result token name: [cinema_g_name_html_lower]
While clicked on the square, use the small pop-up and add a task. (we now need to set the value of "field_cinema_g_name_html) - General --> Name: set field value - Template: Entity: set field value - Custom properties --> Field name: field_cinema_g_name_html - Custom properties --> Field value: [cinema_g_name_html_lower]
Now click on the circle again and add another task. (we need to set the value of the url alias of our taxonomy term) - General --> Name: replace - Template: Tamper: find replace regex - Custom properties --> Data to be tampered: [term:name] - Custom properties --> Regex to find: /[\s]/ - Custom properties --> Replacement pattern: - - Custom properties --> Result token name: [cinema_g_path_replace]
While clicked on the square, use the small pop-up and add a task.
(now we need to take our resulting string from the above task and turn it all lowercase)
- General --> Name: lowercase
- Template: Tamper convert case
- Custom properties -- > Data to be tampered: [cinema_g_path_replace]
- Custom properties -- > How to convert case: Convert to lowercase
- Custom properties -- > Result token name: [cinema_g_path_lower]
While clicked on the square, use the small pop-up and add a task. (we now need to set the value of "field_cinema_g_name_html) - General --> Name: set field value - Template: Entity: set field value - Custom properties --> Field name: path - Custom properties --> Field value: [cinema_g_path_lower]