Přihlásit se

modul posledni prispevky z fora

06. říj 2015 22:04 #123808
Ahoj, mozna se snazim o neco co uz predemnou nekdo napsal, prolezl jsem forum, ale nic co by se mi hodilo jsem nenasel, jediny co se tak nejak resilo je JFusion, ale ja nepotrebuju propojovat ucty forum/web, pripadne pokud umi zobrazit jen prispevky tak se rad priucim jak na to. Po prechodu na Joomlu z klasicky psanych stranek se snazim rozbehnout okno s poslednimi prispevky z phpbb fora, ktery bezi v jedny db jako joomla. Snazil jsem se pouzit to co uz predemnou napsal predchozi spravce ale moc to nefunguje, prechodem na novejsi php uz to hazelo chyby ale slo to a pak jsem to vypnul uplne.

Vytvoril jsem si svuj modul do kteryho bych to chtel zakomponovat, nainstaloval ho ale pravdepodobne se bude jste muset upravit xml soubor a u zbytku souboru jen sladit funkce

mod_forum.xml
Code:
<?xml version="1.0" encoding="utf-8"?> <extension type="module" version="3.1.0" client="site" method="upgrade"> <name>Forum</name> <author>Tydou</author> <version>1.0.0</version> <description>Forum news topic</description> <files> <filename>mod_forum.xml</filename> <filename module="mod_forum">mod_forum.php</filename> <filename>index.html</filename> <filename>helper.php</filename> <filename>tmpl/default.php</filename> <filename>tmpl/index.html</filename> </files> <config> </config> </extension>

helper.php
Code:
<?php class ModForumHelper { function TADY NEVIM CO() { return; } function getlastmessages($numofmessages = 8) { // How Many Topics you want to display? $topicnumber = $numofmessages; // Change this to your phpBB path $urlPath = "forum"; // Database Configuration (Where your phpBB config.php file is located) include $urlPath.'/config.php'; $link = mysql_connect($dbhost, $dbuser, $dbpasswd) or die("Could not connect"); mysql_select_db($dbname) or die("Could not select database"); // Get 5 Latest Posts. $qry = mysql_query("SELECT * FROM `phpbb_posts` ORDER BY `post_id` DESC LIMIT 8"); while($row=mysql_fetch_array($qry)) { // Get Author Name. $author1 = mysql_query("SELECT * FROM `phpbb_users` WHERE `user_id` = '".$row['poster_id']."'"); $author2 = mysql_fetch_array($author1); $author = $author2['username']; // Get the Topic Name. $topic1 = mysql_query("SELECT * FROM `phpbb_topics` WHERE `topic_id` = '".$row['topic_id']."'"); $topic2 = mysql_fetch_array($topic1); $topic = $topic2['topic_title']; printf("<a href=\"".$urlPath."/viewforum.php?f=%s\" target=\"_BLANK\">%s</a> <b>></b> <a href=\"".$urlPath."/viewtopic.php?f=%s&t=%s&p=%s#%s\" target=\"_BLANK\">%s</a> <b>by</b> <a href=\"".$urlPath."/profile.php?mode=viewprofile&u=%s\" TARGET=\"_blank\">%s</a><br />", $row['forum_id'], $forum, $row['forum_id'], $row['topic_id'], $row['post_id'], $row['post_id'], $topic, $row['poster_id'], $author); } } }

default.php
Code:
<?php defined('_JEXEC') or die; ?> <? $forum = new foruminfo(); $forum->getlastmessages(8); ?>

mod_forum.php
Code:
<?php defined('_JEXEC') or die; // Include the syndicate functions only once require_once __FILE__ . '/helper.php'; $forum = new foruminfo(); $forum->getlastmessages(8); ?>

Díky za jakoukoliv radu a pomoc ;)

06. říj 2015 22:36 - 06. říj 2015 22:39 #123809
Odpověď od Ernst
Pardon, já odpovídal na nejnovější články, nevšiml jsem si, že se jedná o fórum

06. říj 2015 22:57 #123812
Odpověď od Cony
1/ nepoužívejte zkrácené <? ale plné <?php, ušetříte si do budoucna problémy.
2/ TADY NEVIM CO - tak pak nic :)
3/ ve funkci je připojení k databázi. To je zbytečné, již k databázi připojen jste, stačí použít funkce Joomly (JDatabase)
4/ nepotřebujete new foruminfo - máte ModForumHelper, tedy
Code:
$topics = ModForumHelper::getlastmessages();
a v default.php už jen cyklus
Code:
foreach ($posts as $post) ....
5/ Pokud nechcete být fajnšmekr a přidávat modulu parametry, v XML nic moc měnit nemusíte (spíš nic než moc)

06. říj 2015 23:21 #123814
Odpověď od Tydou
Díky za radu, neco z toho chapu, ale ve finale to asi do kupy nedam, slo by to trochu podrobneji rozepsat?

To pripojeni k databazi je mysleno toto?
Code:
// Database Configuration (Where your phpBB config.php file is located) include $urlPath.'/config.php'; $link = mysql_connect($dbhost, $dbuser, $dbpasswd) or die("Could not connect"); mysql_select_db($dbname) or die("Could not select database");

Ted kdyz to zkusim pustit tak to hodi jen bilou stranku po refreshi.

07. říj 2015 09:46 - 07. říj 2015 09:48 #123823
Odpověď od Cony
Bílá stránka znamená chybu a vyplé hlášení chyb. Zapněte si v globálním nastavení hlášení chyb na maximum.

Připojení k Databázi je opravdu to co jste psal. V podstatě ten kód co máte je jen jeden jednoduchý dotaz na databázi.
např. takto

helper.php
Code:
<?php class ModForumHelper { public static function getLastPosts($count = 8) { $db = JFactory::getDBO(); $query = $db->getQuery(true) ->select('p.*.u.username,t.topic_title') ->from('phpbb_posts AS p') ->join('LEFT','phpbb_users AS u ON u.user_id=p.poster_id') ->join('LEFT','phpbb_topics AS t ON t.topic_id=p.topic_id') ->order('post_id DESC') ->setLimit($count); $db->setQuery($query); return $db->loadObjectList(); } }
a pak
Code:
$posts = ModForumHelper::getLastPosts();
a
Code:
<?php foreach ($posts as $post) { ?> <a href="/forum/viewtopic.php?f=<?php echo $post->forum_id; ?>&t=<?php echo $post->topic_id; ?>&p=<?php echo $post->post_id; ?>#<?php echo $post->forum_id; ?>"><?php echo $post->topic_title; ?></a> <strong>napsal:</strong> <a href="/forum/profile.php?mode=viewprofile&u=<?php echo $post->poster_id; ?>"><?php echo $post->username; ?></a> <?php }
PS. píšu z hlavy, asi v tom budou nějaké chyby :whistle:

07. říj 2015 10:44 #123825
Odpověď od Houbák
Jenom bych doplnil Conyho. Pokud budete chtít používat třídu JDatabase z Joomly, musíte mít u databázových tabulek stejný prefix jako mají databázové tabulky v Joomle.

Powered by Fórum