<?php
/**
 * ****************************************************************
 * Project:      *
 * Copyright:    Copyright (c) 2007
 * Company:      Thomas Niemann
 * ****************************************************************
 * Workfile:     MessageLoader.php
 * ****************************************************************
 * Description:  
 *                
 * ***************************************************************/
class HeadlineLoader extends BasicLoader implements SingletonInterface
{		
	private static $instance;	
	/****************************************************************
	 * singleton, provides only one instance
	 ****************************************************************/
	public static function getInstance()
	{
		if (!isset (self :: $instance))
		{
			$class = __CLASS__;
			self :: $instance = new $class ();
		}
		return self :: $instance;
	}
	/****************************************************************
	 * private constructor to prevent creation outside
	 * this class
	 ****************************************************************/
	private function __construct()
	{		
		$xmlHelper = new XMLHelper('messages/headlines.' . $this->language . '.xml', 'messages/messages.xsd');
		$this->xmlContent = $xmlHelper->getContent();
	}	
	/****************************************************************
	 * returns expected succesMessage by delivered messageId
	 * - true for 2nd Parameter if messages used in adminArea
	 ****************************************************************/
	public function getMessage($_parentKnote = "", $_messageId)
	{
		if (!empty ($_parentKnote))
		{
			$elementPath = $_parentKnote . '->message';
		}
		else
		{
			$elementPath = 'message->message';
		}
		return $this->getElement($elementPath, $_messageId);
	}
	public function getMetaInfo($_parentKnote = "", $_messageId, $_node)
	{		
		if (!empty ($_parentKnote))
		{
			$elementPath = $_parentKnote . '->message';
		}
		else
		{
			$elementPath = 'message->message';
		}
		$itemList = explode("->", $elementPath);
		$node = $this->xmlContent;
		// iterate XMLnodes
		foreach ($itemList as $item)
		{
			$node = $node-> $item;
		}
		// iterate messages and return if equals			
		foreach ($node as $message)
		{
			if (strcmp($message->attributes()->name, $_messageId) == 0)
			{
				return $this->convertElement($message->attributes()->$_node);
			}
		}
	}
}
?>