(gelöst) Forum made simple

Hilfe zu Modulen und Tags
Post Reply
Helmi
Forum Members
Forum Members
Posts: 43
Joined: Mon Jan 28, 2008 11:58 am

(gelöst) Forum made simple

Post by Helmi »

Ich habe auf einer Webseite mit CMSMS 1.2.4 Forum made simple installiert, weil ich denke, daß das dort ausreicht, wird nicht so ein großes Forum werden vermutlich. Es funktioniert auch. Nun würde ich gern auf der Startseite (Index) nicht nur die Boards gern anzeigen, sondern darunter auch einen Link auf den letzten Eintrag oder eine Meldung, was der letzte Eintrag war. Geht das? Bei der Forumsmodulhilfe steht leider nichts von weiteren Parametern in der Richtung. Aber vielleicht kann man das trotzdem einrichten? Weiß das jemand?
Last edited by Helmi on Sat May 03, 2008 7:30 pm, edited 1 time in total.
Helmi
Forum Members
Forum Members
Posts: 43
Joined: Mon Jan 28, 2008 11:58 am

Re: Forum made simple

Post by Helmi »

Beim Blog scheint das auch nicht zu gehen, nur bei News.

Hab jetzt die Idee, eine Seite anzulegen, wo man jeweils die letzte Nachricht aus Forum, Blog und News (heißt bei mir Artikel und sind keine News) sehen kann. Aber ich weiß nicht, ob das überhaupt geht und wenn ja, wie.
NaN

Re: Forum made simple

Post by NaN »

Mit einem Benutzerdefinierten Tag dürfte das auf jeden Fall funktionieren.
Weiß nicht wie fit Du mit PHP bist.
Mit dem folgenden Beispiel kannst Du Dir z.B. die Zusammenfassung des letzten News-Eintrags ausgeben lassen.

global $gCms;
$db =& $gCms->GetDb();
$query ="SELECT * FROM ". cms_db_prefix() . "module_news ORDER BY news_date DESC LIMIT 1";
$dbresult = $db->Execute($query);
if($dbresult && $row = $dbresult->FetchRow())
{
    $news_summary = $row['summary'];
}

echo $news_summary;

Ähnliches dürfte auch für die Blogs und Forumsbeiträge gehen.
Kenne da jetzt die Tabellennamen nicht.
Aber das Prinizip ist ähnlich.
Um da allerdings einen Link zu dem jeweiligen Eintrag zu erstellen, dürfte es etwas komplizierter werden.
Die Links werden ja vom jeweiligen Modul selbst dynamisch erzeugt.
Ich glaube da wäre es einfacher, die Module Blog und Forum zu modifizieren.
Man müsste nur in der Datei action.default.php des jeweiligen Moduls eine Abfrage einfügen.
Wie gesagt, ich weiß nicht wieviel man Dir da zumuten kann.
Helmi
Forum Members
Forum Members
Posts: 43
Joined: Mon Jan 28, 2008 11:58 am

Re: Forum made simple

Post by Helmi »

leider hab ich nicht so gründliche Kenntnisse. Von php und auch html hab ich nur soviel Ahnung, wieviel ich jeweils brauchte an Kenntnissen für irgendwelche Projekte. Für html hab ich mir gerade aus der Bücherei ein Buch ausgeliehen, für php hab ich das noch nicht gefunden, und leider ist das html-Buch wie viele andere Bücher aus der Bücherei ein bißchen alt.. nicht auf dem neuesten Stand.
Helmi
Forum Members
Forum Members
Posts: 43
Joined: Mon Jan 28, 2008 11:58 am

Re: Forum made simple

Post by Helmi »

wenn ich bei den News statt summary nur den Titel ausgeben will, muß ich dann summary durch title ersetzen?
cyberman

Re: Forum made simple

Post by cyberman »

Eine andere Alternative wäre, so wie beim News-Modul auch die Foren-Einträge als Feed ausgeben zu lassen und dann über einen RSS-Reader anzeigen zu lassen ...
NaN

Re: Forum made simple

Post by NaN »

Oder man nehme meine Modifikation  ;)

Habs jetzt erstmal nur fürs Forum.
Dort wird jetzt - ähnlich wie hier im Forum - hinter jedem Board angezeigt wann, von wem und in welchem Topic der jeweils letzte Post war.
Und ist auch gleich mit diesem Topic verlinkt.
War leichter als ich dachte.

Also in der Datei modules/Forum/action.default.php muss lediglich folgendes hinzugefügt werden (rot markiert):

CheckForumPermission('default'))
return $this->FrontEndDisplayMessage($id, $params, $returnid, $this->Lang('forum_access'));

$this->CurrentPath = $this->GetCurrentPath();
$this->ModulePath = $this->GetModulePath();

// added by NaN to show username of last post in forums list
$feusers = $this->GetModuleInstance('FrontEndUsers');

$arr_url = array();
if(isset($params['lang'])) $arr_url['lang'] = $params['lang'];
$arr_url['property_feu'] = (isset($params['property_feu'])) ? $params['property_feu'] : '';
$arr_url['prev_link'] = 'default';



