/include/AastraIPPhoneInputScreen.class.php
PHP | 362 lines | 161 code | 47 blank | 154 comment | 35 complexity | 95ce6ac71eb20ed1e7c241c5ab09bc12 MD5 | raw file
- <?php
- ########################################################################################################
- # Aastra XML API Classes - AastraIPPhoneInputScreen
- # Copyright Aastra Telecom 2005-2010
- #
- # AastraIPPhoneInputScreen 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 - Single Input
- # setURL(url) to set the URL to called after the input
- # @url string
- # setType(type) to set type of input, 'string' by default
- # @type enum ('IP', 'string', 'number', 'dateUS'...)
- # setDefault(default) to set default value for the input (optional)
- # @default string
- # setParameter(param) to set the parameter name to be parsed after the input
- # @param string
- # setInputLanguage(language) to set the language of the input (optional)
- # @language enum ("English", "French"....)
- # setPassword() to set the Password parameter to 'yes', 'no' by default (optional)
- # setNotEditable() to set the editable parameter to 'no', 'yes' by default (optional)
- # setEditable() is now replaced by setNotEditable but kept for compatibility reasons (optional)
- # setPrompt(prompt) to set the prompt to be displayed for the input.
- # @prompt string
- #
- # Specific to the object - Multiple Inputs
- # setURL(url) to set the URL to called after the input
- # @url string
- # setType(type) to set the default type of input 'string' by default
- # @type enum ('IP', 'string', 'number', 'dateUS'...)
- # setDefault(default) to set default default value for the input (optional)
- # @default string
- # setParameter(param) to set the default parameter name to be parsed after the input
- # @param string
- # setPassword() to set the default Password parameter to 'yes', 'no' by default (optional)
- # setNotEditable() to set the default editable parameter to 'no', 'yes' by default (optional)
- # setEditable() is now replaced by setNotEditable but kept for compatibility reasons (optional)
- # setPrompt(prompt) to set the default prompt to be displayed for the input.
- # @prompt string
- # setDefaultIndex(index) to define the field index the object will use to start (optional)
- # @index integer, optional, default is 1
- # setDisplayMode(display) to define the aspect of the display, normal/condensed (optional)
- # @display enum ("normal, "condensed"), default is "normal".
- # setInputLanguage(language) to set the language of the input (optional)
- # @language enum ("English", "French"....)
- # addField(type) to add an input field and setting its type
- # @type (IP, string, number, dateUS, timeUS,dateInt, timeInt or empty) if the type is an empty string then the type is inherited from the main object.
- # setFieldPassword(password) to set the password mode for the input field, overrides the value set by setPassword for the field
- # @password enum ("yes", "no")
- # setFieldEditable(editable) to set the input field editable mode ('yes', no'), overrides the value set by setEditable or setNotEditable for the field
- # @editable enum ("yes", "no")
- # setFieldParameter(parameter) to set the parameter name to be parsed after the global input, overrides the value set by setParameter for the field
- # @parameter string
- # setFieldPrompt(prompt)to set the prompt to be displayed for the input field, overrides the value set by setPrompt for the field
- # @prompt string
- # setFieldSelection(selection) to set the Selection tag for the field
- # @selection string
- # setFieldDefault(default) to set default value for the input field, overrides the value set by setDefault for the field
- # @default string
- # addFieldSoftkey(index,label,uri,icon) to add custom softkeys to the input field, overrides the softkeys set by addSoftkey.
- # @index integer, softkey number
- # @label string
- # @uri string
- # @icon integer, icon number
- #
- # Example 1 - Single Input
- # require_once('AastraIPPhoneInputScreen.class.php');
- # $input = new AastraIPPhoneInputScreen();
- # $input->setTitle('Title');
- # $input->setPrompt('Enter your password');
- # $input->setParameter('param');
- # $input->setType('string');
- # $input->setURL('http://myserver.com/script.php');
- # $input->setPassword();
- # $input->setDestroyOnExit();
- # $input->setDefault('Default');
- # $input->output();
- #
- # Example 2 - Multiple Inputs
- # require_once('AastraIPPhoneInputScreen.class.php');
- # $input = new AastraIPPhoneInputScreen();
- # $input->setTitle('Example 2');
- # $input->setDisplayMode('condensed');
- # $input->setURL('http://myserver.com/script.php');
- # $input->setDestroyOnExit();
- # $input->addSoftkey('5', 'Done', 'SoftKey:Submit');
- # $input->addField('string');
- # $input->setFieldPrompt('Username:');
- # $input->setFieldParameter('user');
- # $input->addFieldSoftkey('3', 'ABC', 'SoftKey:ChangeMode');
- # $input->addField('number');
- # $input->setFieldPassword('yes');
- # $input->setFieldPrompt('Pass:');
- # $input->setFieldParameter('passwd');
- # $input->output();
- #
- ########################################################################################################
-
- require_once('AastraIPPhone.class.php');
- require_once('AastraIPPhoneInputScreenEntry.class.php');
- require_once('AastraIPPhoneSoftkeyEntry.class.php');
-
- class AastraIPPhoneInputScreen extends AastraIPPhone {
- var $_url;
- var $_type='string';
- var $_parameter;
- var $_prompt;
- var $_editable='';
- var $_default='';
- var $_password='';
- var $_defaultindex='';
- var $_displaymode='';
- var $_inputlanguage='';
-
- function setURL($url)
- {
- $this->_url=$url;
- }
- function setType($type)
- {
- $this->_type=$type;
- }
-
- function setEditable()
- {
- $this->_editable='no';
- }
-
- function setNotEditable()
- {
- $this->_editable='no';
- }
-
- function setDefault($default)
- {
- $this->_default=$default;
- }
-
- function setParameter($parameter)
- {
- $this->_parameter=$parameter;
- }
-
- function setPassword()
- {
- $this->_password='yes';
- }
-
- function setPrompt($prompt)
- {
- $this->_prompt=$prompt;
- }
-
- function setDefaultIndex($index)
- {
- $this->_defaultindex=$index;
- }
-
- function setDisplayMode($display)
- {
- $this->_displaymode=$display;
- }
-
- function setInputLanguage($input)
- {
- $this->_inputlanguage=$input;
- }
-
- function addField($type='')
- {
- $this->_entries[] = new AastraIPPhoneInputScreenEntry($type);
- end($this->_entries);
- }
-
- function setFieldType($type)
- {
- $this->_entries[key($this->_entries)]->_type=$type;
- }
-
- function setFieldPassword($password='yes')
- {
- $this->_entries[key($this->_entries)]->_password=$password;
- }
-
- function setFieldEditable($editable='yes')
- {
- $this->_entries[key($this->_entries)]->_editable=$editable;
- }
-
- function setFieldParameter($parameter)
- {
- $this->_entries[key($this->_entries)]->_parameter=$parameter;
- }
-
- function setFieldPrompt($prompt)
- {
- $this->_entries[key($this->_entries)]->_prompt=$this->escape($prompt);
- }
-
- function setFieldDefault($default)
- {
- $this->_entries[key($this->_entries)]->_default=$default;
- }
-
- function setFieldSelection($selection)
- {
- $this->_entries[key($this->_entries)]->_selection=$selection;
- }
-
- function addFieldSoftkey($index, $label, $uri, $icon=NULL)
- {
- $this->_entries[key($this->_entries)]->_softkeys[] = new AastraIPPhoneSoftkeyEntry($index, $this->escape($label), $this->escape($uri), $icon);
- }
-
- function render()
- {
- # Beginning of root tag
- $out = "<AastraIPPhoneInputScreen type=\"$this->_type\"";
-
- # Password
- if($this->_password == 'yes') $out .= " password=\"yes\"";
-
- # DestroyOnExit
- if($this->_destroyOnExit == 'yes') $out .= " destroyOnExit=\"yes\"";
-
- # CancelAction
- if($this->_cancelAction != "")
- {
- $cancelAction = $this->escape($this->_cancelAction);
- $out .= " cancelAction=\"{$cancelAction}\"";
- }
-
- # Editable
- if($this->_editable=='no') $out .= " editable=\"no\"";
-
- # Beep
- if($this->_beep=='yes') $out .= " Beep=\"yes\"";
-
- # DefaultIndex
- if($this->_defaultindex!='') $out .= " defaultIndex=\"".$this->_defaultindex."\"";
-
- # InputLanguage
- if($this->_inputlanguage!='') $out .= " inputLanguage=\"".$this->_inputlanguage."\"";
-
- # Display Mode
- if($this->_displaymode!='') $out .= " displayMode=\"".$this->_displaymode."\"";
-
- # 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}\"";
-
- # End of the root tag
- $out .= ">\n";
-
-
- # Title
- if ($this->_title!='')
- {
- $title = $this->escape($this->_title);
- $out .= "<Title";
- if ($this->_title_wrap=='yes') $out .= " wrap=\"yes\"";
- $out .= ">".$title."</Title>\n";
- }
-
- # Prompt
- if($this->_prompt != '')
- {
- $prompt = $this->escape($this->_prompt);
- $out .= "<Prompt>{$prompt}</Prompt>\n";
- }
-
- # URL
- $url = $this->escape($this->_url);
- $out .= "<URL>{$url}</URL>\n";
-
- # Parameter
- if($this->_parameter != '') $out .= "<Parameter>{$this->_parameter}</Parameter>\n";
-
- # Default
- $out .= "<Default>{$this->_default}</Default>\n";
-
- # Multiple input fields
- 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 .= "</AastraIPPhoneInputScreen>\n";
- return $out;
- }
- }
- ?>