2012-03-28 18:36:37 -04:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
require_once 'classes/interfaces/dashletInterface.php';
|
|
|
|
|
|
2012-10-09 12:38:43 -04:00
|
|
|
class dashletRssReader implements DashletInterface
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
const version = '1.0';
|
2012-09-19 14:48:38 -04:00
|
|
|
|
2012-10-09 12:38:43 -04:00
|
|
|
public static function getAdditionalFields ($className)
|
2012-03-28 18:36:37 -04:00
|
|
|
{
|
2012-10-09 12:38:43 -04:00
|
|
|
$additionalFields = array ();
|
|
|
|
|
|
|
|
|
|
$urlFrom = new stdclass();
|
|
|
|
|
$urlFrom->xtype = 'textfield';
|
|
|
|
|
$urlFrom->name = 'DAS_URL';
|
|
|
|
|
$urlFrom->fieldLabel = 'Url';
|
|
|
|
|
$urlFrom->width = 320;
|
|
|
|
|
$urlFrom->maxLength = 200;
|
|
|
|
|
$urlFrom->allowBlank = false;
|
|
|
|
|
$urlFrom->value = "http://license.processmaker.com/syspmLicenseSrv/en/green/services/rssAP";
|
|
|
|
|
$additionalFields[] = $urlFrom;
|
|
|
|
|
|
|
|
|
|
return $additionalFields;
|
2012-03-28 18:36:37 -04:00
|
|
|
}
|
2012-10-09 12:38:43 -04:00
|
|
|
|
|
|
|
|
public static function getXTemplate ($className)
|
|
|
|
|
{
|
|
|
|
|
return "<iframe src=\"{page}?DAS_INS_UID={id}\" width=\"{width}\" height=\"207\" frameborder=\"0\"></iframe>";
|
2012-03-28 18:36:37 -04:00
|
|
|
}
|
2012-10-09 12:38:43 -04:00
|
|
|
|
|
|
|
|
public function setup ($config)
|
|
|
|
|
{
|
|
|
|
|
$this->urlFrom = isset( $config['DAS_URL'] ) ? $config['DAS_URL'] : "http://license.processmaker.com/syspmLicenseSrv/en/green/services/rssAP";
|
|
|
|
|
return true;
|
2012-03-28 18:36:37 -04:00
|
|
|
}
|
2012-04-16 10:48:25 -04:00
|
|
|
|
2012-10-09 12:38:43 -04:00
|
|
|
public function render ($width = 300)
|
|
|
|
|
{
|
|
|
|
|
$pCurl = curl_init();
|
|
|
|
|
curl_setopt( $pCurl, CURLOPT_URL, $this->urlFrom );
|
|
|
|
|
curl_setopt( $pCurl, CURLOPT_RETURNTRANSFER, true );
|
|
|
|
|
curl_setopt( $pCurl, CURLOPT_FOLLOWLOCATION, false );
|
|
|
|
|
curl_setopt( $pCurl, CURLOPT_AUTOREFERER, true );
|
|
|
|
|
//To avoid SSL error
|
|
|
|
|
curl_setopt( $pCurl, CURLOPT_SSL_VERIFYHOST, 0 );
|
|
|
|
|
curl_setopt( $pCurl, CURLOPT_SSL_VERIFYPEER, 0 );
|
|
|
|
|
|
|
|
|
|
//To avoid timeouts
|
|
|
|
|
curl_setopt( $pCurl, CURLOPT_CONNECTTIMEOUT, 10 );
|
|
|
|
|
curl_setopt( $pCurl, CURLOPT_TIMEOUT, 20 );
|
|
|
|
|
|
2012-11-12 14:44:44 -04:00
|
|
|
curl_setopt( $pCurl, CURLOPT_NOPROGRESS, true );
|
|
|
|
|
curl_setopt( $pCurl, CURLOPT_VERBOSE, false );
|
2012-10-09 12:38:43 -04:00
|
|
|
|
|
|
|
|
//Apply proxy settings
|
|
|
|
|
$sysConf = System::getSystemConfiguration();
|
|
|
|
|
if ($sysConf['proxy_host'] != '') {
|
|
|
|
|
curl_setopt( $pCurl, CURLOPT_PROXY, $sysConf['proxy_host'] . ($sysConf['proxy_port'] != '' ? ':' . $sysConf['proxy_port'] : '') );
|
|
|
|
|
if ($sysConf['proxy_port'] != '') {
|
|
|
|
|
curl_setopt( $pCurl, CURLOPT_PROXYPORT, $sysConf['proxy_port'] );
|
|
|
|
|
}
|
|
|
|
|
if ($sysConf['proxy_user'] != '') {
|
|
|
|
|
curl_setopt( $pCurl, CURLOPT_PROXYUSERPWD, $sysConf['proxy_user'] . ($sysConf['proxy_pass'] != '' ? ':' . $sysConf['proxy_pass'] : '') );
|
|
|
|
|
}
|
|
|
|
|
curl_setopt( $pCurl, CURLOPT_HTTPHEADER, array ('Expect:'
|
|
|
|
|
) );
|
|
|
|
|
}
|
|
|
|
|
|
2013-01-31 10:41:53 -04:00
|
|
|
$self = new stdclass();
|
2012-10-09 12:38:43 -04:00
|
|
|
$self->rss = @simplexml_load_string( curl_exec( $pCurl ) );
|
|
|
|
|
if ($self->rss) {
|
|
|
|
|
$index = 0;
|
|
|
|
|
$render = '';
|
|
|
|
|
$self->items = $self->rss->channel->item;
|
|
|
|
|
if (count( $self->rss->channel ) != 0) {
|
|
|
|
|
$status = 'true';
|
|
|
|
|
foreach ($self->items as $self->item) {
|
|
|
|
|
$self->title = $self->item->title;
|
|
|
|
|
$self->link = $self->item->link;
|
|
|
|
|
|
|
|
|
|
$self->des = $self->item->description;
|
|
|
|
|
$render[] = array ('link' => '<a href="' . $self->link . '" target="_blank">' . $self->title . '</a><br/>','description' => $self->des . '<br/><hr>'
|
|
|
|
|
);
|
|
|
|
|
$index ++;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$status = 'Error';
|
|
|
|
|
$render[] = array ('link' => 'Error','description' => "Unable to parse XML"
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$status = 'Error';
|
|
|
|
|
$render[] = array ('link' => 'Error','description' => "Unable to parse XML"
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
G::verifyPath( PATH_SMARTY_C, true );
|
|
|
|
|
$smarty = new Smarty();
|
|
|
|
|
$smarty->template_dir = PATH_CORE . 'templates/dashboard/';
|
|
|
|
|
$smarty->compile_dir = PATH_SMARTY_C;
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
$smarty->assign( 'url', $this->urlFrom );
|
|
|
|
|
$smarty->assign( 'render', $render );
|
|
|
|
|
$smarty->assign( 'status', $status );
|
|
|
|
|
} catch (Exception $ex) {
|
|
|
|
|
print $item->key;
|
|
|
|
|
}
|
|
|
|
|
$smarty->display( 'dashletRssReaderTemplate.html', null, null );
|
|
|
|
|
|
|
|
|
|
}
|
2012-03-28 18:36:37 -04:00
|
|
|
|
|
|
|
|
}
|