An sich ein schönes Modul, aber ganz "rund" scheint das noch nicht zu laufen:
1. Wenn ich im Modul eingebe nur die letzten 90 Tage zu wählen und dann die Sortierung auf Anzahl stelle, werden mir auch Themen angezeigt die älter sind.
Stelle ich die Sortierung auf Datum werden nur die letzten 90 Tage angezeigt.
2. Es werden auch Themen angezeigt, auf welche Gäste keine Zugriff haben, sie bekommen zwar beim aufrufen des Beitrags dann eine Fehlermeldung aber der Link ist sichtbar.
3. SEF Unterstützung fehlt.
4. Nicht W3C konform
So weit so gut, 3 der 4 Probleme konnte ich mithilfe des Forums selber lösen, hier mein geänderter Quelltext:
Code:
<?php
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
$catid = $params->get( 'catid', 0 );
$maxlist = $params->get( 'max_list', 5 );
$shownums = $params->get( 'show_left_nums', 0 );
$showlinks = $params->get( 'show_last_links', 0 );
$order = $params->get( 'order', 'countd');
$aclass = $params->get( 'aclass', '' );
$lasttext = $params->get( 'lasttext', 'Last at' );
$lasthours = $params->get( 'lasthours', '4,24' );
$hstring = $params->get( 'hstring', 'h' );
$max_days = $params->get( 'max_days', '' );
$content = "";
//Start with determining which forums the user can see
$ResultSet ="";
if ($my->id > 0){
$database->setQuery("SELECT allowed FROM #__sb_sessions WHERE userid='".$my->id."'");
$ResultSet=$database->loadResult();
}
//"Guests" and users with "wrong" allowed Forums see only the public boards:
if (($ResultSet=="na" )||($my->id ==0)){
$database->setQuery("SELECT id FROM #__sb_categories WHERE pub_access='0'");
$allowed_forums=$database->loadObjectList();
$ResultSet="";
foreach ($allowed_forums as $af) {
if ($ResultSet == "" ) {
$ResultSet = $af->id;
}
else {
$ResultSet = $ResultSet.','.$af->id;
}
}
}
$query = "SELECT a.* , b.id as category, b.published as published, COUNT(*) as number "
. " FROM #__sb_messages AS a, "
. " #__sb_categories AS b WHERE a.catid = b.id"
. "\n AND b.id IN ($ResultSet)"
. " AND a.hold = 0 AND b.published = 1"
. ($catid ? ' AND a.catid = '.$catid : '');
if ( ($max_days != "" ) && ($max_days != 0) ) {
$query .= " AND DATE_FORMAT(FROM_UNIXTIME(UNIX_TIMESTAMP()-a.time),'%e') < ".$max_days;
}
$query .= " GROUP BY thread ";
switch ($order) {
case 'countd' : $qo = " number DESC, a.time DESC, b.name"; break;
case 'counta' : $qo = " number ASC , a.time DESC, b.name"; break;
case 'date' : $qo = " a.time DESC, number DESC, b.name"; break;
default:
$qo = " number DESC, a.time DESC, b.name"; break;
}
$query .= " ORDER BY " . $qo;
$query .= " LIMIT " . $maxlist." ";
$database->setQuery($query);
$meslist = $database->loadObjectList();
$enum=1;
foreach ($meslist as $mes){
if ($shownums)
$content .= $enum.". ";
$content .= "<a ". ($aclass ? 'class="'.$aclass.'"' : '');
$content .= " href='".sefRelToAbs("index.php?option=com_joomlaboard&func=view&catid=".$mes->catid."&id=".$mes->id."&Itemid=".$Itemid."#".$mes->id)."'>".stripslashes($mes->subject)."</a> (".$mes->number.")".$mes->ew."<br/>";
$enum++;
}
if ($showlinks) {
$content.="<br/>";
$content.= $lasttext;
$hours = split (",",$lasthours);
$hoursstring = '';
foreach ($hours as $hour) {
$hoursstring .= " <a ".($aclass ? 'class="'.$aclass.'"' : '')." href='".sefRelToAbs("index.php?option=com_joomlaboard&func=latest&do=show&Itemid=".$Itemid."&sel=".$hour)."'>".$hour."".$hstring."</a> - ";
}
$content .= SubStr($hoursstring,0,-3);
}
?>
Stellt sich nur noch die Frage wie man Fehler 1 behebt?
Robert
Lesezeichen