Ir ao conteúdo

Posts recomendados

Postado

Boa tarde!

 

Tenho uma pagina que lista determinados posts que estão presentes em meu banco de dados, mas em algumas situações o conteúdo do post é extenso e acaba tomando muito espaço da página.

Gostaria da ajuda de vocês para estar criando um link com aquele famoso "ler matéria/completo completa(o)".

O que sei até então é que irá criar essa página única através do ID de cada post, mas por ser leigo em PHP, não tenho a mínima noção de como criar tal situação.

 

O código a seguir contem a listagem e também uma paginação simples. 

 

Segue o código da página que a listagem acontece:

TEXTOS.PHP 

<?php$cabecalho_title = "Textos";include('_includes/topo.php');?><div id="centraliza" class="clearfix">    <section id="container" class="clearfix">            <article id="conteudo" class="clearfix">                         <h3 class="titulo-container-esquerdo">Textos</h3><?php$limite_paginacao = 4;$sql_contagem = mysqli_query($conecta, "SELECT * FROM textos") or die (mysql_error());$sql_resultado = ceil(mysqli_num_rows($sql_contagem) / $limite_paginacao) or die (mysql_error());$pg = (isset($_GET["pg"])) ? (int)$_GET["pg"] : 1 or die (mysql_error()); ;$start = ($pg - 1) * $limite_paginacao;$strSQL = "SELECT * FROM textos ORDER BY grupo_id DESC LIMIT $start, $limite_paginacao";$rs = mysqli_query($conecta,$strSQL);$error = mysqli_error($conecta);if(!$error){while($row = mysqli_fetch_array($rs)) {echo '<div id="textos"><div id="titulo-textos">'.$row['titulo'].'</div>';echo '<div id="texto"><pre>'.$row['texto'].'</pre></div>' . "</div>";echo '<div id="clear">'.'</div>';}}else{echo $error;}echo '<div id="paginacao">';if($sql_resultado > 1 && $pg<=$sql_resultado) {for($i=1; $i<=$sql_resultado; $i++) {                echo "<a class='a-paginacao' href='?pg=$i'>$i</a>";}}echo '</div>';?>        </article><?phpinclude('_includes/rodape.php');?>
  • Moderador
Postado

@thiagosvl
 
Esta questão não é difícil de resolver!
 
Podes criar uma função que abrevia seu texto em um número determinado de caracteres.. Abaixo dele você cria um botão de "clique aqui para ler o resto"  para uma página chamada visualizar.php que recebe por GET o ID da sua notícia.
 
Por sorte eu tinha ainda o código que criei para isso quando fiz meu tcc.
 

function abrevia($string, $limite) { if (strlen($string) > $limite) :    $string = preg_replace("#(^.{1,$limite})\s(.*)#s","$1...",$string); endif;  return $string;} 

Basicamente é aplicado uma expressão regular para acrescentar os " ..."  depois do texto abreviado.
a função você usa assim:

$textoAbreviado = abrevia($row['texto'], 2000);//abrevia o texto grande em 2000 caracteres.$id = $row['id'];echo"    <div class='texto'> $textoAbreviado</div>    <a href='visualizar.php?id=$id'<div class='btn_leia_mais'>Clique aqui para ler +</div></a>";                 

 
um adento ao seu código que postou...as linhas 28, 29 e 30. Não use ID nos divs.. por que você está dentro de uma estrutura de repetição. Como sabe(ou não?!) um elemento ID não pode ter o mesmo nome... então você deve usar "class".

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...