[ Index ]
 

Code source de CMS made simple 1.0.5

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/modules/News/ -> action.rss.php (source)

   1  <?php
   2          if (!isset($gCms)) exit;
   3  
   4          $detailpage = '';
   5          $feed_title = 'CMS Made Simple News Feed';
   6  
   7          $manager =& $gCms->GetHierarchyManager();
   8          if (isset($params['detailpage']))
   9          {
  10              $node =& $manager->sureGetNodeByAlias($params['detailpage']);
  11              if (isset($node))
  12              {
  13                  $content =& $node->GetContent();
  14                  if (isset($content))
  15                  {
  16                      $detailpage = $content->Id();
  17                  }
  18              }
  19              else
  20              {
  21                  $node =& $manager->sureGetNodeById($params['detailpage']);
  22                  if (isset($node))
  23                  {
  24                      $detailpage = $params['detailpage'];
  25                  }
  26              }
  27          }
  28  
  29          $entryarray = array();
  30  
  31          if (isset($params["category"]) && $params["category"] != '')
  32          {
  33              $categories = explode(',', $params['category']);
  34              $query = "SELECT mn.*, mnc.news_category_name FROM " . cms_db_prefix() . "module_news mn LEFT OUTER JOIN " . cms_db_prefix() . "module_news_categories mnc ON mnc.news_category_id = mn.news_category_id WHERE status = 'published' AND (";
  35              $count = 0;
  36              foreach ($categories as $onecat)
  37              {
  38                  if ($count > 0)
  39                  {
  40                      $query .= ' OR ';
  41                  }
  42                  if (strpos($onecat, '|') !== FALSE || strpos($onecat, '*') !== FALSE)
  43                      $query .= "upper(mnc.long_name) like upper('" . trim(str_replace('*', '%', $onecat)) . "')";
  44                  else
  45                      $query .= "mnc.news_category_name = '" . trim($onecat) . "'";
  46                  $count++;
  47              }
  48              $query .= ") AND ";
  49          }
  50          else
  51          {
  52              $query = "SELECT mn.*, mnc.news_category_name FROM " . cms_db_prefix() . "module_news mn LEFT OUTER JOIN " . cms_db_prefix() . "module_news_categories mnc ON mnc.news_category_id = mn.news_category_id WHERE status = 'published' AND ";
  53          }
  54  
  55          $query .= "(".$db->IfNull('start_time',$db->DBTimeStamp(1))." < ".$db->DBTimeStamp(time()).") ";
  56          $query .= " AND ((".$db->IfNull('end_time',$db->DBTimeStamp(1))." = ".$db->DBTimeStamp(1).") OR (end_time > ".$db->DBTimeStamp(time()).")) ";
  57          $query .= ' ORDER BY news_date DESC'; 
  58  
  59          $dbresult = '';
  60  
  61          $start = -1;
  62          $number = -1;
  63          if( isset( $params['number'] ) )
  64          {
  65              $number = $params['number'];
  66          }
  67  
  68          if( $number >= 0 )
  69          {
  70              $dbresult =& $db->SelectLimit($query, $number, $start);
  71          }
  72          else
  73          {
  74              $dbresult =& $db->Execute($query);
  75          }
  76  
  77          while ($dbresult && $row = $dbresult->FetchRow())
  78          {
  79              $onerow = new stdClass();
  80  
  81              $sendtodetail = array('articleid'=>$row['news_id']);
  82              $onerow->link = $this->CreateLink($id, 'detail', $returnid, '', $sendtodetail,'',true,false,'',true,'news/'.$row['news_id']);
  83              $onerow->id = $row['news_id'];
  84              $onerow->title = $row['news_title'];
  85              $onerow->content = $row['news_data'];
  86              $onerow->summary = $row['summary'];
  87              $onerow->strippedcontent = strip_tags($onerow->content);
  88              $onerow->strippedsummary = strip_tags($onerow->summary);
  89              $onerow->postdate = $row['news_date'];
  90              $onerow->gmdate = gmdate('r', $db->UnixTimeStamp($row['news_date']));
  91              $onerow->startdate = $row['start_time'];
  92              $onerow->enddate = $row['end_time'];
  93              $onerow->category = $row['news_category_name'];
  94  
  95              $entryarray[]= $onerow;
  96          }
  97  
  98          $this->smarty->assign_by_ref('items', $entryarray);
  99  
 100          global $gCms;
 101  
 102          $this->smarty->assign_by_ref('root_url', $gCms->config['root_url']);
 103          $this->smarty->assign_by_ref('query_var', $gCms->config['query_var']);
 104  
 105          $node =& $manager->sureGetNodeById($returnid);
 106          if (isset($node))
 107          {
 108              $content =& $node->GetContent();
 109              if (isset($content))
 110              {
 111                  $feed_title = 'RSS Feed - ' . $content->Name();
 112              }
 113          }
 114          $this->smarty->assign('feed_title', $feed_title);
 115  
 116          #Display template
 117          $variables =& $gCms->variables;
 118                          if( preg_match( '/Mozilla/', $_SERVER["HTTP_USER_AGENT"] ) )
 119                          {
 120             $variables['content-type'] = 'text/xml';
 121                          }
 122                          else 
 123                          {
 124             $variables['content-type'] = 'application/rss+xml';
 125                          }
 126          //$variables['content-filename'] = 'feed.xml';
 127  
 128          echo $this->ProcessTemplate('rssfeed.tpl');
 129  
 130  # vim:ts=4 sw=4 noet
 131  ?>


Généré le : Tue Apr 3 18:50:37 2007 par Balluche grâce à PHPXref 0.7