Дружим плагин "Компании" и NiceURL

При использовании плагина NiceURL топик компании показывается без «шапки» компании, что не очень красиво и удобно.
Чтобы это исправить откройте файл \plugins\niceurl\classes\hooks\HookUrl.class.php
найдите строку
if ($oTopic->getBlog()->getType()=='personal') {

и сделайте конструкцию вида:
if ($oTopic->getBlog()->getType()=='personal') {
   Router::Action($sActionRewrite,$oTopic->getId().'.html',array());
} elseif($oTopic->getBlog()->getType()=='company') {
   Router::Action('company',$oTopic->getBlog()->getUrl(),array('blog',$oTopic->getId().'.html'));
} else {
   Router::Action($sActionRewrite,$oTopic->getBlog()->getUrl(),array($oTopic->getId().'.html'));
}

и все, топики компаний будут отображаться правильно с новыми адресами.

Если у вас ошибки циклической переадресации ссылок, то активируйте плагин NiceURL после плагина компании и все будет работать.

Как сменить URL с 'company' на любой другой

Если вы решили использовать плагин «Компании» под особый проект возможно потребуется изменить URL на более красиво звучащий, например на 'game'.
Открываем конфиг файл плагина \plugins\company\config\config.php
И меняем настройку:
Config::Set('module.company.prefix', 'company'); 	// префикс для компаний (ссылка в URL)

на
Config::Set('module.company.prefix', 'game'); 	// префикс для компаний (ссылка в URL)

А если требуется еще поменять URL списка компаний, то в конфиг нужно добавить строку, например
Config::Set('router.rewrite.companies', 'games');

и список компаний будет отображаться по адресу сайт.ру/games/

Как подружить плагин "Sitemap" и плагин "Компании"

По умолчанию в плагине sitemap не отображаются топики компаний, чтобы они там отображались необходимо в файле плагина sitemap доработать файл \plugins\sitemap\classes\modules\topic\Topic.class.php
в нем есть функция фильтра которая показывает какие топики нужно отображать в карте сайта:
protected function _getFilterForTopics() {
        return array(
            'blog_type' => array(
                'open', 'personal',
            ),
            'topic_publish' => 1,
        );
    }


нужно в нее добавить блоги типа company, в итоге получится
protected function _getFilterForTopics() {
        return array(
            'blog_type' => array(
                'open', 'personal', 'company',
            ),
            'topic_publish' => 1,
        );
    }

И теперь топики компаний будут отображаться.