webForumDet fria alternativet

Behöver lite hjälp med mitt blogg script

PHPur PHP

10 svar · 2 454 visningar · startad av Mycodez

Medlem sedan feb. 2010445 inlägg
Frågan#1

Tjena på er.

Jag behöver lite hjälp av er.
Jag här under en tid nu fixat med en egen blogg som snart e klar. men jag vill ha en grej.

Det är att man kanske läser in kanske 5 6 meningar/rader av ett blogginlägg istället för man skriver ut hela blogginlägget så står det efter det efter man har skrivit ut 5 6 meningar /rader så står det tex "read more/läs mer" som man sen länkad till post.php där man skriver ut hela inlägget.
Förstår ni hur jag vill ha det typ hur löser man det?

Vill ni se hur hela koden ser ut så är det bara att säga till, men tror inte det behövs eller?

// Robin K.

Medlem sedan feb. 20005 891 inlägg
#2

Är det Wordpress-baserat eller? Annars är det svårt att säga hur man exakt ska hämta info till "läs mer-länken", men för att bara visa en del av inlägget kan du ju använda substr().

Medlem sedan feb. 2010445 inlägg
#3

Nej jag använder inte Wordpress jag har kodat allt själv.

Min kod hur jag hämtar data och så rättare sagt hela blog.php sidan ser ut såhär

<?php
session_start();
$link = mysql_connect('localhost', 'root', '');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
//WE NEED to select the database!
mysql_selectdb("blog");

echo '<?xml version="1.0" encoding="UTF-8"?>';
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> 
<html> 
<head> 
<title>Webdesignskolan, CSS layout</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<link href="style/layout.css" rel="stylesheet" type="text/css"> 
<link rel="stylesheet" type="text/css" href="style/blog.css">
</head> 
<body>	
<div id="layout"> 
<div id="sidhuvud"> 
<?php include('head_template.php'); ?>
</div> 
<div id="menycontainer"> 
<?php include("menu_template.php"); ?>
</div> 
<div id="kolumncontainer"> 
<div id="kolumn1">
        	<div class="posts">
        	<?php
				$sql = "SELECT posts.ID as 'ID' , users.postname as 'postname' , posts.title as 'title' , posts.content as 'content' , posts.date as 'date' FROM posts INNER JOIN users ON users.ID = posts.username ORDER BY date DESC";
				$result = mysql_query($sql);
				while($row=mysql_fetch_array($result)){
			?>
			<div class="post">
            	 <a class="title" href="post.php?post=
					<?php 
						echo htmlentities($row['ID']);
						echo '">';
						echo htmlentities($row['title']);
					?>
				</a><br/>
                <div class="bloginfo">
                Wrote
                <span class="author">
				<?php
                	echo $row['postname'];
				?>
                </span> 
                at
                <?php
					echo date('l jS \of F Y h:i:s A',(int)$row['date']);
				?>
                </div>
                <div class="content">
					<?php
						echo $row['content']
						;
					?>
				</div>
            </div>
        	<?php
				}
			?>
        </div>
</div> 
<div id="kolumn2">  
  <h3>Kolumn2</h3> 
  <p>Den h&auml;r layouten &auml;r gjord utan att anv&auml;nda bilder. Den &auml;r
    <strong>v&auml;nsterst&auml;lld</strong> och har en fast bredd p&aring;
    <strong>900 pixlar</strong>. Texten i boxarna har en relativ storlek och
    f&ouml;r&auml;ndras om anv&auml;ndaren
    &auml;ndrar textstorlek i sin webbl&auml;sare. </p> 
  <p>Innan du anv&auml;nder CSS-layouten rekommenderar vi att du g&aring;r igenom guiderna
    CSS-meny, CSS-position och CSS-layout s&aring; att du har kunskap om hur du sj&auml;lv
    kan &auml;ndra och anpassa layouten till dina egna behov.</p> 
  </div> 
</div> 
 <div id="sidfot">Sidfot
</div> 
</div> 
</body> 
</html>

Men hur funkar substr() funktionen?

/Robin

