Seite 1 von 1

Stylesheet/Layout wählen

Verfasst: Mi 22. Dez 2010, 08:35
von Fips
Hallo,
wir haben das Modul "Stylesheet/Layout wählen" von Phillip Baumgaertner etwas angepasst, indem alle css-Dateien im Verzeichnis css angezweigt werden und im Input können weitere Verzeichnisse manuell eingefügt werden.
Somit können diverse css-Dateien in unterschiedlichen Verzeichnissen eingebunden werden.

INPUT

Code: Alles auswählen

/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname   :     Layout wählen
* Author      :     Phillip Baumgärtner
* Copyright   :     Phillip Baumgärtner
* Created     :     19-09-2006
* Version     :     2.0
* Modified    :     28-12-2010
************************************************/

$z = "CMS_VALUE[1]";
if ($z == NULL) {
	$z = 0;
} else {
	$z = "CMS_VALUE[1]";
}
?>
<table cellspacing="0" cellpadding="10" border="0">
	<tr>
		<td><?php echo mi18n("Anzahl"); ?></td>
		<td><input style="width:30px;" type="text" name="<?php echo "CMS_VAR[1]"; ?>" value="<?php echo $z; ?>">&nbsp;<input type="image" src="images/submit.gif"></td>
	</tr>
	<?php
	if ($z != 0) {
		echo '<tr><td>'.mi18n("Select a layout").'</td><td>';
		$y = 0;
		$select = 2;
		while ($z != $y) {
			echo '<select name="CMS_VAR['.$select.']">';
			echo '<option value="0" selected="selected">keines</option>';
                           $pfade = array();
			$pfade[] = "../cms/css/";
			$pfade[] = "../cms/css/screen/";
			$pfade[] = "../cms/css/patches/";
                           foreach($pfade as $pfad){
			    $verz = opendir($pfad);
			    while ($file=readdir($verz)) {
				     if (preg_match('/.css/', $file)) {
				      	    if ("CMS_VALUE[$select]" == "$pfad$file") {
						echo '<option value="'.$file.'" selected="selected">'.$file.'</option>';
					    } else {
						echo '<option value="'.$pfad.$file.'">'.$file.'</option>';
					    }
				    }
			    }
			    closedir($verz);
                            } 
			echo "</select><br />";
			$y++;
			$select++;
		}
		echo '</td></tr>';
	}
echo "</table>";
OUTPUT

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     Layout wählen
* Author      :     Phillip Baumgärtner
* Copyright   :     Phillip Baumgärtner
* Created     :     19-09-2006
* Version     :     2.0
* Modified    :     28-12-2010

************************************************/


$layout = 2;
$z = "CMS_VALUE[1]";
$y = "CMS_VALUE[$layout]";
if ($z != "0") {
	$i = 0;
	while ($z != $i) {
		echo '<link rel="stylesheet" type="text/css" href="'.$y.'" />';
		$i++;
		$layout++;
		$y = "CMS_VALUE[$layout]";
	}
}
?>
Fips

Re: Stylesheet/Layout wählen

Verfasst: Mi 29. Dez 2010, 16:09
von Fips
Hallo,
bei der Arbeit mit dem angepassten Modul ist uns aufgefallen, dass nach nochmaligen Öffnen und Abspeichern der Konfiguration die Auswahl auf keines zurückgesetzt wurde.
Wir haben dies geändert. Hier der geänderte INPUT:

Code: Alles auswählen

/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname   :     Layout wählen
* Author      :     Phillip Baumgärtner
* Copyright   :     Phillip Baumgärtner
* Created     :     19-09-2006
* Version     :     2.0
* Modified    :     29-12-2010
************************************************/

$z = "CMS_VALUE[1]";
if ($z == NULL) {
	$z = 0;
} else {
	$z = "CMS_VALUE[1]";
}
?>
<table cellspacing="0" cellpadding="10" border="0">
	<tr>
		<td><?php echo mi18n("Anzahl"); ?></td>
		<td><input style="width:30px;" type="text" name="<?php echo "CMS_VAR[1]"; ?>" value="<?php echo $z; ?>">&nbsp;<input type="image" src="images/submit.gif"></td>
	</tr>
	<?php
	if ($z != 0) {
		echo '<tr><td>'.mi18n("Select a layout").'</td><td>';
		$y = 0;
		$select = 2;
		while ($z != $y) {
			echo '<select name="CMS_VAR['.$select.']">';
                        $pfade = array();
			$pfade[] = "../cms/css/"; /* Bitte Pfad anpassen */
			$pfade[] = "../cms/css/screen/"; /* Bitte Pfad anpassen */
                        $vorauswahl = true;
                           foreach($pfade as $pfad){
			    $verz = opendir($pfad);
			    while ($file=readdir($verz)) {
				     if (preg_match('/.css/', $file)) {
				      	    if ("CMS_VALUE[$select]" == "$pfad$file" && $vorauswahl) {
                                                $vorauswahl = false;
						echo '<option value="'.$pfad.$file.'" selected="selected">'.$file.'</option>';
					    } else {
						echo '<option value="'.$pfad.$file.'">'.$file.'</option>';
					    }
				    }
			    }
			    closedir($verz);
                            }
                        if ($vorauswahl)
                            echo '<option value="0" selected="selected">keines</option>'; 
                        else
			    echo '<option value="0">keines</option>';

			echo "</select><br />";
			$y++;
			$select++;
		}
		echo '</td></tr>';
	}
echo "</table>";
FIPS

Re: Stylesheet/Layout wählen

Verfasst: Mi 29. Dez 2010, 22:08
von McHubi
Hallo Fips,

Danke für das Modul und die Korrektur :D ... aber am besten führst Du diese Änderungen zukünftig immer im Anfangspost durch. Denn gerade bei längeren Themen müsste man sich so Stück für Stück die Änderungen zusammenklauben. Also besser den Input im ersten Post ändern und lediglich einen kurzen Hinweis auf die Änderung posten. Macht's für alle leichter weil die aktuellste Version immer direkt im ersten Post zu finden ist. :wink:

Viele Grüße,


Markus