$sql = "SELECT f.*, COUNT(t.id) as topic_count FROM ".
cms_db_prefix()."module_forum_forums f LEFT JOIN ".cms_db_prefix()."module_forum_topics t ON f.id = t.forum_id
GROUP BY f.id
ORDER BY position, f.name";
$dbresult =& $db->Execute($sql);

$items=array();
while($dbresult && $row = $dbresult->FetchRow())
{
$onerow = new stdClass;
$onerow->id = $row['id'];
$onerow->name = (empty($row['name'])) ? '?' : cms_htmlentities($row['name']);
$onerow->description = cms_htmlentities($row['description']);
$onerow->topic_count = $row['topic_count'];

$arr_localurl = array('action'=>'forum', 'fid'=>$onerow->id);
$prettyurl = $this->CurrentPath.'/forum/forum/'.$row['id'].'/1/'.$returnid;
$onerow->name_link = $this->CreateLink($id, 'forum', $returnid, $onerow->name, array_merge($arr_url,$arr_localurl), '', false, false, '', false, $prettyurl);

// Added by NaN to show last post of current forum in forumslist
$query = "SELECT topic_id,subject,user_id,posted FROM ".cms_db_prefix()."module_forum_posts AS posts
LEFT JOIN ".cms_db_prefix()."module_forum_topics AS topics
ON topics.id=posts.topic_id
LEFT JOIN ".cms_db_prefix()."module_forum_forums AS forums
ON forums.id=topics.id WHERE forum_id=". $row['id'] ."
ORDER BY posted DESC LIMIT 1";
$dbresult2 =& $db->Execute($query);
if($dbresult2 && $row2 = $dbresult2->FetchRow())
{
$arr_url['tid'] = $row2['topic_id'];
$onerow->subject = $row2['subject'];
$onerow->username = $this->lang('guest_user_name');
if($feusers)
{
$username = $feusers->GetUserName($row2['user_id']);
if($username!='')
$onerow->username = $username;
}
$onerow->subject_link = $this->CreateLink($id, 'topic', $returnid, $onerow->subject, array_merge($arr_url,$arr_localurl), '', false, false, '', false, $prettyurl);
$onerow->post_date = $this->FormatDate($row2['posted']);
}
// ---


$items[] = $onerow;
}

$this->smarty->assign('itemcount', count($items));
$this->smarty->assign_by_ref('items', $items);
$this->smarty->assign('last_post_label', $this->Lang('topic_last_post_label'));
$this->smarty->assign('forum_name_label', $this->Lang('forum_name_label'));
$this->smarty->assign('forum_topic_count_label', $this->Lang('forum_topic_count_label'));
$this->smarty->assign('forum_icon', 'ModulePath.'/images/forum.png" alt="'.$this->Lang('forum').'" title="'.$this->Lang('forum').'" width="22" height="22" />');

echo $this->ProcessTemplate('index.tpl');
?>

Anschließend muss man nur noch inder Datei modules/Forum/templates/index.tpl die Spalte für den letzten Post eintragen:





{if $itemcount > 0}





 
{$forum_name_label}
{$forum_topic_count_label}
{$last_post_label}



{foreach from=$items item=entry}
{cycle values="forum_alternate1,forum_alternate2" assign="alt_bgcolor"}

{$forum_icon}
{$entry->name_link}
{$entry->description}
{$entry->topic_count}
{$entry->post_date}
by {$entry->username}
in {$entry->subject_link}


{/foreach}


{/if}

Ich hoffe, das ist das was Du wolltest.
Werde das auch gleich mal als Feature-Request fürs Froum-Modul posten.
Helmi
Forum Members
Forum Members
Posts: 43
Joined: Mon Jan 28, 2008 11:58 am

Re: Forum made simple

Post by Helmi »

Danke schon mal, konnte es aber noch nicht ausprobieren, weil ich noch ein wwwrun-Problem habe. Ich hab es erst später realisiert, daß man Module nicht über xml hochladen sollte. Nun ist Forum made simple bei mir eigentilch auf wwwrun-Besitzer. Ich bin bei all-inkl.com, da kann man zum Glück über den kasserver die Besitzerrechte ändern, und das hab ich auch für das Forum getan. Leider ändert es nur die Besitzerrechte für die Verzeichnisse, die Dateien sind immer noch wwwrun, und wenn ich die bearbeiten und speichern will, heißt es: Permission denied. Muß mich mal beim Provider erkundigen, ob es eine Möglichkeit gibt, auch die Dateien auf ftp-Besitzer zu setzen.
NaN

Re: Forum made simple

Post by NaN »

Da gibts eine Option für.
Im Web FTP.

Oder im KASserver.
Bei Rekursiv oder so einfach ein Häkchen setzen.
Helmi
Forum Members
Forum Members
Posts: 43
Joined: Mon Jan 28, 2008 11:58 am

Re: Forum made simple

Post by Helmi »

so eine einfache Lösung. Danke. Jetzt hat es geklappt, es zeigt im Forum auf der Indexseite jetzt die letzten Einträge an. Ist wirklich ein Gewinn, weil man sonst ja auf den ersten Blick gar nicht sehen kann, wo sich was getan hat.
Post Reply

Return to “Module und Tags”