Problema per creare anteprima dei post da un db

Jakub Lemiszewski

Utente Attivo
5 Dic 2013
119
1
0
Salve, ho creato un codice per mostrare dei post, ma vorrei che nella lista dei titoli potessi vedere solo un'anteprima di qualche parola senza che le parole stesse vengano tagliate. Per darvi un iea come in un blog quando si ha un'articolo e se lo vuoi leggere tutto in fondo ce leggi altro o continua a leggere, vedi solo una parte dell'articolo un'anteprima. Nel codice seguente tutto funziona ma la parte che posto è relativa all'anteprima dei post ma mi mostra i post con tutto il testo e non l'anteprima. Mi piacerebbe ricevere aiuto per capire cosa sbaglio gia che sto imparando queste cose a scuola.
Grazie mille per l'aiuto.
Ecco il codice:
PHP:
function showAllTitles(Database $db){
	
	$out  = "<div class='articles_blog'>";
	$out .= "<h1>ARTICLES</h1>";
	$out .= "<ul id='articles_bl'>";
	//Get all Articles from db and shows all titles
	$allArticle = getAllArticles($db);
	foreach ($allArticle as $row) {
    //Must take all rows and output list -> titles??
	$id = $row->get("art_id");
	$date = $row->get("art_date");
	$article = $row->get("art_title");
	$txt = $row->get("art_articles");
	$date = preg_replace('/^(.{4})-(.{2})-(.{2})$/','$3-$2-$1', $date);
    $href = "index.php?page=blog&amp;show-article=$article";
    $out .=	"<li>";
    $out .=	"<a href='$href'>$article</a>&nbsp&nbsp";
    $out .= "<em>$date</em>";
    $out .= "<p class='prev_art'>";
    $out .= preview($txt, 10, $href);
    //$out .= substr($txt, 0, 30);
    /*$preview = new Preview();
    $preview->makePreview("$article");
    $out .= "$preview";*/
    $out .= "</p>";
    $out .= "<a href='index.php?page=blog&amp;show-article=$article'>Read more</a>";
    $out .= "</li>";
    }
    $out .= "</ul>";
    $out .= "</div>";
    $out .= "</section>";
	return $out;
	}
	//Get from DB all Articles
	function getAllArticles(Database $db) {
	$sql = "SELECT * FROM articles ORDER BY art_date DESC";
	$db->query($sql);
    //$sql = "SELECT art_title FROM articles";
	$table = $db->getData($sql);
    return $table;   
    }
    
	function showArticle(Database $db, $whichArticle) {
	$data = getArticle($db, $whichArticle);
	$title = $data->get("art_title");
	$author = $data->get("art_author");
	$article = $data->get("art_articles");
	$out  = "<div class='article_blg'>";	
	$out .= "<h1>Title:</h1><p>$title</p>";
	$out .= "<h2>Author:</h2><p>$author</p>";
	$out .= "<h3>Article:</h3><p>$article<br></p>";
	$out .= "</div>";
	
	return $out;
	}
	
	function getArticle(Database $db, $articles) {
    $fname = $db->escapeString($articles);
    $sql = "SELECT art_title, art_articles, art_author FROM articles WHERE art_title = '$fname'";
    $db->query($sql);
    $data = $db->getData($sql);
    $row = $data->getAt(0);
    return $row;
}

function preview($txt, $long, $final) {

		return (count($words = explode(' ', $txt)) > $long) ? implode(' ', array_slice($words, 0, $long)) . $final : $txt; //questo dovrebbe farmi l'anteprima??
		
}
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, dovresti passare il link "read more" alla funzione preview(), per il resto è corretta
ho provato cosi
PHP:
<?php
$article = "test";
$txt = "
    Salve, ho creato un codice per mostrare dei post, ma vorrei che nella lista dei titoli potessi vedere solo 
    un'anteprima di qualche parola senza che le parole stesse vengano tagliate. Per darvi un iea come in un blog 
    quando si ha un'articolo e se lo vuoi leggere tutto in fondo ce leggi altro o continua a leggere, 
    vedi solo una parte dell'articolo un'anteprima. Nel codice seguente tutto funziona ma la parte che 
    posto è relativa all'anteprima dei post ma mi mostra i post con tutto il testo e non l'anteprima. 
    Mi piacerebbe ricevere aiuto per capire cosa sbaglio gia che sto imparando queste cose a scuola. 
    ";
