X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FOrbited%2FOrbitedPlugin.php;h=ba87b266a03b2588cb62988531838dce483693c0;hb=e36c9523383769313b11a67aa3859cb09b20ec52;hp=cf6e5de1392dfe5d01c773c51be5b0acd19cdd91;hpb=9c2d0879e9064fe3b9cf9af2c7eabe869966bd92;p=quix0rs-gnu-social.git diff --git a/plugins/Orbited/OrbitedPlugin.php b/plugins/Orbited/OrbitedPlugin.php index cf6e5de139..ba87b266a0 100644 --- a/plugins/Orbited/OrbitedPlugin.php +++ b/plugins/Orbited/OrbitedPlugin.php @@ -52,39 +52,61 @@ class OrbitedPlugin extends RealtimePlugin public $webport = null; public $channelbase = null; public $stompserver = null; + public $stompport = null; public $username = null; public $password = null; + public $webuser = null; + public $webpass = null; protected $con = null; + function onStartShowHeadElements($action) + { + // See http://orbited.org/wiki/Deployment#Cross-SubdomainDeployment + $action->element('script', null, ' document.domain = document.domain; '); + } + function _getScripts() { $scripts = parent::_getScripts(); - $root = 'http://'.$this->webserver.(($this->webport == 80) ? '':':'.$this->webport); + + $port = (is_null($this->webport)) ? 8000 : $this->webport; + + $server = (is_null($this->webserver)) ? common_config('site', 'server') : $this->webserver; + + $root = 'http://'.$server.(($port == 80) ? '':':'.$port); + $scripts[] = $root.'/static/Orbited.js'; + $scripts[] = common_path('plugins/Orbited/orbitedextra.js'); $scripts[] = $root.'/static/protocols/stomp/stomp.js'; $scripts[] = common_path('plugins/Orbited/orbitedupdater.js'); + return $scripts; } function _updateInitialize($timeline, $user_id) { $script = parent::_updateInitialize($timeline, $user_id); - return $script." OrbitedUpdater.init(\"$this->stompserver\", $this->stompport, \"{$timeline}\");"; + + $server = $this->_getStompServer(); + $port = $this->_getStompPort(); + + return $script." OrbitedUpdater.init(\"$server\", $port, ". + "\"{$timeline}\", \"{$this->webuser}\", \"{$this->webpass}\");"; } function _connect() { - require_once(INSTALLDIR.'/extlibs/Stomp.php'); + require_once(INSTALLDIR.'/extlib/Stomp.php'); - $stompserver = (empty($this->stompserver)) ? "tcp://{$this->webserver}:61613/" : $this->stompserver; + $url = $this->_getStompUrl(); - $this->con = new Stomp($stompserver); + $this->con = new Stomp($url); if ($this->con->connect($this->username, $this->password)) { - $this->_log(LOG_INFO, "Connected."); + $this->log(LOG_INFO, "Connected."); } else { - $this->_log(LOG_ERR, 'Failed to connect to queue server'); + $this->log(LOG_ERR, 'Failed to connect to queue server'); throw new ServerException('Failed to connect to queue server'); } } @@ -110,4 +132,23 @@ class OrbitedPlugin extends RealtimePlugin } return '/' . implode('/', $path); } + + function _getStompServer() + { + return (!is_null($this->stompserver)) ? $this->stompserver : + (!is_null($this->webserver)) ? $this->webserver : + common_config('site', 'server'); + } + + function _getStompPort() + { + return (!is_null($this->stompport)) ? $this->stompport : 61613; + } + + function _getStompUrl() + { + $server = $this->_getStompServer(); + $port = $this->_getStompPort(); + return "tcp://$server:$port/"; + } }