[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/modules/Rss/models/ -> Record.php (source)

   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  }


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1