Skip to content
Snippets Groups Projects
Select Git revision
  • 795f16c5e4dad1a2ee2c22b3d88de7ca7a136993
  • master default protected
  • typos
  • development protected
  • ReadMe_Typos
  • example
  • feat/autocomplete-vscode
  • v3.3
  • v3.2
  • v3.1
  • v3.0
  • v2.2
  • v2.1
  • v2.0
  • old-example
  • v1.5
  • v1.4
  • v1.3
  • v1.0
  • v1.1
  • v1.2
21 results

example.tex

Blame
  • connect_class_dom.php 5.24 KiB
    <?php
    
    /**
     * @package mod
     * @subpackage adobeconnect
     * @author Akinsaya Delamarre (adelamarre@remote-learner.net)
     * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
     */
    
    
    require_once('connect_class.php');
    
    class connect_class_dom extends connect_class {
    
        public function __construct($serverurl = '', $serverport = '',
                                    $username = '', $password = '',
                                    $cookie = '', $https) {
            parent::__construct($serverurl, $serverport, $username, $password, $cookie, $https);
    
        }
    
        public function create_request($params = array(), $sentrequest = true) {
            if (empty($params)) {
                return false;
            }
    
    
            $dom = new DOMDocument('1.0', 'UTF-8');
    
            $root = $dom->createElement('params');
            $dom->appendChild($root);
    
    
            foreach($params as $key => $data) {
    	    
    	    // DFNVC
    	    // htmlentities() durch htmlspecialchars() ersetzt,
    	    // damit auch Nutzer agelegt werden können, deren Namen
    	    // Umlaute enthalten.
                //
    	    $datahtmlent = htmlspecialchars($data);
    
                $child = $dom->createElement('param', $datahtmlent);
                $root->appendChild($child);
    
                $attribute = $dom->createAttribute('name');
                $child->appendChild($attribute);
    
                $text = $dom->createTextNode($key);
                $attribute->appendChild($text);
    
            }
    
            $this->_xmlrequest = $dom->saveXML();
    
            if ($sentrequest) {
                $this->_xmlresponse = $this->send_request();
            }
        }
    
        /**
         * Parses through xml and looks for the 'cookie' parameter
         * @param string $xml the xml to parse through
         * @return string $sessoin returns the session id
         */
        public function read_cookie_xml($xml = '') {
            global $USER, $COURSE, $CFG;
    
            if (empty($xml)) {
                if (is_siteadmin($USER->id)) {
                    notice(get_string('adminemptyxml', 'adobeconnect'),
                           $CFG->wwwroot . '/admin/settings.php?section=modsettingadobeconnect');
                } else {
                    notice(get_string('emptyxml', 'adobeconnect'),
                           '', $COURSE);
                }
            }
    
            $dom = new DomDocument();
            $dom->loadXML($xml);
            $domnodelist = $dom->getElementsByTagName('cookie');
    
            if (isset($domnodelist->item(0)->nodeValue)) {
                $this->_cookie = $domnodelist->item(0)->nodeValue;
            } else {
                $this->_cookie = null;
            }
    
        }
    
        public function call_success() {
            global $USER, $COURSE, $CFG;
    
            if (empty($this->_xmlresponse)) {
                if (is_siteadmin($USER->id)) {
                    notice(get_string('adminemptyxml', 'adobeconnect'),
                           $CFG->wwwroot . '/admin/settings.php?section=modsettingadobeconnect');
                } else {
                    notice(get_string('emptyxml', 'adobeconnect'),
                           '', $COURSE);
                }
            }
    
            $dom = new DomDocument();
            $dom->loadXML($this->_xmlresponse);
    
            $domnodelist = $dom->getElementsByTagName('status');
    
            if ($domnodelist->item(0)->hasAttributes()) {
    
                $domnode = $domnodelist->item(0)->attributes->getNamedItem('code');
    
                if (!is_null($domnode)) {
                    if (0 == strcmp('ok', $domnode->nodeValue)) {
                        return true;
                    } else {
                        return false;
                    }
                } else {
                    return false;
                }
    
            } else {
                return false;
            }
    
        }
    
        private function create_http_head_login_xml() {
            $params = array('action' => 'login',
                            'external-auth' => 'use',
                            );
    
            $this->create_request($params, false);
        }
    
        public function user_session_cookie_old($username = '') {
            global $CFG;
            $header = array();
            $params = array('action' => 'lms-user-login',
                            'login' => $username,
                            );
            $this->create_request($params, true);
    	$data = $this->_xmlresponse;
    	$sessionval = false;
            $sessionstart = strpos($data, 'BREEZESESSION=');
            if (false !== $sessionstart) {
                $sessionend = strpos($data, ';');
                $sessionlength = strlen('BREEZESESSION=');
                $sessionvallength = $sessionend - ($sessionstart + $sessionlength);
                $sessionval = substr($data, $sessionstart+$sessionlength, $sessionvallength);
    	    return $sessionval;
            }
    	else {
    	    return false;
    	}
        }
        
        public function user_session_cookie($username = '') {
            global $CFG;
            $header = array();
            $params = array('action' => 'lms-user-login',
                            'login' => $username,
                            );
            $this->create_request($params, true);
    
            if ($this->call_success()) {
    	    $xmldoc = new DomDocument();
    	    $xmldoc->loadXML($this->_xmlresponse);
    	    $xpath = new DomXpath($xmldoc);
    	    $cookie = $xpath->query("//cookie")->item(0)->nodeValue;
    	    return $cookie;
            }
    	else {
    	    return false;
    	}
        }
    
    }