$final = ".... <a href='index.php?page=blog&amp;show-article=$article'>Read more</a>";

echo preview($txt, 30, $final);

function preview($txt, $long, $final) {

    return (count($words = explode(' ', $txt)) > $long) ? implode(' ', array_slice($words, 0, $long)) . $final : $txt;
}

?>
 
Discussioni simili
Autore Titolo Forum Risposte Data
L problema variabile per creare sessione PHP 5
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 1
M Problema con php per calcolo costo percentuale PHP 7
P [HTML] Problema con menu orizzontale a tendina per sito web HTML e CSS 17
L [javascript]problema funzione per webapi Javascript 4
S Problema in PHP per invio file XML - RISOLTO- PHP 8
Delemir78 [PHP] Problema per ridurre delle immagini e spostare i files in cartelle PHP 5
L Problema per centrare titolo PopUp HTML e CSS 5
M Problema con ciclo foreach per chiusura apertura div in base al numero di record in database PHP 1
E problema per aggiungere un database mdf da visual studio .NET Framework 9
E problema per Sito per eventi e sagre Leggi, Normative e Fisco 0
P Problema domande duplicate per risposte multiple PHP 6
M Problema chiamata Ajax per vista Griglia o vista Lista Ajax 1
asevenx problema per centrare sito HTML e CSS 5
M Problema connessione su OS X YOSEMITE 10.10 per il server locale mysql MySQL 0
M Problema connessione su OS X YOSEMITE 10.10 per il server locale mysql Mac e Software 0
C usare un foglio php per la creazione di un excel: piccolo problema PHP 2
B Problema form mail per invio doppio allegato PHP 1
Laura99 Problema per cambiare immagine PHP 7
T Problema di risoluzione dello sfondo per un sito web Photoshop 1
A Problema orario invio mail per form PHP 4
Akuma consiglio sicurezza per soluzione problema apici PHP 0
P Problema per richiamare una variabile... PHP 3
L [c++] Problema leggere file txt riga per riga C/C++ 0
J Problema classe per preview post PHP 2
L problema con l'Undefined index per una $_GET PHP 6
E Problema import per aggiornamento PHP 0
F Problema divisione smiles aggiuntivi per pagine Javascript 1
helpdesk problema interfaccia per ogni utente PHP 0
M problema con ciclo foreach per estrarre dati da un database PHP 22
M problema phplist per confermare l'email e l'inscrizione CMS (Content Management System) 0
P problema con il countdown per la fine dell'anno e per natale Javascript 13
M Problema con form per accesso area riservata ai soci PHP 2
D Problema con il disclaimer/pagina per l'accesso al'sito, funziona solo con firefox PHP 0
D problema script per visualizzare report tradedoubler PHP 1
C Problema con il CSS per il comando text-align HTML e CSS 10
D Problema con funzione preg_match() per controllo email PHP 2
C Problema per impostazione dei caratteri su un blog. Javascript 20
EffeElle Problema per una query di aggiornamento record php PHP 35
M problema xampp per ubuntu Linux e Software 1
A problema con un semplice form per un loggin in php PHP 2
catellostefano Problema per richiamare file xml -- Warning: DOMDocument::load() [domdocument.load]: PHP 0
L problema con get per includere pagine dal database PHP 4
asevenx problema con funzione per far apparire e scomparire un form di commenti PHP 1
max_400 Problema apostrofo nella ricezione della variabile per poi scriverla dentro un file PHP 6
V problema per collegare tabelle MySQL 2
L Problema e consiglio per form contatti particolare Classic ASP 2
H Piccola applicazione per News con Php, Xml e Flash: problema ordinamento. XML 0
C Problema Indice alfanumerico per un array Database 4
neo996sps Problema con tutorial per ridimensionamento immagini PHP 10

Discussioni simili