function savefields($req) { $fields_loms_string = array2string(json_decode($req["fields_loms_json"])); $fields_uses_string = array2string(json_decode($req["fields_uses_json"])); $fields_tags_string = array2string(json_decode($req["fields_tags_json"])); $config_values = processFileForOptions($req['file']); //it reads an option from the file specified (it creates an array with form array["option"]=value) $config_values = substituteOption($config_values, "loms_fields", $fields_loms_string); $config_values = substituteOption($config_values, "uses_fields", $fields_uses_string); $config_values = substituteOption($config_values, "tags_fields", $fields_tags_string); write_config_values($config_values, $req['file']); //it saves the options from the array to the file indicated return true; }
function apply_icconffields($req) { global $CONFIG; set_time_limit(0); //this avoids timeouts include $CONFIG->path . "mod/profile_manager/views/default/profile_manager/members/config.php"; $new_indexing_req = 0; $fields_metadata_string = array2string(json_decode($req["fields_metadata"])); $fields_uses_string = array2string(json_decode($req["fields_uses"])); $fields_tags_string = array2string(json_decode($req["fields_tags"])); $classification_methods = array("Kohonen" => 1, "Aggregative" => 2, "YACA" => 3); $config_values = processFileForOptions($CONFIG->path . "mod/profile_manager/views/default/profile_manager/members/config.php"); //it reads an option from the config file (it creates an array with form array["option"]=value) if ($req["datasource_select"] == "sesame") { $config_values = substituteOption($config_values, "data_source", 1); } elseif ($req["datasource_select"] == "elggdb") { $config_values = substituteOption($config_values, "data_source", 2); } if (substr($config_values["metadata_fields"], 1, -1) != $fields_metadata_string) { $config_values = substituteOption($config_values, "metadata_fields", $fields_metadata_string); $new_indexing_req = 1; } if (substr($config_values["uses_fields"], 1, -1) != $fields_uses_string) { $config_values = substituteOption($config_values, "uses_fields", $fields_uses_string); $new_indexing_req = 1; } if (substr($config_values["tags_fields"], 1, -1) != $fields_tags_string) { $config_values = substituteOption($config_values, "tags_fields", $fields_tags_string); $new_indexing_req = 1; } $config_values = substituteOption($config_values, "keywords_limit", $req["text_numkeywords"]); $config_values = substituteOption($config_values, "context_limit", $req["text_numcontexts"]); $config_values = substituteOption($config_values, "width_sliding_window", $req["text_slidingwindow_width"]); if ($req["idf_chkbx"] == "true") { $config_values = substituteOption($config_values, "enable_idf", 1); } else { $config_values = substituteOption($config_values, "enable_idf", 0); } if ($req["synonyms_chkbx"] == "true") { $config_values = substituteOption($config_values, "enable_synonyms", 1); } else { $config_values = substituteOption($config_values, "enable_synonyms", 0); } if (isset($req["text_syn_db_host"])) { $config_values = substituteOption($config_values, "syn_db_host", $req["text_syn_db_host"]); } if (isset($req["text_syn_db_user"])) { $config_values = substituteOption($config_values, "syn_db_user", $req["text_syn_db_user"]); } if (isset($req["text_syn_db_pass"])) { $config_values = substituteOption($config_values, "syn_db_pass", $req["text_syn_db_pass"]); } if (isset($req["text_syn_db_name"])) { $config_values = substituteOption($config_values, "syn_db_name", $req["text_syn_db_name"]); } $config_values = substituteOption($config_values, "classification_method_metadata", $classification_methods[$req["metadata_select"]]); $config_values = substituteOption($config_values, "classification_method_tags", $classification_methods[$req["tags_select"]]); $config_values = substituteOption($config_values, "classification_method_uses", $classification_methods[$req["uses_select"]]); $config_values = substituteOption($config_values, "classification_method_replinks", $classification_methods[$req["replinks_select"]]); if (isset($req["text_kohonen_output"])) { $config_values = substituteOption($config_values, "output_file_kohonen", $req["text_kohonen_output"]); } if (isset($req["text_yaca_threshold"])) { $config_values = substituteOption($config_values, "YACA_threshold", $req["text_yaca_threshold"]); } if (isset($req["text_min_threshold"])) { $config_values = substituteOption($config_values, "minimum_association_threshold", $req["text_min_threshold"]); } write_config_values($config_values, $CONFIG->path . "mod/profile_manager/views/default/profile_manager/members/config.php"); //it saves the options from the array to the config file if ($new_indexing_req == 1) { $changes = unserialize(file_get_contents($IOdir . "changes")); //if the file doesn't exist, it doesn't matter $changes["new_indexing_required"] = 1; //mark the file new_indexing in order to force a new indexing file_put_contents($IOdir . "changes", serialize($changes)); } //it saves all the changes in the config file of the old command-line interface if ($config_values["IndexingClassificationPath"] != "undefined" && file_exists(substr($config_values["IndexingClassificationPath"], 1, -1) . "config.php")) { $IndexingClassificationPath = substr($config_values["IndexingClassificationPath"], 1, -1); $config_values = array(); $config_values = processFileForOptions($IndexingClassificationPath . "config.php"); //it reads an option from the config file (it creates an array with form array["option"]=value) if ($req["datasource_select"] == "sesame") { $config_values = substituteOption($config_values, "data_source", 1); } elseif ($req["datasource_select"] == "elggdb") { $config_values = substituteOption($config_values, "data_source", 2); } if (substr($config_values["metadata_fields"], 1, -1) != $fields_metadata_string) { $config_values = substituteOption($config_values, "metadata_fields", $fields_metadata_string); $new_indexing_req = 1; } if (substr($config_values["uses_fields"], 1, -1) != $fields_uses_string) { $config_values = substituteOption($config_values, "uses_fields", $fields_uses_string); $new_indexing_req = 1; } if (substr($config_values["tags_fields"], 1, -1) != $fields_tags_string) { $config_values = substituteOption($config_values, "tags_fields", $fields_tags_string); $new_indexing_req = 1; } $config_values = substituteOption($config_values, "keywords_limit", $req["text_numkeywords"]); $config_values = substituteOption($config_values, "context_limit", $req["text_numcontexts"]); $config_values = substituteOption($config_values, "width_sliding_window", $req["text_slidingwindow_width"]); if ($req["idf_chkbx"] == "true") { $config_values = substituteOption($config_values, "enable_idf", 1); } else { $config_values = substituteOption($config_values, "enable_idf", 0); } if ($req["synonyms_chkbx"] == "true") { $config_values = substituteOption($config_values, "enable_synonyms", 1); } else { $config_values = substituteOption($config_values, "enable_synonyms", 0); } if (isset($req["text_syn_db_host"])) { $config_values = substituteOption($config_values, "syn_db_host", $req["text_syn_db_host"]); } if (isset($req["text_syn_db_user"])) { $config_values = substituteOption($config_values, "syn_db_user", $req["text_syn_db_user"]); } if (isset($req["text_syn_db_pass"])) { $config_values = substituteOption($config_values, "syn_db_pass", $req["text_syn_db_pass"]); } if (isset($req["text_syn_db_name"])) { $config_values = substituteOption($config_values, "syn_db_name", $req["text_syn_db_name"]); } $config_values = substituteOption($config_values, "classification_method_metadata", $classification_methods[$req["metadata_select"]]); $config_values = substituteOption($config_values, "classification_method_tags", $classification_methods[$req["tags_select"]]); $config_values = substituteOption($config_values, "classification_method_uses", $classification_methods[$req["uses_select"]]); $config_values = substituteOption($config_values, "classification_method_replinks", $classification_methods[$req["replinks_select"]]); if (isset($req["text_kohonen_output"])) { $config_values = substituteOption($config_values, "output_file_kohonen", $req["text_kohonen_output"]); } if (isset($req["text_yaca_threshold"])) { $config_values = substituteOption($config_values, "YACA_threshold", $req["text_yaca_threshold"]); } if (isset($req["text_min_threshold"])) { $config_values = substituteOption($config_values, "minimum_association_threshold", $req["text_min_threshold"]); } write_config_values($config_values, $IndexingClassificationPath . "config.php"); //it saves the options from the array to the config file } return true; }
$line = trim(fgets(STDIN)); if ($line == "y" || $line == "Y") { write_config_values($config_values, "config.php"); if ($new_indexing_required) { $changes = unserialize(file_get_contents($IOdir . "changes")); //if the file doesn't exist, it doesn't matter $changes["new_indexing_required"] = 1; //mark the file new_indexing in order to force a new indexing file_put_contents($IOdir . "changes", serialize($changes)); if (PHP_OS == "Linux") { chmod($IOdir . "changes", 0666); } //set rw permissions for everybody for this file } //it saves all the changes in the config file of the web interface write_config_values($config_values2, $ElggPath . "mod/profile_manager/views/default/profile_manager/members/config.php"); echo "\nDon't forget to change your IOdir path in the file docdoc.php\n"; break; } if ($line == "n" || $line == "N") { break; } } //it reads an option from the file specified (it creates an array with form array["option"]=value) function processFileForOptions($file) { $fp = fopen($file, "r"); while (!feof($fp)) { $line = trim(fgets($fp)); if ($line != "<?php" && $line != "?>" && $line != "") { $pieces = explode("=", $line);