Treffer! Das ist es aber noch nicht ganz....
Bulletproof 1.2 ist schon etwas sehr outdated und habe ich hier auch nicht mehr vorliegen, aber die aktuell mitgelieferte version BP 1.4 macht tatsächlich denselben Fehler (im quelltext):
in der functions_plugins_admin.inc ~471 (!)
was dann debugmäßig case "ctype: select" ergibt.
Hier wird
Code: Select all
$select mit = $cbag->get('select_values');
erstellt und mit foreach ausgegeben. Leider ist
$select leer! Das ist das Farbwahl select.
Warum weiß ich noch nicht... (Garvin?)
Ein schneller workaround ist die foreach Schleife:
Code: Select all
<?php
foreach($select AS $select_value => $select_desc) {
$id = htmlspecialchars($config_item . $select_value);
?>
<option value="<?php echo $select_value; ?>" <?php echo ( (in_array($select_value, $selected_options) || in_array($select_value, $pre_selected) ) ? 'selected="selected"' : ''); ?> title="<?php echo htmlspecialchars($select_desc); ?>">
<?php echo htmlspecialchars($select_desc); ?>
</option>
<?php
}
?>
mit einem if is_array zu umkleiden...
Code: Select all
<?php
if( is_array($select) ) {
foreach($select AS $select_value => $select_desc) {
$id = htmlspecialchars($config_item . $select_value);
?>
<option value="<?php echo $select_value; ?>" <?php echo ( (in_array($select_value, $selected_options) || in_array($select_value, $pre_selected) ) ? 'selected="selected"' : ''); ?> title="<?php echo htmlspecialchars($select_desc); ?>">
<?php echo htmlspecialchars($select_desc); ?>
</option>
<?php
}
}
?>
Edit:
Und der eigentliche Fehler sitzt hier:
Warum wurde die Bildung des $colorsets array in der BP config.inc mit einem
Code: Select all
if ($serendipity['GET']['adminModule'] == 'templates') { ... }
umschlungen???
Ohne gehts!
Edit2:
Wahrscheinlich sollte verhindert werden, dass die Bildung des colorsets arrays immer - d.h. auch im Frontend - durchlaufen wird, leider wurde aber vergessen, dass ein Wechsel des Templates keinen GET adminModule=templates setzt.
Eigentlich muss das auch schon vor 1.7 zu einem Fehler geführt haben.
Garvin, sollen wir den nun grundsätzlich beim Templatewechsel generieren, oder gäbe es außer der Deaktivierung des if()s noch andere Möglichkeiten?