[ Index ] |
|
Code source de CMS made simple 1.0.5 |
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 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Tue Apr 3 18:50:37 2007 | par Balluche grâce à PHPXref 0.7 |