Autor Zpráva
MEXIK
Profil *
Zdravím, mám tu skript (spíš malý cms) na vypsání novinek na webu, ale potřebuji, aby se mi zobrazily jen poslední 3 novinky, jak to udělat? Tady je kód souboru, který je includován do webu.
<?php
/
//Make sure the file isn't accessed directly
if((!ereg("index.php", $_SERVER['SCRIPT_FILENAME'])) && (!ereg("admin.php", $_SERVER['SCRIPT_FILENAME'])) && (!ereg("install.php", $_SERVER['SCRIPT_FILENAME'])) && (!ereg("login.php", $_SERVER['SCRIPT_FILENAME']))){
    //Give out an "access denied" error
    echo "access denied";
    //Block all other code
    exit();
}

//Display existing posts, but only if post-index file exists
if (file_exists('data/settings/modules/blog/post_index.dat')) {
	$handle = fopen('data/settings/modules/blog/post_index.dat', 'r');
	while (!feof($handle)) {
		$file = fgets($handle, 4096);
		//Filter out line breaks
		$file = str_replace ("\n",'', $file);
		//Check if post exists
		if ((file_exists('data/settings/modules/blog/posts/'.$file)) && (is_file('data/settings/modules/blog/posts/'.$file))) {
			//Include post information
			include_once('data/settings/modules/blog/posts/'.$file);
			?>
			<div class="blogpost" style="margin-top: 20px">
				<span class="posttitle" style="font-size: 18px;">
					<a href="?module=blog&amp;page=viewpost&amp;post=<?php echo $file; ?>&amp;pageback=<?php echo $current_page_filename; ?>"><?php echo $post_title; ?></a>
				</span><br />
				<span class="postinfo" style="font-size: 10px;">
					<?php echo $lang_blog14; ?> <span style="font-weight: bold;"><?php echo $post_category; ?></span> - <?php echo $post_month; ?>-<?php echo $post_day; ?>-<?php echo $post_year; ?>, <?php echo $post_time; ?>
				</span>
				<br /><br />
				<?php echo $post_content; ?>
				<p>
					<a href="?module=blog&amp;page=viewpost&amp;post=<?php echo $file; ?>&amp;pageback=<?php echo $current_page_filename; ?>">&raquo; <?php echo $lang_blog23; ?></a>
				</p>
			</div>
			<?php
		}
	}
	//Close module-dir
	fclose($handle);
}
?>
Beavis
Profil
Tady z toho to těžko zjistíme.. Tohle se stará o výpis, není tu žádná specifikace počtu novinek..
Alphard
Profil
Beavis:
Tohle se stará o výpis, není tu žádná specifikace počtu novinek
Myslím, že tak jednoduché to není, 'cesta data/settings/modules/blog/posts/'.$file zřejmě vede k souboru, který obsahuje daná data.

MEXIK:
Zkuste tohle:

$p = 0;
if (file_exists('data/settings/modules/blog/post_index.dat')) {
    $handle = fopen('data/settings/modules/blog/post_index.dat', 'r');
    while (!feof($handle)) {
        if ($p > 3) break;
        $file = fgets($handle, 4096);
        //Filter out line breaks
        $file = str_replace ("\n",'', $file);
        //Check if post exists
        if ((file_exists('data/settings/modules/blog/posts/'.$file)) && (is_file('data/settings/modules/blog/posts/'.$file))) {
            //Include post information
            $p++;
            include_once('data/settings/modules/blog/posts/'.$file);
fakeit
Profil *
Alphard
Zbytečnost.

Rovnou tahej z databáze pouze 3 novinky :o) (LIMIT)
fakeit
Profil *
..teda v případě, že nejsi posedlý ukládáním dat do souborů :P
Alphard
Profil
fakeit:
Zbytečnost.
Rovnou tahej z databáze pouze 3 novinky :o) (LIMIT)

Je pravděpodobné, že by databáze byla vhodnější řešení, ale MEXIK ji zřejmě nevyužívá. Jinými slovy, moje odpověď může pomoci, tvoje je (pokud jsi tímto MEXIKa nepřesvědčil k používání databáze) zbytečná :-).
MEXIK
Profil *
Nepřesvědčil, databázi nevyužívám z několika významných důvodů. Jinak děkuji, hned zítra (dneska) to vyzkouším ;)
MEXIK
Profil *
A děkuji za skript, proč mě to nenapadlo. Btw funguje, ale musí být $p > 2 ;)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: