function apachesolr_multilingual_textfile_download_config_validate in Apache Solr Multilingual 6
Same name and namespace in other branches
- 6.2 apachesolr_multilingual_textfile/apachesolr_multilingual_textfile.module \apachesolr_multilingual_textfile_download_config_validate()
2 calls to apachesolr_multilingual_textfile_download_config_validate()
- apachesolr_multilingual_textfile_download_multilingual_config_validate in apachesolr_multilingual_textfile/
apachesolr_multilingual_textfile.module - apachesolr_multilingual_textfile_download_unique_langauge_config_validate in apachesolr_multilingual_textfile/
apachesolr_multilingual_textfile.module
File
- apachesolr_multilingual_textfile/
apachesolr_multilingual_textfile.module, line 131
Code
function apachesolr_multilingual_textfile_download_config_validate($form, &$form_state, $multilingual) {
$selected_languages = variable_get('apachesolr_multilingual_languages', array());
$apachesolr_multilingual_filetypes = variable_get('apachesolr_multilingual_filetypes', array(
'stopwords.txt' => 'stopwords.txt',
'synonyms.txt' => 'synonyms.txt',
'protwords.txt' => 'protwords.txt',
'compoundwords.txt' => 'compoundwords.txt',
));
$language_count = 0;
foreach ($selected_languages as $lang) {
if ($lang) {
$language_count++;
}
}
if ($language_count) {
// array for zip content
$files = array();
// languages to handle
foreach ($selected_languages as $language) {
if ($language) {
foreach ($apachesolr_multilingual_filetypes as $filename) {
$files[$filename] = '';
if ($vid = db_result(db_query("SELECT vid FROM {apachesolr_multilingual_textfiles} JOIN {node} USING (vid) WHERE language = '%s' and filename = '%s'", $language, $filename))) {
if ($node = node_load(array(
'vid' => $vid,
))) {
if ($multilingual) {
$s2f = explode('.', $filename);
$language_filename = $s2f[0] . '_' . $language . '.' . $s2f[1];
$files[$language_filename] = apachesolr_multilingual_textfile_isolatin1accent_filter($node->body);
if ('stopwords.txt' == $filename) {
$files['stopwords_spell_' . $language . '.txt'] = $node->body;
}
}
else {
$files[$filename] = apachesolr_multilingual_textfile_isolatin1accent_filter($node->body);
if ('stopwords.txt' == $filename) {
$files['stopwords_spell.txt'] = $node->body;
}
}
}
}
}
}
}
require_once dirname(__FILE__) . '/../lib/apachesolr_multilingual_zipfile.php';
$apachesolr_multilingual_config_zip = new apachesolr_multilingual_zipfile();
$data = $form['solrconfig_str_complete']['#value'];
$apachesolr_multilingual_config_zip
->addFile($data, 'solrconfig.xml');
$data = $form['schema_str_complete']['#value'];
$apachesolr_multilingual_config_zip
->addFile($data, 'schema.xml');
$data = file_get_contents(dirname(__FILE__) . '/../resources/mapping-ISOLatin1Accent.txt');
$apachesolr_multilingual_config_zip
->addFile($data, 'mapping-ISOLatin1Accent.txt');
if (!isset($files['compoundwords.txt'])) {
// solr example installation doesn't contain compoundwords.txt. so we have to ensure that it exists in our package
$files['compoundwords.txt'] = '';
}
foreach ($files as $filename => $data) {
if (strpos($filename, 'compoundwords') !== FALSE || strpos($filename, 'protwords') !== FALSE) {
// compoundwords and protwords are used AFTER a lower case filter in schema.xml.
// because isolatin1accent_filter converted all accent characters we don't need to care about the locale for strtolower
$data = drupal_strtolower($data);
}
$apachesolr_multilingual_config_zip
->addFile($data, $filename);
}
drupal_set_header('Content-Type: application/x-gzip');
drupal_set_header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
$file_name = $multilingual ? 'apachesolr_multilingual_config.zip' : 'apachesolr_unique_language_config.zip';
drupal_set_header('Content-Disposition: inline; filename="' . $file_name . '"');
drupal_set_header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
drupal_set_header('Pragma: public');
print $apachesolr_multilingual_config_zip
->file();
exit;
}
drupal_not_found();
}