// получим все данные из ini-файла $all = mso_get_ini_file($MSO->config['admin_plugins_dir'] . 'admin_page/meta.ini'); //pr($all); // подключаем meta.ini из текущего шаблона // при этом складываем их с дефолтным $meta_def = mso_get_ini_file(getinfo('shared_dir') . 'meta/meta.ini'); // можно использовать дефолтный $all = array_merge($all, $meta_def); if (file_exists(getinfo('template_dir') . 'meta.ini')) { $meta_templ = mso_get_ini_file(getinfo('template_dir') . 'meta.ini'); if ($meta_templ) { $all = array_merge($all, $meta_templ); } } if (file_exists(getinfo('template_dir') . 'custom/my_meta.ini')) { $meta_templ = mso_get_ini_file(getinfo('template_dir') . 'custom/my_meta.ini'); if ($meta_templ) { $all = array_merge($all, $meta_templ); } } // описание см. shared/blanks/custom/_my_meta.php if (file_exists(getinfo('template_dir') . 'custom/my_meta.php')) { require getinfo('template_dir') . 'custom/my_meta.php'; } // pr($all); // проходимся по всем ini-опциям // для совместимости используем вместо meta_ options_ foreach ($all as $key => $row) { if (isset($row['options_key'])) { $options_key = stripslashes(trim($row['options_key'])); } else {
} /** * MaxSite CMS * (c) http://max-3000.com/ */ ?> <h1><?php echo t('Основные настройки'); ?> </h1> <p class="info"><?php echo t('Здесь вы можете указать основные настройки. Если указанная настройка отмечена «нет в базе», значит нужно ввести её значение и нажать кнопку «Сохранить».'); ?> </p> <?php function _time_zone_current_time() { return '<br>' . t('Время сервера:') . ' <strong>' . date('H:i:s Y-m-d') . '</strong>' . '<br>' . t('С учётом поправки:') . ' <strong>' . mso_date_convert('H:i:s Y-m-d', date('Y-m-d H:i:s')) . '</strong>'; } $CI =& get_instance(); require_once getinfo('common_dir') . 'inifile.php'; // функции для работы с ini-файлом // проверяем входящие данные if (mso_check_post_ini()) { mso_redirect('admin/options'); } $all = mso_get_ini_file($MSO->config['admin_plugins_dir'] . 'admin_options/general.ini'); echo mso_view_ini($all); // вывод таблицы ini
function mso_remote_f_getpost($post) { if (!isset($post['remote_page_id']) or !$post['remote_page_id']) { return 'ERROR: missing arguments'; } require_once getinfo('common_dir') . 'page.php'; require_once getinfo('common_dir') . 'inifile.php'; // функции для работы с ini-файлом // удалим хуки для текста - должно отдаваться как в базе mso_remove_hook('content'); mso_remove_hook('content_auto_tag'); mso_remove_hook('content_balance_tags'); mso_remove_hook('content_out'); mso_remove_hook('content_complete'); $par = array('custom_type' => 'home', 'pagination' => false, 'content' => true, 'work_cut' => false, 'type' => false, 'page_id' => $post['remote_page_id'], 'date_now' => false, 'page_status' => false, 'page_id_autor' => $post['remote_users_id'], 'all_fields' => true); // если юзеру разрешено редактировать чужие страницы, то 'page_id_autor' сбрасываем // иначе только свои страницы можно загружать if (mso_check_user_password($post['remote_users_login'], $post['remote_users_password'], 'admin_page_edit_other')) { $par['page_id_autor'] = false; } $pages = mso_get_pages($par, $pagination); // получим странички $out = ''; if ($pages) { foreach ($pages as $page) { foreach ($page as $p_name => $p_val) { if ($p_name == 'page_categories_detail') { continue; } elseif ($p_name == 'users_description') { continue; } elseif ($p_name == 'users_avatar_url') { continue; } elseif ($p_name == 'users_login') { continue; } elseif ($p_name == 'page_content') { $p_val = str_replace("\n", '!RMTNR!', $p_val); } elseif ($p_name == 'page_categories') { // это массив, где хранятся id рубрик $p_val = implode(" ", $p_val); } elseif ($p_name == 'page_tags') { // это массив, где хранятся имена меток $p_val = implode('!RMTNR!', $p_val); } elseif ($p_name == 'page_meta') { // это массивы в массиве $pm = ''; foreach ($p_val as $page_meta_key => $page_meta_val) { $pm .= '!RMTMETA!' . $page_meta_key . '=' . implode('!RMTNR!', $page_meta_val); } $p_val = $pm; } elseif ($p_name == 'page_date_publish') { //page_date_publish=2009-01-05 22:27:22 $out .= NR . 'page_date_publish_year=' . mso_date_convert('Y', $p_val, false); $out .= NR . 'page_date_publish_mon=' . mso_date_convert('m', $p_val, false); $out .= NR . 'page_date_publish_day=' . mso_date_convert('d', $p_val, false); $out .= NR . 'page_date_publish_hour=' . mso_date_convert('H', $p_val, false); $out .= NR . 'page_date_publish_min=' . mso_date_convert('i', $p_val, false); $out .= NR . 'page_date_publish_sec=' . mso_date_convert('s', $p_val, false); } elseif (is_array($p_val)) { continue; } $out .= NR . $p_name . '=' . $p_val; } } # нужно передать и все метаполя, которые в шаблоне и admin_page/meta.ini. # Они могут быть пустыми, поэтому их нет в page_meta $all = mso_get_ini_file(getinfo('admin_plugins_dir') . 'admin_page/meta.ini'); if (file_exists(getinfo('template_dir') . 'meta.ini')) { $meta_templ = mso_get_ini_file(getinfo('template_dir') . 'meta.ini'); if ($meta_templ) { $all = array_merge($all, $meta_templ); } } $pm = ''; foreach ($all as $key => $val) { $pm .= '!RMTMETA!' . $key . '=' . _mso_implode($val); } $out .= NR . 'page_meta_template=' . $pm; } else { return 'ERROR: no page'; } return trim($out); }
// подключим все опции компонентов из components // в них ini-файлы, а также php-файлы, обслуживающие ini (для PHP_START PHP_END) // поэтому подключаем все php-файлы, после все ini-файлы // подключаем только те опции и ini компонентов, которые реально существуют // каждый компонент в своем каталоге $all_component = mso_get_dirs(getinfo('template_dir') . 'components/', array(), true); // проверяем опции (options.php) foreach ($all_component as $dir) { $file = getinfo('template_dir') . 'components/' . $dir . '/options.php'; if (file_exists($file)) { require $file; } // php-файлы } // проверяем options.ini foreach ($all_component as $dir) { $file = getinfo('template_dir') . 'components/' . $dir . '/options.ini'; if (file_exists($file)) { $add = mso_get_ini_file($file); // чтобы позволить испльзовать в компонентах одинаковые названия опций, // добавим к названию имя компонета в скобках $a1 = array(); foreach ($add as $key => $val) { $a1[$key . ' (' . $dir . ')'] = $val; } $options = array_merge($options, $a1); } } // вывод всех ini-опций echo mso_view_ini($options); # end file