Un Approfondimento Per Ogni News?

Ciao ragazzi sono nuovo del forum avrei una domanda da farvi:

Si può a fare a seconda della news un include diverso?

Io ho tre colonne, una di navigazione, quella centrale e quella a destra che la chiamo extra che propone delle informazioni di approfondimento o dei link sempre dello stesso argomento. In questa colonna ci metto degli include e vorrei che a seconda della notizia ci sia l'include appropriato.

Per esempio:

NEWS>>>>>>>>>>INCLUDE

uova>>>>>>>>>>inc.uova.php

scarpe>>>>>>>>inc.scarpe.php

meteo>>>>>>>>>inc.meteo.php

etc...

Si può fare? Se si, come?

inviato 11 anni fa
dantefoxfox
X 0 X

basta agire nel codice che mostra la news nella colonna centrale. Li sicuramente avrai delle istruzioni che selezionano la news. Allo stesso modo dovrai selezionare il file da includere nella colonna di destra.

Riporta magari il codice che seleziona e mostra la news.

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Grazie per la risposta immefiata (sembra di essere al telefono :))

Allora io ho installato Phpnews 1.3, ed è da Domenica che lo sto modificando per poterlo utilizzare nel mio sito, adesso mi mancano tre cose una di quelle è associare ad ogni news, o meglio ad ogni categoria, uno specifico include nella colonna di destra.

Io avevo pensato ad utilizzare il database, visto che nella tabella delle news ho anche "subject", potrei utilizzare qualle come categoria.

Il punto è che di php non ci capisco tanto, ed è anche per quello che ci sto sbattendo la testa da tre giorni per adattarlo... :'(

p.s. il file non riesco ad inserirlo perchè supera il numero consentito di caratteri

come posso fare?

risposto 11 anni fa
dantefoxfox
X 0 X

per il DB puoi usare un campo TEXT al posto del VARCHAR per inserire un testo lungo.

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

per il DB puoi usare un campo TEXT al posto del VARCHAR per inserire un testo lungo.

 :bye:

Scusami se ti rompo non potrestri postarmi qualche riga di codice, così mi faccio un idea e mi ci metto subito a lavorare

Ciao e grazie

risposto 11 anni fa
dantefoxfox
X 0 X

Non posso suggerirti del codice poiché questo andrebbe realizzato in funzione degli script di Phpnews 1.3 che, nonostante l'omonimia con questo sito  ;D, non conosco affatto.

Per prima cosa devi individuare il codice che mostra la news, capire in che variabile viene memorizzato il titolo della news, e con questa richiamare il file da includere nella colonna di destra.

Di più non posso dirti  :dunno:

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X
nonostante l'omonimia con questo sito  ;D, non conosco affatto.

E' vero ;D, me ne ero dimenticato di dirtelo...

Per prima cosa devi individuare il codice che mostra la news, capire in che variabile viene memorizzato il titolo della news, e con questa richiamare il file da includere nella colonna di destra.

Grazie del ragionamento, adesso sto incominciando a mettere più a fuoco la situazione.

Mi potresti solo scrivere, secondo il tuo ragionamento, il codice che useresti te?

p.s. l'include non c'è bisogno che me lo scrivi perchè so già dove metterlo.

p.s. Il codice usato per mostrare le news so quale è ed anche la variabile ($titletext) per il titolo delle news.

Ciao e ancora grazie per le risposte tempestive ;D

risposto 11 anni fa
dantefoxfox
X 0 X

Ho dato un'occhiata a phpnews. Credo che nella pagina che mostra la news completa venga usata la variabile $titletext per memorizzare il titolo della news.Però questa variabile è locale, ovvero è visibile solo dal codice presente nella funzione "fullNews". Poiché il tuo scopo è recuperare infomazioni sulla news esternamente alla funzione di phpnews allora devi fare una piccola modifica alla funzione suddetta.

Alla riga 228 del file news.php aggiungi all'elenco delle variabili globali la variabile $titletext. In pratica la riga da essere:

global $Settings, $language, $_SERVER, $path, $showcomments, $db_prefix;

deve diventare:

global $titletext, $Settings, $language, $_SERVER, $path, $showcomments, $db_prefix;

Poi nella colonna di destra, nel punto in cui vuoi includere il file relativo alla news puoi usare un codice del tipo:

<?php
if($titletext == 'scarpe')
{
   include('inc.scarpe.php');
}
elseif($titletext == 'uova')
{
   include('inc.uova.php');
}
elseif($titletext == 'meteo')
{
   include('inc.meteo.php');
}
?>

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Funziona mille grazie  ;D

Ciao e grazie

Ti volevo chiedere un altra cosa, per non aprire un altro 3d te lo chiedo qua: negli approfondimenti mi piacerebbe mettere anche le notizie relative, per esempio sulla notizia che riguarda le uova anche tutte quelle relative alle uova.

Come potrei raggrupparle tutte tramite subject?

Prometto che poi non ti rompo più  :bye:

 

risposto 11 anni fa
dantefoxfox
modificato 11 anni fa
X 0 X

La cosa è più complicata e richiederebbe diverse modifiche al gestore delle news. Una tecnica possibile si basa sull'inserire per ogni news delle keywords, ovvero delle parole chiave che identificano la news stessa. Poi quando si mostra una news si effettua una ricerca nell'archivio e si prelevano tutte le news che hanno tra le keywords almeno una delle keywords della news corrente.

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

