function mso_check_post_ini() { $CI =& get_instance(); // проверяем входящие данные - поля всегда одни if ($post = mso_check_post(array('f_session_id', 'f_options', 'f_submit', 'f_ini'))) { # защита рефера mso_checkreferer(); $options = $post['f_options']; if (isset($post['f_all_checkbox'])) { $all_checkbox = $post['f_all_checkbox']; } else { $all_checkbox = array(); } // добавим к $options $all_checkbox если их нет // и сразу заменим on на 1 // pr($options); foreach ($all_checkbox as $key => $val) { if (!isset($options[$key])) { $options[$key] = '0'; } else { if (!is_array($options[$key])) { $options[$key] = '1'; } else { $options[$key] = array_map('trim', $options[$key]); } } } // pr($options); // pr($all_checkbox); foreach ($options as $key_type => $val) { // разделим имя опции на ключ и группу $key_type = explode('_m_s_o_', $key_type); $key = $key_type[0]; $type = $key_type[1]; // pr($key . ' ' . $val . ' ' . $type, 1); // добавляем опцию без mso_refresh_options(); mso_add_option($key, $val, $type, false); } mso_refresh_options(); mso_flush_cache(); // посколько у нас всегда true, то результат не анализируем return true; } return false; }
foreach ($widgets as $widget) { $widget = trim($widget); // удлаим лишнее if ($widget) { $option[] = $widget; } // добавим в опцию } // pr($option); mso_add_option('sidebars-' . mso_slug($sidebar), $option, 'sidebars'); // добавили } echo '<div class="update">' . t('Обновлено!') . '</div>'; // pr($sidebars); // поскольку мы обновили опции, то обновляем и их кэш mso_refresh_options(); } ?> <h1><?php echo t('Настройки сайдбаров'); ?> </h1> <p class="info"><?php echo t('Добавьте в сайдбары необходимые виджеты. Каждый виджет в одной строчке. Виджеты будут отображаться в указанном вами порядке. Если указанные виджеты не существуют, то они будут проигнорированы при выводе в сайдбаре.'); ?> </p> <p class="info"><?php echo t('Если вы указываете несколько одинаковых виджетов, то через пробел указывайте их номера.'); ?> </p>
function mso_delete_option_mask($mask, $type = 'general') { $CI =& get_instance(); $mask = str_replace('_', '/_', $mask); $mask = str_replace('%', '/%', $mask); $query = $CI->db->query('DELETE FROM ' . $CI->db->dbprefix('options') . ' WHERE options_type="' . $type . '" AND options_key LIKE "' . $mask . '%" ESCAPE "/"'); mso_refresh_options(); # обновляем опции из базы return true; }