<?php
/**
 * Implements each item of action menu.
 *
 * @author Camilo Carromeu <camilo@carromeu.com>
 * @category class
 * @package core
 * @subpackage business
 * @copyright 2005-2017 Titan Framework
 * @license http://www.titanframework.com/license/ BSD License (3 Clause)
 * @see Instance, Business, Action, Section
 */
abstract class MenuItem
{
	protected $label = '';

	protected $image = '';

	abstract public function __construct ($input);

	abstract public function getMenuItem ();

	abstract public function getSubmenuItem ();

	protected static function imageUrl ($file)
	{
		$section = Business::singleton ()->getSection (Section::TCURRENT);

		if (file_exists ($section->getCompPath () .'_menu/'. $file))
			return $section->getCompPath () .'_menu/'. $file;

		return Skin::singleton ()->getIconsMenu () . $file;
	}

	public function getImage ()
	{
		return $this->image;
	}

	public function getImagePath ()
	{
		$section = Business::singleton ()->getSection (Section::TCURRENT);

		if (file_exists ($section->getCompPath () .'_menu/'. $this->image))
			return $section->getCompPath () .'_menu/'. $this->image;

		return Instance::singleton ()->getCorePath () .'interface/menu/'. $this->image;
	}

	public function getLabel ()
	{
		return $this->label;
	}

	public function getDoc ()
	{
		$path = Instance::singleton ()->getReposPath () .'menu/'. substr (get_class ($this), 4) .'/_doc/'. Localization::singleton ()->getLanguage () .'.txt';

		if (file_exists ($path))
			return file_get_contents ($path);

		return '';
	}
}