public function checkTemplateBlocks()
    {
        $sModulePath = $this->getModulePath();
        $aDatabaseBlocks = $this->getModuleBlocks();
        $aDatabaseBlocks = is_array($aDatabaseBlocks) ? $aDatabaseBlocks : [];
        $aMetadataTemplates = $this->getInfo('templates');

        $config = Registry::getConfig();
        $sModulesDir = $config->getModulesDir();

        // Check if all blocks are injected.
        foreach ($aDatabaseBlocks as &$aBlock) {
            $iState = self::OK;


            $file = $aBlock['file'];
            if (!$this->checkFileExists( $sModulePath . '/' . $file) &&
                !$this->checkFileExists( $sModulePath . '/out/blocks/' . basename($file)) &&
                !$this->checkFileExists( $sModulePath . '/out/blocks/' . basename($file) . '.tpl')
            ) {
                $iState = self::MODULE_FILE_NOT_FOUND;
                $this->state |= self::NEED_MANUAL_FIXED;
            }

            $block = $aBlock['block'];
            $template = $aBlock['template'];
            $aBlock['state'] = $iState;

            // Check if template file exists and block is defined.

            // Get template from shop..
            $sTemplate = $config->getTemplatePath($template, false);

            // Get template from shop admin ..
            if (!$sTemplate) {
                $sTemplate = $config->getTemplatePath($template, true);
            }

            // Get template from module ..
            if (!$sTemplate && isset($aMetadataTemplates[$template])) {

                if ($this->checkFileExists($aMetadataTemplates[$template])) {
                    $sTemplate = $sModulesDir . '/' . $aMetadataTemplates[$template];
                }
            }

            if (empty($sTemplate)) {
                $aBlock['t_state'] = self::SHOP_FILE_NOT_FOUND;
                $this->state |= self::MAY_NEED_MANUAL_FIX;
            } else {
                $aBlock['t_state'] = self::OK;
                $aBlock['b_state'] = self::OK;
                $sContent = file_get_contents($sTemplate);
                if (!preg_match('/\[{\s*block[^}]+?name\s*=\s*["\']' . $block . '[\'"].*?}\]/', $sContent)) {
                    $aBlock['b_state'] = self::SHOP_FILE_NOT_FOUND;
                    $this->state |= self::MAY_NEED_MANUAL_FIX;
                }
            }

        }

        return $aDatabaseBlocks;
    }
public function checkTemplateBlocks()
    {
        $sModulePath = $this->getModulePath();
        $aDatabaseBlocks = $this->getModuleBlocks();
        $aDatabaseBlocks = is_array($aDatabaseBlocks) ? $aDatabaseBlocks : [];
        $aMetadataTemplates = $this->getInfo('templates');

        $config = Registry::getConfig();
        $sModulesDir = $config->getModulesDir();

        // Check if all blocks are injected.
        foreach ($aDatabaseBlocks as &$aBlock) {
            $iState = self::OK;


            $file = $aBlock['file'];
            if (!$this->checkFileExists( $sModulePath . '/' . $file) &&
                !$this->checkFileExists( $sModulePath . '/out/blocks/' . basename($file)) &&
                !$this->checkFileExists( $sModulePath . '/out/blocks/' . basename($file) . '.tpl')
            ) {
                $iState = self::MODULE_FILE_NOT_FOUND;
                $this->state |= self::NEED_MANUAL_FIXED;
            }

            $block = $aBlock['block'];
            $template = $aBlock['template'];
            $aBlock['state'] = $iState;

            // Check if template file exists and block is defined.

            // Get template from shop..
            $sTemplate = $config->getTemplatePath($template, false);

            // Get template from shop admin ..
            if (!$sTemplate) {
                $sTemplate = $config->getTemplatePath($template, true);
            }

            // Get template from module ..
            if (!$sTemplate && isset($aMetadataTemplates[$template])) {

                if ($this->checkFileExists($aMetadataTemplates[$template])) {
                    $sTemplate = $sModulesDir . '/' . $aMetadataTemplates[$template];
                }
            }

            if (empty($sTemplate)) {
                $aBlock['t_state'] = self::SHOP_FILE_NOT_FOUND;
                $this->state |= self::MAY_NEED_MANUAL_FIX;
            } else {
                $aBlock['t_state'] = self::OK;
                $aBlock['b_state'] = self::OK;
                $sContent = file_get_contents($sTemplate);
                if (!preg_match('/\[{\s*block[^}]+?name\s*=\s*["\']' . $block . '[\'"].*?}\]/', $sContent)) {
                    $aBlock['b_state'] = self::SHOP_FILE_NOT_FOUND;
                    $this->state |= self::MAY_NEED_MANUAL_FIX;
                }
            }

        }

        return $aDatabaseBlocks;
    }
public function checkTemplateBlocks ( ) { $ sModulePath = $ this -> getModulePath ( ) ; $ aDatabaseBlocks = $ this -> getModuleBlocks ( ) ; $ aDatabaseBlocks = is_array ( $ aDatabaseBlocks ) ? $ aDatabaseBlocks : [ ] ; $ aMetadataTemplates = $ this -> getInfo ( 'templates' ) ; $ config = Registry :: getConfig ( ) ; $ sModulesDir = $ config -> getModulesDir ( ) ; // Check if all blocks are injected. foreach ( $ aDatabaseBlocks as & $ aBlock ) { $ iState = self :: OK ; $ file = $ aBlock [ 'file' ] ; if ( ! $ this -> checkFileExists ( $ sModulePath . '/' . $ file ) && ! $ this -> checkFileExists ( $ sModulePath . '/out/blocks/' . basename ( $ file ) ) && ! $ this -> checkFileExists ( $ sModulePath . '/out/blocks/' . basename ( $ file ) . '.tpl' ) ) { $ iState = self :: MODULE_FILE_NOT_FOUND ; $ this -> state |= self :: NEED_MANUAL_FIXED ; } $ block = $ aBlock [ 'block' ] ; $ template = $ aBlock [ 'template' ] ; $ aBlock [ 'state' ] = $ iState ; // Check if template file exists and block is defined. // Get template from shop.. $ sTemplate = $ config -> getTemplatePath ( $ template , false ) ; // Get template from shop admin .. if ( ! $ sTemplate ) { $ sTemplate = $ config -> getTemplatePath ( $ template , true ) ; } // Get template from module .. if ( ! $ sTemplate && isset ( $ aMetadataTemplates [ $ template ] ) ) { if ( $ this -> checkFileExists ( $ aMetadataTemplates [ $ template ] ) ) { $ sTemplate = $ sModulesDir . '/' . $ aMetadataTemplates [ $ template ] ; } } if ( empty ( $ sTemplate ) ) { $ aBlock [ 't_state' ] = self :: SHOP_FILE_NOT_FOUND ; $ this -> state |= self :: MAY_NEED_MANUAL_FIX ; } else { $ aBlock [ 't_state' ] = self :: OK ; $ aBlock [ 'b_state' ] = self :: OK ; $ sContent = file_get_contents ( $ sTemplate ) ; if ( ! preg_match ( '/\[{\s*block[^}]+?name\s*=\s*["\']' . $ block . '[\'"].*?}\]/' , $ sContent ) ) { $ aBlock [ 'b_state' ] = self :: SHOP_FILE_NOT_FOUND ; $ this -> state |= self :: MAY_NEED_MANUAL_FIX ; } } } return $ aDatabaseBlocks ; }
Analyze template block information in metadata and database.

@return array
Analyze template block information in metadata and database .