*/ //////////////////////////////////////////////////////////////////////////////////////////////////// class refnotes_scope_limits { public $start; public $end; /** * Constructor */ public function __construct($start, $end = -1000) { $this->start = $start; $this->end = $end; } } //////////////////////////////////////////////////////////////////////////////////////////////////// class refnotes_scope_mock { /** * */ public function getLimits() { return new refnotes_scope_limits(-1, -1); } /** * */ public function isOpen() { return false; } /** * */ public function getRenderer() { return new refnotes_renderer_mock(); } /** * */ public function getReferenceId() { return 0; } } //////////////////////////////////////////////////////////////////////////////////////////////////// class refnotes_scope { private $namespace; private $id; private $limits; private $note; private $notes; private $references; /** * Constructor */ public function __construct($namespace, $id, $start = -1, $end = -1000) { $this->namespace = $namespace; $this->id = $id; $this->limits = new refnotes_scope_limits($start, $end); $this->note = array(); $this->notes = 0; $this->references = 0; } /** * */ public function getName() { return $this->namespace->getName() . $this->id; } /** * */ public function getLimits() { return $this->limits; } /** * */ public function isOpen() { return $this->limits->end == -1000; } /** * */ public function getRenderer() { return $this->namespace->getRenderer(); } /** * */ public function getNoteId() { return ++$this->notes; } /** * */ public function getReferenceId() { return ++$this->references; } /** * */ public function addNote($note) { $this->note[] = $note; } /** * */ public function rewriteReferences($limit) { $block = new refnotes_note_block_iterator($this->note, $limit); foreach ($block as $note) { $note->rewriteReferences(); } } /** * */ public function renderNotes($mode, $limit) { $minReferenceId = array(); foreach ($this->note as $note) { $minReferenceId[] = $note->getMinReferenceId(); } array_multisort($minReferenceId, $this->note); $block = new refnotes_note_block_iterator($this->note, $limit); $doc = ''; foreach ($block as $note) { $doc .= $note->render($mode); } if ($mode == 'xhtml' && $doc != '') { $open = $this->getRenderer()->renderNotesSeparator() . '