Medlem sedan juni 20019 519 inlägg
#4

Mycodez skrev:

Men hur funkar substr() funktionen?

Kolla in länken casca skickar, beskriver exakt hur den fungera.

Medlem sedan feb. 2010445 inlägg
#5

Kom på hur substr() funktionen funka men hur göra man om man har en bild i inlägget?? tex dirket i början?

Medlem sedan feb. 2010445 inlägg
#6

voigtann1 skrev:

Kolla in länken casca skickar, beskriver exakt hur den fungera.

jag såg det. Var lite blind bara :)

Medlem sedan feb. 20005 891 inlägg
#7

Mycodez skrev:

Kom på hur substr() funktionen funka men hur göra man om man har en bild i inlägget?? tex dirket i början?

Du KAN ju söka efter "<img src" från början av strängen och läsa av position av första ">"-tecken och sen klippa med substr() därifrån istället, med en if-else-sats. Detta förutsätter förstås att den enda HTML-kod som finns i inläggen är <img>.

	<?php
	
		// Exempelsträng från db:
		$string1 = "<img src='images/bild.gif' />Och sen kommer text men vi klipper av efter femton ord.";
		
		// Hitta ">":s position:
		$pos = stripos($string1, ">");
		
		// Klipp ut "rätt" delar, först bild och sen text (choppad):
		$string2 = substr($string1, 0, $pos+1);
		$string3 = substr($string1, $pos+1, 15);
		
		// Visa exempel:
		echo $string2 . "<br />"; // "<img src='images/bild.gif' />"
		echo $string3 . "<br />"; // "Och sen kommer"
		
	?>

Angående ditt andra problem - du hämtar ju post-ID ur en databastabell för varje post? Om du visar poster genom att mata in ett värde via querystring, t.ex post.php?id=10 visar post med ID = 10, så är det bara att rendera en URL förstås med värdet du hämtar från databasen.

Medlem sedan sep. 201046 inlägg
#8

.. Denna kod är bara klippt från en klass jag skapat som jag använde till en blogg jag skapade och funkar bra för mig.

<?php

// Truncate blog posts
public function truncate($string, $limit, $break="</p>", $pad=" [...]") {
    
    // return with no change if string is shorter than $limit
    if(strlen($string) <= $limit) return $string;
    
    // is $break present between $limit and the end of the string?
    if(false !== ($breakpoint = strpos($string, $break, $limit))) {
        if($breakpoint < strlen($string) - 1) {
            $string = substr($string, 0, $breakpoint) . $pad;
        }
    }

    return $string;
}

Exempel på enkel användning i din kod;

<div class="content">
    <?php
        // Klipp efter första slut-paragraf (</p>) efter 250 tecken
        $row['content']  = truncate($row['content'], 250);
        $row['content'] .= "<p><a href=\"post.php?inlagg=nummer\">Read more..</a></p>";
        echo $row['content'];
    ?>
</div>

p.s snälla använd inte Webdesignskolan som jag såg i din titel-tag. (Exempelvis föregår det med väldigt dåligt och uråldrat exempel på Webdesignskolan att de använder ramar för att struktuera upp sidan)

Medlem sedan feb. 2010445 inlägg
#9

okej :) tack ska testa det men $breakpunkt vad har det för värde? :)

jag har märkt det ;) så jag har gjort om en del design på sidan för få till det snyggare jag har använt det bara för att få ihop en simpel sida för att se hur saker och ting kan se ut :)
Då e webdesignskolans design någolunda bra:)

Medlem sedan sep. 201046 inlägg
#10

Mycodez skrev:

okej :) tack ska testa det men $breakpunkt vad har det för värde? :)

Om du ser på koden, så är standardvärdet för $breakpoint en avslutningsparagraf (</p>) om du inte tillägger en param för något annat själv. Sen kommer $pad lägga till [...] automatiskt efter X antal angivna tecken, vilket går även också att ändra enkelt på samma sätt som med $breakpoint.

Medlem sedan feb. 2010445 inlägg
#11

Tack :)

140 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)