Exemple #1
0
         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'));
        }
    }
}
Exemple #3
0
function api_set_setting_last_update()
{
    // Saving latest refresh.
    api_set_setting('settings_latest_update', api_get_utc_datetime());
}
Exemple #4
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']}'\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) {
Exemple #5
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) {
Exemple #6
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>';
    }
}
Exemple #8
0
    $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;
                }
            }