Seblod uses the Joomla SEF Router component to build it's SEF URLs (i.e: via JRoute), but Seblod does have it's own specific routing options which will be used once "Use Legacy" is not chosen for the SEF option. This guide will be useful if you are making a custom app/template, and need to manually construct and SEF URL.
The Seblod Router.php will call a plugin based on the content being passed to it (e.g: joomla_article.php). These plugins are located:
For this example we will build URL based on an Article item (plugin name: joomla_article.php) but you can also perform same for other Content Types (Category, User, Free etc.).
Inside of the joomla_article.php file (Class plgCCK_Storage_LocationJoomla_Article) there is a static method: getRoute. We can use this method via: plgCCK_Storage_LocationJoomla_Article::getRoute(article-id, sef-id, itemid (menu-item)).
The only tricky bit here is SEF-ID. Seblod has an internal ID to match your chosen SEF option in the Seblod settings. You can quickly find this by opening the Seblod's Router.php:
This will show you a list of different SEF IDs (in the IF Statements) in the build function.You could try one of e.g: 5. I use this for 'parent/alias' and 'parent/parent/alias' SEF types, it works fine.
So if you were to write your own app/functions to build a SEF UR on an article page, you could use something like:
$joomapp = JFactory::getApplication()->input;
// Get ItemID $itemId = $joomapp -> getInt( 'Itemid', 0 );
// Get Article ID $articleId = $cck -> get('art_id')->value;
$sef = 5;
Then pass it you the getRoute function:
$sefUrl = plgCCK_Storage_LocationJoomla_Article::getRoute($articleId, $sef, $itemId);
sefURL variable will now contain String representation of Seblod SEF URL you can use in your application. I used this to build:
* Previous and Next article buttons to show in my Content Type
* Use Joomla Tags component to display "Related Articles" on the article view page.
I hope you find this helpful! :)