if ($old_value != $value) { $keys[] = $key; } $result = api_set_setting($key, $value, null, null, $url_id); } else { $sql = "SELECT subkey FROM {$table_settings_current} WHERE variable = '{$key}'"; $res = Database::query($sql); while ($row_subkeys = Database::fetch_array($res)) { // If subkey is changed: if (isset($value[$row_subkeys['subkey']]) && api_get_setting($key, $row_subkeys['subkey']) == 'false' || !isset($value[$row_subkeys['subkey']]) && api_get_setting($key, $row_subkeys['subkey']) == 'true') { $keys[] = $key; break; } } foreach ($value as $subkey => $subvalue) { $result = api_set_setting($key, 'true', $subkey, null, $url_id); } } } // Add event configuration settings category to the system log. $user_id = api_get_user_id(); $category = $_GET['category']; event_system(LOG_CONFIGURATION_SETTINGS_CHANGE, LOG_CONFIGURATION_SETTINGS_CATEGORY, $category, api_get_utc_datetime(), $user_id); // Add event configuration settings variable to the system log. if (is_array($keys) && count($keys) > 0) { foreach ($keys as $variable) { if (in_array($key, $settings_to_avoid)) { continue; } event_system(LOG_CONFIGURATION_SETTINGS_CHANGE, LOG_CONFIGURATION_SETTINGS_VARIABLE, $variable, api_get_utc_datetime(), $user_id); }
/** * Search options * TODO: support for multiple site. aka $_configuration['access_url'] == 1 * @author Marco Villegas <*****@*****.**> */ function handle_search() { global $SettingsStored, $_configuration; require_once api_get_path(LIBRARY_PATH) . 'specific_fields_manager.lib.php'; $search_enabled = api_get_setting('search.search_enabled'); $form = new FormValidator('search-options', 'post', api_get_self() . '?category=Search'); $values = api_get_settings_options('search_enabled'); $form->addElement('header', null, get_lang('SearchEnabledTitle')); $group = array(); if (is_array($values)) { foreach ($values as $key => $value) { $element =& $form->createElement('radio', 'search_enabled', '', get_lang($value['display_text']), $value['value']); $group[] = $element; } } //SearchEnabledComment $form->addGroup($group, 'search_enabled', array(get_lang('SearchEnabledTitle'), get_lang('SearchEnabledComment')), '<br />', false); $search_enabled = api_get_setting('search.search_enabled'); if ($form->validate()) { $formvalues = $form->exportValues(); $r = api_set_settings_category('Search', 'false', $_configuration['access_url']); // Save the settings. foreach ($formvalues as $key => $value) { $result = api_set_setting($key, $value, null, null); } $search_enabled = $formvalues['search_enabled']; Display::display_confirmation_message($SettingsStored); } $specific_fields = get_specific_field_list(); if ($search_enabled == 'true') { $values = api_get_settings_options('search_show_unlinked_results'); $group = array(); foreach ($values as $key => $value) { $element =& $form->createElement('radio', 'search_show_unlinked_results', '', get_lang($value['display_text']), $value['value']); $group[] = $element; } $form->addGroup($group, 'search_show_unlinked_results', array(get_lang('SearchShowUnlinkedResultsTitle'), get_lang('SearchShowUnlinkedResultsComment')), '', false); $default_values['search_show_unlinked_results'] = api_get_setting('search_show_unlinked_results'); $sf_values = array(); foreach ($specific_fields as $sf) { $sf_values[$sf['code']] = $sf['name']; } $group = array(); $url = Display::div(Display::url(get_lang('AddSpecificSearchField'), 'specific_fields.php'), array('class' => 'sectioncomment')); if (empty($sf_values)) { $form->addElement('html', get_lang('SearchPrefilterPrefix') . $url); } else { $form->addElement('select', 'search_prefilter_prefix', array(get_lang('SearchPrefilterPrefix'), $url), $sf_values, ''); $default_values['search_prefilter_prefix'] = api_get_setting('search_prefilter_prefix'); } } $default_values['search_enabled'] = $search_enabled; $form->addButtonSave(get_lang('Save')); $form->setDefaults($default_values); echo '<div id="search-options-form">'; $form->display(); echo '</div>'; if ($search_enabled == 'true') { $xapian_path = api_get_path(SYS_UPLOAD_PATH) . 'plugins/xapian/searchdb'; /* @todo Test the Xapian connection if (extension_loaded('xapian')) { require_once 'xapian.php'; try { $db = new XapianDatabase($xapian_path.'/'); } catch (Exception $e) { var_dump($e->getMessage()); } require_once api_get_path(LIBRARY_PATH) . 'search/DokeosIndexer.class.php'; require_once api_get_path(LIBRARY_PATH) . 'search/IndexableChunk.class.php'; require_once api_get_path(LIBRARY_PATH) . 'specific_fields_manager.lib.php'; $indexable = new IndexableChunk(); $indexable->addValue("content", 'Test'); $di = new DokeosIndexer(); $di->connectDb(NULL, NULL, 'english'); $di->addChunk($indexable); $did = $di->index(); } */ $xapian_loaded = Display::return_icon('bullet_green.gif', get_lang('Ok')); $dir_exists = Display::return_icon('bullet_green.gif', get_lang('Ok')); $dir_is_writable = Display::return_icon('bullet_green.gif', get_lang('Ok')); $specific_fields_exists = Display::return_icon('bullet_green.gif', get_lang('Ok')); //Testing specific fields if (empty($specific_fields)) { $specific_fields_exists = Display::return_icon('bullet_red.gif', get_lang('AddSpecificSearchField')); } //Testing xapian extension if (!extension_loaded('xapian')) { $xapian_loaded = Display::return_icon('bullet_red.gif', get_lang('Error')); } //Testing xapian searchdb path if (!is_dir($xapian_path)) { $dir_exists = Display::return_icon('bullet_red.gif', get_lang('Error')); } //Testing xapian searchdb path is writable if (!is_writable($xapian_path)) { $dir_is_writable = Display::return_icon('bullet_red.gif', get_lang('Error')); } $data[] = array(get_lang('XapianModuleInstalled'), $xapian_loaded); $data[] = array(get_lang('DirectoryExists') . ' - ' . $xapian_path, $dir_exists); $data[] = array(get_lang('IsWritable') . ' - ' . $xapian_path, $dir_is_writable); $data[] = array(get_lang('SpecificSearchFieldsAvailable'), $specific_fields_exists); echo Display::tag('h3', get_lang('Settings')); $table = new SortableTableFromArray($data); $table->set_header(0, get_lang('Setting'), false); $table->set_header(1, get_lang('Status'), false); echo $table->display(); //@todo windows support if (api_is_windows_os() == false) { $list_of_programs = array('pdftotext', 'ps2pdf', 'catdoc', 'html2text', 'unrtf', 'catppt', 'xls2csv'); foreach ($list_of_programs as $program) { $output = $ret_val = null; exec("which {$program}", $output, $ret_val); $icon = Display::return_icon('bullet_red.gif', get_lang('NotInstalled')); if (!empty($output[0])) { $icon = Display::return_icon('bullet_green.gif', get_lang('Installed')); } $data2[] = array($program, $output[0], $icon); } echo Display::tag('h3', get_lang('ProgramsNeededToConvertFiles')); $table = new SortableTableFromArray($data2); $table->set_header(0, get_lang('Program'), false); $table->set_header(1, get_lang('Path'), false); $table->set_header(2, get_lang('Status'), false); echo $table->display(); } else { Display::display_warning_message(get_lang('YouAreUsingChamiloInAWindowsPlatformSadlyYouCantConvertDocumentsInOrderToSearchTheContentUsingThisTool')); } } }
function api_set_setting_last_update() { // Saving latest refresh. api_set_setting('settings_latest_update', api_get_utc_datetime()); }
} } if ($action == 'setplatformlanguage') { if (isset($_GET['id']) && $_GET['id'] == strval(intval($_GET['id']))) { SubLanguageManager::set_platform_language($_GET['id']); } } if (isset($_POST['Submit']) && $_POST['Submit']) { // changing the name $sql_update = "UPDATE {$tbl_admin_languages} SET original_name='{$_POST['txt_name']}'\n WHERE id='{$_POST['edit_id']}'"; $result = Database::query($sql_update); // changing the Platform language if ($_POST['platformlanguage'] && $_POST['platformlanguage'] != '') { //$sql_update_2 = "UPDATE $tbl_settings_current SET selected_value='{$_POST['platformlanguage']}' WHERE variable='platformLanguage'"; //$result_2 = Database::query($sql_update_2); api_set_setting('platformLanguage', $_POST['platformlanguage'], null, null, $_configuration['access_url']); } } elseif (isset($_POST['action'])) { switch ($_POST['action']) { case 'makeavailable': if (count($_POST['id']) > 0) { $ids = array(); foreach ($_POST['id'] as $index => $id) { $ids[] = intval($id); } $sql = "UPDATE {$tbl_admin_languages} SET available='1' WHERE id IN ('" . implode("','", $ids) . "')"; Database::query($sql); } break; case 'makeunavailable': if (count($_POST['id']) > 0) {
} } if ($action == 'setplatformlanguage') { if (isset($_GET['id']) && $_GET['id'] == strval(intval($_GET['id']))) { SubLanguageManager::set_platform_language($_GET['id']); } } if (isset($_POST['Submit']) && $_POST['Submit']) { // changing the name $sql_update = "UPDATE {$tbl_admin_languages} SET original_name='{$_POST['txt_name']}' WHERE id='{$_POST['edit_id']}'"; $result = Database::query($sql_update); // changing the Platform language if ($_POST['platformlanguage'] && $_POST['platformlanguage'] != '') { //$sql_update_2 = "UPDATE $tbl_settings_current SET selected_value='{$_POST['platformlanguage']}' WHERE variable='platformLanguage'"; //$result_2 = Database::query($sql_update_2); api_set_setting('platformLanguage', $_POST['platformlanguage'], null, null, api_get_current_access_url_id()); } } elseif (isset($_POST['action'])) { switch ($_POST['action']) { case 'makeavailable': if (count($_POST['id']) > 0) { $ids = array(); foreach ($_POST['id'] as $index => $id) { $ids[] = Database::escape_string($id); } $sql = "UPDATE {$tbl_admin_languages} SET available='1' WHERE id IN ('" . implode("','", $ids) . "')"; Database::query($sql); } break; case 'makeunavailable': if (count($_POST['id']) > 0) {
/** * Saving latest settings modification datetime */ function api_set_setting_last_update() { api_set_setting('settings_latest_update', api_get_utc_datetime()); }
/** * Search options * TODO: support for multiple site. aka $_configuration['access_url'] == 1 * @author Marco Villegas <*****@*****.**> */ function handle_search() { global $SettingsStored, $_configuration; $search_enabled = api_get_setting('search_enabled'); $settings = api_get_settings('Search'); if ($search_enabled !== 'true' || count($settings) < 1) { Display::display_error_message(get_lang('SearchFeatureNotEnabledComment')); return; } require_once api_get_path(LIBRARY_PATH) . 'specific_fields_manager.lib.php'; $form = new FormValidator('search-options', 'post', api_get_self() . '?category=Search'); $renderer =& $form->defaultRenderer(); $renderer->setHeaderTemplate('<div class="sectiontitle">{header}</div>' . "\n"); $renderer->setElementTemplate('<div class="sectioncomment">{label}</div>' . "\n" . '<div class="sectionvalue">{element}</div>' . "\n"); //search_show_unlinked_results $form->addElement('header', null, get_lang('SearchShowUnlinkedResultsTitle')); $form->addElement('label', null, get_lang('SearchShowUnlinkedResultsComment')); $values = get_settings_options('search_show_unlinked_results'); $group = array(); foreach ($values as $key => $value) { $element =& $form->createElement('radio', 'search_show_unlinked_results', '', get_lang($value['display_text']), $value['value']); $group[] = $element; } $form->addGroup($group, 'search_show_unlinked_results', get_lang('SearchShowUnlinkedResultsComment'), '<br />', false); $default_values['search_show_unlinked_results'] = api_get_setting('search_show_unlinked_results'); //search_prefilter_prefix $form->addElement('header', null, get_lang('SearchPrefilterPrefix')); $form->addElement('label', null, get_lang('SearchPrefilterPrefixComment')); $specific_fields = get_specific_field_list(); $sf_values = array(); foreach ($specific_fields as $sf) { $sf_values[$sf['code']] = $sf['name']; } $group = array(); $form->addElement('select', 'search_prefilter_prefix', get_lang('SearchPrefilterPrefix'), $sf_values, ''); $default_values['search_prefilter_prefix'] = api_get_setting('search_prefilter_prefix'); //$form->addRule('search_show_unlinked_results', get_lang('ThisFieldIsRequired'), 'required'); $form->addElement('style_submit_button', 'search-options-save', get_lang('Ok')); $form->setDefaults($default_values); if ($form->validate()) { $formvalues = $form->exportValues(); $r = api_set_settings_category('Search', 'false', $_configuration['access_url']); // Save the settings foreach ($formvalues as $key => $value) { $result = api_set_setting($key, $value, null, null); } Display::display_normal_message($SettingsStored); } else { echo '<div id="search-options-form">'; $form->display(); echo '</div>'; } }
$firsthost = (object) $allvhosts[0]; api_set_setting('vchamilo_cron_lasthost', $firsthost->id, 'vchamilo'); echo "Round Robin : " . $firsthost->root_web . "\n"; if ($VCRON->ACTIVATION == 'cli') { exec_vhost_cron($firsthost); } else { fire_vhost_cron($firsthost); } } else { if ($VCRON->STRATEGY == LOWEST_POSSIBLE_GAP) { // First make measurement of cron period. if (api_get_setting('vcrontickperiod', 'vchamilo')) { api_set_setting('vcrontime', time(), 'vchamilo'); return; } api_set_setting('vcrontickperiod', time() - api_get_setting('vcrontime', 'vchamilo'), 'vchamilo'); $hostsperturn = max(1, $VCRON->PERIOD / api_get_setting('vcrontickperiod', 'vchamilo') * count($allvhosts)); $i = 0; foreach ($allvhosts as $vhostassoc) { $vhost = (object) $vhostassoc; if (time() - $vhost->lastcron > $VCRON->PERIOD) { if ($VCRON->ACTIVATION == 'cli') { exec_vhost_cron($vhost); } else { fire_vhost_cron($vhost); } $i++; if ($i >= $hostsperturn) { return; } }