I am in the process of developing a Custom Module for my Magento 2 web store.
The module will be a forum, I am developing this from scratch as it will require integrating with an existing custom module I have developed to share user created content.
In the forum, I wish to have URLs specific to each Post/Thread. For example:
www.mywebsite.com/Forum/Category/PostTitle
This will keep the urls clean, allowing users to quickly access a specific post or category without navigating through the website.
The data will be stored in our magento database and so the variables for the URL will need to come from there.
An example of what i wish to implement is also used on Stack Exchange; The url for this question is:
https://magento.stackexchange.com/questions/209504/custom-module-dynamic-url
Where the last part of the url custom-module-dynamic-url
is the title of my question.
I have drawn up a rough diagram of what I wish to create.
https://repository.genmymodel.com/darryl3/Forum
How would I go about implementing such a feature?
Thanks.
Best Answer
You can find the same thing in
module-cms
in this module we are adding text for URL but I think you can easily convert into with small changes. Inmodule-cms
you can see that they have created custom router list so you also need to do the same thing. For example,app/code/yourvendor/yourmodule/etc/frontend/di.xml
In this file, you need to add
YOURVENDOR\YOURMODULE\Controller\Router false 60
Now you need to create your
router
YOURVENDOR\YOURMODULE\Controller\Router
so it can catch every request but you need to make sure that it implementsMagento\Framework\App\RouterInterface
In this code, I added 1
flag
$satisfy
so in this place you can add your custom condition.If its match then you can see It redirect into your custom controller file.