<?php
namespace wcf\system\menu\page;
use \wcf\data\chat\room\ChatRoom;

/**
 * PageMenuItemProvider for chat.
 *
 * @author 	Tim Düsterhus
 * @copyright	2010-2011 Tim Düsterhus
 * @license	Creative Commons Attribution-NonCommercial-ShareAlike <http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode>
 * @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 {
			$cache = ChatRoom::getCache();
			$cache->seek(0);
			$this->room = $cache->search($cache->key());
			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() {
		return \wcf\system\request\LinkHandler::getInstance()->getLink('Chat', array(
			'object' => $this->room
		));
	}
}