La cosa è più complicata e richiederebbe diverse modifiche al gestore delle news. Una tecnica possibile si basa sull'inserire per ogni news delle keywords, ovvero delle parole chiave che identificano la news stessa. Poi quando si mostra una news si effettua una ricerca nell'archivio e si prelevano tutte le news che hanno tra le keywords almeno una delle keywords della news corrente.

 :bye:

Infatti e' quello che voglio fare.

In pratica nelle news oltre che al $titletext ho il $subject, in cui metto il soggetto ;D

Facendo cosi', la mia domanda e':

Come posso raggruppare tutte le notizie che hanno lo stesso $subject?


[tt]$subject e $titletext sono anche le colonne della tabella delle news[/tt]

risposto 11 anni fa
dantefoxfox
X 0 X

Devi effettuare una query ed estrarre tutte le news con quel $subject. Sai inviare una query a MySQL attraverso PHP?

risposto 11 anni fa
Gianni Tomasicchio
X 0 X
Devi effettuare una query ed estrarre tutte le news con quel $subject. Sai inviare una query a MySQL attraverso PHP?

Scusami, ma non so farlo :'(

p.s. prometto che poi ti lascio in pace per un po' di giorni ::)

risposto 11 anni fa
dantefoxfox
X 0 X

Se non sai interagire con MySQL la cosa si complica ulteriormente poiché è necessario realizzare un script ad hoc.

Non posso suggerirti del codice perché dovrei conoscere la struttura del DB e il funzionamento della pagina che mostra la news.

Non si può pretendere di realizzare un sito in PHP/MySQL senza conoscere ne PHP ne MySQL  :dunno:

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Non si può pretendere di realizzare un sito in PHP/MySQL senza conoscere ne PHP ne MySQL  :dunno:

 :bye:

Bhe allora scusami se ti ho ti ho importunato... ;D

quello che voglio fare è un altro include, nell'include precedente, e basta.

Ho letto che si può usare order by

Tu basta che mi fai un esempio di come fare una query per estrarre tutte le news con un determinato subject, e per il resto cerco di cavarmela io. ;D

risposto 11 anni fa
dantefoxfox
X 0 X

Allora, supponiamo che nella variabile $subject ci sia il subject della news. Un ipotetico script da includere per ottenere l'elenco delle news correlate potrebbe essere fatto così:

<?php
mysql_connect("localhost", "utente_mysql", "password_mysql") or
   die("Connessione non riuscita: " . mysql_error());

mysql_select_db("mio_db");

$risultato = mysql_query("SELECT titolo_news FROM mia_tabella WHERE subject = '$subject'");

while ($riga = mysql_fetch_array($risultato)) {
   echo $riga['titolo_news'] , '<br>';
}
?>

Ovviamente dovrai modificare il nome utente e la password per connetterti a MySQL. Inoltre devi cambiare il nome del database e il campo che contiene il titolo della news.

Tieni presente infine che questo script elenca solo i titoli ma non crea dei link cliccabili. Per fare ciò dovresti inserire dei tag <a> con un opportuno href. L'href dovrà contenere sicuramente l'indirizzo della pagina che mostra la news ed un ID che identifica la news in questione. Questo ID andrà ricavato con la stessa SELECT presente nell'esempio:

SELECT titolo_news, id_news FROM mia_tabella ...

per generare il link dovrai usare qualcosa del genere (studia come crea i link phpnews e poi riproduci la sintassi)

echo '<a href="index.php?id=', $riga['id_news'] , '">' , $riga['titolo_news'] , '</a><br>';

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Mille Grazie!!!!!! :D

Con qualche modifica è andato tutto bene. Basta armarsi con tanta pazienza (grazie Gianni) e volontà :bye:

Lo pubblico anche per dovere di cronaca e di aiuto reciproco, così se mai qualcuno avrà il mio problema qua c'è la soluzione (almeno uno... O0)

<?

/*METTIAMO SOLO LE NOTIZIE RELATIVE CON RELATIVA DATA*/
$risultato = mysql_query("SELECT * FROM phpnews_news WHERE subject = '$subject' ORDER BY id DESC LIMIT  0,10");
while ($riga = mysql_fetch_array($risultato)) {

/*Copiato da headlines.php e modificato un pochino*/
$time = strftime($Settings['shorttimeformat'], $riga['time']);

/*e adesso facciamolo apparire per benino*/
   echo '<li><span class="date">' , $time , ' </span><a href=' , "{$Settings['siteurl']}#ni$mid" , '>' ,  $riga['titletext'], '</a></li>';
}
?>

A buon rendere Gianni ;)

risposto 11 anni fa
dantefoxfox
X 0 X

 ??? non mi convince la costruzione dell'attributo HREF del link. Da dove viene #ni$mid ?

risposto 11 anni fa
Gianni Tomasicchio
X 0 X
??? non mi convince la costruzione dell'attributo HREF del link. Da dove viene #ni$mid ?

Hai ragione scusami  :coolsmiley:

infatti l'ho preso dal headlines.php e headlines_temp.php e non funzionava neanche lì, allora l'ho modificato secondo le tue direttive e adesso FUNZIONA, ancora grazie O0

Il codice è

<a href=' , "$_SERVER[PHP_SELF].?action=fullnews&amp;id=$riga[id]" , '>' ,  $riga['titletext'], '</a>

Vado subito ad applicarlo alle headlines... :D

risposto 11 anni fa
dantefoxfox
modificato 11 anni fa
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda