You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
456 lines
16 KiB
456 lines
16 KiB
4 months ago
|
<?php
|
||
|
/*********************************************************************************
|
||
|
** The contents of this file are subject to the vtiger CRM Public License Version 1.0
|
||
|
* ("License"); You may not use this file except in compliance with the License
|
||
|
* The Original Code is: vtiger CRM Open Source
|
||
|
* The Initial Developer of the Original Code is vtiger.
|
||
|
* Portions created by vtiger are Copyright (C) vtiger.
|
||
|
* All Rights Reserved.
|
||
|
*
|
||
|
********************************************************************************/
|
||
|
global $calpath;
|
||
|
global $app_strings,$mod_strings;
|
||
|
global $theme;
|
||
|
$theme_path="themes/".$theme."/";
|
||
|
$image_path=$theme_path."images/";
|
||
|
|
||
|
require_once('data/CRMEntity.php');
|
||
|
require_once('include/database/PearDatabase.php');
|
||
|
require_once($theme_path."layout_utils.php");
|
||
|
// Require the xmlParser class
|
||
|
require_once('include/feedParser/xmlParser.php');
|
||
|
|
||
|
// Require the feedParser class
|
||
|
require_once('include/feedParser/feedParser.php');
|
||
|
|
||
|
class vtigerRSS extends CRMEntity
|
||
|
{
|
||
|
var $rss;
|
||
|
var $rsscache_time = 1200;
|
||
|
var $rss_object;
|
||
|
var $rss_title;
|
||
|
var $rss_link;
|
||
|
|
||
|
function setRSSUrl($url)
|
||
|
{
|
||
|
global $cache_dir;
|
||
|
//print_r($url);
|
||
|
/*$this->rss = new lastRSS();
|
||
|
$this->rss->cache_dir = $cache_dir;
|
||
|
$this->cache_time = $this->rsscache_time;
|
||
|
if($this->rss_object = $this->rss->get($url))
|
||
|
{
|
||
|
$this->rss_title = $this->rss_object["title"];
|
||
|
$this->rss_link = $this->rss_object["link"];
|
||
|
return true;
|
||
|
}else
|
||
|
{
|
||
|
return false;
|
||
|
}*/
|
||
|
|
||
|
$this->rss = new feedParser();
|
||
|
// Read in our sample feed file
|
||
|
$data = @implode("",@file($url));
|
||
|
// Tell feedParser to parse the data
|
||
|
$info = $this->rss->parseFeed($data);
|
||
|
|
||
|
if(isset($info))
|
||
|
{
|
||
|
$this->rss_object = $info["channel"];
|
||
|
}else
|
||
|
{
|
||
|
return false;
|
||
|
}
|
||
|
if(isset($this->rss_object))
|
||
|
{
|
||
|
$this->rss_title = $this->rss_object["title"];
|
||
|
$this->rss_link = $this->rss_object["link"];
|
||
|
$this->rss_object = $info["item"];
|
||
|
return true;
|
||
|
}else
|
||
|
{
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
/*function getRSSHeadings()
|
||
|
{
|
||
|
global $image_path;
|
||
|
|
||
|
if($this->rss_object)
|
||
|
{
|
||
|
$shtml = "<table width=\"100%\" border=\"0\" cellspacing=\"2\" cellpadding=\"4\">
|
||
|
<tr>
|
||
|
<td class=\"rssPgTitle\"><img src=\"".$image_path."starred.gif\" align=\"absmiddle\">
|
||
|
<a href=\"".$this->rss_object[link]."\">".$this->rss_object[title]."</a>
|
||
|
</td>
|
||
|
</tr>
|
||
|
</table>";
|
||
|
return $shtml;
|
||
|
}
|
||
|
}*/
|
||
|
|
||
|
function getListViewRSSHtml()
|
||
|
{
|
||
|
if(isset($this->rss_object))
|
||
|
{
|
||
|
$i = 0;
|
||
|
foreach($this->rss_object as $key=>$item)
|
||
|
{
|
||
|
$i = $i + 1;
|
||
|
$shtml .= "<li><a href=\"$item[link]\" class=\"rssNews\" target=\"_blank\">$item[title]</a></li>";
|
||
|
if($i == 10)
|
||
|
{
|
||
|
return $shtml;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return $shtml;
|
||
|
|
||
|
}else
|
||
|
{
|
||
|
$shtml = "Sorry: It's not possible to reach RSS URL";
|
||
|
}
|
||
|
|
||
|
//return $shtml;
|
||
|
}
|
||
|
|
||
|
function saveRSSUrl($url,$makestarred,$rsscategory)
|
||
|
{
|
||
|
global $adb;
|
||
|
|
||
|
if ($url != "")
|
||
|
{
|
||
|
$rsstitle = $this->rss_title;
|
||
|
if($rsstitle == "")
|
||
|
{
|
||
|
$rsstitle = $url;
|
||
|
}
|
||
|
$genRssId = $adb->getUniqueID("rss");
|
||
|
$sSQL = "insert into rss (RSSID,RSSURL,RSSTITLE,RSSTYPE,STARRED,RSSCATEGORY) values (".$genRssId.",'".addslashes($url);
|
||
|
$sSQL .= "','".addslashes($rsstitle)."',0,".$makestarred.",'".addslashes($rsscategory)."')";
|
||
|
$result = $adb->query($sSQL);
|
||
|
if($result)
|
||
|
{
|
||
|
return true;
|
||
|
}else
|
||
|
{
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function getStarredRssFolder()
|
||
|
{
|
||
|
|
||
|
global $adb;
|
||
|
global $image_path;
|
||
|
|
||
|
$sSQL = "select * from rss where starred=1";
|
||
|
$result = $adb->query($sSQL);
|
||
|
while($allrssrow = $adb->fetch_array($result))
|
||
|
{
|
||
|
$shtml .= "<tr>";
|
||
|
$shtml .= "<td width=\"15\">
|
||
|
<img src=\"".$image_path."onstar.gif\" align=\"absmiddle\" onMouseOver=\"this.style.cursor='pointer'\" id=\"star-$allrssrow[rssid]\" onclick=\"star('$allrssrow[rssid]','0')\"></td>";
|
||
|
$shtml .= "<td class=\"rssTitle\"><a href=\"index.php?module=Rss&action=index&record=$allrssrow[rssid]
|
||
|
\" class=\"rssTitle\">".substr($allrssrow['rsstitle'],0,15)."...</a></td>";
|
||
|
$shtml .= "</tr>";
|
||
|
}
|
||
|
return $shtml;
|
||
|
|
||
|
}
|
||
|
|
||
|
function getCRMRssFeeds()
|
||
|
{
|
||
|
global $adb;
|
||
|
global $image_path;
|
||
|
|
||
|
$sSQL = "select * from rss where rsstype=1";
|
||
|
$result = $adb->query($sSQL);
|
||
|
//$allrssrow = $adb->fetch_array($result);
|
||
|
while($allrssrow = $adb->fetch_array($result))
|
||
|
{
|
||
|
$shtml .= "<tr>";
|
||
|
if($allrssrow["starred"] == 1)
|
||
|
{
|
||
|
$shtml .= "<td width=\"15\">
|
||
|
<img src=\"".$image_path."onstar.gif\" align=\"absmiddle\" onMouseOver=\"this.style.cursor='pointer'\" id=\"star-$allrssrow[rssid]\" onclick=\"star('$allrssrow[rssid]','0')\"></td>";
|
||
|
}else
|
||
|
{
|
||
|
$shtml .= "<td width=\"15\">
|
||
|
<img src=\"".$image_path."offstar.gif\" align=\"absmiddle\" onMouseOver=\"this.style.cursor='pointer'\" id=\"star-$allrssrow[rssid]\" onclick=\"star('$allrssrow[rssid]','1')\"></td>";
|
||
|
}
|
||
|
$shtml .= "<td class=\"rssTitle\"><a href=\"index.php?module=Rss&action=ListView&record=$allrssrow[rssid]
|
||
|
\" class=\"rssTitle\">".$allrssrow[rsstitle]."</a></td>";
|
||
|
$shtml .= "</tr>";
|
||
|
|
||
|
}
|
||
|
return $shtml;
|
||
|
|
||
|
}
|
||
|
|
||
|
function getAllRssFeeds()
|
||
|
{
|
||
|
global $adb;
|
||
|
global $image_path;
|
||
|
|
||
|
$sSQL = "select * from rss where rsstype <> 1";
|
||
|
$result = $adb->query($sSQL);
|
||
|
while($allrssrow = $adb->fetch_array($result))
|
||
|
{
|
||
|
$shtml .= "<tr>";
|
||
|
if($allrssrow["starred"] == 1)
|
||
|
{
|
||
|
$shtml .= "<td width=\"15\">
|
||
|
<img src=\"".$image_path."onstar.gif\" align=\"absmiddle\" onMouseOver=\"this.style.cursor='pointer'\" id=\"star-$allrssrow[rssid]\" onclick=\"star('$allrssrow[rssid]','0')\"></td>";
|
||
|
}else
|
||
|
{
|
||
|
$shtml .= "<td width=\"15\">
|
||
|
<img src=\"".$image_path."offstar.gif\" align=\"absmiddle\" onMouseOver=\"this.style.cursor='pointer'\" id=\"star-$allrssrow[rssid]\" onclick=\"star('$allrssrow[rssid]','1')\"></td>";
|
||
|
}
|
||
|
$shtml .= "<td class=\"rssTitle\"><a href=\"index.php?module=Rss&action=ListView&record=$allrssrow[rssid]\" class=\"rssTitle\">".$allrssrow[rsstitle]."</a></td>";
|
||
|
$shtml .= "</tr>";
|
||
|
|
||
|
}
|
||
|
|
||
|
return $shtml;
|
||
|
}
|
||
|
|
||
|
function getRssUrlfromId($rssid)
|
||
|
{
|
||
|
global $adb;
|
||
|
|
||
|
if($rssid != "")
|
||
|
{
|
||
|
$sSQL = "select * from rss where rssid=".$rssid;
|
||
|
$result = $adb->query($sSQL);
|
||
|
$rssrow = $adb->fetch_array($result);
|
||
|
|
||
|
if(count($rssrow) > 0)
|
||
|
{
|
||
|
$rssurl = $rssrow[rssurl];
|
||
|
}
|
||
|
}
|
||
|
return $rssurl;
|
||
|
}
|
||
|
|
||
|
function getRSSHeadings($rssid)
|
||
|
{
|
||
|
global $image_path;
|
||
|
global $adb;
|
||
|
|
||
|
if($rssid != "")
|
||
|
{
|
||
|
$sSQL = "select * from rss where rssid=".$rssid;
|
||
|
$result = $adb->query($sSQL);
|
||
|
$rssrow = $adb->fetch_array($result);
|
||
|
|
||
|
if(count($rssrow) > 0)
|
||
|
{
|
||
|
$shtml = "<table width=\"100%\" border=\"0\" cellspacing=\"2\" cellpadding=\"4\">
|
||
|
<tr>
|
||
|
<td class=\"rssPgTitle\">";
|
||
|
if($rssrow[starred] == 1)
|
||
|
{
|
||
|
$shtml .= "<img src=\"".$image_path."starred.gif\" align=\"absmiddle\">";
|
||
|
}else
|
||
|
{
|
||
|
$shtml .= "<img src=\"".$image_path."unstarred.gif\" align=\"absmiddle\">";
|
||
|
}
|
||
|
$shtml .= "<a href=\"".$this->rss_object[link]."\"> ".$rssrow[rsstitle]."</a>
|
||
|
</td>
|
||
|
</tr>
|
||
|
</table>";
|
||
|
|
||
|
}
|
||
|
}
|
||
|
return $shtml;
|
||
|
|
||
|
|
||
|
/*if($this->rss_object)
|
||
|
{
|
||
|
$shtml = "<table width=\"100%\" border=\"0\" cellspacing=\"2\" cellpadding=\"4\">
|
||
|
<tr>
|
||
|
<td class=\"rssPgTitle\"><img src=\"".$image_path."starred.gif\" align=\"absmiddle\">
|
||
|
<a href=\"".$this->rss_object[link]."\">".$this->rss_object[title]."</a>
|
||
|
</td>
|
||
|
</tr>
|
||
|
</table>";
|
||
|
return $shtml;
|
||
|
}*/
|
||
|
}
|
||
|
|
||
|
function getTopStarredRSSFeeds()
|
||
|
{
|
||
|
global $adb;
|
||
|
global $image_path;
|
||
|
|
||
|
$sSQL = "select * from rss where starred=1";
|
||
|
$result = $adb->query($sSQL);
|
||
|
$shtml .= "<img src=\"".$image_path."rss.gif\" border=\"0\" align=\"absmiddle\" hspace=\"2\"><a href=\"#\" onclick='window.open(\"index.php?module=Rss&action=Popup\",\"new\",\"width=500,height=300,resizable=1,scrollbars=1\");'>Add New Rss</a>";
|
||
|
|
||
|
while($allrssrow = $adb->fetch_array($result))
|
||
|
{
|
||
|
$shtml .= "<img src=\"".$image_path."rss.gif\" border=\"0\" align=\"absmiddle\" hspace=\"2\">";
|
||
|
$shtml .= "<a href=\"index.php?module=Rss&action=ListView&record=$allrssrow[rssid]\" class=\"rssFavLink\"> ".substr($allrssrow['rsstitle'],0,10)."...</a></img>";
|
||
|
}
|
||
|
return $shtml;
|
||
|
}
|
||
|
|
||
|
function getStarredRssHTML()
|
||
|
{
|
||
|
global $adb;
|
||
|
global $image_path;
|
||
|
|
||
|
$sSQL = "select * from rss where starred=1";
|
||
|
$result = $adb->query($sSQL);
|
||
|
//$shtml = "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr>";
|
||
|
|
||
|
while($allrssrow = $adb->fetch_array($result))
|
||
|
{
|
||
|
//$allrssrow["rssurl"];
|
||
|
|
||
|
if($this->setRSSUrl($allrssrow["rssurl"]))
|
||
|
{
|
||
|
$rss_html = $this->getListViewRSSHtml();
|
||
|
}
|
||
|
$shtml .= "<td width=\"50%\" valign=\"top\">
|
||
|
<table class=\"formOuterBorder\" width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"0\"> <tr><td class=\"formSecHeader\">";
|
||
|
$shtml .= "<img src=\"".$image_path."onstar.gif\" align=\"absmiddle\" onMouseOver=\"this.style.cursor='pointer'\" id=\"star-$allrssrow[rssid]\" onclick=\"star('$allrssrow[rssid]','0')\">
|
||
|
<span style=\"font-weight:normal\">Today at</span>";
|
||
|
$shtml .= " <a href=\"$this->rss_link\" target=\"_blank\">".$allrssrow['rsstitle']."</a>";
|
||
|
$shtml .= "</td></tr>";
|
||
|
$shtml .= "<tr><td style=\"padding-top:10\"><ul>".$rss_html."</ul></td></tr>";
|
||
|
if(isset($this->rss_object))
|
||
|
{
|
||
|
if(count($this->rss_object) > 10)
|
||
|
{
|
||
|
$shtml .= "<tr><td align=\"right\">
|
||
|
<a target=\"_BLANK\" href=\"$this->rss_link\">More...</a>
|
||
|
</td></tr>";
|
||
|
}
|
||
|
}
|
||
|
$shtml .= "</table></td><td style=\"width:20;\"> </td>";
|
||
|
$sreturnhtml[] = $shtml;
|
||
|
$shtml = "";
|
||
|
}
|
||
|
|
||
|
$recordcount = round((count($sreturnhtml))/2);
|
||
|
$j = $recordcount;
|
||
|
for($i=0;$i<$recordcount;$i++)
|
||
|
{
|
||
|
$starredhtml .= "<tr>".$sreturnhtml[$i].$sreturnhtml[$j]."</tr>";
|
||
|
$j = $j + 1;
|
||
|
}
|
||
|
$starredhtml = "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">".$starredhtml."</table>";
|
||
|
|
||
|
return $starredhtml;
|
||
|
|
||
|
}
|
||
|
|
||
|
function getSelectedRssHTML($rssid)
|
||
|
{
|
||
|
global $adb;
|
||
|
global $image_path;
|
||
|
|
||
|
$sSQL = "select * from rss where rssid=".$rssid;
|
||
|
$result = $adb->query($sSQL);
|
||
|
// $shtml = "<table width=\"100%\" border=\"0\" cellspacing=\"4\" cellpadding=\"0\">";
|
||
|
|
||
|
while($allrssrow = $adb->fetch_array($result))
|
||
|
{
|
||
|
//$allrssrow["rssurl"];
|
||
|
|
||
|
if($this->setRSSUrl($allrssrow["rssurl"]))
|
||
|
{
|
||
|
$rss_html = $this->getListViewRSSHtml();
|
||
|
}
|
||
|
$shtml = "<table class=\"formOuterBorder\" width=\"80%\" border=\"0\" cellspacing=\"1\" cellpadding=\"0\"><tr><td class=\"formSecHeader\">";
|
||
|
if($allrssrow["starred"] == 1)
|
||
|
{
|
||
|
$shtml .= "<img src=\"".$image_path."onstar.gif\" align=\"absmiddle\" onMouseOver=\"this.style.cursor='pointer'\" id=\"star-$allrssrow[rssid]\" onclick=\"star('$allrssrow[rssid]','0')\"> <span style=\"font-weight:normal\">Today at</span> "; }else
|
||
|
{
|
||
|
$shtml .= "<img src=\"".$image_path."offstar.gif\" align=\"absmiddle\" onMouseOver=\"this.style.cursor='pointer'\" id=\"star-$allrssrow[rssid]\" onclick=\"star('$allrssrow[rssid]','1')\"> <span style=\"font-weight:normal\">Today at</span> ";
|
||
|
}
|
||
|
$shtml .= " <a href=\"$this->rss_link\" target=\"_blank\">".$allrssrow['rsstitle']."</a>";
|
||
|
$shtml .= "</td></tr>";
|
||
|
$shtml .= "<tr><td style=\"padding-top:10\"><ul>".$rss_html."</ul></td></tr>";
|
||
|
}
|
||
|
if(isset($this->rss_object))
|
||
|
{
|
||
|
if(count($this->rss_object) > 10)
|
||
|
{
|
||
|
$shtml .= "<tr><td align=\"right\">
|
||
|
<a target=\"_BLANK\" href=\"$this->rss_link\">More...</a>
|
||
|
</td></tr>";
|
||
|
}
|
||
|
}
|
||
|
$shtml .= "</table>";
|
||
|
return $shtml;
|
||
|
}
|
||
|
|
||
|
function getRSSCategoryHTML()
|
||
|
{
|
||
|
global $adb;
|
||
|
global $image_path;
|
||
|
$sSQL = "select * from rsscategory where presence = 1 order by sortorderid";
|
||
|
$result = $adb->query($sSQL);
|
||
|
// $categoryrow = $adb->fetch_array($result);
|
||
|
|
||
|
while($categoryrow = $adb->fetch_array($result))
|
||
|
{
|
||
|
$shtml .= "<tr>
|
||
|
<td width=\"15\">
|
||
|
<div align=\"center\"><a href=\"javascript:;\" onClick=\"toggleRSSFolder('".$categoryrow["sortorderid"]."')\"><img id=\"".$categoryrow["sortorderid"]."_toggle\" src=\"".$image_path."plus.gif\" border=\"0\"></a></div></td>
|
||
|
<td width=\"20\"><div align=\"center\"><img id=\"".$categoryrow["sortorderid"]."_folder\" src=\"".$image_path."rss_folder_cls.gif\"></div></td>
|
||
|
<td nowrap><a href=\"javascript:;\" onClick=\"toggleRSSFolder('".$categoryrow["sortorderid"]."')\" class=\"rssFolder\">".$categoryrow["rsscategory"]."</a></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td colspan=\"3\"><div id=\"".$categoryrow["sortorderid"]."_feeds\" style=\"display:none\"><table width=\"100%\" border=\"0\" cellspacing=\"2\" cellpadding=\"2\" style=\"margin:5 0 0 35\">".$this->getRssFeedsbyCategory($categoryrow["rsscategory"])."</table></div></td>
|
||
|
</tr>";
|
||
|
}
|
||
|
|
||
|
return $shtml;
|
||
|
}
|
||
|
|
||
|
function getRssFeedsbyCategory($rsscategory)
|
||
|
{
|
||
|
|
||
|
global $adb;
|
||
|
global $image_path;
|
||
|
|
||
|
$sSQL = "select * from rss where starred <> 1 and rsscategory='".$rsscategory."'";
|
||
|
$result = $adb->query($sSQL);
|
||
|
while($allrssrow = $adb->fetch_array($result))
|
||
|
{
|
||
|
$shtml .= "<tr>";
|
||
|
$shtml .= "<td width=\"15\">
|
||
|
<img src=\"".$image_path."offstar.gif\" align=\"absmiddle\" onMouseOver=\"this.style.cursor='pointer'\" id=\"star-$allrssrow[rssid]\" onclick=\"star('$allrssrow[rssid]','1')\"></td>";
|
||
|
$shtml .= "<td class=\"rssTitle\"><a href=\"index.php?module=Rss&action=index&record=$allrssrow[rssid]
|
||
|
\" class=\"rssTitle\">".$allrssrow[rsstitle]."</a></td>";
|
||
|
$shtml .= "</tr>";
|
||
|
}
|
||
|
return $shtml;
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
function getRsscategory()
|
||
|
{
|
||
|
global $adb;
|
||
|
global $image_path;
|
||
|
$sSQL = "select * from rsscategory where presence = 1 order by sortorderid";
|
||
|
$result = $adb->query($sSQL);
|
||
|
|
||
|
while($categoryrow = $adb->fetch_array($result))
|
||
|
{
|
||
|
$rsscategories[] = $categoryrow["rsscategory"];
|
||
|
}
|
||
|
|
||
|
return $rsscategories;
|
||
|
}
|
||
|
}
|
||
|
?>
|