private static function _processFileBlocks()
 {
     self::$_fileBlocks = [];
     self::$_fileGlobalBlocks = [];
     $blockCounter = [];
     $templateCount = 0;
     foreach (self::$_fileTemplateBlocks as $template => $blocks) {
         if (strpos($template, '__core_') !== 0) {
             $templateCount++;
         } else {
             // move non template specific blocks (repeater blocks) to end of array
             unset(self::$_fileTemplateBlocks[$template]);
             self::$_fileTemplateBlocks[$template] = $blocks;
         }
     }
     $blockOrders = [];
     foreach (self::$_allBlocks as $block => $details) {
         $blockOrders[$block] = $details->order;
     }
     // force template adds from overwrite file
     if (!empty(self::$_blockSettings)) {
         foreach (self::$_blockSettings as $block => $fields) {
             if (!empty($fields['templates'])) {
                 if ($fields['templates'] == '*') {
                     foreach (self::$_fileTemplateBlocks as $template => $blocks) {
                         if (!in_array($block, self::$_fileTemplateBlocks[$template]) && strpos($template, '__core_') !== 0) {
                             self::$_fileTemplateBlocks[$template][] = $block;
                             PageBuilder::setData('template', $template);
                             PageBuilder::block($block);
                         }
                     }
                 } else {
                     $templates = explode(',', $fields['templates']);
                     if (!empty($templates)) {
                         foreach ($templates as $template) {
                             if (isset(self::$_fileTemplateBlocks[$template])) {
                                 if (!in_array($block, self::$_fileTemplateBlocks[$template])) {
                                     self::$_fileTemplateBlocks[$template][] = $block;
                                     PageBuilder::setData('template', $template);
                                     PageBuilder::block($block);
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     // create fileBlockTemplates array
     self::$_fileBlockTemplates = [];
     self::$_fileCoreBlockTemplates = [];
     foreach (self::$_fileTemplateBlocks as $template => $blocks) {
         if (strpos($template, '__core_') !== 0) {
             foreach ($blocks as $block) {
                 if (!isset(self::$_fileBlockTemplates[$block])) {
                     self::$_fileBlockTemplates[$block] = [];
                 }
                 self::$_fileBlockTemplates[$block][] = $template;
             }
         }
         foreach ($blocks as $block) {
             if (!isset(self::$_fileCoreBlockTemplates[$block])) {
                 self::$_fileCoreBlockTemplates[$block] = [];
             }
             self::$_fileCoreBlockTemplates[$block][] = $template;
         }
     }
     // get full block list and details in one array
     foreach (self::$_fileTemplateBlocks as $template => $blocks) {
         $order = 10;
         foreach ($blocks as $k => $block) {
             if (!isset(self::$_fileBlocks[$block])) {
                 if (!empty(self::$_blockSettings[$block]['order'])) {
                     $blockOrders[$block] = self::$_blockSettings[$block]['order'];
                 } else {
                     if (isset($blocks[$k - 1]) && !empty($blockOrders[$blocks[$k - 1]])) {
                         $order = $blockOrders[$blocks[$k - 1]] + 10;
                     } else {
                         $order += 10;
                     }
                     $blockOrders[$block] = $order;
                 }
                 $blockCounter[$block] = 0;
                 self::$_fileBlocks[$block] = ['order' => $blockOrders[$block]];
                 self::$_fileBlocks[$block] = ['order' => $blockOrders[$block]];
                 if (in_array($block, self::$_repeaterBlocks)) {
                     self::$_fileBlocks[$block]['type'] = 'repeater';
                 }
             }
             if (strpos($template, '__core_') !== 0) {
                 $blockCounter[$block]++;
             }
         }
     }
     foreach ($blockCounter as $block => $count) {
         if ($count / $templateCount >= 0.7) {
             self::$_fileGlobalBlocks[$block] = 1;
         }
     }
 }