blob: 258cc5bd75aa05ea7488439f7c7ab3c79892311d [file] [log] [blame]
<?php
########################################################################################################
# Aastra XML API Classes - AastraIPFormattedPhoneTextScreen
# Copyright Aastra Telecom 2008-2010
#
# AastraIPPhoneFormattedTextScreen object.
#
# Public methods
#
# Inherited from AastraIPPhone
# setTitle(Title) to setup the title of an object (optional)
# @title string
# setTitleWrap() to set the title to be wrapped on 2 lines (optional)
# setCancelAction(uri) to set the cancel parameter with the URI to be called on Cancel (optional)
# @uri string
# setDestroyOnExit() to set DestroyonExit parameter to 'yes', 'no' by default (optional)
# setBeep() to enable a notification beep with the object (optional)
# setLockIn() to set the Lock-in tag to 'yes' (optional)
# setLockInCall() to set the Lock-in tag to 'call' (optional)
# setAllowAnswer() to set the allowAnswer tag to 'yes' (optional only for non softkey phones)
# setAllowDrop() to set the allowDrop tag to 'yes' (optional only for non softkey phones)
# setAllowXfer() to set the allowXfer tag to 'yes' (optional only for non softkey phones)
# setAllowConf() to set the allowConf tag to 'yes' (optional only for non softkey phones)
# setTimeout(timeout) to define a specific timeout for the XML object (optional)
# @timeout integer (seconds)
# addSoftkey(index,label,uri,icon_index) to add custom soktkeys to the object (optional)
# @index integer, softkey number
# @label string
# @uri string
# @icon_index integer, icon number
# setRefresh(timeout,URL) to add Refresh parameters to the object (optional)
# @timeout integer (seconds)
# @URL string
# setEncodingUTF8() to change encoding from default ISO-8859-1 to UTF-8 (optional)
# addIcon(index,icon) to add custom icons to the object (optional)
# @index integer, icon index
# @icon string, icon name or definition
# generate() to return the generated XML for the object
# output(flush) to display the object
# @flush boolean optional, output buffer to be flushed out or not.
#
# Specific to the object
# addLine(text,size,align,color) to add a formatted line
# @text string
# @size string, optional, "small", "double" or "large"
# @align string, optional, "left", "right" or "center"
# @color string, optional, "red", "black", ...
# addText(text,size,align,$color) to add a formatted text as formatted lines
# @text string, can include carriage returns
# @size string, optional, "double"
# @align string, optional, "left", "right" or "center"
# @color string, optional, "red", "black", ...
# setScrollStart(height) to define the beginning of the scrolling section and its height
# @height integer
# setScrollEnd() to define the end of the scrolling section
# setAllowDTMF() to allow DTMF passthrough on the object
# setDoneAction(uri) to set the URI to be called when the user selects the default "Done" key (optional)
# @uri string
# setScrollUp(uri) to set the URI to be called when the user presses the Up arrow (optional)
# @uri string
# setScrollDown(uri) to set the URI to be called when the user presses the Down arrow (optional)
# @uri string
# setScrollLeft(uri) to set the URI to be called when the user presses the Left arrow (optional)
# @uri string
# setScrollRight(uri) to set the URI to be called when the user presses the Right arrow (optional)
# @uri string
#
# Example
# require_once('AastraIPPhoneFormattedTextScreen.class.php');
# $ftext = new AastraIPPhoneFormattedTextScreen();
# $ftext->setDestroyOnExit();
# $ftext->addLine('Formatted Screen','double','center');
# $ftext->setScrollStart('2');
# $ftext->addLine('Scrolled text1');
# $ftext->addLine('Scrolled text2');
# $ftext->addLine('Scrolled text3');
# $ftext->addLine('Scrolled text4');
# $ftext->addLine('Scrolled text5');
# $ftext->setScrollEnd();
# $ftext->addLine('Footer',NULL,'center');
# $ftext->addSoftkey('1', 'Label', 'http://myserver.com/script.php?action=1','1');
# $ftext->addSoftkey('6', 'Exit', 'SoftKey:Exit');
# $ftext->addIcon('1', 'Icon:Envelope');
# $ftext->output();
#
########################################################################################################
require_once('AastraIPPhone.class.php');
require_once('AastraIPPhoneFormattedTextScreenEntry.class.php');
class AastraIPPhoneFormattedTextScreen extends AastraIPPhone {
var $_doneAction='';
var $_allowDTMF='';
var $_scrollUp='';
var $_scrollDown='';
var $_scrollLeft='';
var $_scrollRight='';
function addLine($text, $size=NULL, $align=NULL, $color=NULL)
{
$this->_entries[] = new AastraIPPhoneFormattedTextScreenEntry($text, $size, $align, $color, 'normal');
}
function addText($text, $size=NULL, $align=NULL, $color=NULL)
{
$pieces=explode("\n",wordwrap($text,$this->_display_size,"\n",True));
foreach($pieces as $value) $this->_entries[] = new AastraIPPhoneFormattedTextScreenEntry($value, $size, $align, $color, 'normal');
}
function setScrollStart($height = '')
{
$this->_entries[] = new AastraIPPhoneFormattedTextScreenEntry(NULL, $height, NULL, NULL, 'scrollstart');
}
function setScrollEnd()
{
$this->_entries[] = new AastraIPPhoneFormattedTextScreenEntry(NULL, NULL, NULL, NULL, 'scrollend');
}
function setDoneAction($uri)
{
$this->_doneAction = $uri;
}
function setAllowDTMF()
{
$this->_allowDTMF = 'yes';
}
function setScrollUp($uri)
{
$this->_scrollUp = $uri;
}
function setScrollDown($uri)
{
$this->_scrollDown = $uri;
}
function setScrollLeft($uri)
{
$this->_scrollLeft = $uri;
}
function setScrollRight($uri)
{
$this->_scrollRight = $uri;
}
function render()
{
# Beginning of root tag
$out = "<AastraIPPhoneFormattedTextScreen";
# DestroyOnExit
if($this->_destroyOnExit == 'yes') $out .= " destroyOnExit=\"yes\"";
# CancelAction
if($this->_cancelAction != '')
{
$cancelAction = $this->escape($this->_cancelAction);
$out .= " cancelAction=\"{$cancelAction}\"";
}
# DoneAction
if($this->_doneAction != '')
{
$doneAction = $this->escape($this->_doneAction);
$out .= " doneAction=\"{$doneAction}\"";
}
# Beep
if($this->_beep=='yes') $out .= " Beep=\"yes\"";
# Lockin
if($this->_lockin!='') $out .= " LockIn=\"{$this->_lockin}\"";
# AllowAnswer
if($this->_allowAnswer == 'yes') $out .= " allowAnswer=\"yes\"";
# AllowDrop
if($this->_allowDrop == 'yes') $out .= " allowDrop=\"yes\"";
# AllowXfer
if($this->_allowXfer == 'yes') $out .= " allowXfer=\"yes\"";
# AllowConf
if($this->_allowConf == 'yes') $out .= " allowConf=\"yes\"";
# TimeOut
if($this->_timeout!=0) $out .= " Timeout=\"{$this->_timeout}\"";
# AllowDTMF
if($this->_allowDTMF=='yes') $out .= " allowDTMF=\"yes\"";
# Scrolls up/down/left/right
if($this->_scrollUp!='') $out .= " scrollUp=\"".$this->escape($this->_scrollUp)."\"";
if($this->_scrollDown!='') $out .= " scrollDown=\"".$this->escape($this->_scrollDown)."\"";
if($this->_scrollLeft!='') $out .= " scrollLeft=\"".$this->escape($this->_scrollLeft)."\"";
if($this->_scrollRight!='') $out .= " scrollRight=\"".$this->escape($this->_scrollRight)."\"";
# End of Root tag
$out .= ">\n";
# Lines
if ($this->_title!='')
{
$title = $this->escape($this->_title);
$out .= "<Line Size=\"double\" Align=\"center\">";
$out .= $title."</Line>\n";
}
if (isset($this->_entries) && is_array($this->_entries))
{
foreach ($this->_entries as $entry) $out .= $entry->render();
}
# Softkeys
if (isset($this->_softkeys) && is_array($this->_softkeys))
{
foreach ($this->_softkeys as $softkey) $out .= $softkey->render();
}
# Icons
if (isset($this->_icons) && is_array($this->_icons))
{
$IconList=False;
foreach ($this->_icons as $icon)
{
if(!$IconList)
{
$out .= "<IconList>\n";
$IconList=True;
}
$out .= $icon->render();
}
if($IconList) $out .= "</IconList>\n";
}
# End tag
$out .= "</AastraIPPhoneFormattedTextScreen>\n";
# Return XML object
return $out;
}
}
?>