[ 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.default.php (source)

   1  <?php
   2  
   3  if (!isset($gCms)) exit;
   4  
   5          $detailpage = '';
   6          if (isset($params['detailpage']))
   7          {
   8              $manager =& $gCms->GetHierarchyManager();
   9              $node =& $manager->sureGetNodeByAlias($params['detailpage']);
  10              if (isset($node))
  11              {
  12                  $content =& $node->GetContent();    
  13                  if (isset($content))
  14                  {
  15                      $detailpage = $content->Id();
  16                  }
  17              }
  18              else
  19              {
  20                  $node =& $manager->sureGetNodeById($params['detailpage']);
  21                  if (isset($node))
  22                  {
  23                      $detailpage = $params['detailpage'];
  24                  }
  25              }
  26          }
  27          if (isset($params['browsecat']) && $params['browsecat']==1)
  28          {
  29              $params['detailpage'] = $detailpage;
  30              $this->DoAction('browsecat', $id, $params, $returnid);
  31              return;
  32          }
  33  
  34          if (isset($params["makerssbutton"]))
  35          {
  36              $params["showtemplate"] = "false";
  37              echo $this->CreateLink($id, 'rss', $returnid, "<img border=\"0\" src=\"images/cms/xml_rss.gif\" alt=\"RSS Newsfeed\" />", $params,'',false,false,'',true,'news/rss');
  38              return;
  39          }
  40  
  41          $entryarray = array();
  42          $query = "
  43              SELECT 
  44                  mn.*, 
  45                  mnc.news_category_name, 
  46                  mnc.long_name, 
  47                  u.username, 
  48                  u.first_name,
  49                  u.last_name 
  50              FROM " . 
  51                  cms_db_prefix() . "module_news mn
  52              LEFT OUTER JOIN " . cms_db_prefix() . "module_news_categories mnc 
  53              ON mnc.news_category_id = mn.news_category_id 
  54              LEFT OUTER JOIN " . cms_db_prefix() . "users u 
  55              ON u.user_id = mn.author_id 
  56              WHERE 
  57                  status = 'published' 
  58              AND
  59          ";
  60  
  61          if (isset($params["category"]) && $params["category"] != '')
  62          {
  63              $categories = explode(',', $params['category']);
  64              $query .= "(";
  65              $count = 0;
  66              foreach ($categories as $onecat)
  67              {
  68                  if ($count > 0)
  69                  {
  70                      $query .= ' OR ';
  71                  }
  72                  if (strpos($onecat, '|') !== FALSE || strpos($onecat, '*') !== FALSE)
  73                      $query .= "upper(mnc.long_name) like upper('" . trim(str_replace('*', '%', $onecat)) . "')";
  74                  else
  75                      $query .= "mnc.news_category_name = '" . trim($onecat) . "'";
  76                  $count++;
  77              }
  78              $query .= ") AND ";
  79          }
  80  
  81          $query .= "(".$db->IfNull('start_time',$db->DBTimeStamp(1))." < ".$db->DBTimeStamp(time()).") ";
  82          if (isset($params['showarchive']) && $params['showarchive'] == true) {
  83              $query .= " AND (end_time < ".$db->DBTimeStamp(time()).") ";
  84          }
  85          else
  86          {
  87              $query .= " AND ((".$db->IfNull('end_time',$db->DBTimeStamp(1))." = ".$db->DBTimeStamp(1).") OR (end_time > ".$db->DBTimeStamp(time()).")) ";
  88          }
  89  
  90  
  91          
  92          if (isset($params['sortby'])) 
  93          {
  94              if ($params['sortby'] == 'news_category')
  95              {
  96                  $query .= "ORDER BY 'long_name', 'news_date'";
  97              } else {
  98                      $query .= "ORDER BY '" . str_replace("'", '', str_replace(';', '', $params['sortby'])) . "' ";
  99              }
 100          } 
 101          else 
 102          { 
 103              $query .= "ORDER BY news_date "; 
 104          } 
 105  
 106          if (isset($params['sortasc']) && ($params['sortasc'] == true || strtolower($params['sortasc']) == 'true')) 
 107          { 
 108              $query .= "asc"; 
 109          } 
 110          else 
 111          { 
 112              $query .= "desc"; 
 113          }
 114          
 115          $dbresult = '';
 116  
 117          $number = -1;
 118          $start = -1;
 119  
 120          if( isset( $params['start'] ) )
 121          {
 122              $start = $params['start'];
 123              $number = 100000; //SelectLimit doesn't like -1
 124          }
 125  
 126          if( isset( $params['number'] ) )
 127          {
 128              $number = $params['number'];
 129          }
 130  
 131          if( $start >= 0 || $number >= 0 )
 132          {
 133              $dbresult =& $db->SelectLimit($query, $number, $start);
 134          }
 135          else
 136          {
 137              $dbresult =& $db->Execute($query);
 138          }
 139  
 140          while ($dbresult && $row = $dbresult->FetchRow())
 141          {
 142              $onerow = new stdClass();
 143  
 144              $onerow->author_id = $row['author_id'];
 145              $onerow->author = $row['username'];
 146              $onerow->authorname = $row['first_name'].' '.$row['last_name'];
 147              $onerow->id = $row['news_id'];
 148              $onerow->title = $row['news_title'];
 149              $onerow->content = $row['news_data'];
 150              $onerow->summary = (trim($row['summary'])!='<br/>'?$row['summary']:'');
 151              $onerow->postdate = $row['news_date'];
 152              $pref_dateformat = $this->GetPreference('dateformat', '');
 153              if (FALSE == empty($params['dateformat']))
 154              {
 155                  $dateformat = $params['dateformat'];
 156              } elseif (FALSE == empty($pref_dateformat)) {
 157                  $dateformat = $this->GetPreference('dateformat', '');
 158              } else {
 159                  $dateformat = '%x';
 160              }
 161              $onerow->formatpostdate = strftime($dateformat, $db->UnixTimeStamp($row['news_date']));
 162              $onerow->startdate = $row['start_time'];
 163              $onerow->enddate = $row['end_time'];
 164              $onerow->category = $row['news_category_name'];
 165  
 166              $moretext = isset($params['moretext'])?$params['moretext']:$this->Lang('more');
 167              $sendtodetail = array('articleid'=>$row['news_id']);
 168              if (isset($params['detailpage']))
 169              {
 170                  $sendtodetail['origid'] = $returnid;
 171              }
 172              if (isset($params['detailtemplate']))
 173              {
 174                  $sendtodetail['detailtemplate'] = $params['detailtemplate'];
 175              }
 176              if (isset($params['dateformat']))
 177              {
 178                  $sendtodetail['dateformat'] = $params['dateformat'];
 179              }
 180              
 181              $prettyurl = 'news/'.$row['news_id'].'/'.($detailpage!=''?$detailpage:$returnid);
 182              if (isset($sendtodetail['detailtemplate']))
 183              {
 184                  $prettyurl .= '/d,' . $sendtodetail['detailtemplate'];
 185              }
 186              
 187              $sendtoprint = array('articleid' => $row['news_id'], 'showtemplate' => 'false');
 188              
 189              if (isset($params['lang']))
 190              {
 191                  $sendtodetail['lang'] = $params['lang'];
 192                  $sendtoprint['lang'] = $params['lang'];
 193              }
 194  
 195              #CreateLink($id, $action, $returnid='', $contents='', $params=array(), $warn_message='', $onlyhref=false, $inline=false, $addttext='', $targetcontentonly=false, $prettyurl='')
 196              $onerow->link = $this->CreateLink($id, 'detail', $detailpage!=''?$detailpage:$returnid, '', $sendtodetail,'', true, false, '', true, $prettyurl);
 197              $onerow->titlelink = $this->CreateLink($id, 'detail', $detailpage!=''?$detailpage:$returnid, $row['news_title'], $sendtodetail, '', false, false, '', true, $prettyurl);
 198              $onerow->morelink = $this->CreateLink($id, 'detail', $detailpage!=''?$detailpage:$returnid, $moretext, $sendtodetail, '', false, false, '', true, $prettyurl);
 199              $onerow->printlink = $this->CreateLink($id, 'print', $returnid, $this->Lang('print'), $sendtoprint);
 200  
 201              $entryarray[]= $onerow;
 202          }
 203          $smarty->assign('itemcount', count($entryarray));
 204                  $smarty->assign_by_ref('items', $entryarray);
 205                  $smarty->assign('category_label', $this->Lang('category_label'));
 206          $smarty->assign('author_label', $this->Lang('author_label'));
 207  
 208  foreach( $params as $key => $value )
 209  {
 210    if( $key == 'mact' || $key == 'action' ) continue;
 211  
 212    $smarty->assign('param_'.$key,$value);
 213  }
 214  
 215                  #Display template
 216          echo "<!-- Displaying News Module -->\n";
 217          echo "<!-- News Categories: '".(isset($params['category'])?$params['category']:'')."' -->\n";
 218  
 219          if (isset($params['summarytemplate']))
 220          {
 221              echo $this->ProcessTemplate($params['summarytemplate']);
 222          }
 223          else
 224          {
 225              echo $this->ProcessTemplateFromDatabase('displaysummary');
 226          }
 227  
 228  # vim:ts=4 sw=4 noet
 229  ?>


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