[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /*+*********************************************************************************** 3 * The contents of this file are subject to the vtiger CRM Public License Version 1.0 4 * ("License"); You may not use this file except in compliance with the License 5 * The Original Code is: vtiger CRM Open Source 6 * The Initial Developer of the Original Code is vtiger. 7 * Portions created by vtiger are Copyright (C) vtiger. 8 * All Rights Reserved. 9 *************************************************************************************/ 10 require_once ('libraries/magpierss/rss_fetch.inc'); 11 require_once ('include/simplehtmldom/simple_html_dom.php'); 12 13 // for rss caching 14 define('MAGPIE_CACHE_DIR', '/tmp/magpie_cache'); 15 define('MAGPIE_CACHE_ON', 1); 16 define('MAGPIE_CACHE_AGE', 1800); 17 18 class Rss_Record_Model extends Vtiger_Record_Model { 19 20 /** 21 * Function to get the id of the Record 22 * @return <Number> - Report Id 23 */ 24 public function getId() { 25 return $this->get('rssid'); 26 } 27 28 /** 29 * Function to set the id of the Record 30 * @param <type> $value - id value 31 * @return <Object> - current instance 32 */ 33 public function setId($value) { 34 return $this->set('rssid', $value); 35 } 36 37 /** 38 * Fuction to get the Name of the Record 39 * @return <String> 40 */ 41 function getName() { 42 return $this->get('rsstitle'); 43 } 44 45 /** 46 * Function to get Rss fetched object 47 * @return <object> - Rss Object 48 */ 49 public function getRssObject() { 50 return $this->get('rss'); 51 } 52 53 /** 54 * Function to set Rss Object 55 * @param <object> $rss - rss fetched object 56 */ 57 public function setRssObject($rss) { 58 return $this->set('rss',$rss->items); 59 } 60 61 /** 62 * Function to set Rss values 63 * @param <object> $rss - Rss fetched object 64 */ 65 public function setRssValues($rss) { 66 $this->set('rsstitle', $rss->channel["title"]); 67 $this->set('url', $rss->channel["link"]); 68 } 69 70 /** 71 * Function to save the record 72 * @param <string> $url 73 */ 74 public function save($url) { 75 $db = PearDatabase::getInstance(); 76 $title = $this->getName(); 77 $id = $db->getUniqueID("vtiger_rss"); 78 79 if($title == "") { 80 $title = $url; 81 } 82 83 $params = array($id, $url, $title); 84 $sql = "INSERT INTO vtiger_rss (rssid,rssurl,rsstitle) values (?,?,?)"; 85 $result = $db->pquery($sql, $params); 86 87 if($result) { 88 $this->setId($id); 89 return $id; 90 } else { 91 return false; 92 } 93 } 94 95 /** 96 * Function to delete a record 97 */ 98 public function delete() { 99 $db = PearDatabase::getInstance(); 100 $recordId = $this->getId(); 101 102 $sql = 'DELETE FROM vtiger_rss where rssid = ?'; 103 $db->pquery($sql,array($recordId)); 104 } 105 106 /** 107 * Function to make a record default for an rss record 108 */ 109 public function makeDefault() { 110 $db = PearDatabase::getInstance(); 111 $recordId = $this->getId(); 112 113 $sql = 'UPDATE vtiger_rss set starred = 0'; 114 $db->pquery($sql,array()); 115 116 $sql = 'UPDATE vtiger_rss set starred = 1 where rssid = ?'; 117 $db->pquery($sql,array($recordId)); 118 } 119 120 /** 121 * Function to get record instance by using id and moduleName 122 * @param <Integer> $recordId 123 * @param <String> $qualifiedModuleName 124 * @return <Rss_Record_Model> RecordModel 125 */ 126 static public function getInstanceById($recordId, $qualifiedModuleName) { 127 $db = PearDatabase::getInstance(); 128 $result = $db->pquery('SELECT * FROM vtiger_rss WHERE rssid = ?', array($recordId)); 129 130 if ($db->num_rows($result)) { 131 $rowData = $db->query_result_rowdata($result, 0); 132 133 $recordModel = new self(); 134 $recordModel->setData($rowData); 135 $recordModel->setModule($qualifiedModuleName); 136 $rss = fetch_rss($recordModel->get('rssurl')); 137 $rss->items = $recordModel->setSenderInfo($rss->items); 138 $recordModel->setRssValues($rss); 139 $recordModel->setRssObject($rss); 140 141 return $recordModel; 142 } 143 144 return false; 145 } 146 147 /** 148 * Function to set the sender address to the record 149 * @param <array> $rssItems 150 * @return <array> $items 151 */ 152 public function setSenderInfo($rssItems) { 153 $items = array(); 154 foreach($rssItems as $item) { 155 $item['sender'] = $this->getName(); 156 $items[] = $item; 157 } 158 159 return $items; 160 } 161 162 /** 163 * Function to get clean record instance by using moduleName 164 * @param <String> $qualifiedModuleName 165 * @return <Settings_SMSNotifier_Record_Model> 166 */ 167 static public function getCleanInstance($qualifiedModuleName) { 168 $recordModel = new self(); 169 return $recordModel->setModule($qualifiedModuleName); 170 } 171 172 /** 173 * Function to validate the rss url 174 * @param <string> $url 175 * @return <boolean> 176 */ 177 public function validateRssUrl($url) { 178 $rss = fetch_rss($url); 179 180 if($rss) { 181 $this->setRssValues($rss); 182 return true; 183 } else { 184 return false; 185 } 186 } 187 188 /** 189 * Function to get the default rss 190 */ 191 public function getDefaultRss() { 192 $db = PearDatabase::getInstance(); 193 194 $result = $db->pquery('SELECT rssid FROM vtiger_rss where starred = 1', array()); 195 $recordId = $db->query_result($result,'0','rssid'); 196 if($recordId) { 197 $this->setId($recordId); 198 } else { 199 $result = $db->pquery('SELECT rssid FROM vtiger_rss', array()); 200 $recordId = $db->query_result($result,'0','rssid'); 201 $this->setId($recordId); 202 } 203 } 204 205 /** 206 * Function to get html contents from feed 207 * @param <string> $url 208 * @return <string> html contents of url 209 */ 210 public function getHtmlFromUrl($url) { 211 $html = file_get_html($url); 212 return $html->innertext; 213 } 214 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |