diff --git a/admin/utfdbmigrate.php b/admin/utfdbmigrate.php index 3ad5db4118e..5434f002b45 100755 --- a/admin/utfdbmigrate.php +++ b/admin/utfdbmigrate.php @@ -794,10 +794,12 @@ function log_the_problem_somewhere() { //Eloy: Nice function, perhaps we could } //only this function should be used during db migraton, because of addslashes at the end of the convertion -function utfconvert($string, $enc) { +function utfconvert($string, $enc, $slash=true) { global $textlib; if ($result = $textlib->convert($string, $enc)) { - $result = addslashes($result); + if ($slash) { + $result = addslashes($result); + } } return $result; } diff --git a/blocks/db/migrate2utf8.php b/blocks/db/migrate2utf8.php index 6cb873e3b78..5e097f038d7 100755 --- a/blocks/db/migrate2utf8.php +++ b/blocks/db/migrate2utf8.php @@ -26,8 +26,8 @@ function migrate2utf8_block_instance_configdata($recordid){ /// We are going to use textlib facilities /// Convert the text - $blah->title = utfconvert($blah->title, $fromenc); - $blah->text = utfconvert($blah->text, $fromenc); + $blah->title = utfconvert($blah->title, $fromenc, false); + $blah->text = utfconvert($blah->text, $fromenc, false); $blockinstance->configdata = base64_encode(serialize($blah)); @@ -53,7 +53,7 @@ function migrate2utf8_block_instance_configdata($recordid){ /// We are going to use textlib facilities /// Convert the text - $blah->title = utfconvert($blah->title, $fromenc); + $blah->title = utfconvert($blah->title, $fromenc, false); $blockinstance->configdata = base64_encode(serialize($blah)); @@ -66,6 +66,67 @@ function migrate2utf8_block_instance_configdata($recordid){ } function migrate2utf8_block_pinned_configdata($recordid){ +global $CFG, $globallang; + $blockpinned = get_record('block_pinned','id',$recordid); + + //get block instance type, we only need to worry about HTML blocks... right????????? + + $blocktype = get_record('block','id',$blockpinned->blockid); + + if ($blocktype -> name == 'html') { + + ///find course + if ($globallang) { + $fromenc = $globallang; + } else { + $sitelang = $CFG->lang; + $courselang = get_course_lang($blockpinned->pageid); //Non existing! + $userlang = get_main_teacher_lang($blockpinned->pageid); //N.E.!! + + $fromenc = get_original_encoding($sitelang, $courselang, $userlang); + } + + $blah = unserialize(base64_decode($blockpinned->configdata)); + + /// We are going to use textlib facilities + + /// Convert the text + $blah->title = utfconvert($blah->title, $fromenc, false); + $blah->text = utfconvert($blah->text, $fromenc, false); + + $blockpinned->configdata = base64_encode(serialize($blah)); + + migrate2utf8_update_record('blockpinned',$blockpinned); + + return $blah; + + } else if ($blocktype -> name == 'rss_client'){ + + ///find course + if ($globallang) { + $fromenc = $globallang; + } else { + $sitelang = $CFG->lang; + $courselang = get_course_lang($blockpinned->pageid); //Non existing! + $userlang = get_main_teacher_lang($blockpinned->pageid); //N.E.!! + + $fromenc = get_original_encoding($sitelang, $courselang, $userlang); + } + + $blah = unserialize(base64_decode($blockpinned->configdata)); + + /// We are going to use textlib facilities + + /// Convert the text + $blah->title = utfconvert($blah->title, $fromenc, false); + + $blockpinned->configdata = base64_encode(serialize($blah)); + + migrate2utf8_update_record('blockpinned',$blockblockpinned); + + return $blah; + + } } ?> diff --git a/blocks/db/migrate2utf8.xml b/blocks/db/migrate2utf8.xml index d925f27d9ca..c6cbd2ff1be 100755 --- a/blocks/db/migrate2utf8.xml +++ b/blocks/db/migrate2utf8.xml @@ -22,7 +22,7 @@ <FIELD name="position" method="NO_CONV" type="varchar" length="10" /> <FIELD name="configdata" method="PHP_FUNCTION" type="text" length="0"> <PHP_FUNCTION> - migrate2utf8_block_instance_configdata(RECORDID) + migrate2utf8_block_pinned_configdata(RECORDID) </PHP_FUNCTION> </FIELD> </FIELDS>