utf8 migration support scripts

This commit is contained in:
toyomoyo 2006-01-09 06:06:49 +00:00
parent bbbb201364
commit 1e4d9ff6dc
36 changed files with 4767 additions and 0 deletions

354
mod/data/db/migrate2utf8.php Executable file
View file

@ -0,0 +1,354 @@
<?
function migrate2utf8_data_fields_name($recordid){
global $CFG;
/// Some trivial checks
if (empty($recordid)) {
log_the_problem_somewhere();
return false;
}
$SQL = "SELECT d.course
FROM {$CFG->prefix}data_fields df,
{$CFG->prefix}data d
WHERE d.id = df.dataid
AND df.id = $recordid";
if (!$data = get_record_sql($SQL)) {
log_the_problem_somewhere();
return false;
}
if (!$datafield = get_record('data_fields','id',$recordid)) {
log_the_problem_somewhere();
return false;
}
$sitelang = $CFG->lang;
$courselang = get_course_lang($data->course); //Non existing!
$userlang = get_main_teacher_lang($data->course); //N.E.!!
$fromenc = get_original_encoding($sitelang, $courselang, $userlang);
/// We are going to use textlib facilities
$textlib = textlib_get_instance();
/// Convert the text
$result = $textlib->convert($datafield->name, $fromenc);
$newdatafield = new object;
$newdatafield->id = $recordid;
$newdatafield->name = $result;
update_record('data_fields',$newdatafield);
/// And finally, just return the converted field
return $result;
}
function migrate2utf8_data_fields_description($recordid){
global $CFG;
/// Some trivial checks
if (empty($recordid)) {
log_the_problem_somewhere();
return false;
}
$SQL = "SELECT d.course
FROM {$CFG->prefix}data_fields df,
{$CFG->prefix}data d
WHERE d.id = df.dataid
AND df.id = $recordid";
if (!$data = get_record_sql($SQL)) {
log_the_problem_somewhere();
return false;
}
if (!$datafield = get_record('data_fields','id',$recordid)) {
log_the_problem_somewhere();
return false;
}
$sitelang = $CFG->lang;
$courselang = get_course_lang($data->course); //Non existing!
$userlang = get_main_teacher_lang($data->course); //N.E.!!
$fromenc = get_original_encoding($sitelang, $courselang, $userlang);
/// We are going to use textlib facilities
$textlib = textlib_get_instance();
/// Convert the text
$result = $textlib->convert($datafield->description, $fromenc);
$newdatafield = new object;
$newdatafield->id = $recordid;
$newdatafield->description = $result;
update_record('data_fields',$newdatafield);
/// And finally, just return the converted field
return $result;
}
function migrate2utf8_data_name($recordid){
global $CFG;
/// Some trivial checks
if (empty($recordid)) {
log_the_problem_somewhere();
return false;
}
if (!$data = get_record('data','id',$recordid)) {
log_the_problem_somewhere();
return false;
}
$sitelang = $CFG->lang;
$courselang = get_course_lang($data->course); //Non existing!
$userlang = get_main_teacher_lang($data->course); //N.E.!!
$fromenc = get_original_encoding($sitelang, $courselang, $userlang);
/// We are going to use textlib facilities
$textlib = textlib_get_instance();
/// Convert the text
$result = $textlib->convert($data->name, $fromenc);
$newdata= new object;
$newdata->id = $recordid;
$newdata->name = $result;
update_record('data',$newdata);
/// And finally, just return the converted field
return $result;
}
function migrate2utf8_data_intro($recordid){
global $CFG;
/// Some trivial checks
if (empty($recordid)) {
log_the_problem_somewhere();
return false;
}
if (!$data = get_record('data','id',$recordid)) {
log_the_problem_somewhere();
return false;
}
$sitelang = $CFG->lang;
$courselang = get_course_lang($data->course); //Non existing!
$userlang = get_main_teacher_lang($data->course); //N.E.!!
$fromenc = get_original_encoding($sitelang, $courselang, $userlang);
/// We are going to use textlib facilities
$textlib = textlib_get_instance();
/// Convert the text
$result = $textlib->convert($data->intro, $fromenc);
$newdata= new object;
$newdata->id = $recordid;
$newdata->intro = $result;
update_record('data',$newdata);
/// And finally, just return the converted field
return $result;
}
function migrate2utf8_data_singletemplate($recordid){
global $CFG;
/// Some trivial checks
if (empty($recordid)) {
log_the_problem_somewhere();
return false;
}
if (!$data = get_record('data','id',$recordid)) {
log_the_problem_somewhere();
return false;
}
$sitelang = $CFG->lang;
$courselang = get_course_lang($data->course); //Non existing!
$userlang = get_main_teacher_lang($data->course); //N.E.!!
$fromenc = get_original_encoding($sitelang, $courselang, $userlang);
/// We are going to use textlib facilities
$textlib = textlib_get_instance();
/// Convert the text
$result = $textlib->convert($data->singletemplate, $fromenc);
$newdata= new object;
$newdata->id = $recordid;
$newdata->singletemplate = $result;
update_record('data',$newdata);
/// And finally, just return the converted field
return $result;
}
function migrate2utf8_data_listtemplate($recordid){
global $CFG;
/// Some trivial checks
if (empty($recordid)) {
log_the_problem_somewhere();
return false;
}
if (!$data = get_record('data','id',$recordid)) {
log_the_problem_somewhere();
return false;
}
$sitelang = $CFG->lang;
$courselang = get_course_lang($data->course); //Non existing!
$userlang = get_main_teacher_lang($data->course); //N.E.!!
$fromenc = get_original_encoding($sitelang, $courselang, $userlang);
/// We are going to use textlib facilities
$textlib = textlib_get_instance();
/// Convert the text
$result = $textlib->convert($data->listtemplate, $fromenc);
$newdata= new object;
$newdata->id = $recordid;
$newdata->listtemplate = $result;
update_record('data',$newdata);
/// And finally, just return the converted field
return $result;
}
function migrate2utf8_data_addtemplate($recordid){
global $CFG;
/// Some trivial checks
if (empty($recordid)) {
log_the_problem_somewhere();
return false;
}
if (!$data = get_record('data','id',$recordid)) {
log_the_problem_somewhere();
return false;
}
$sitelang = $CFG->lang;
$courselang = get_course_lang($data->course); //Non existing!
$userlang = get_main_teacher_lang($data->course); //N.E.!!
$fromenc = get_original_encoding($sitelang, $courselang, $userlang);
/// We are going to use textlib facilities
$textlib = textlib_get_instance();
/// Convert the text
$result = $textlib->convert($data->addtemplate, $fromenc);
$newdata= new object;
$newdata->id = $recordid;
$newdata->addtemplate = $result;
update_record('data',$newdata);
/// And finally, just return the converted field
return $result;
}
function migrate2utf8_data_rsstemplate($recordid){
global $CFG;
/// Some trivial checks
if (empty($recordid)) {
log_the_problem_somewhere();
return false;
}
if (!$data = get_record('data','id',$recordid)) {
log_the_problem_somewhere();
return false;
}
$sitelang = $CFG->lang;
$courselang = get_course_lang($data->course); //Non existing!
$userlang = get_main_teacher_lang($data->course); //N.E.!!
$fromenc = get_original_encoding($sitelang, $courselang, $userlang);
/// We are going to use textlib facilities
$textlib = textlib_get_instance();
/// Convert the text
$result = $textlib->convert($data->rsstemplate, $fromenc);
$newdata= new object;
$newdata->id = $recordid;
$newdata->rsstemplate = $result;
update_record('data',$newdata);
/// And finally, just return the converted field
return $result;
}
function migrate2utf8_data_listtemplateheader($recordid){
global $CFG;
/// Some trivial checks
if (empty($recordid)) {
log_the_problem_somewhere();
return false;
}
if (!$data = get_record('data','id',$recordid)){
log_the_problem_somewhere();
return false;
}
$sitelang = $CFG->lang;
$courselang = get_course_lang($data->course); //Non existing!
$userlang = get_main_teacher_lang($data->course); //N.E.!!
$fromenc = get_original_encoding($sitelang, $courselang, $userlang);
/// We are going to use textlib facilities
$textlib = textlib_get_instance();
/// Convert the text
$result = $textlib->convert($data->listtemplateheade, $fromenc);
$newdata= new object;
$newdata->id = $recordid;
$newdata->listtemplateheader = $result;
update_record('data',$newdata);
/// And finally, just return the converted field
return $result;
}
function migrate2utf8_data_listtemplatefooter($recordid){
global $CFG;
/// Some trivial checks
if (empty($recordid)) {
log_the_problem_somewhere();
return false;
}
if (!$data = get_record('data','id',$recordid)) {
log_the_problem_somewhere();
return false;
}
$sitelang = $CFG->lang;
$courselang = get_course_lang($data->course); //Non existing!
$userlang = get_main_teacher_lang($data->course); //N.E.!!
$fromenc = get_original_encoding($sitelang, $courselang, $userlang);
/// We are going to use textlib facilities
$textlib = textlib_get_instance();
/// Convert the text
$result = $textlib->convert($data->listtemplatefooter, $fromenc);
$newdata= new object;
$newdata->id = $recordid;
$newdata->listtemplatefooter = $result;
update_record('data',$newdata);
/// And finally, just return the converted field
return $result;
}
?>

