* @package timwolla.wcf.chat * @subpackage system.menu.page */ class ChatPageMenuItemProvider extends DefaultPageMenuItemProvider { protected $room = null; /** * Hides the button when there is no valid room * * @see \wcf\system\menu\page\PageMenuItemProvider::isVisible() */ public function isVisible() { // guests are not supported if (!\wcf\system\WCF::getUser()->userID) return false; try { ChatRoom::getCache()->seek(0); return true; } catch (\OutOfBoundsException $e) { return false; } } /** * Modifies the link to show the Link we would be redirect to. * * @see \wcf\system\menu\page\PageMenuItemProvider::getLink() */ public function getLink() { if (!$this->isVisible()) return parent::getLink(); return \wcf\util\HeaderUtil::redirect(\wcf\system\request\LinkHandler::getInstance()->getLink('Chat', array( 'object' => ChatRoom::getCache()->search(ChatRoom::getCache()->key()) ))); } }