Nyhetsscript "trikset"?

5 innlegg i emnet

Skrevet

Hei.

Vel nå er det ikke en evighet siden jeg laget meg et lite nyhetscript (som fremdeles jobbes med)

Men, jeg har altid hatt en interesse for slike "avis oppsett". Bare ikke så rotete :b

Men, her kommer spørsmålet..

Hvordan fikser jeg det slik at nyhetsoppsettet viser i første rad EN stor nyhet. Under følges det på med to-tre rader der hver rad har to nyheter ved siden av seg. For å så starte på med EN stor nyhet igjen..?

Se bildet:

eks.jpg

Håper noen vet "trikset"

- Jarl

0

Del dette innlegget


Lenke til innlegg
Del på andre sider

Skrevet

http://cutephp.com/

Denne ville jeg brukt. Da bruker du vel egenltig HTML / CSS / PHP for oppsettet

0

Del dette innlegget


Lenke til innlegg
Del på andre sider

Skrevet

Jeg har da et fungerende nyhetscript. Der jeg skriver inn, leser nyheter o.l.. Samt, så ønsker jeg å lære PHP og MySQL bedre. Så, skal ikke bruke noe ferdilaget script som benytter seg av flat fil lagring.

Alt jeg vil vite er HVORDAN jeg kan lage en nyhetsfremvisning som bildet mitt viser.. Forran å liste nyhetene rett frem på "standard" måten..

0

Del dette innlegget


Lenke til innlegg
Del på andre sider

Skrevet (endret)

Jeg har sjeket litt når det gjaldt pseudokoder, så fikk jeg hjelp av en fyr der han kom opp med noe alà dette for å løse problemet:

<?php


$news = array("Nyhet 1", "Nyhet 2", "Nyhet 3", "Nyhet 4", "Nyhet 5", "Nyhet 6", "Nyhet 7");

$more = array("bla bla..", "bla bla..", "bla bla..", "bla bla..", "bla bla..", "bla bla..", "bla bla..", "bla bla..", "bla bla..", "bla bla..");


$text = "<table>\n";

for ($i = 0; $i < sizeof($news); $i++) {

  $j = $i % 5; // lagrer resultatet, siden vi utnytter modulo 2 av dette

  if ($j == 0) { // hver 5. nyhet


	 $text .= sprintf("  <tr>\n	<td class=\"broad\" colspan=\"2\"> %s <div>%s</div> </td>\n  </tr>\n", $news[$i], $more[$i]);

  } else {

	 if ($j % 2 == 1) { //annenhver nyhet er i venstre kolonne

		$text .= sprintf("  <tr>\n	<td class=\"left\"> %s <div> %s </div> </td> \n", $news[$i], $more[$i]);

		// hvis det er siste nyhet, må vi avslutte raden

		if ($i+1 == sizeof($news))

			$text .= "  </tr>\n";

	 } else { // og annenhver i høyre

	   $text .= sprintf("	<td class=\"right\"> %s <div> %s </div> </td>\n  </tr>\n", $news[$i], $more[$i]);


	 }

  }

}

$text .= "</table>\n";


echo "<pre style='font-size: 75%; color: #888;'>";

echo htmlspecialchars($text);

echo "</pre>";

echo $text;

?>

</body>

</html>

Men, denne lister bare dirrekte fra "array listen" i toppen.

Jeg skulle hatt den til å liste etter `id` fra databasen `news`.

Så altså, dette skal inneholde informasjonen som ligger i databasen (news) - altså `title`, `content` og `id`.

Håper noen vet, jeg har prøvd meg selv en GOD stund, nå men ingen lykke.

Kom så langt at den bare hentet første nyhet, men, nektet å liste.

Endret av TROOPAH
0

Del dette innlegget


Lenke til innlegg
Del på andre sider

Skrevet

Det aller enkleste ville vel vært å droppe tabeller, og heller kjøre div's hvor du endrer class i loop.

Eksempel:

$counter = 1;

for(i=0;i<ARRAYLENGDE;i++) {

    print "<div class='nyhetClass".$counter."'>$nyhet[i]</div>";

    $counter++;

    if($counter == 6) {

        $counter = 1;

    }

}

Dermed kan du endre nyhetClass1 i css til å være en større nyhet. Hver 5. nyhet vil ha nyhetClass 1. nyhetClass2 og 4 vil være i venstre kolonne, og 3 og 5 i høyre.

0

Del dette innlegget


Lenke til innlegg
Del på andre sider

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