update:1. Убрал add_fields.php, нужный в самом начале одноразово для создания полей. Теперь наличие нужных полей проверяется в catalog_extra.php, при необходимости они создаются. Т.к. это в админке, то накладные затраты невелики. Код таков:
$fields =array (
array ('Field' => 'filter1', 'Type' => 'tinyint(1)', 'Null' => 'YES', 'Key' => '', 'Default' => '1', 'Extra' => ''),
array ('Field' => 'filter2', 'Type' => 'tinyint(1)', 'Null' => 'YES', 'Key' => '', 'Default' => '0', 'Extra' => ''),
array ('Field' => 'filter3', 'Type' => 'tinyint(1)', 'Null' => 'YES', 'Key' => '', 'Default' => '0', 'Extra' => ''),
array ('Field' => 'filter_string', 'Type' => 'tinyint(1)', 'Null' => 'YES', 'Key' => '', 'Default' => '0', 'Extra' => ''),
array ('Field' => 'product_show', 'Type' => 'tinyint(1)', 'Null' => 'YES', 'Key' => '', 'Default' => '1', 'Extra' => ''),
array ('Field' => 'brief_show', 'Type' => 'tinyint(1)', 'Null' => 'YES', 'Key' => '', 'Default' => '1', 'Extra' => ''));
$data = mysql_query("desc ".PRODUCT_OPTIONS_TABLE);
while ($row[] = mysql_fetch_assoc($data));
foreach ($fields as $field)
{
$flag = true;
foreach ($row as $cur_row) if ($field['Field'] == $cur_row['Field']) {$flag=false; break;}
if ($flag) mysql_query("ALTER TABLE ".PRODUCT_OPTIONS_TABLE." ADD ".$field['Field']." ".$field['Type']." DEFAULT ".$field['Default']);
}
2. сделал сворачивание фильтра с сохранением в куках, т.е. свернуть или развернуть надо всего один раз, при следующем заходе на сайт или на следующией странице состояние сохраняется. Идея и исходники взяты тут:
http://yraaa.ru/publ/3-1-0-1283Почему-то не сохраняется в IE (хотя сворачивается-разворачивается) и выдает ошибку сценария. Пока не разбирался.
Изменения только в файле filter.tpl.html.