prefix('modules')." WHERE dirname='".$modversion['dirname']."' "; $result = $xoopsDB->query($query); $record= $xoopsDB->fetcharray($result); if ($record) { $mid = $record['mid']; $count = count($modversion['blocks']); /* $sql = "SELECT * FROM ".$xoopsDB->prefix('newblocks')." WHERE mid=".$mid." AND block_type ='D'"; $fresult = $xoopsDB->query($sql); $n_funcnum = $count; while ($fblock = $xoopsDB->fetchArray($fresult)) { $bnum = 0; for ($i = 1 ; $i <= $count ; $i++) { if (($modversion['blocks'][$i]['file'] == $fblock['func_file']) and ($modversion['blocks'][$i]['show_func'] == $fblock['show_func'])) { $bnum = $i; break; } } if($bnum) { $n_funcnum++; $modversion['blocks'][$n_funcnum]['file'] = $fblock['func_file']; $modversion['blocks'][$n_funcnum]['name'] = $fblock['name']; $modversion['blocks'][$n_funcnum]['description'] = $fblock['name']; $modversion['blocks'][$n_funcnum]['show_func'] = $fblock['show_func']; $modversion['blocks'][$n_funcnum]['edit_func'] = $fblock['edit_func']; $modversion['blocks'][$n_funcnum]['template'] = $fblock['template']; if ($fblock['options']) { $old_vals=explode("|",$fblock['options']); $def_vals=explode("|",$modversion['blocks'][$bnum]['options']); if (count($old_vals) == count($def_vals)) { // the number of parameters is not changed $modversion['blocks'][$n_funcnum]['options'] = $fblock['options']; $local_msgs[] = "Option's values of the cloned block ".$fblock['name']." will be kept. (value = ".$fblock['options'].")"; } else if (count($old_vals) < count($def_vals)){ // the number of parameters is increased for ($j=0; $j < count($old_vals); $j++) { $def_vals[$j] = $old_vals[$j]; } $modversion['blocks'][$n_funcnum]['options'] = implode("|",$def_vals); $local_msgs[] = "Option's values of the cloned block ".$fblock['name']." will be kept and new options are added. (value = ".$modversion['blocks'][$fblock['func_num']]['options'].")"; } else { $modversion['blocks'][$n_funcnum]['options'] = implode("|",$def_vals); $local_msgs[] = "Option's values of the cloned block ".$fblock['name']." will be reset to the default, because of some decrease of options. (value = ".$modversion['blocks'][$n_funcnum]['options'].")"; } } $sql = "UPDATE ".$xoopsDB->prefix('newblocks')." SET func_num='$n_funcnum' WHERE mid=".$mid." AND bid='".$fblock['bid']."'"; $iret = $xoopsDB->query($sql); } } */ $sql = "SELECT * FROM ".$xoopsDB->prefix('newblocks')." WHERE mid=".$mid." AND block_type <>'D' AND func_num > $count"; $fresult = $xoopsDB->query($sql); while ($fblock = $xoopsDB->fetchArray($fresult)) { $local_msgs[] = "Non Defined Block ".$fblock['name']." will be deleted"; $sql = "DELETE FROM ".$xoopsDB->prefix('newblocks')." WHERE bid='".$fblock['bid']."'"; $iret = $xoopsDB->query($sql); } for ($i = 1 ; $i <= $count ; $i++) { $sql = "SELECT name,options FROM ".$xoopsDB->prefix('newblocks')." WHERE mid=".$mid." AND func_num=".$i." AND show_func='".addslashes($modversion['blocks'][$i]['show_func'])."' AND func_file='".addslashes($modversion['blocks'][$i]['file'])."'"; $fresult = $xoopsDB->query($sql); $fblock = $xoopsDB->fetchArray($fresult); if ( isset( $fblock['options'] ) ) { $old_vals=explode("|",$fblock['options']); $def_vals=explode("|",$modversion['blocks'][$i]['options']); if (count($old_vals) == count($def_vals)) { $modversion['blocks'][$i]['options'] = $fblock['options']; $local_msgs[] = "Option's values of the block ".$fblock['name']." will be kept. (value = ".$fblock['options'].")"; } else if (count($old_vals) < count($def_vals)){ for ($j=0; $j < count($old_vals); $j++) { $def_vals[$j] = $old_vals[$j]; } $modversion['blocks'][$i]['options'] = implode("|",$def_vals); $local_msgs[] = "Option's values of the block ".$fblock['name']." will be kept and new option(s) are added. (value = ".$modversion['blocks'][$i]['options'].")"; } else { $local_msgs[] = "Option's values of the block ".$fblock['name']." will be reset to the default, because of some decrease of options. (value = ".$modversion['blocks'][$i]['options'].")"; } } } } global $msgs , $myblocksadmin_parsed_updateblock ; if( ! empty( $msgs ) && empty( $myblocksadmin_parsed_updateblock ) ) { $msgs = array_merge( $msgs , $local_msgs ) ; $myblocksadmin_parsed_updateblock = true ; } } ?>