Zufallsblock - wieso geht das so nicht?

Begonnen von Martin, 06 März 2005, 15:45:56

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Martin

Hi,
ich möchte einen Block erstellen, der zufällig zufor angegebene Blöcke ausgibt, um Platz auf der Seite zu sparen.

Hab dazu das folgende, eigentlich ganz einfache Skript geschrieben:


<?php
// Dieser Block ermittelt eine Zufallszahl und gibt dann einen 
// von zuvor festgelegten Bloecken aus.

$thisfile basename(__file__);
if (!
defined("mxMainFileLoaded")) die ("You can't access this file directly...");

// Liste der auszuwählenden Module --------

    
$blocks = array (
    
=> "Top10_Links",
    
=> "Total_Hits",
    
=> "Userpoints"  
    
);

// -----------------------------------------------

// Anzahl der Module
$num count($blocks) - 1;

// Zufallszahlengenerator initialisieren
srand((double)microtime()*1000000);

// Zufallszahl ermitteln
$rnd rand(0$num);

// Der Variable $blocks ein Modul aus dem Array zuweisen
$block $blocks[$rnd];
$block "blocks/block-".$block.".php";

// Modul einbinden
if (@file_exists($block)) include($block);



?>


Andi

Hi :)

puhhh, da hab ich aber jetzt auch gesucht.....

Es liegt am Variablennamen $block. Dieser Name entspricht eine globalen Variablen in der Blockfunktion und kann dadurch innerhalb von Blöcken nicht verwendet werden.

Verwende anstatt $block z.B. $rd_block und es geht ;)
schön´s Grüssle, Andi

Martin

mei, 1000 Dank Tora   :genie:

Ich wär fast wahnsinnig geworden...

kekule

Hallo

Ich habe dazu ein skript angepasst, welches nicht unbedingt hier zu veröffentlichen Wert ist :)

jedoch funkt es so das du in der Admin, auswählen kannst welche Blöcke ine einem ZufallsBlock angezeigt werden sollen.
UNd im Block wird dann wie bei dir einer davon zufällig eingebunden.

Wenn jemand interesse aht es sauber zu coden, würde ich ihm die Daten zukommen lassen :)

Es funktionniert so wie es ist, jedoch nen Schönheitswettbewerb wird es nie gewinnen :)

mfg

Martin


kekule

Hallo

Mail ist raus.

Will nochmal s sagen ist wirklich nicht sauber gelöst :)

mfg