Guarda qui: http://www.phpbbitalia.net/forum/guide- ... tml#p34353oltrecomics ha scritto:Ciao bingo,
pensavi fossi sparito, eh?![]()
Volevo sapere se è possibile aggiungere (nella lista dei topic), l'avatar dell'autore e il periodo di invio dei post.
Grazie a te il sito inizia a prendere forma:
http://www.oltrecomics.com/zero.php
phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.
Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.
Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.
Grazie ancora,
Carlo - Amministratore di phpBB Italia
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.
Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.
Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.
Grazie ancora,
Carlo - Amministratore di phpBB Italia
Visualizzare elementi phpbb su pagine esterne. Come?
- Micogian
- Leader Programmatori
- Messaggi: 3704
- Iscritto il: 07/01/2010, 8:51
- Versione: 3.2.0
- Server: UNIX/Linux
- PHP: 5.4.36
- Database: MySQL 5.1.70-log
- Località: Udine
- Contatta:
Re: Come posso visualizzare gli ultimi topic su pagine ester
- oltrecomics
- Utente
- Messaggi: 73
- Iscritto il: 08/10/2011, 16:24
- Versione: 3.0.9
- Server: UNIX/Linux
Re: Come posso visualizzare gli ultimi topic su pagine ester
Ho provato a capirci qualcosa, ma sinceramente non so dove inserire la query e come e cosa inserire in frontend 
In pratica io ho questa query:
e vorrei aggiungere anche l'avatar al posto di "zetacart/it.image_name.gif." negli ultimi topic:

In pratica io ho questa query:
Codice: Seleziona tutto
// Lista degli ultimi Topics by Micogian / Bingo
$sql = "SELECT topic_id, forum_id, topic_title, topic_time, topic_moved_id, topic_first_poster_name
FROM " . TOPICS_TABLE . "
WHERE topic_type = 0
AND topic_moved_id = 0
AND forum_id = '6'
ORDER BY topic_time DESC LIMIT 0,30";
$result = $db->sql_query($sql);
$n = 0;
while ($row = $db->sql_fetchrow($result))
{
if ($auth->acl_get('f_read', $row['forum_id']) == 1)
{
if ($n < 10)
{
// accorcia il titolo del topic
if (strlen($row['topic_title'] > '38'))
{
$title_short[$n] = substr($row['topic_title'],0,37) . "...";
}else{
$title_short[$n] = $row['topic_title'];
}
$topic_id[$n] = $row['topic_id'];
$topic_link[$n] = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=" . $row['forum_id'] . "&t=" . $row['topic_id']);
$topic_title[$n] = $row['topic_title'];
$topic_author[$n] = $row['topic_first_poster_name'];
++$n ;
}
}
}
// FINE query Ultimi Topics
Codice: Seleziona tutto
<?php
// Lista degli ultimi topics
for ($y = '0';$y < $n3;++$y)
{
echo "<li class='row'>
<dl class='icon'>
<dt><img src='zetacart/it.image_name.gif'></dt>
<dd class='lastpost'>
<span><a href=http://www.oltrecomics.com/forum/viewtopic.php?t=" . $topic_id_3[$y] . " title='" . $topic_title_3[$y] . "'>" . $title_short_3[$y] . "...</a><br>Autore: (" . $topic_author_3[$y] . ")</span></dd></dl></li>";
}
?>
- Micogian
- Leader Programmatori
- Messaggi: 3704
- Iscritto il: 07/01/2010, 8:51
- Versione: 3.2.0
- Server: UNIX/Linux
- PHP: 5.4.36
- Database: MySQL 5.1.70-log
- Località: Udine
- Contatta:
Re: Come posso visualizzare gli ultimi topic su pagine ester
Due cose:
1) ti ho segnalato una Guida che avevo appena ultimato che attraverso una function permette di ottenete l'avatar dell'utente.
La function è user_avatar($id).
- Quale parametro serve per ottenere un risultato ? = l'user_id dell'utente
- qual'è l'user_id dell'utente nella query "ultimi Topics" ? = questo non c'è nella query, c'è solo "topic_first_poster_name" che è il nome dell'utente, non l'user_id
. Si può recuperare l'user_id di un Topic ? = certamente, è il campo "topic_poster" e visto che questo valore non è previsto basta aggiungerlo nel SELECT
- a questo punto abbiamo il "topic_poster" che ci serve come parametro alla function user_avatar()
- basta inserire nella query, dopo la riga
la seguente riga
e hai l'avatar di chi ha postato per primo il topic (topic_poster)
2) perchè hai usato $n3 se la query elabora $n ?
A parte questo, adesso hai a disposizione l'avatar di ciascun Topic con la variabile $avatar_author[$y]
Però ho qualche dubbio sull'utilizzo del tag "<img" perchè l'avatar è già visibile senza, ma poi ci sarebbe il problema del resize. Devo vedere.
Tutto qua. Ovviamente devi inserire la function, puoi farlo direttamente nel file stesso oppure in un file separato, come indicato nella Guida.
EDIT: come immaginavo la visualizzazione dell'avatar non avviene con il tag "<img", quello è già presente nel risultato, basterebbe inserire la sola variabile
ma la dimensione dell'avatar sarebbe quello originale. Per modificare la dimensione bisogna operare nella function inserendo il valore del width o dell'heigth:
In questo modo l'avatar sarà alto 50px e la larghezza in proporzione.
Ma in questo caso la function darebbe sembre un avatar ridotto.
Si potrebbe anche fare in questo modo. passare alla function anche le dimensioni $w e $h:
In questo caso bisogna passare alloa function anche le dimensioni (basta una, width o height)
Avremo un avatar alto 50pixel
1) ti ho segnalato una Guida che avevo appena ultimato che attraverso una function permette di ottenete l'avatar dell'utente.
La function è user_avatar($id).
- Quale parametro serve per ottenere un risultato ? = l'user_id dell'utente
- qual'è l'user_id dell'utente nella query "ultimi Topics" ? = questo non c'è nella query, c'è solo "topic_first_poster_name" che è il nome dell'utente, non l'user_id
. Si può recuperare l'user_id di un Topic ? = certamente, è il campo "topic_poster" e visto che questo valore non è previsto basta aggiungerlo nel SELECT
Codice: Seleziona tutto
$sql = "SELECT topic_id, forum_id, topic_title, topic_time, topic_moved_id, topic_first_poster_name, topic_poster
- basta inserire nella query, dopo la riga
Codice: Seleziona tutto
$topic_author[$n] = $row['topic_first_poster_name'];
Codice: Seleziona tutto
$avatar_author[$n] = user_avatar($row['topic_poster']) ;
2) perchè hai usato $n3 se la query elabora $n ?
Codice: Seleziona tutto
for ($y = '0';$y < $n3;++$y)
Codice: Seleziona tutto
<dt><img src='" . $avatar_author[$y] . "' width='100'></dt>
Tutto qua. Ovviamente devi inserire la function, puoi farlo direttamente nel file stesso oppure in un file separato, come indicato nella Guida.
EDIT: come immaginavo la visualizzazione dell'avatar non avviene con il tag "<img", quello è già presente nel risultato, basterebbe inserire la sola variabile
Codice: Seleziona tutto
<dt>" . $avatar_author[$y] . "</dt>
Codice: Seleziona tutto
function user_avatar($id)
{
global $db ;
$sql = "SELECT user_id, user_avatar, user_avatar_type,user_avatar_width,user_avatar_height
FROM " . USERS_TABLE . "
WHERE user_id =" . $id ;
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$avatar_cor = get_user_avatar($row['user_avatar'], $row['user_avatar_type'], '', '50');
return $avatar_cor ;
}
Ma in questo caso la function darebbe sembre un avatar ridotto.
Si potrebbe anche fare in questo modo. passare alla function anche le dimensioni $w e $h:
Codice: Seleziona tutto
function user_avatar($id,$w,$h)
{
global $db ;
$sql = "SELECT user_id, user_avatar, user_avatar_type
FROM " . USERS_TABLE . "
WHERE user_id =" . $id ;
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$avatar_cor = get_user_avatar($row['user_avatar'], $row['user_avatar_type'], $w,$h);
return $avatar_cor ;
}
Codice: Seleziona tutto
$avatar_author[$n] = user_avatar($row['topic_poster'], '', '50') ;
- oltrecomics
- Utente
- Messaggi: 73
- Iscritto il: 08/10/2011, 16:24
- Versione: 3.0.9
- Server: UNIX/Linux
Re: Come posso visualizzare gli ultimi topic su pagine ester
Ciao,
per quanto riguarda $n3, per la fretta ho copiato il codice sbagliato
mentre per la query c'è un problema quando inserisco linea di codice:
mi da il seguente errore:
che sarebbe poi la linea suddetta.
Attualmente ho cancellato una parte:
So che non funziona così però il sito rimane intatto 
Cosa ho sbagliato?
per quanto riguarda $n3, per la fretta ho copiato il codice sbagliato

