Backend\Modules\Search\Installer\Installer::install PHP Метод

install() публичный Метод

Install the module
public install ( )
    public function install()
    {
        // load install.sql
        $this->importSQL(__DIR__ . '/Data/install.sql');
        // add 'search' as a module
        $this->addModule('Search');
        // import locale
        $this->importLocale(__DIR__ . '/Data/locale.xml');
        // general settings
        $this->setSetting('Search', 'overview_num_items', 10);
        $this->setSetting('Search', 'validate_search', true);
        // module rights
        $this->setModuleRights(1, 'Search');
        // action rights
        $this->setActionRights(1, 'Search', 'AddSynonym');
        $this->setActionRights(1, 'Search', 'EditSynonym');
        $this->setActionRights(1, 'Search', 'DeleteSynonym');
        $this->setActionRights(1, 'Search', 'Settings');
        $this->setActionRights(1, 'Search', 'Statistics');
        $this->setActionRights(1, 'Search', 'Synonyms');
        // set navigation
        $navigationModulesId = $this->setNavigation(null, 'Modules');
        $navigationSearchId = $this->setNavigation($navigationModulesId, 'Search');
        $this->setNavigation($navigationSearchId, 'Statistics', 'search/statistics');
        $this->setNavigation($navigationSearchId, 'Synonyms', 'search/synonyms', array('search/add_synonym', 'search/edit_synonym'));
        // settings navigation
        $navigationSettingsId = $this->setNavigation(null, 'Settings');
        $navigationModulesId = $this->setNavigation($navigationSettingsId, 'Modules');
        $this->setNavigation($navigationModulesId, 'Search', 'search/settings');
        // add extra's
        $searchId = $this->insertExtra('Search', ModuleExtraType::block(), 'Search', null, null, 'N', 2000);
        $this->insertExtra('Search', ModuleExtraType::widget(), 'SearchForm', 'Form', null, 'N', 2001);
        // loop languages
        foreach ($this->getLanguages() as $language) {
            // check if a page for search already exists in this language
            // @todo refactor this nasty if statement...
            if (!(bool) $this->getDB()->getVar('SELECT 1
                 FROM pages AS p
                 INNER JOIN pages_blocks AS b ON b.revision_id = p.revision_id
                 WHERE b.extra_id = ? AND p.language = ?
                 LIMIT 1', array($searchId, $language))) {
                // insert search
                $this->insertPage(array('title' => \SpoonFilter::ucfirst($this->getLocale('Search', 'Core', $language, 'lbl', 'Frontend')), 'type' => 'root', 'language' => $language), null, array('extra_id' => $searchId, 'position' => 'main'));
            }
        }
        // activate search on 'pages'
        $this->searchPages();
        // create module cache path
        $filesystem = new Filesystem();
        if (!$filesystem->exists(PATH_WWW . '/src/Frontend/Cache/Search')) {
            $filesystem->mkdir(PATH_WWW . '/src/Frontend/Cache/Search');
        }
    }