PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Werbemittel.php Reihenfolge



Masterphil
27.02.2011, 17:56
Hallo, @all, gerade wollte ich meiner neuen Seite ein paar mehr Banner zufügen, jedoch bekomme ich es nicht hin das diese in der gewollten Reihenfolge angezeigt werden, überhaupt, mir kommts vor als ob das per Zufall läuft.

Kann man die Banner ordnen z.B. nach Name ?

Hier mal der Code zur ausgabe:



<?
/*
Weitere Werbemittel einfach in den Ordner /images/banner/ laden!
Diese werden automatisch erkannt und aufgelistet!
*/

if ($_SESSION['uid'] >= 0) {?>
<? head("Dein Werbelinks"); ?>
<table>
<tr><td align="right"><b>Dein Reflink:</b></td><td align="left">&nbsp;<a href="<?=$domain;?>/?ref=<?=$_SESSION['uid'];?>" target="_blank"><?=$domain;?>/?ref=<?=$_SESSION['uid'];?></a></td></tr>
</table>
<? foot();

$url = $domain.'/?ref='.$_SESSION['uid'].'';
}else{
$url = $domain;
}

?>

<?head("".$seitenname." - Werbemittel");?>
<div align="center">
<?
$open = opendir('./images/banner/');
while ($banner = readdir($open)){
if ($banner != '..' && $banner != '.' && $banner != 'Thumbs.db'){
$size = getimagesize('images/banner/'.$banner);
$groesse = filesize('images/banner/'.$banner.'')/1024;
echo '
<b>'.$size[0].'x'.$size[1].' (~ '.round($groesse).' KB)</b><br>
<img src="images/banner/'.$banner.'" alt="'.$seitenname.'"><br>
<textarea style="width:468px; height:50px;">&lt;a href="'.$url.'" target="_blank"&gt;&lt;img src="'.$domain.'/images/banner/'.$banner.'" alt="'.$seitenname.'" border="0"&gt;&lt;/a&gt;</textarea><br><br>';
}
}
closedir($open);
?>
</div>
<?foot();?>


MfG

EarlofMidnight
27.02.2011, 18:07
http://shop.busterzaster.de/?site=details&id=11

Kraemer84
27.02.2011, 18:07
DESC Order by Name also so ähnlich müsste es aussehen

müssten dann halt auch die banner nach reihenfolge benannt werden wie zb banner1 banner2 ...


aber ich kuck nochmal genauer nach :biggrin1:

*edit // Hat sich ja erledigt

Masterphil
27.02.2011, 18:28
@Kraemer: Guck noch mal, die Banner habe ich bereits alle nach Namen gemacht,ich weiß halt nicht wo genau das hinkommt mit dem "desc order by name", deshalb habe ich den Code der Werbemittel.php ja auch mitgepostet und extra nen neues Addon einbauen wollte ich nicht unbedingt.

MfG

Sebmaster
27.02.2011, 18:33
Ja, das ist per Zufall.

