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

133
mod/wiki/db/migrate2utf8.php Executable file
View file

@ -0,0 +1,133 @@
<?
function migrate2utf8_wiki_name($recordid){
global $CFG;
/// Some trivial checks
if (empty($recordid)) {
log_the_problem_somewhere();
return false;
}
if (!$wiki = get_record('wiki','id',$recordid)) {
log_the_problem_somewhere();
return false;
}
$sitelang = $CFG->lang;
$courselang = get_course_lang($wiki->course); //Non existing!
$userlang = get_main_teacher_lang($wiki->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($wiki->name, $fromenc);
$newwiki = new object;
$newwiki->id = $recordid;
$newwiki->name = $result;
update_record('wiki',$newwiki);
/// And finally, just return the converted field
return $result;
}
function migrate2utf8_wiki_summary($recordid){
global $CFG;
/// Some trivial checks
if (empty($recordid)) {
log_the_problem_somewhere();
return false;
}
if (!$wiki = get_record('wiki','id',$recordid)) {
log_the_problem_somewhere();
return false;
}
$sitelang = $CFG->lang;
$courselang = get_course_lang($wiki->course); //Non existing!
$userlang = get_main_teacher_lang($wiki->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($wiki->summary, $fromenc);
$newwiki = new object;
$newwiki->id = $recordid;
$newwiki->summary = $result;
update_record('wiki',$newwiki);
/// And finally, just return the converted field
return $result;
}
function migrate2utf8_wiki_pagename($recordid){
global $CFG;
/// Some trivial checks
if (empty($recordid)) {
log_the_problem_somewhere();
return false;
}
if (!$wiki = get_record('wiki','id',$recordid)) {
log_the_problem_somewhere();
return false;
}
$sitelang = $CFG->lang;
$courselang = get_course_lang($wiki->course); //Non existing!
$userlang = get_main_teacher_lang($wiki->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($wiki->pagename, $fromenc);
$newwiki = new object;
$newwiki->id = $recordid;
$newwiki->pagename = $result;
update_record('wiki',$newwiki);
/// And finally, just return the converted field
return $result;
}
function migrate2utf8_wiki_initialcontent($recordid){
global $CFG;
/// Some trivial checks
if (empty($recordid)) {
log_the_problem_somewhere();
return false;
}
if (!$wiki = get_record('wiki','id',$recordid)) {
log_the_problem_somewhere();
return false;
}
$sitelang = $CFG->lang;
$courselang = get_course_lang($wiki->course); //Non existing!
$userlang = get_main_teacher_lang($wiki->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($wiki->initialcontent, $fromenc);
$newwiki = new object;
$newwiki->id = $recordid;
$newwiki->initialcontent = $result;
update_record('wiki',$newwiki);
/// And finally, just return the converted field
return $result;
}
?>

108
mod/wiki/db/migrate2utf8.xml Executable file
View file

@ -0,0 +1,108 @@
<DBMIGRATION type="mod/wiki" VERSION="2005120100">
<TABLES>
<TABLE name="wiki_entries">
<FIELDS>
<FIELD name="pagename" method="PLAIN_SQL_UPDATE" type="varchar" length="255">
<SQL_DETECT_USER>
SELECT we.userid
FROM {$CFG->prefix}wiki_entries we
WHERE we.id=RECORDID
</SQL_DETECT_USER>
<SQL_DETECT_COURSE>
SELECT w.course
FROM {$CFG->prefix}wiki w,
{$CFG->prefix}wiki_entries we
WHERE w.id = we.wikiid
AND we.id = RECORDID
</SQL_DETECT_COURSE>
</FIELD>
</FIELDS>
</TABLE>
<TABLE name="wiki_pages">
<FIELDS>
<FIELD name="pagename" method="PLAIN_SQL_UPDATE" type="varchar" length="160">
<SQL_DETECT_USER>
SELECT wp.userid
FROM {$CFG->prefix}wiki_pages wp
WHERE wp.id=RECORDID
</SQL_DETECT_USER>
<SQL_DETECT_COURSE>
SELECT w.course
FROM {$CFG->prefix}wiki w,
{$CFG->prefix}wiki_pages wp
WHERE w.id = wp.wiki
AND we.id = RECORDID
</SQL_DETECT_COURSE>
</FIELD>
<FIELD name="content" method="PLAIN_SQL_UPDATE" type="mediumtext" length="0">
<SQL_DETECT_USER>
SELECT wp.userid
FROM {$CFG->prefix}wiki_pages wp
WHERE wp.id=RECORDID
</SQL_DETECT_USER>
<SQL_DETECT_COURSE>
SELECT w.course
FROM {$CFG->prefix}wiki w,
{$CFG->prefix}wiki_pages wp
WHERE w.id = wp.wiki
AND we.id = RECORDID
</SQL_DETECT_COURSE>
</FIELD>
<FIELD name="author" method="PLAIN_SQL_UPDATE" type="varchar" length="100">
<SQL_DETECT_USER>
SELECT wp.userid
FROM {$CFG->prefix}wiki_pages wp
WHERE wp.id=RECORDID
</SQL_DETECT_USER>
<SQL_DETECT_COURSE>
SELECT w.course
FROM {$CFG->prefix}wiki w,
{$CFG->prefix}wiki_pages wp
WHERE w.id = wp.wiki
AND we.id = RECORDID
</SQL_DETECT_COURSE>
</FIELD>
<FIELD name="ref" method="PLAIN_SQL_UPDATE" type="mediumtext" length="0">
<SQL_DETECT_USER>
SELECT wp.userid
FROM {$CFG->prefix}wiki_pages wp
WHERE wp.id=RECORDID
</SQL_DETECT_USER>
<SQL_DETECT_COURSE>
SELECT w.course
FROM {$CFG->prefix}wiki w,
{$CFG->prefix}wiki_pages wp
WHERE w.id = wp.wiki
AND we.id = RECORDID
</SQL_DETECT_COURSE>
</FIELD>
<FIELD name="meta" method="NO_CONV" type="mediumtext" length="0" />
</FIELDS>
</TABLE>
<TABLE name="wiki">
<FIELDS>
<FIELD name="name" method="PHP_FUNCTION" type="varchar" length="255">
<PHP_FUNCTION>
migrate2utf8_wiki_name(RECORDID)
</PHP_FUNCTION>
</FIELD>
<FIELD name="summary" method="PHP_FUNCTION" type="text" length="0">
<PHP_FUNCTION>
migrate2utf8_wiki_summary(RECORDID)
</PHP_FUNCTION>
</FIELD>
<FIELD name="pagename" method="PHP_FUNCTION" type="varchar" length="255">
<PHP_FUNCTION>
migrate2utf8_wiki_pagename(RECORDID)
</PHP_FUNCTION>
</FIELD>
<FIELD name="wtype" method="NO_CONV" type="enum('teacher', 'group', 'student')" length="0" />
<FIELD name="initialcontent" method="PHP_FUNCTION" type="varchar" length="255">
<PHP_FUNCTION>
migrate2utf8_wiki_initialcontent(RECORDID)
</PHP_FUNCTION>
</FIELD>
</FIELDS>
</TABLE>
</TABLES>
</DBMIGRATION>