Gå til innhold

hjelp til et simpelt CMS


Anbefalte innlegg

Jeg prøver å sette opp et CMS. Jeg har satt opp formen for å skrive til databasen:

 

<?php
if(isset($_POST['save']))

{

$title   = $_POST['title'];
$content = $_POST['content'];

  include "include/config.php";
  include "include/opendb.php";

$query = ("INSERT INTO `content`(title, content) VALUES ('$title', '$content')");


  mysql_query($query) or die("ERRORLUL");

  include "include/closedb.php";

  echo "Artikkel $title ble postet.";


}
?>

 

 

 

denne har jg deretter kjørt inn i dette test opplegget her bare for å teste (dette er ikke code jg har skrevet btw, CMS tutorial)

 

<html>
<head>
	<?php
include 'include/config.php';	
include 'include/opendb.php';
// if no id is specified, list the available articles
if(!isset($_GET['id']))
{
  $self = $_SERVER['PHP_SELF'];

  $query = "SELECT id, title, content FROM content ORDER BY id DESC";
  $result = mysql_query($query) or die('Error : ' . mysql_error()); 

  // lager artikkelista DO Not WANt :<
  $contentframe = '<ul>';
  while($row = mysql_fetch_array($result, MYSQL_NUM))
  {
  list($id, $title) = $row;

  $contentframe .= "<li>
  <a href=\"$self?id=$id\">$title</a>
  </li>\r\n";
  }

  $contentframe .= '</ul>'; 

  $title = 'Available Articles';

} else {
  // get the article info from database
  $query = "SELECT title, content FROM content WHERE id=".$_GET['id'];
  $result = mysql_query($query) or die('Error : ' . mysql_error()); 
  $row = mysql_fetch_array($result, MYSQL_ASSOC); 

  $title = $row['title'];
  $content = $row['content'];
} 

?>


<title>
<?php echo $title; ?>
</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="600" border="0" align="center" cellpadding="10" cellspacing="1" bgcolor="#336699">
<tr> 
<td bgcolor="#FFFFFF">
<h1 align="center"><?php echo $title; ?></h1>
<?php 
echo $content;

if(isset($_GET['id']))
{ 
?>
<p> </p>
<p align="center"><a href="<?php echo $_SERVER['PHP_SELF']; ?>">Article List</a></p>
<?php
}
?> 
</td>
</tr>
</table>
</body>
</html>

 

 

 

som dere ser vil denne lage en liste e.g

 

1. Testartikkel #1

2. Testartikkel #2

 

som man kan klikke på for å lese artikkelen. Jeg vil sette opp et "blogsystem" som viser si 255 chars av nyheten som er skrevet og deretter: "Les mer..." Jeg vil også ikke ha en liste men at hver artikkel skal komme som en egen liten box (har designet/kodet disse) dvs:

 

<div class="exmplcontentbox">

<?php

$content

?>

</div>

 

jeg tenker at dette har med

$contentframe = '<ul>';
  while($row = mysql_fetch_array($result, MYSQL_NUM))
  {
  list($id, $title) = $row;

  $contentframe .= "<li>
  <a href=\"$self?id=$id\">$title</a>
  </li>\r\n";
  }

  $contentframe .= '</ul>';

å gjøre

 

har prøvd

 

$contentframe .= "<li>

<a href=\"$self?id=$id\">$title</a>

<p>$content</p>

<a href=\"$self?id=$id\">Les mer...</a>

</li>\r\n";

 

 

Vil ha muligheten til å poste nyheter ala dette Hellfrager

 

 

 

 

Takk for all hjelp, jeg er en nybegynner så beklager om det er noe elementært jeg overser

 

BTW: Jeg bruker ikke tables til layout/design bare så d er klart :PpPpP All kode tatt fra en CMS tutorial. Skjønner ikke enda hvordan dette funker og trenger en referanse for å kode min egen.

Endret av TekniskFeil
Lenke til kommentar
Videoannonse
Annonse

Mkay det finnes 3 måter og gjøre dette på slik som jeg vet.

 

De pene måtene, og den ikke FULT så pene måten.

 

De 2 pene måtene:

 

Enten:

Lag en ektra kolonne i MySQL tabellen din, kall den feks "article_short" og inni den plasserer du et utdrag fra teksten. Det er den måten som flest nyhets sider bruker.

 

Eller:

Lag en seperator. Dette gjøres vet at du putter noe i teksten feks "#LESMER#".

<?php

$tekst = "Hey og velkommen til denne nettsiden. #LESMER# På denne nettsiden blablablablabla.";

$split = explode("#LESMER", $tekst);

$short = $split[0];
$full = $split[0] . $split[1];

echo "<b>{$short}</b><br />{$full}";

 

den værste måten derimot...og den er jeg personlig ikke noe fan av i det hele tatt men hvis du skal absolutt ha det slik som du skriver så bruker du substr()

 

$tekst = "Laaaaaaaaaaaaaang tekst her";

echo substr($tekst, 0, 10) . "... <br /> Les mer...";

 

Håper dette ga deg en idè ;)

Lenke til kommentar

yep, dette hjelper absolutt. Tusen takk for svar, kommer tilbake med feedback når jeg får testet det.

 

Noe du kanskje kan plundre litt på mens jeg tester koden er dette:

 

Som jeg skrev litt om ønsker jeg "contentboxer" rundt 'article_short' ene mine.

Hvordan kan jeg fikse dette?

 

--------------

| artikkel1 |

|   |

|   |

|   |

|   |

|   |

--------------

 

 

-----------

| art2 |

|   |

|   |

|   |

|   |

|   |

-----------

 

 

Takk for tips

 

P.S: Ja, disse greiene her skal illustrere contentboxer -____-

Endret av TekniskFeil
Lenke til kommentar

   $contentframe = '<div id="container">';
  while($row = mysql_fetch_array($result, MYSQL_NUM))
  {
  list($id, $title, $content) = $row;

  $contentframe .= "<div class=\"newsbox\">
  <p>$content</p>
  <a href=\"$self?id=$id\">$title</a>
  </div>\r\n";
  }

  $contentframe .= '</div>';

 

Har ikke testet, men tror den skal fungere. Bytt evt ut $content med $shortcontent e.l. alt etter hvilken løsning du velger for å bare viste første 255 chars, så må du bare style newsbox og evt container i CSS'en.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...