Mit scandir() (http://at2.php.net/scandir) kann man eine Sortierreihenfolge angeben.

Masterphil
27.02.2011, 19:10
Na mal schauen ob ichs hinbekomme.

MfG

jpwfour
27.02.2011, 19:45
VMS Werbemittel Addon (E)

Die Werbebanner für eure Seite sind leichter einzubauen, nämlich ganz einfach über das Adminforce.
Bannerurl eingeben, fertig!
Alte, nicht aktuelle Banner können einfach gelöscht werden, ebenfalls über das Adminforce!
Die Reihenfolge kann beliebig geändert werden.

Das ja mal krass, an sich mehr Aufwand, da die Banner ja so oder so via FTP hochsgeladen werden müsen :der:

Masterphil
27.02.2011, 20:23
Habe nun mit dem "scandir" rumprobiert, leider bekomme ich es nicht hin.

MfG

Masterphil
27.02.2011, 20:50
Habe mir das im Php-Tut nun mal bis unten durchgezogen, mir scheint ja dieser code hier am ehesten zu passen:



<?php
function scandir($dir = './', $sort = 0)
{

$dir_open = @ opendir($dir);

if (! $dir_open)
return false;


while (($dir_content = readdir($dir_open)) !== false)
$files[] = $dir_content;

if ($sort == 1)
rsort($files, SORT_STRING);
else
sort($files, SORT_STRING);

return $files;
}
?>


Nur leider kann ich nach ner halben Stunde rumgebastel sagen, ich bekomme es trotsdem nicht so einfach hin, obwohl ich nun schon sicher 15 verschiedeneMöglichkeiten durchabe, halt alle falsch, nicht das ich mit dem Code hier doch auf dem Holzweg bin da am ende ja "return" steht statt "echo" , viellciht hat ja doch ein PHP könner genug durchblick wo genau man was ändern muss.

MfG

jpwfour
27.02.2011, 21:57
Hast du noch PHP 4? Oder warum versuchts du die Funktion nachzubauen?

Am einfachsten wäre:


#$open = opendir('./images/banner/');
$open = scandir('./images/banner/');
#while ($banner = readdir($open)){
foreach ($open as $banner){

jeweils die alten Zeilen auskommentiert und untendrunter die Ersetzung, der ganze restliche Code kann dann unverändert bleiben.

Solltest du noch PHP 4 nutzen, gibt es natürlich einfache Alternativen, aber da ich nicht davon ausgehe, spar ich mir das jetzt :wink:

Masterphil
27.02.2011, 22:21
Im PHP Tut sah es mir mit dieser Funktion am einfachsten aus, und diese Funktion war vom Aufbau halt am ehesten am code der werbemittel, naja, Versuch macht klug, hat wiegesagt damit nicht so recht geklappt, warum wissmern un, php4 und php5 sollte man im gleichen CodeSchnipsel nicht vereinen.

Wobei, mir müsste dann wohl erstmal jemand erklären was daran php4 ist und was dann der Unterschied zu php5 wäre.

Aber egal, nun versuche ich mich nochmal im Basteln, sö ähnlich hatte ich es am Anfang probiert,das "foreach" hatte bei mir nur gefehlt und naja, die FormSache, aber zumndest war mein erster Versuch schonmal halbwegs richtig.

Danke an JP und wenns klappt gibts von mir auch mal nen CodeSchnipsel for free.

MfG

Edit: Habe es mal ausprobiert mit dem Code von JP, aer der will auch nicht, scheinbar ist da noch ein Fehler drin.

Edit2: Eh ich gleich weg bin habe ich noch was festegestellt, am Ende steht ja noch "closedir", evtl. liegt es ja daran da dieses evtl. an "opendir" geknüpft ist.

Masterphil
28.02.2011, 12:54
Habs leider immer noch nicht hinbekommen, der Tipp von JPwfour will einfach nicht klappen.

Bitte um weitere Hilfe.

MfG

jpwfour
28.02.2011, 14:23
?

Stell mal deine komplette werbemittel.php hier rein.

Hast du PHP 5 auf deinem Webspace?

Masterphil
28.02.2011, 14:38
JPwfour, schau mal in den ersten Post, da habe ich den ganzen Code reingepackt.

Die 2 Zeilen zu ändern wie du vorgeschlagen hattest war ja kein Problem, nur geholfen hats nichts.

Ob ich nun 100% Php 5 draufhabe kann ich nicht sagen, aber denke schon, zu 99 %, bisher waren die bei SpeicherZentrum immer sehr modern und uptodate.

MfG

jpwfour
28.02.2011, 16:47
<?
/*
Weitere Werbemittel einfach in den Ordner /images/banner/ laden!
Diese werden automatisch erkannt und aufgelistet!
*/

if ($_SESSION['uid'] >= 0) {?>
<? head("Dein Werbelinks"); ?>
<table>
<tr><td align="right"><b>Dein Reflink:</b></td><td align="left">&nbsp;<a href="<?=$domain;?>/?ref=<?=$_SESSION['uid'];?>" rel="nofollow" target="_blank"><?=$domain;?>/?ref=<?=$_SESSION['uid'];?></a></td></tr>
</table>
<? foot();

$url = $domain.'/?ref='.$_SESSION['uid'].'';
}else{
$url = $domain;
}

?>

<?head("".$seitenname." - Werbemittel");?>
<div align="center">
<?
#$open = opendir('./images/banner/');
$open = scandir('./images/banner/',0);
#while ($banner = readdir($open)){
foreach ($open as $banner){
if ($banner != '..' && $banner != '.' && $banner != 'Thumbs.db'){
$size = getimagesize('images/banner/'.$banner);
$groesse = filesize('images/banner/'.$banner.'')/1024;
echo '
<b>'.$size[0].'x'.$size[1].' (~ '.round($groesse).' KB)</b><br>
<img src="images/banner/'.$banner.'" alt="'.$seitenname.'"><br>
<textarea style="width:468px; height:50px;">&lt;a href="'.$url.'" rel="nofollow" target="_blank"&gt;&lt;img src="'.$domain.'/images/banner/'.$banner.'" alt="'.$seitenname.'" border="0"&gt;&lt;/a&gt;</textarea><br><br>';
}
}
#closedir($open);
?>
</div>
<?foot();?>

Wenn es an PHP liegen würde, müsste was in der Art :

Fatal error: Call to undefined function: scandir()
kommen, ansonsten sollten die Banner in alphabetisch aufsteigender Reihenfolge angezeigt werden!
Wenn du in der Zeile:

$open = scandir('./images/banner/',0);
aus der 0 eine 1 machst, in absteigender Reihenolge.

Natürlich nur, wenn das auch die PHP Funktion scandir ist, und nicht eine von dir selbst deklarierte, falls du nur PHP4 hast, in PHP 5 solltest du andereseits diese Funktion nicht deklarieren können (alredy defind fehler...)

Du könntest ja einfach mal in die Ausgabe von phpinfo() oder phpversion() schaun. Welche PHP Version man benutzt, sollte man sich klarmachen, sonst gibt das nur unnötige Verwirrung!

DJschatz27
28.02.2011, 16:59
<? foot(); ?>
<?head("<center> ".$seitenname."- Werbemittel");?>
<div align="center">
<?
#$open = opendir('./images/banner/');
$open = scandir('./images/banner/',1);
#while ($banner = readdir($open)){
foreach ($open as $banner){
if ($banner != '..' && $banner != '.' && $banner != 'Thumbs.db'){
$size = getimagesize('images/banner/'.$banner);
$groesse = filesize('images/banner/'.$banner.'')/1024;
echo '
<b>'.$size[0].'x'.$size[1].' (~ '.round($groesse).' KB)</b><br>
<img src="images/banner/'.$banner.'" alt="'.$seitenname.'"><br>
<textarea style="width:468px; height:50px;">&lt;a href="'.$url.'" target="_blank"&gt;&lt;img src="'.$domain.'/images/banner/'.$banner.'" alt="'.$seitenname.'" border="0"&gt;&lt;/a&gt;</textarea><br><br>';
}
}

?>
</div>
<?foot();?>


Danke für den Tip ich habs bei mir so da ich oberhalb noch ne Signatur drin hab und bei mir kommen erst die 468x60 Banner dann zuletzt der Skylayer!

Grad noch nen Fehler behoben