Concrete5.7.5.2 - non-english URL in Topics pages

Permalink
My Topics are not in English. So, when I go a page for any topic (from a page list block), the last bit of that topics page URL in also in the same language. Is there any way to change that? Is there any way to change the Topics URL to English while leaving the topics names in another language? The same way as the page name - you can change the page URL in the SEO section to whatever you want, the page name and page URL can be different. How can I do that for topics?

I found this in the topic list block:
public function getTopicLink(\Concrete\Core\Tree\Node\Node $topic = null)
    {
        if ($this->cParentID) {
            $c = \Page::getByID($this->cParentID);
        } else {
            $c = \Page::getCurrentPage();
        }
        if ($topic) {
            $nodeName = $topic->getTreeNodeName();
            $nodeName = strtolower($nodeName); // convert to lowercase
            $nodeName = Core::make('helper/text')->encodePath($nodeName); // urlencode
            return \URL::page($c, 'topic', $topic->getTreeNodeID(), $nodeName);
        } else {
            return \URL::page($c);
        }

I guess I have to convert the nodeName to English somehow. Maybe with the transliteration tool which is used in the page (which is I don't know where)?

Thank you very much.

linuxoid
View Replies:
linuxoid replied on at Permalink Reply
linuxoid
I made a quick hack which works, but I'm not sure if it's the right way of doing it in the long run. Maybe someone could suggest a better idea. Before that, I simply added a switch to the topic list controller:

public function getTopicLink(\Concrete\Core\Tree\Node\Node $topic = null)
    {
        if ($this->cParentID) {
            $c = \Page::getByID($this->cParentID);
        } else {
            $c = \Page::getCurrentPage();
        }
        if ($topic) {
            $nodeName = $topic->getTreeNodeName();
       switch ($nodeName) {
      case 'Тема 1': // non-english topic name
          $nodeName = 'topic-1';
          break;
      case 'Тема 2': // non-english topic name
          $nodeName = 'topic-2';
linuxoid replied on at Permalink Reply
linuxoid
Anyone?