mentre per la query c'è un problema quando inserisco linea di codice:
Codice: Seleziona tutto
$avatar_author[$n] = user_avatar($row['topic_poster']) ;
Codice: Seleziona tutto
Fatal error: Call to undefined function user_avatar() in /home/oltrecom/public_html/lista_topics.php on line 38
Attualmente ho cancellato una parte:
Codice: Seleziona tutto
$avatar_author[$n] = $row['topic_poster'];

Cosa ho sbagliato?
- Micogian
- Leader Programmatori
- Messaggi: 3704
- Iscritto il: 07/01/2010, 8:51
- Versione: 3.2.0
- Server: UNIX/Linux
- PHP: 5.4.36
- Database: MySQL 5.1.70-log
- Località: Udine
- Contatta:
Re: Come posso visualizzare gli ultimi topic su pagine ester
Hai letto la Guida ? Cosa ci sta scritto ?
Che una function può essere inserita nel file stesso oppure in un file esterno. In questo caso però bisogna inserire un "include" perche la function venga riconosciuta.
Nel tuo caso non la riconosce. Perchè? l'hai messa ?
Se tu inserisci la riga che richiama la function ma la function non c'è è ovvio che ti dia errore.
Guarda anche l'EDIT del messaggio precedente.
Che una function può essere inserita nel file stesso oppure in un file esterno. In questo caso però bisogna inserire un "include" perche la function venga riconosciuta.
Nel tuo caso non la riconosce. Perchè? l'hai messa ?
Se tu inserisci la riga che richiama la function ma la function non c'è è ovvio che ti dia errore.
Guarda anche l'EDIT del messaggio precedente.
- oltrecomics
- Utente
- Messaggi: 73
- Iscritto il: 08/10/2011, 16:24
- Versione: 3.0.9
- Server: UNIX/Linux
Re: Come posso visualizzare gli ultimi topic su pagine ester
Ho provato anche questo, ma l'errore è sempre presente in questa riga:bingo ha scritto: Si potrebbe anche fare in questo modo. passare alla function anche le dimensioni $w e $h:In questo caso bisogna passare alloa function anche le dimensioni (basta una, width o height)Codice: Seleziona tutto
function user_avatar($id,$w,$h) { global $db ; $sql = "SELECT user_id, user_avatar, user_avatar_type FROM " . USERS_TABLE . " WHERE user_id =" . $id ; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $avatar_cor = get_user_avatar($row['user_avatar'], $row['user_avatar_type'], $w,$h); return $avatar_cor ; }
Avremo un avatar alto 50pixelCodice: Seleziona tutto
$avatar_author[$n] = user_avatar($row['topic_poster'], '', '50') ;
Codice: Seleziona tutto
$avatar_author[$n] = user_avatar($row['topic_poster'], '', '50') ;
Codice: Seleziona tutto
// Lista degli ultimi Topics by Micogian / Bingo
$sql = "SELECT topic_id, forum_id, topic_title, topic_time, topic_moved_id, topic_first_poster_name, topic_poster
FROM " . TOPICS_TABLE . "
WHERE topic_type = 0
AND topic_moved_id = 0
AND forum_id = '6'
ORDER BY topic_time DESC LIMIT 0,30";
$result = $db->sql_query($sql);
$n = 0;
while ($row = $db->sql_fetchrow($result))
{
if ($auth->acl_get('f_read', $row['forum_id']) == 1)
{
if ($n < 10)
{
// accorcia il titolo del topic
if (strlen($row['topic_title'] > '38'))
{
$title_short[$n] = substr($row['topic_title'],0,37) . "...";
}else{
$title_short[$n] = $row['topic_title'];
}
$topic_id[$n] = $row['topic_id'];
$topic_link[$n] = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=" . $row['forum_id'] . "&t=" . $row['topic_id']);
$topic_title[$n] = $row['topic_title'];
$topic_author[$n] = $row['topic_first_poster_name'];
$avatar_author[$n] = user_avatar($row['topic_poster'], '', '50') ;
++$n ;
}
}
}
// FINE query Ultimi Topics
- oltrecomics
- Utente
- Messaggi: 73
- Iscritto il: 08/10/2011, 16:24
- Versione: 3.0.9
- Server: UNIX/Linux
Re: Come posso visualizzare gli ultimi topic su pagine ester
Ho inserito la function in un file esterno chiamato function.php in questo modo:bingo ha scritto:Hai letto la Guida ? Cosa ci sta scritto ?
Che una function può essere inserita nel file stesso oppure in un file esterno. In questo caso però bisogna inserire un "include" perche la function venga riconosciuta.
Nel tuo caso non la riconosce. Perchè? l'hai messa ?
Se tu inserisci la riga che richiama la function ma la function non c'è è ovvio che ti dia errore.
Guarda anche l'EDIT del messaggio precedente.
Codice: Seleziona tutto
<?php
// Avatar
function user_avatar($id,$w,$h)
{
global $db ;
$sql = "SELECT user_id, user_avatar, user_avatar_type
FROM " . USERS_TABLE . "
WHERE user_id =" . $id ;
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$avatar_cor = get_user_avatar($row['user_avatar'], $row['user_avatar_type'], $w,$h);
return $avatar_cor ;
}
?>
Codice: Seleziona tutto
<?php
include ("lista_topics.php");
?>
<?php
include ("function.php");
?>
- Micogian
- Leader Programmatori
- Messaggi: 3704
- Iscritto il: 07/01/2010, 8:51
- Versione: 3.2.0
- Server: UNIX/Linux
- PHP: 5.4.36
- Database: MySQL 5.1.70-log
- Località: Udine
- Contatta:
Re: Come posso visualizzare gli ultimi topic su pagine ester
No, l'include lo devi mettere nel file lista_topics.php oppure prima dell'include lista_topics.
Dovrebbe andare subito dopo l'include di phpbb
Ma dipende dove hai messo il file function.php
L'esempio si riferisce a un file messo nella root del Forum.
Ma la Home non è un file php? perchè quei tag <?php e ?> ?
Dovrebbe andare subito dopo l'include di phpbb
Codice: Seleziona tutto
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'function.' . $phpEx);
L'esempio si riferisce a un file messo nella root del Forum.
Ma la Home non è un file php? perchè quei tag <?php e ?> ?
- oltrecomics
- Utente
- Messaggi: 73
- Iscritto il: 08/10/2011, 16:24
- Versione: 3.0.9
- Server: UNIX/Linux
Re: Come posso visualizzare gli ultimi topic su pagine ester
Lo vorrei mettere nella home.php prima dell'include lista_topics.
Ho provato in questo modo:
ma come hai scritto i tag sono sbagliati...
come si inseriscono entrambi con i tag giusti?
Ho provato in questo modo:
Codice: Seleziona tutto
<?php
include ("function.php");
?>
<?php
include ("lista_topics.php");
?>
come si inseriscono entrambi con i tag giusti?
- oltrecomics
- Utente
- Messaggi: 73
- Iscritto il: 08/10/2011, 16:24
- Versione: 3.0.9
- Server: UNIX/Linux
Re: Come posso visualizzare gli ultimi topic su pagine ester
function.php l'ho messo nella root principale, il forum è in una directory.
Senza i tag non funziona.
Codice: Seleziona tutto
<?php
include ("function.php");
include ("lista_topic.php");
?>
Ultima modifica di oltrecomics il 25/10/2011, 23:00, modificato 2 volte in totale.
Chi c’è in linea
Visitano il forum: Nessuno e 52 ospiti