function updateBlockByInfo(&$info, &$module, &$log)
 {
     $handler =& xoops_getmodulehandler('newblocks', 'legacy');
     $criteria = new CriteriaCompo();
     $criteria->add(new Criteria('dirname', $module->get('dirname')));
     $criteria->add(new Criteria('func_num', $info->mFuncNum));
     $blockArr =& $handler->getObjects($criteria);
     foreach (array_keys($blockArr) as $idx) {
         $blockArr[$idx]->set('options', $info->mOptions);
         $blockArr[$idx]->set('name', $info->mName);
         $blockArr[$idx]->set('func_file', $info->mFuncFile);
         $blockArr[$idx]->set('show_func', $info->mShowFunc);
         $blockArr[$idx]->set('edit_func', $info->mEditFunc);
         $blockArr[$idx]->set('template', $info->mTemplate);
         if ($handler->insert($blockArr[$idx])) {
             $log->addReport(XCube_Utils::formatMessage('Update {0} block successfully.', $blockArr[$idx]->get('name')));
         } else {
             $log->addError(XCube_Utils::formatMessage('Could not update {0} block.', $blockArr[$idx]->get('name')));
         }
         Legacy_ModuleInstallUtils::clearBlockTemplateForUpdate($blockArr[$idx], $module, $log);
         Legacy_ModuleInstallUtils::installBlockTemplate($blockArr[$idx], $module, $log);
     }
 }