Exemplo n.º 1
0
 /**
  * Installs all of blocks $module specify.
  * 
  * This function gets informations about blocks from xoops_version.
  * 
  * @static
  * @param XoopsModule $module
  * @param Legacy_ModuleInstallLog $log
  * @note FOR THE CUSTOM-INSTALLER
  * @see Legacy_ModuleInstallUtils::uninstallAllOfBlocks()
  */
 function installAllOfBlocks(&$module, &$log)
 {
     $definedBlocks = $module->getInfo('blocks');
     if ($definedBlocks == false) {
         return true;
     }
     $func_num = 0;
     foreach ($definedBlocks as $block) {
         $successFlag = true;
         $updateblocks = array();
         // Try (1) --- func_num
         foreach ($definedBlocks as $idx => $block) {
             if (isset($block['func_num'])) {
                 $updateblocks[$idx] = $block;
             } else {
                 $successFlag = false;
                 break;
             }
         }
         // Try (2) --- index pattern
         if ($successFlag == false) {
             $successFlag = true;
             $updateblocks = array();
             foreach ($definedBlocks as $idx => $block) {
                 if (is_int($idx)) {
                     $block['func_num'] = $idx;
                     $updateblocks[$idx] = $block;
                 } else {
                     $successFlag = false;
                     break;
                 }
             }
         }
         // Try (3) --- automatic
         if ($successFlag == false) {
             $successFlag = true;
             $updateblocks = array();
             $func_num = 0;
             foreach ($definedBlocks as $block) {
                 $block['func_num'] = $func_num;
                 $updateblocks[] = $block;
             }
         }
     }
     foreach ($updateblocks as $block) {
         $newBlock =& Legacy_ModuleInstallUtils::createBlockByInfo($module, $block, $block['func_num']);
         Legacy_ModuleInstallUtils::installBlock($module, $newBlock, $block, $log);
     }
 }