Совместимость niceurl с vkpost

При добавлении топика возникает ошибка:
Fatal error: Call to a member function getUrl() on a non-object in /plugins/niceurl/classes/modules/niceurl/Niceurl.class.php on line 134

У кого было подобное?

P/S
После нескольких часов тестов, выяснил, что поcле выключения плагина Vkpost, проблема исчезает. Кто-нибудь подружил эти плагины у себя на сайте?

9 комментариев

avatar
Собственно ругается на:
$sBlogUrl=$oTopic->GetBlog()->getUrl();
if ($oTopic->GetBlog()->getType()=='personal') {
$sBlogUrl=Config::Get('plugin.niceurl.url_personal_blog');
$sUrlSource=str_replace('%blog%',Config::Get('plugin.niceurl.url_personal_blog'),$sUrlSource);
}
$aPreg['%blog%']=$sBlogUrl;
avatar
значит блог отсутствует, и $oTopic->GetBlog() возвращает null
avatar
не может такого быть, блог есть и при включенном плагине vkpost топик пишется в существующий блог, в котором уже есть записи
avatar
проверьте что возвращает метод $oTopic->GetBlog()
avatar
проблема не в Niceurl, проблема в vkpost. Добавляешь топик, он его сохраняет в моих публикациях, хотя перед этим вывалил ошибку, но в VK не переносит.
avatar
Если мне не изменяет память, то не все функции, возврающие $oTopic выставляют полноценный blog.

В одном из своих плагиов переопределял функцию GetBlog() на примерно следующий код (ниже идет псевдокод по памяти)

if (!$this->GetBlog()){
    $oBlog = $this->Blog_GetBlogById( $this->GetBlogId());
    $this->SetBlog($oBlog);
}
avatar
Потому что vkpost бесполезный плагин, отключайте его и радуйтесь. Если конечно не хотите платить нетланку за адаптацию функционала, который и дак доступен каждому желающему, без каких либо плагинов.
avatar
Есть плагин VKFeed, он работает вместе с NiceURL, но после поблиукации на стене, vkfeed не берёт сокращённую ссылку с NiceURL, а берёт та что по умолчанию в livestreet, следовательно она не работает. Его нужно допиливать. Думаю скоро закажу на фрилансе.
avatar
\plugins\vkpost\classes\hooks\HookVkpost.class.php

в функции public function TopicAddAfter($aVars)
после $oTopic = $aVars['oTopic'];
добавить $oTopic=$this->Topic_GetTopicById($oTopic->getId());
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.