Joomla 5.1.0 a Joomla 4.4.4 (17 dub 2024)
Dnes byla uvolněna nová verze Joomla 5.1.0, společně s Joomla 4.4.4. Tato verze přináší spoustu nových funkcí, vylepšení v oblasti bezpečnosti a kódu a díky těmto vylepšením i vyšší rychlost.
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
helper.php
default.php
mod_forum.php
Díky za jakoukoliv radu a pomoc
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
Joomla Expert
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
Moderátor
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
a v default.php už jen cyklus
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)
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();
Code:
foreach ($posts as $post) ....
06. říj 2015 23:21 #123814
Odpověď od Tydou
Uživatel
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?
Ted kdyz to zkusim pustit tak to hodi jen bilou stranku po refreshi.
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
Moderátor
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
a pak
a
PS. píšu z hlavy, asi v tom budou nějaké chyby :whistle:
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();
}
}
Code:
$posts = ModForumHelper::getLastPosts();
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 }
07. říj 2015 10:44 #123825
Odpověď od Houbák
Zkušený uživatel
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.