Index: upgrade.php =================================================================== RCS file: /cvsroot/moodle/moodle/lib/db/upgrade.php,v retrieving revision 1.418 diff -u -r1.418 upgrade.php --- upgrade.php 25 May 2010 18:25:50 -0000 1.418 +++ upgrade.php 26 May 2010 18:22:15 -0000 @@ -1962,22 +1962,25 @@ ); $stickyblocks = $DB->get_recordset('block_pinned_old'); foreach ($stickyblocks as $stickyblock) { - $newblock = new object(); - $newblock->blockname = $blocks[$stickyblock->blockid]->name; - $newblock->contextid = $syscontext->id; - $newblock->showinsubcontexts = 1; - switch ($stickyblock->pagetype) { - case 'course-view': - $newblock->pagetypepattern = 'course-view-*'; - break; - default: - $newblock->pagetypepattern = $stickyblock->pagetype; - } - $newblock->defaultregion = $newregions[$stickyblock->position]; - $newblock->defaultweight = $stickyblock->weight; - $newblock->configdata = $stickyblock->configdata; - $newblock->visible = 1; - $DB->insert_record('block_instances', $newblock); + // Only if the block exists (avoid orphaned sticky blocks) + if (isset($blocks[$stickyblock->blockid]) and !empty($blocks[$stickyblock->blockid]->name)) { + $newblock = new object(); + $newblock->blockname = $blocks[$stickyblock->blockid]->name; + $newblock->contextid = $syscontext->id; + $newblock->showinsubcontexts = 1; + switch ($stickyblock->pagetype) { + case 'course-view': + $newblock->pagetypepattern = 'course-view-*'; + break; + default: + $newblock->pagetypepattern = $stickyblock->pagetype; + } + $newblock->defaultregion = $newregions[$stickyblock->position]; + $newblock->defaultweight = $stickyblock->weight; + $newblock->configdata = $stickyblock->configdata; + $newblock->visible = 1; + $DB->insert_record('block_instances', $newblock); + } } /// Main savepoint reached