100
mod/data/db/migrate2utf8.xml Executable file
View file

@ -0,0 +1,100 @@
<DBMIGRATION type="mod/data" VERSION="2005120100">
<TABLES>
<TABLE name="data_comments">
<FIELDS>
<FIELD name="content" method="NO_CONV" type="text" length="0" />
</FIELDS>
</TABLE>
<TABLE name="data_content">
<FIELDS>
<FIELD name="content" method="PLAIN_SQL_UPDATE" type="longtext" length="0">
<SQL_DETECT_USER>
SELECT dr.userid
FROM {$CFG->prefix}data_records dr,
{$CFG->prefix}data_content dc
WHERE dr.id = dc.recordid
AND dc.id = RECORDID
</SQL_DETECT_USER>
<SQL_DETECT_COURSE>
SELECT d.course
FROM {$CFG->prefix}data_records dr,
{$CFG->prefix}data d,
{$CFG->prefix}data_content dc
WHERE d.id = dr.dataid
AND dr.id = dc.recordid
AND dc.id = RECORDID
</SQL_DETECT_COURSE>
</FIELD>
</FIELDS>
</TABLE>
<TABLE name="data_fields">
<FIELDS>
<FIELD name="type" method="NO_CONV" type="varchar" length="255" />
<FIELD name="name" method="PHP_FUNCTION" type="varchar" length="255">
<PHP_FUNCTION>
migrate2utf_data_fields_name(RECORDID)
</PHP_FUNCTION>
</FIELD>
<FIELD name="description" method="PHP_FUNCTION" type="text" length="0">
<PHP_FUNCTION>
migrate2utf_data_fields_description(RECORDID)
</PHP_FUNCTION>
</FIELD>
<FIELD name="param1" method="NO_CONV" type="text" length="0" />
<FIELD name="param2" method="NO_CONV" type="text" length="0" />
<FIELD name="param3" method="NO_CONV" type="text" length="0" />
<FIELD name="param4" method="NO_CONV" type="text" length="0" />
<FIELD name="param5" method="NO_CONV" type="text" length="0" />
<FIELD name="param6" method="NO_CONV" type="text" length="0" />
<FIELD name="param7" method="NO_CONV" type="text" length="0" />
<FIELD name="param8" method="NO_CONV" type="text" length="0" />
<FIELD name="param9" method="NO_CONV" type="text" length="0" />
<FIELD name="param10" method="NO_CONV" type="text" length="0" />
</FIELDS>
</TABLE>
<TABLE name="data">
<FIELDS>
<FIELD name="name" method="PHP_FUNCTION" type="varchar" length="255">
<PHP_FUNCTION>
migrate2utf_data_name(RECORDID)
</PHP_FUNCTION>
</FIELD>
<FIELD name="intro" method="PHP_FUNCTION" type="text" length="0">
<PHP_FUNCTION>
migrate2utf_data_intro(RECORDID)
</PHP_FUNCTION>
</FIELD>
<FIELD name="singletemplate" method="PHP_FUNCTION" type="text" length="0">
<PHP_FUNCTION>
migrate2utf_data_singletemplate(RECORDID)
</PHP_FUNCTION>
</FIELD>
<FIELD name="listtemplate" method="PHP_FUNCTION" type="text" length="0">
<PHP_FUNCTION>
migrate2utf_data_listtemplate(RECORDID)
</PHP_FUNCTION>
</FIELD>
<FIELD name="addtemplate" method="PHP_FUNCTION" type="text" length="0">
<PHP_FUNCTION>
migrate2utf_data_addtemplate(RECORDID)
</PHP_FUNCTION>
</FIELD>
<FIELD name="rsstemplate" method="PHP_FUNCTION" type="text" length="0">
<PHP_FUNCTION>
migrate2utf_data_rsstemplate(RECORDID)
</PHP_FUNCTION>
</FIELD>
<FIELD name="listtemplateheader" method="PHP_FUNCTION" type="text" length="0">
<PHP_FUNCTION>
migrate2utf_data_listtemplateheader(RECORDID)
</PHP_FUNCTION>
</FIELD>
<FIELD name="listtemplatefooter" method="PHP_FUNCTION" type="text" length="0">
<PHP_FUNCTION>
migrate2utf_data_listtemplatefooter(RECORDID)
</PHP_FUNCTION>
</FIELD>
</FIELDS>
</TABLE>
</TABLES>
</DBMIGRATION>