From 17380bd29b6b03911b1f0cbc7d30c8bec79f65fb Mon Sep 17 00:00:00 2001 From: Daniel Seifert Date: Thu, 20 Aug 2020 10:19:31 +0200 Subject: [PATCH] add 6.5.2.1 (ionCube for PHP 7.1 - 7.4) --- src/metadata.php | 588 +++++++------- src/setup/d3_extsearch_update.php | 1194 ++++++++++++++--------------- 2 files changed, 891 insertions(+), 891 deletions(-) diff --git a/src/metadata.php b/src/metadata.php index 413aa13..870ec26 100644 --- a/src/metadata.php +++ b/src/metadata.php @@ -1,294 +1,294 @@ - - * @link http://www.oxidmodule.com - */ - -use D3\ModCfg\Application\Model\d3utils; -use OxidEsales\VisualCmsModule\Application\Controller\Admin\VisualCmsAdmin as VisualCMSAdmin; -use OxidEsales\Eshop\Application\Controller as OxidController; -use OxidEsales\Eshop\Application\Model as OxidModel; -use OxidEsales\Eshop\Application\Component as OxidComponent; -use OxidEsales\Eshop\Core as OxidCore; - -/** - * Metadata version - */ -$sMetadataVersion = '2.0'; - -$sModuleId = 'd3_extsearch'; -/** - * Module information - */ -$aModule = array( - 'id' => $sModuleId, - 'title' => - '(D3) '. - 'Erweiterte Suche / Extended Search', - 'description' => array( - 'de' => 'Stellt fehlertolerante Suche und weitere Filtermöglichkeiten zur Verfügung.
Aktivieren Sie die Moduleinträge bitte immer und steuern Sie die Modulaktivität ausschließlich im Adminbereich des Moduls.', - 'en' => '', - ), - 'thumbnail' => 'picture.png', - 'version' => '6.5.2.0', - 'author' => 'D³ Data Development (Inh.: Thomas Dartsch)', - 'email' => 'support@shopmodule.com', - 'url' => 'http://www.oxidmodule.com/', - 'extend' => array( - OxidController\Admin\ArticleList::class => \D3\Extsearch\Modules\Application\Controller\Admin\d3_article_list_extsearch::class, - OxidController\ArticleDetailsController::class => \D3\Extsearch\Modules\Application\Controller\d3_details_extsearch::class, - OxidCore\Model\BaseModel::class => \D3\Extsearch\Modules\Application\Model\d3_basemodel_extsearch::class, - OxidModel\Article::class => \D3\Extsearch\Modules\Application\Model\d3_oxarticle_phonetic::class, - OxidModel\ArticleList::class => \D3\Extsearch\Modules\Application\Model\d3_oxarticlelist_extsearch::class, - OxidComponent\BasketComponent::class => \D3\Extsearch\Modules\Application\Component\d3_oxcmp_basket_extsearch::class, - OxidComponent\UtilsComponent::class => \D3\Extsearch\Modules\Application\Component\d3_oxcmp_utils_extsearch::class, - OxidComponent\Widget\ArticleDetails::class => \D3\Extsearch\Modules\Application\Component\d3_oxwarticledetails_extsearch::class, - OxidComponent\Widget\ArticleBox::class => \D3\Extsearch\Modules\Application\Component\d3_oxwarticlebox_extsearch::class, - OxidComponent\Locator::class => \D3\Extsearch\Modules\Application\Controller\d3_oxlocator_extsearch::class, - OxidController\ArticleListController::class => \D3\Extsearch\Modules\Application\Controller\d3_alist_extsearch::class, - OxidController\ManufacturerListController::class => \D3\Extsearch\Modules\Application\Controller\d3_manufacturerlist_extsearch::class, - OxidController\VendorListController::class => \D3\Extsearch\Modules\Application\Controller\d3_vendorlist_extsearch::class, - OxidController\RssController::class => \D3\Extsearch\Modules\Application\Controller\d3_rss_extsearch::class, - OxidModel\RssFeed::class => \D3\Extsearch\Modules\Application\Model\d3_oxrssfeed_extsearch::class, - OxidModel\Search::class => \D3\Extsearch\Modules\Application\Model\d3_oxsearch_extsearch::class, - OxidController\SearchController::class => \D3\Extsearch\Modules\Application\Controller\d3_ext_search::class, - OxidCore\UtilsView::class => \D3\Extsearch\Modules\Core\d3_oxutilsview_extsearch::class, - ), - 'controllers' => array( - 'd3_cfg_extsearch' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch::class, - 'd3_cfg_extsearch_list' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch_list::class, - 'd3_cfg_extsearch_main' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch_main::class, - 'd3_cfg_extsearch_navigation' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch_navigation::class, - 'd3_cfg_extsearch_quicksearch' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch_quicksearch::class, - 'd3_cfg_extsearch_plugins' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch_plugins::class, - 'd3_cfg_extsearch_licence' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch_licence::class, - - 'd3_cfg_extsearchstat' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchstat::class, - 'd3_cfg_extsearchstat_list' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchstat_list::class, - 'd3_cfg_extsearch_statistik' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch_statistik::class, - - 'd3_cfg_extsearchsyneditor' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchsyneditor::class, - 'd3_cfg_extsearchsyneditor_list' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchsyneditor_list::class, - 'd3_cfg_extsearchsyneditor_main' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchsyneditor_main::class, - 'd3_cfg_extsearchsyneditor_manage' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchsyneditor_manage::class, - - 'd3_cfg_extsearchlog' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchlog::class, - 'd3_cfg_extsearchlog_list' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchlog_list::class, - - 'd3_attribute_extsearch' => \D3\Extsearch\Application\Controller\Admin\d3_attribute_extsearch::class, - 'd3_attribute2category_extsearch_ajax' => \D3\Extsearch\Application\Controller\Admin\Popups\d3_attribute2category_extsearch_ajax::class, - 'd3_attribute2manufacturer_extsearch_ajax' => \D3\Extsearch\Application\Controller\Admin\Popups\d3_attribute2manufacturer_extsearch_ajax::class, - 'd3_attribute2vendor_extsearch_ajax' => \D3\Extsearch\Application\Controller\Admin\Popups\d3_attribute2vendor_extsearch_ajax::class, - 'd3_category_extsearch' => \D3\Extsearch\Application\Controller\Admin\d3_category_extsearch::class, - - 'd3_extsearch_response' => \D3\Extsearch\Application\Controller\d3_extsearch_response::class, - ), - 'templates' => array( - 'd3_cfg_extsearch_main.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearch_main.tpl', - 'd3_cfg_extsearch_main_sortanalysis.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearch_main_sortanalysis.tpl', - 'd3_cfg_extsearch_navigation.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearch_navigation.tpl', - 'd3_cfg_extsearch_plugins.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearch_plugins.tpl', - 'd3_cfg_extsearch_quicksearch.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearch_quicksearch.tpl', - 'd3_cfg_extsearch_statistik.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearch_statistik.tpl', - 'd3_cfg_extsearchsyneditor_list.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearchsyneditor_list.tpl', - 'd3_cfg_extsearchsyneditor_main.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearchsyneditor_main.tpl', - 'd3_cfg_extsearchsyneditor_manage.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearchsyneditor_manage.tpl', - 'd3_extsearch_report_hitless.tpl' => 'd3/extsearch/Application/views/admin/tpl/reports/d3_extsearch_report_hitless.tpl', - 'd3_extsearch_report_mostsearches.tpl' => 'd3/extsearch/Application/views/admin/tpl/reports/d3_extsearch_report_mostsearches.tpl', - 'd3_extsearch_plugin.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_extsearch_plugin.tpl', - 'd3_extsearch_popup.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_extsearch_popup.tpl', - - 'd3_attribute_extsearch.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_attribute_extsearch.tpl', - 'd3_attribute_extsearch_ajax.tpl' => 'd3/extsearch/Application/views/admin/tpl/popups/d3_attribute_extsearch_ajax.tpl', - 'd3_category_extsearch.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_category_extsearch.tpl', - - 'd3_ext_search_suggestsearch.tpl' => 'd3/extsearch/Application/views/tpl/d3_ext_search_suggestsearch.tpl', - - 'd3_ext_search_highlight.tpl' => 'd3/extsearch/Application/views/tpl/d3_ext_search_highlight.tpl', - - 'd3_ext_search_filter.tpl' => 'd3/extsearch/Application/views/tpl/d3_ext_search_filter.tpl', - 'd3_inc_ext_search_azure.tpl' => 'd3/extsearch/Application/views/tpl/azure/d3_inc_ext_search.tpl', - 'd3_list_filters_azure.tpl' => 'd3/extsearch/Application/views/tpl/azure/d3extsearch_alist_filters.tpl', - 'd3_search_contents_flow.tpl' => 'd3/extsearch/Application/views/tpl/flow/d3_search_contents.tpl', - 'd3_search_filters_flow.tpl' => 'd3/extsearch/Application/views/tpl/flow/d3_search_filters.tpl', - 'd3_list_filters_flow.tpl' => 'd3/extsearch/Application/views/tpl/flow/d3_list_filters.tpl', - 'd3_search_contents_wave.tpl' => 'd3/extsearch/Application/views/tpl/flow/d3_search_contents.tpl', - 'd3_search_filters_wave.tpl' => 'd3/extsearch/Application/views/tpl/flow/d3_search_filters.tpl', - 'd3_list_filters_wave.tpl' => 'd3/extsearch/Application/views/tpl/flow/d3_list_filters.tpl', - 'd3_inc_ext_search_mobile.tpl' => 'd3/extsearch/Application/views/tpl/mobile/d3_inc_ext_search.tpl', - 'd3_list_filters_mobile.tpl' => 'd3/extsearch/Application/views/tpl/mobile/d3extsearch_alist_filters.tpl', - - 'd3_ext_search_filter_category.tpl' => 'd3/extsearch/Application/views/tpl/filterelements/category.tpl', - 'd3_ext_search_filter_vendor.tpl' => 'd3/extsearch/Application/views/tpl/filterelements/vendor.tpl', - 'd3_ext_search_filter_manufacturer.tpl' => 'd3/extsearch/Application/views/tpl/filterelements/manufacturer.tpl', - 'd3_ext_search_filter_attribute.tpl' => 'd3/extsearch/Application/views/tpl/filterelements/attribute.tpl', - 'd3_ext_search_filter_priceselector.tpl' => 'd3/extsearch/Application/views/tpl/filterelements/priceselector.tpl', - 'd3_ext_search_filter_jqslider.tpl' => 'd3/extsearch/Application/views/tpl/filterelements/jqslider.tpl', - - 'd3_ext_search_filter_inc_multibuttons.tpl' => 'd3/extsearch/Application/views/tpl/filterelements/inc/multibuttons.tpl', - - 'd3_ddeovisualcmsadmin_extsearch.tpl' => 'd3/extsearch/Application/views/tpl/d3_ddoevisualcmsadmin_extsearch.tpl', - 'd3_togglegroup_extsearch.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_togglegroup_extsearch.tpl', - ), - 'events' => [ - 'onActivate' => '\D3\Extsearch\setup\Events::onActivate', - 'onDeactivate' => '\D3\Extsearch\setup\Events::onDeactivate', - ], - 'settings' => array( - array( - 'group' => 'd3thememapping_module', - 'name' => 'd3custParentThemeMappedToWave_'.$sModuleId, - 'type' => 'str', - 'value' => '' - ), - array( - 'group' => 'd3thememapping_module', - 'name' => 'd3custParentThemeMappedToFlow_'.$sModuleId, - 'type' => 'str', - 'value' => '' - ), - array( - 'group' => 'd3thememapping_module', - 'name' => 'd3custParentThemeMappedToMobile_'.$sModuleId, - 'type' => 'str', - 'value' => '' - ), - array( - 'group' => 'd3thememapping_module', - 'name' => 'd3custParentThemeMappedToAzure_'.$sModuleId, - 'type' => 'str', - 'value' => '' - ), - ), - 'blocks' => array( - array( - 'template' => 'page/search/search.tpl', - 'block' => 'search_results', - 'file' => 'Application/views/blocks/page/search/d3_inc_ext_search.tpl', - 'position' => 1, - ), - array( - 'template' => 'layout/base.tpl', - 'block' => 'head_css', - 'file' => 'Application/views/blocks/layout/d3_extsearch_css.tpl', - 'position' => 1, - ), - array( - 'template' => 'layout/base.tpl', - 'block' => 'base_js', - 'file' => 'Application/views/blocks/layout/d3_extsearch_js.tpl', - 'position' => 1, - ), - array( - 'template' => 'widget/header/search.tpl', - 'block' => 'widget_header_search_form', - 'file' => 'Application/views/blocks/widget/header/d3_extsearch_headersearch.tpl', - 'position' => 1, - ), - array( - 'template' => 'widget/header/search.tpl', - 'block' => 'header_search_field', - 'file' => 'Application/views/blocks/widget/header/d3_extsearch_searchfield.tpl', - 'position' => 1, - ), - array( - 'template' => 'page/list/list.tpl', - 'block' => 'page_list_listbody', - 'file' => 'Application/views/blocks/page/list/d3extsearch_alist_noartfilters.tpl', - 'position' => 1, - ), - array( - 'template' => 'page/list/list.tpl', - 'block' => 'page_list_listhead', - 'file' => 'Application/views/blocks/page/list/d3extsearch_alist_filters.tpl', - 'position' => 1, - ), - array( - 'template' => 'widget/locator/attributes.tpl', - 'block' => 'widget_locator_attributes', - 'file' => 'Application/views/blocks/widget/locator/d3_list_disabledefaultfilters.tpl', - 'position' => 1, - ), - array( - 'template' => 'widget/product/listitem_infogrid.tpl', - 'block' => 'widget_product_listitem_infogrid_titlebox', - 'file' => 'Application/views/blocks/widget/product/d3_extsearch_listiteminfogrid_title.tpl', - 'position' => 1, - ), - array( - 'template' => 'widget/product/listitem_grid.tpl', - 'block' => 'widget_product_listitem_grid', - 'file' => 'Application/views/blocks/widget/product/d3_extsearch_listitemgrid_title.tpl', - 'position' => 1, - ), - array( - 'template' => 'widget/product/listitem_grid.tpl', - 'block' => 'widget_product_listitem_infogrid_titlebox', - 'file' => 'Application/views/blocks/widget/product/d3_extsearch_listitemgrid_flowtitlebox.tpl', - 'position' => 1, - ), - array( - 'template' => 'widget/product/listitem_line.tpl', - 'block' => 'widget_product_listitem_line_titlebox', - 'file' => 'Application/views/blocks/widget/product/d3_extsearch_listitemline_flowtitlebox.tpl', - 'position' => 1, - ), - array( - 'template' => 'widget/product/listitem_line.tpl', - 'block' => 'widget_product_listitem_line_selections', - 'file' => 'Application/views/blocks/widget/product/d3_extsearch_listitemline_selections.tpl', - 'position' => 1, - ), - array( - 'template' => 'widget/product/listitem_line.tpl', - 'block' => 'widget_product_listitem_line_description', - 'file' => 'Application/views/blocks/widget/product/d3_extsearch_listitemline_description.tpl', - 'position' => 1, - ), - array( - 'template' => 'content_main.tpl', - 'block' => 'admin_content_main_form', - 'file' => 'Application/views/admin/blocks/d3_extsearch_content_main.tpl', - 'position' => 1, - ), - array( - 'template' => 'attribute_main.tpl', - 'block' => 'admin_attribute_main_form', - 'file' => 'Application/views/admin/blocks/d3_extsearch_attribute_main.tpl', - 'position' => 1, - ), - array( - 'template' => 'include/category_main_form.tpl', - 'block' => 'admin_category_main_form', - 'file' => 'Application/views/admin/blocks/d3_extsearch_category_main.tpl', - 'position' => 1, - ), - array( - 'template' => 'article_extend.tpl', - 'block' => 'admin_article_extend_form', - 'file' => 'Application/views/admin/blocks/d3_extsearch_article_extend.tpl', - 'position' => 1, - ), - ) -); - -if (class_exists(VisualCMSAdmin::class)) { - $aModule['extend'][VisualCmsAdmin::class] = \D3\Extsearch\Modules\Application\Controller\Admin\d3_ddoevisualcmsadmin_extsearch::class; -} - -if (class_exists(OeStatistics_Report_Base::class)) { - $aModule['controllers']['d3_extsearch_report_base'] = \D3\Extsearch\Application\Controller\Admin\Reports\d3_extsearch_report_base::class; - $aModule['controllers']['d3_extsearch_report_hitless'] = \D3\Extsearch\Application\Controller\Admin\Reports\d3_extsearch_report_hitless::class; - $aModule['controllers']['d3_extsearch_report_mostsearches'] = \D3\Extsearch\Application\Controller\Admin\Reports\d3_extsearch_report_mostsearches::class; -} + + * @link http://www.oxidmodule.com + */ + +use D3\ModCfg\Application\Model\d3utils; +use OxidEsales\VisualCmsModule\Application\Controller\Admin\VisualCmsAdmin as VisualCMSAdmin; +use OxidEsales\Eshop\Application\Controller as OxidController; +use OxidEsales\Eshop\Application\Model as OxidModel; +use OxidEsales\Eshop\Application\Component as OxidComponent; +use OxidEsales\Eshop\Core as OxidCore; + +/** + * Metadata version + */ +$sMetadataVersion = '2.1'; + +$sModuleId = 'd3_extsearch'; +/** + * Module information + */ +$aModule = array( + 'id' => $sModuleId, + 'title' => + '(D3) '. + 'Erweiterte Suche / Extended Search', + 'description' => array( + 'de' => 'Stellt fehlertolerante Suche und weitere Filtermöglichkeiten zur Verfügung.
Aktivieren Sie die Moduleinträge bitte immer und steuern Sie die Modulaktivität ausschließlich im Adminbereich des Moduls.', + 'en' => '', + ), + 'thumbnail' => 'picture.png', + 'version' => '6.5.2.1', + 'author' => 'D³ Data Development (Inh.: Thomas Dartsch)', + 'email' => 'support@shopmodule.com', + 'url' => 'http://www.oxidmodule.com/', + 'extend' => array( + OxidController\Admin\ArticleList::class => \D3\Extsearch\Modules\Application\Controller\Admin\d3_article_list_extsearch::class, + OxidController\ArticleDetailsController::class => \D3\Extsearch\Modules\Application\Controller\d3_details_extsearch::class, + OxidCore\Model\BaseModel::class => \D3\Extsearch\Modules\Application\Model\d3_basemodel_extsearch::class, + OxidModel\Article::class => \D3\Extsearch\Modules\Application\Model\d3_oxarticle_phonetic::class, + OxidModel\ArticleList::class => \D3\Extsearch\Modules\Application\Model\d3_oxarticlelist_extsearch::class, + OxidComponent\BasketComponent::class => \D3\Extsearch\Modules\Application\Component\d3_oxcmp_basket_extsearch::class, + OxidComponent\UtilsComponent::class => \D3\Extsearch\Modules\Application\Component\d3_oxcmp_utils_extsearch::class, + OxidComponent\Widget\ArticleDetails::class => \D3\Extsearch\Modules\Application\Component\d3_oxwarticledetails_extsearch::class, + OxidComponent\Widget\ArticleBox::class => \D3\Extsearch\Modules\Application\Component\d3_oxwarticlebox_extsearch::class, + OxidComponent\Locator::class => \D3\Extsearch\Modules\Application\Controller\d3_oxlocator_extsearch::class, + OxidController\ArticleListController::class => \D3\Extsearch\Modules\Application\Controller\d3_alist_extsearch::class, + OxidController\ManufacturerListController::class => \D3\Extsearch\Modules\Application\Controller\d3_manufacturerlist_extsearch::class, + OxidController\VendorListController::class => \D3\Extsearch\Modules\Application\Controller\d3_vendorlist_extsearch::class, + OxidController\RssController::class => \D3\Extsearch\Modules\Application\Controller\d3_rss_extsearch::class, + OxidModel\RssFeed::class => \D3\Extsearch\Modules\Application\Model\d3_oxrssfeed_extsearch::class, + OxidModel\Search::class => \D3\Extsearch\Modules\Application\Model\d3_oxsearch_extsearch::class, + OxidController\SearchController::class => \D3\Extsearch\Modules\Application\Controller\d3_ext_search::class, + OxidCore\UtilsView::class => \D3\Extsearch\Modules\Core\d3_oxutilsview_extsearch::class, + ), + 'controllers' => array( + 'd3_cfg_extsearch' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch::class, + 'd3_cfg_extsearch_list' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch_list::class, + 'd3_cfg_extsearch_main' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch_main::class, + 'd3_cfg_extsearch_navigation' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch_navigation::class, + 'd3_cfg_extsearch_quicksearch' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch_quicksearch::class, + 'd3_cfg_extsearch_plugins' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch_plugins::class, + 'd3_cfg_extsearch_licence' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch_licence::class, + + 'd3_cfg_extsearchstat' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchstat::class, + 'd3_cfg_extsearchstat_list' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchstat_list::class, + 'd3_cfg_extsearch_statistik' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch_statistik::class, + + 'd3_cfg_extsearchsyneditor' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchsyneditor::class, + 'd3_cfg_extsearchsyneditor_list' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchsyneditor_list::class, + 'd3_cfg_extsearchsyneditor_main' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchsyneditor_main::class, + 'd3_cfg_extsearchsyneditor_manage' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchsyneditor_manage::class, + + 'd3_cfg_extsearchlog' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchlog::class, + 'd3_cfg_extsearchlog_list' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchlog_list::class, + + 'd3_attribute_extsearch' => \D3\Extsearch\Application\Controller\Admin\d3_attribute_extsearch::class, + 'd3_attribute2category_extsearch_ajax' => \D3\Extsearch\Application\Controller\Admin\Popups\d3_attribute2category_extsearch_ajax::class, + 'd3_attribute2manufacturer_extsearch_ajax' => \D3\Extsearch\Application\Controller\Admin\Popups\d3_attribute2manufacturer_extsearch_ajax::class, + 'd3_attribute2vendor_extsearch_ajax' => \D3\Extsearch\Application\Controller\Admin\Popups\d3_attribute2vendor_extsearch_ajax::class, + 'd3_category_extsearch' => \D3\Extsearch\Application\Controller\Admin\d3_category_extsearch::class, + + 'd3_extsearch_response' => \D3\Extsearch\Application\Controller\d3_extsearch_response::class, + ), + 'templates' => array( + 'd3_cfg_extsearch_main.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearch_main.tpl', + 'd3_cfg_extsearch_main_sortanalysis.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearch_main_sortanalysis.tpl', + 'd3_cfg_extsearch_navigation.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearch_navigation.tpl', + 'd3_cfg_extsearch_plugins.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearch_plugins.tpl', + 'd3_cfg_extsearch_quicksearch.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearch_quicksearch.tpl', + 'd3_cfg_extsearch_statistik.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearch_statistik.tpl', + 'd3_cfg_extsearchsyneditor_list.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearchsyneditor_list.tpl', + 'd3_cfg_extsearchsyneditor_main.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearchsyneditor_main.tpl', + 'd3_cfg_extsearchsyneditor_manage.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearchsyneditor_manage.tpl', + 'd3_extsearch_report_hitless.tpl' => 'd3/extsearch/Application/views/admin/tpl/reports/d3_extsearch_report_hitless.tpl', + 'd3_extsearch_report_mostsearches.tpl' => 'd3/extsearch/Application/views/admin/tpl/reports/d3_extsearch_report_mostsearches.tpl', + 'd3_extsearch_plugin.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_extsearch_plugin.tpl', + 'd3_extsearch_popup.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_extsearch_popup.tpl', + + 'd3_attribute_extsearch.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_attribute_extsearch.tpl', + 'd3_attribute_extsearch_ajax.tpl' => 'd3/extsearch/Application/views/admin/tpl/popups/d3_attribute_extsearch_ajax.tpl', + 'd3_category_extsearch.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_category_extsearch.tpl', + + 'd3_ext_search_suggestsearch.tpl' => 'd3/extsearch/Application/views/tpl/d3_ext_search_suggestsearch.tpl', + + 'd3_ext_search_highlight.tpl' => 'd3/extsearch/Application/views/tpl/d3_ext_search_highlight.tpl', + + 'd3_ext_search_filter.tpl' => 'd3/extsearch/Application/views/tpl/d3_ext_search_filter.tpl', + 'd3_inc_ext_search_azure.tpl' => 'd3/extsearch/Application/views/tpl/azure/d3_inc_ext_search.tpl', + 'd3_list_filters_azure.tpl' => 'd3/extsearch/Application/views/tpl/azure/d3extsearch_alist_filters.tpl', + 'd3_search_contents_flow.tpl' => 'd3/extsearch/Application/views/tpl/flow/d3_search_contents.tpl', + 'd3_search_filters_flow.tpl' => 'd3/extsearch/Application/views/tpl/flow/d3_search_filters.tpl', + 'd3_list_filters_flow.tpl' => 'd3/extsearch/Application/views/tpl/flow/d3_list_filters.tpl', + 'd3_search_contents_wave.tpl' => 'd3/extsearch/Application/views/tpl/flow/d3_search_contents.tpl', + 'd3_search_filters_wave.tpl' => 'd3/extsearch/Application/views/tpl/flow/d3_search_filters.tpl', + 'd3_list_filters_wave.tpl' => 'd3/extsearch/Application/views/tpl/flow/d3_list_filters.tpl', + 'd3_inc_ext_search_mobile.tpl' => 'd3/extsearch/Application/views/tpl/mobile/d3_inc_ext_search.tpl', + 'd3_list_filters_mobile.tpl' => 'd3/extsearch/Application/views/tpl/mobile/d3extsearch_alist_filters.tpl', + + 'd3_ext_search_filter_category.tpl' => 'd3/extsearch/Application/views/tpl/filterelements/category.tpl', + 'd3_ext_search_filter_vendor.tpl' => 'd3/extsearch/Application/views/tpl/filterelements/vendor.tpl', + 'd3_ext_search_filter_manufacturer.tpl' => 'd3/extsearch/Application/views/tpl/filterelements/manufacturer.tpl', + 'd3_ext_search_filter_attribute.tpl' => 'd3/extsearch/Application/views/tpl/filterelements/attribute.tpl', + 'd3_ext_search_filter_priceselector.tpl' => 'd3/extsearch/Application/views/tpl/filterelements/priceselector.tpl', + 'd3_ext_search_filter_jqslider.tpl' => 'd3/extsearch/Application/views/tpl/filterelements/jqslider.tpl', + + 'd3_ext_search_filter_inc_multibuttons.tpl' => 'd3/extsearch/Application/views/tpl/filterelements/inc/multibuttons.tpl', + + 'd3_ddeovisualcmsadmin_extsearch.tpl' => 'd3/extsearch/Application/views/tpl/d3_ddoevisualcmsadmin_extsearch.tpl', + 'd3_togglegroup_extsearch.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_togglegroup_extsearch.tpl', + ), + 'events' => [ + 'onActivate' => '\D3\Extsearch\setup\Events::onActivate', + 'onDeactivate' => '\D3\Extsearch\setup\Events::onDeactivate', + ], + 'settings' => array( + array( + 'group' => 'd3thememapping_module', + 'name' => 'd3custParentThemeMappedToWave_'.$sModuleId, + 'type' => 'str', + 'value' => '' + ), + array( + 'group' => 'd3thememapping_module', + 'name' => 'd3custParentThemeMappedToFlow_'.$sModuleId, + 'type' => 'str', + 'value' => '' + ), + array( + 'group' => 'd3thememapping_module', + 'name' => 'd3custParentThemeMappedToMobile_'.$sModuleId, + 'type' => 'str', + 'value' => '' + ), + array( + 'group' => 'd3thememapping_module', + 'name' => 'd3custParentThemeMappedToAzure_'.$sModuleId, + 'type' => 'str', + 'value' => '' + ), + ), + 'blocks' => array( + array( + 'template' => 'page/search/search.tpl', + 'block' => 'search_results', + 'file' => 'Application/views/blocks/page/search/d3_inc_ext_search.tpl', + 'position' => 1, + ), + array( + 'template' => 'layout/base.tpl', + 'block' => 'head_css', + 'file' => 'Application/views/blocks/layout/d3_extsearch_css.tpl', + 'position' => 1, + ), + array( + 'template' => 'layout/base.tpl', + 'block' => 'base_js', + 'file' => 'Application/views/blocks/layout/d3_extsearch_js.tpl', + 'position' => 1, + ), + array( + 'template' => 'widget/header/search.tpl', + 'block' => 'widget_header_search_form', + 'file' => 'Application/views/blocks/widget/header/d3_extsearch_headersearch.tpl', + 'position' => 1, + ), + array( + 'template' => 'widget/header/search.tpl', + 'block' => 'header_search_field', + 'file' => 'Application/views/blocks/widget/header/d3_extsearch_searchfield.tpl', + 'position' => 1, + ), + array( + 'template' => 'page/list/list.tpl', + 'block' => 'page_list_listbody', + 'file' => 'Application/views/blocks/page/list/d3extsearch_alist_noartfilters.tpl', + 'position' => 1, + ), + array( + 'template' => 'page/list/list.tpl', + 'block' => 'page_list_listhead', + 'file' => 'Application/views/blocks/page/list/d3extsearch_alist_filters.tpl', + 'position' => 1, + ), + array( + 'template' => 'widget/locator/attributes.tpl', + 'block' => 'widget_locator_attributes', + 'file' => 'Application/views/blocks/widget/locator/d3_list_disabledefaultfilters.tpl', + 'position' => 1, + ), + array( + 'template' => 'widget/product/listitem_infogrid.tpl', + 'block' => 'widget_product_listitem_infogrid_titlebox', + 'file' => 'Application/views/blocks/widget/product/d3_extsearch_listiteminfogrid_title.tpl', + 'position' => 1, + ), + array( + 'template' => 'widget/product/listitem_grid.tpl', + 'block' => 'widget_product_listitem_grid', + 'file' => 'Application/views/blocks/widget/product/d3_extsearch_listitemgrid_title.tpl', + 'position' => 1, + ), + array( + 'template' => 'widget/product/listitem_grid.tpl', + 'block' => 'widget_product_listitem_infogrid_titlebox', + 'file' => 'Application/views/blocks/widget/product/d3_extsearch_listitemgrid_flowtitlebox.tpl', + 'position' => 1, + ), + array( + 'template' => 'widget/product/listitem_line.tpl', + 'block' => 'widget_product_listitem_line_titlebox', + 'file' => 'Application/views/blocks/widget/product/d3_extsearch_listitemline_flowtitlebox.tpl', + 'position' => 1, + ), + array( + 'template' => 'widget/product/listitem_line.tpl', + 'block' => 'widget_product_listitem_line_selections', + 'file' => 'Application/views/blocks/widget/product/d3_extsearch_listitemline_selections.tpl', + 'position' => 1, + ), + array( + 'template' => 'widget/product/listitem_line.tpl', + 'block' => 'widget_product_listitem_line_description', + 'file' => 'Application/views/blocks/widget/product/d3_extsearch_listitemline_description.tpl', + 'position' => 1, + ), + array( + 'template' => 'content_main.tpl', + 'block' => 'admin_content_main_form', + 'file' => 'Application/views/admin/blocks/d3_extsearch_content_main.tpl', + 'position' => 1, + ), + array( + 'template' => 'attribute_main.tpl', + 'block' => 'admin_attribute_main_form', + 'file' => 'Application/views/admin/blocks/d3_extsearch_attribute_main.tpl', + 'position' => 1, + ), + array( + 'template' => 'include/category_main_form.tpl', + 'block' => 'admin_category_main_form', + 'file' => 'Application/views/admin/blocks/d3_extsearch_category_main.tpl', + 'position' => 1, + ), + array( + 'template' => 'article_extend.tpl', + 'block' => 'admin_article_extend_form', + 'file' => 'Application/views/admin/blocks/d3_extsearch_article_extend.tpl', + 'position' => 1, + ), + ) +); + +if (class_exists(VisualCMSAdmin::class)) { + $aModule['extend'][VisualCmsAdmin::class] = \D3\Extsearch\Modules\Application\Controller\Admin\d3_ddoevisualcmsadmin_extsearch::class; +} + +if (class_exists(OeStatistics_Report_Base::class)) { + $aModule['controllers']['d3_extsearch_report_base'] = \D3\Extsearch\Application\Controller\Admin\Reports\d3_extsearch_report_base::class; + $aModule['controllers']['d3_extsearch_report_hitless'] = \D3\Extsearch\Application\Controller\Admin\Reports\d3_extsearch_report_hitless::class; + $aModule['controllers']['d3_extsearch_report_mostsearches'] = \D3\Extsearch\Application\Controller\Admin\Reports\d3_extsearch_report_mostsearches::class; +} diff --git a/src/setup/d3_extsearch_update.php b/src/setup/d3_extsearch_update.php index e4c78a9..a2c91dc 100644 --- a/src/setup/d3_extsearch_update.php +++ b/src/setup/d3_extsearch_update.php @@ -1,597 +1,597 @@ - - * @link http://www.oxidmodule.com - */ - -namespace D3\Extsearch\setup; - -use D3\Extsearch\Application\Model\d3_extsearch_synset; -use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception; -use D3\ModCfg\Application\Model\Exception\d3ParameterNotFoundException; -use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException; -use D3\ModCfg\Application\Model\Install\d3install_updatebase; -use Doctrine\DBAL\DBALException; -use Doctrine\DBAL\Driver\PDOException; -use OxidEsales\Eshop\Core\Exception\ConnectionException; -use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException; -use OxidEsales\Eshop\Core\Exception\DatabaseErrorException; -use OxidEsales\Eshop\Core\Exception\StandardException; -use OxidEsales\Eshop\Core\Registry; -use OxidEsales\Eshop\Application\Model\Shop; -use ReflectionException; - -/** - * Class d3_extsearch_update - */ -class d3_extsearch_update extends d3install_updatebase -{ - public $sModKey = 'd3_extsearch'; - public $sModName = 'erweiterte Suche'; - public $sModVersion = '6.5.2.0'; - public $sModRevision = '6520'; - public $sBaseConf = 'kpsv2==ZGhubWpWUXcrdklnUHZ4dkd2WEQ2YnBweTlVZ1V3aHNoNWg1R0NFd2tFaW1YRUdISm1RT0MxT -lN3ODk2eUVEOEh6Z2tuQlpPVEcrUTc0UVkreXNYY01yNS9nY3hXYlFPM3ZGak5BbGxrUytiQjlQd3RBS -3FLUVZSdVlzTlpZZllGcCt5VVdGQWNWdkwrYnRRK2grT3VqQlh1elZqZGw3VmpEN0wySU8yaXRkUEVGZ -nJuMldnUE5Ld0IxOVJLVGljaEpMYjBmdWJoUTRlRzdJNUtxL3MyQURwa1R6cCtXNm1YUjMwa2lVRmthM -TB0RlNwYURYcFE4MTF0SXpkSVB3TzJueTJKWkxSa0NwVEs5bDFNVitic2xraVhYOEUyQTArN1ZnRUIze -U1YYzM3Q2tzeFZXdWlpQUduU0dLK244RzlEcGV4NUYrclg2bk85VExSNVY1YXZBPT0='; - public $sRequirements = ''; - public $sBaseValue = 'TyUzQTglM0ElMjJzdGRDbGFzcyUyMiUzQTY5JTNBJTdCcyUzQTI4JTNBJTIyZDNfY2ZnX21vZF9fYUxpY2Vuc2VJbmZvTWFpbCUyMiUzQmElM0EyJTNBJTdCcyUzQTQyJTNBJTIyTk9MSUNLRVlfXzQ3OTM2Mzg3MDJiNjc3MTVmMWRmYmZjODMyNDY2OTE0JTIyJTNCcyUzQTE5JTNBJTIyMjAxMy0wMS0xNiUyMDEyJTNBMTAlM0E0MCUyMiUzQnMlM0E0NCUzQSUyMk5PU0VSSUFMSURfXzQ3OTM2Mzg3MDJiNjc3MTVmMWRmYmZjODMyNDY2OTE0JTIyJTNCcyUzQTE5JTNBJTIyMjAxMy0wMS0xNiUyMDEyJTNBMTElM0E0MiUyMiUzQiU3RHMlM0E0MiUzQSUyMmQzX2NmZ19tb2RfX2FFeHRTZWFyY2hfc2ltaWxhclNlYXJjaEZpZWxkcyUyMiUzQmElM0E0JTNBJTdCaSUzQTAlM0JzJTNBMTQlM0ElMjI1MCUyMCUzRCUzRSUyMG94YXJ0bnVtJTIyJTNCaSUzQTElM0JzJTNBMTMlM0ElMjI1MCUyMCUzRCUzRSUyMG94dGl0bGUlMjIlM0JpJTNBMiUzQnMlM0ExOCUzQSUyMjQwJTIwJTNEJTNFJTIwb3hzZWFyY2hrZXlzJTIyJTNCaSUzQTMlM0JzJTNBMTclM0ElMjIyMCUyMCUzRCUzRSUyMG94c2hvcnRkZXNjJTIyJTNCJTdEcyUzQTQzJTNBJTIyZDNfY2ZnX21vZF9fc0V4dFNlYXJjaF9NdWx0aVNlYXJjaHdvcmRVc2FnZSUyMiUzQnMlM0ExMCUzQSUyMnNpbmdsZVdvcmQlMjIlM0JzJTNBMzklM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF91c2VBcnROdW1TZWFyY2glMjIlM0JzJTNBMSUzQSUyMjElMjIlM0JzJTNBMzklM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9vcmRlckJ5UHJpb3JpdHklMjIlM0JzJTNBMSUzQSUyMjElMjIlM0JzJTNBMzUlM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9vcmRlckJ5UHVzaCUyMiUzQnMlM0ExJTNBJTIyMSUyMiUzQnMlM0E0NCUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX2ZpbmRQdXRJbkFuZExlYXZlT3V0JTIyJTNCcyUzQTElM0ElMjIxJTIyJTNCcyUzQTM3JTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfb3duRm9ybUZpZWxkcyUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0EzNyUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX1ZhcmlhbnRTZWFyY2glMjIlM0JzJTNBMSUzQSUyMjAlMjIlM0JzJTNBMzUlM0ElMjJkM19jZmdfbW9kX19zRXh0U2VhcmNoX1ZhcmlhbnRVc2FnZSUyMiUzQnMlM0ExMCUzQSUyMnNob3dQYXJlbnQlMjIlM0JzJTNBMzclM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9zaW1pbGFyU2VhcmNoJTIyJTNCcyUzQTElM0ElMjIxJTIyJTNCcyUzQTMxJTNBJTIyZDNfY2ZnX21vZF9fc0V4dFNlYXJjaF9sYW5nRmlsZSUyMiUzQnMlM0EyMiUzQSUyMmQzX3Bob25ldGljX2RlX3ZvYy5waHAlMjIlM0JzJTNBMzglM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9zaW1pbGFyRXh0TGlzdCUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0EzNyUzQSUyMmQzX2NmZ19tb2RfX2lFeHRTZWFyY2hfc2ltaWxhckV4dExpc3QlMjIlM0JzJTNBMiUzQSUyMjEwJTIyJTNCcyUzQTM2JTNBJTIyZDNfY2ZnX21vZF9faUV4dFNlYXJjaF9taW5QaG9uTGVuZ3RoJTIyJTNCcyUzQTElM0ElMjIzJTIyJTNCcyUzQTM4JTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfc2VtYW50aWNTZWFyY2glMjIlM0JzJTNBMSUzQSUyMjAlMjIlM0JzJTNBNDMlM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9zZW1hbnRpY1VzZVBob25ldGljJTIyJTNCcyUzQTElM0ElMjIwJTIyJTNCcyUzQTQzJTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfc2VtYW50aWNBbGxvd1Z1bGdhciUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0EzMyUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX2NhdFNlYXJjaCUyMiUzQnMlM0ExJTNBJTIyMSUyMiUzQnMlM0EzOCUzQSUyMmQzX2NmZ19tb2RfX3NFeHRTZWFyY2hfc2hvd0NhdEFydGljbGVzJTIyJTNCcyUzQTglM0ElMjJhcnRpbmNhdCUyMiUzQnMlM0EzMCUzQSUyMmQzX2NmZ19tb2RfX2lFeHRTZWFyY2hfY2F0UHJpbyUyMiUzQnMlM0EyJTNBJTIyNTAlMjIlM0JzJTNBNDIlM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9tYW51ZmFjdHVyZXJTZWFyY2glMjIlM0JzJTNBMSUzQSUyMjElMjIlM0JzJTNBMzklM0ElMjJkM19jZmdfbW9kX19pRXh0U2VhcmNoX21hbnVmYWN0dXJlclByaW8lMjIlM0JzJTNBMiUzQSUyMjUwJTIyJTNCcyUzQTM5JTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfc2hvd0NvbnRlbnRMaXN0JTIyJTNCcyUzQTElM0ElMjIxJTIyJTNCcyUzQTQ1JTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfY29udGVudFNlYXJjaExvbmd0ZXh0JTIyJTNCcyUzQTElM0ElMjIwJTIyJTNCcyUzQTM0JTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfbG9nSGl0bGVzcyUyMiUzQnMlM0ExJTNBJTIyMSUyMiUzQnMlM0E0NSUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX2dlbmVyYWxseUxvZ0ZvclNlYXJjaCUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0E0MSUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX2FkbWluU2hvd1ZhcmlhbnRzJTIyJTNCcyUzQTElM0ElMjIxJTIyJTNCcyUzQTM4JTNBJTIyZDNfY2ZnX21vZF9faUV4dFNlYXJjaF9hcnRpY2xlc1BlclRpY2slMjIlM0JzJTNBMiUzQSUyMjEwJTIyJTNCcyUzQTM1JTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfZW1wdHlTZWFyY2glMjIlM0JzJTNBMSUzQSUyMjAlMjIlM0JzJTNBNDMlM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9zaG93SGlnaGxpZ2h0ZWRUZXh0JTIyJTNCcyUzQTElM0ElMjIxJTIyJTNCcyUzQTM3JTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfZ29Ub1VuaXF1ZUhpdCUyMiUzQnMlM0ExJTNBJTIyMSUyMiUzQnMlM0EzNSUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX3Nob3dDYXRMaXN0JTIyJTNCcyUzQTElM0ElMjIxJTIyJTNCcyUzQTM1JTNBJTIyZDNfY2ZnX21vZF9fc0V4dFNlYXJjaF9vcmRlckNhdExpc3QlMjIlM0JzJTNBNyUzQSUyMmNvdW50ZXIlMjIlM0JzJTNBNDIlM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9zaG93T25lSXRlbUNhdExpc3QlMjIlM0JzJTNBMSUzQSUyMjAlMjIlM0JzJTNBMzglM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9zaG93VmVuZG9yTGlzdCUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0EzOCUzQSUyMmQzX2NmZ19tb2RfX3NFeHRTZWFyY2hfb3JkZXJWZW5kb3JMaXN0JTIyJTNCcyUzQTclM0ElMjJjb3VudGVyJTIyJTNCcyUzQTQ1JTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfc2hvd09uZUl0ZW1WZW5kb3JMaXN0JTIyJTNCcyUzQTElM0ElMjIwJTIyJTNCcyUzQTQ0JTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfc2hvd01hbnVmYWN0dXJlckxpc3QlMjIlM0JzJTNBMSUzQSUyMjElMjIlM0JzJTNBNDQlM0ElMjJkM19jZmdfbW9kX19zRXh0U2VhcmNoX29yZGVyTWFudWZhY3R1cmVyTGlzdCUyMiUzQnMlM0E3JTNBJTIyY291bnRlciUyMiUzQnMlM0E1MSUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX3Nob3dPbmVJdGVtTWFudWZhY3R1cmVyTGlzdCUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0E0MSUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX3Nob3dBdHRyaWJ1dGVMaXN0JTIyJTNCcyUzQTElM0ElMjIwJTIyJTNCcyUzQTQxJTNBJTIyZDNfY2ZnX21vZF9fc0V4dFNlYXJjaF9vcmRlckF0dHJpYnV0ZUxpc3QlMjIlM0JzJTNBNyUzQSUyMmNvdW50ZXIlMjIlM0JzJTNBNTUlM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9zaG93Tm9Bc3NpZ25lZEF0dHJpYnV0ZUFydGljbGVzJTIyJTNCcyUzQTElM0ElMjIwJTIyJTNCcyUzQTQxJTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfc2hvd1ByaWNlU2VsZWN0b3IlMjIlM0JzJTNBMSUzQSUyMjElMjIlM0JzJTNBNDElM0ElMjJkM19jZmdfbW9kX19pRXh0U2VhcmNoX3ByaWNlU2VsZWN0b3JJdGVtcyUyMiUzQnMlM0ExJTNBJTIyNSUyMiUzQnMlM0E0NSUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX1ByaWNlU2VsZWN0b3JzUm91bmRlZCUyMiUzQnMlM0ExJTNBJTIyMSUyMiUzQnMlM0E0NSUzQSUyMmQzX2NmZ19tb2RfX3NFeHRTZWFyY2hfUHJpY2VTZWxlY3RvcnNEaXNwVHlwZSUyMiUzQnMlM0E4JTNBJTIyanFzbGlkZXIlMjIlM0JzJTNBMzklM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9zaG93RmlsdGVyUGFyYW0lMjIlM0JzJTNBMSUzQSUyMjElMjIlM0JzJTNBMzklM0ElMjJkM19jZmdfbW9kX19zRXh0U2VhcmNoX2ZpbHRlclBhcmFtRmllbGQlMjIlM0JzJTNBNyUzQSUyMm94dGl0bGUlMjIlM0JzJTNBNDAlM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9lbmFibGVBamF4U2VhcmNoJTIyJTNCcyUzQTElM0ElMjIxJTIyJTNCcyUzQTQ1JTNBJTIyZDNfY2ZnX21vZF9fc0V4dFNlYXJjaF9RdWlja1NlYXJjaE1heEFydGljbGVzJTIyJTNCcyUzQTMlM0ElMjIyMDAlMjIlM0JzJTNBNDklM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9RdWlja1NlYXJjaExvYWRDYXRlZ29yaWVzJTIyJTNCcyUzQTElM0ElMjIxJTIyJTNCcyUzQTUyJTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfUXVpY2tTZWFyY2hMb2FkTWFudWZhY3R1cmVycyUyMiUzQnMlM0ExJTNBJTIyMSUyMiUzQnMlM0E0NiUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX1F1aWNrU2VhcmNoTG9hZFZlbmRvcnMlMjIlM0JzJTNBMSUzQSUyMjElMjIlM0JzJTNBNDYlM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9RdWlja1NlYXJjaExvYWRDb250ZW50JTIyJTNCcyUzQTElM0ElMjIwJTIyJTNCcyUzQTMxJTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfU2hvd0lBUyUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0EzMyUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX1Nob3dQb3B1cCUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0E0OCUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX1ZhcmlhbnRDaGVja1BhcmVudEFjdGl2ZSUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0E0MSUzQSUyMmQzX2NmZ19tb2RfX3NFeHRTZWFyY2hfb3JkZXJCeUFsdGVybmF0aXZlJTIyJTNCcyUzQTclM0ElMjJveHRpdGxlJTIyJTNCcyUzQTQyJTNBJTIyZDNfY2ZnX21vZF9fc0V4dFNlYXJjaF9vcmRlckRpckFsdGVybmF0aXZlJTIyJTNCcyUzQTMlM0ElMjJhc2MlMjIlM0JzJTNBNTAlM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9lbmFibGVQbHVnaW5Ccm93c2VySW5zdGFsbCUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0E0MCUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX2VuYWJsZVBsdWdpbkxpbmslMjIlM0JzJTNBMSUzQSUyMjAlMjIlM0JzJTNBMzglM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF91c2VBTGlzdEZpbHRlciUyMiUzQnMlM0ExJTNBJTIyMSUyMiUzQnMlM0E0NSUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX3VzZUF0dHJpYnV0ZUNvbWJpbmVPciUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0EzOCUzQSUyMmQzX2NmZ19tb2RfX3NFeHRTZWFyY2hfb3JkZXJBdHRyaWJ1dGVzJTIyJTNCcyUzQTUlM0ElMjJveHBvcyUyMiUzQnMlM0E1MSUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX3VzZUF0dHJpYnV0ZVZhbHVlQ29tYmluZUFuZCUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0E1MSUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX3Nob3dOb3RTZWxlY3RhYmxlQXR0cmlidXRlcyUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0E0OSUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX2FqYXhTZWFyY2hMb2FkRnVsbE9iamVjdHMlMjIlM0JzJTNBMSUzQSUyMjAlMjIlM0IlN0Q='; - - public $sMinModCfgVersion = '5.3.0.0'; - - protected $_aUpdateMethods = array( - array('check' => 'checkModCfgItemExist', - 'do' => 'updateModCfgItemExist'), - array('check' => 'checkRenameFields', - 'do' => 'fixRenameFields'), - array('check' => 'checkIndexRefreshMsg', - 'do' => 'fixIndexRefreshMsg'), - array('check' => 'checkAttribute2ObjectTableExist', - 'do' => 'addAttribute2ObjectTable'), - array('check' => 'checkStatisticTablesExist', - 'do' => 'addStatisticTables'), - array('check' => 'checkSynsetTablesExist', - 'do' => 'addSynsetTables'), - array('check' => 'checkFields', - 'do' => 'fixFields'), - array('check' => 'checkIndizes', - 'do' => 'fixIndizes'), - array('check' => 'checkUnsetSynsetTypes', - 'do' => 'setInitialSynsetTypes'), - array('check' => 'checkContentNoArtItemExist', - 'do' => 'updateContentNoArtItemExist'), - array('check' => 'hasUnregisteredFiles', - 'do' => 'showUnregisteredFiles'), - array('check' => 'checkModCfgSameRevision', - 'do' => 'updateModCfgSameRevision'), - ); - - public $aFields = array( - 'D3_PHONETIC' => array( - 'sTableName' => 'oxartextends', - 'sFieldName' => 'D3_PHONETIC', - 'sType' => 'LONGTEXT', - 'blNull' => false, - 'sDefault' => false, - 'sComment' => 'modExtSearch', - 'sExtra' => '', - 'blMultilang' => true, - ), - 'D3_SEARCHINDEXDATE' => array( - 'sTableName' => 'oxarticles', - 'sFieldName' => 'D3_SEARCHINDEXDATE', - 'sType' => 'DATETIME', - 'blNull' => true, - 'sDefault' => null, - 'sComment' => 'modExtSearch', - 'sExtra' => '', - 'blMultilang' => true, - ), - 'D3PUSH' => array( - 'sTableName' => 'oxarticles', - 'sFieldName' => 'D3PUSH', - 'sType' => 'TINYINT(1)', - 'blNull' => false, - 'sDefault' => '1', - 'sComment' => 'search sort criteria', - 'sExtra' => '', - 'blMultilang' => false, - ), - 'D3ISSEARCHABLE' => array( - 'sTableName' => 'oxcontents', - 'sFieldName' => 'D3ISSEARCHABLE', - 'sType' => 'TINYINT(1)', - 'blNull' => false, - 'sDefault' => '0', - 'sComment' => 'modExtSearch', - 'sExtra' => '', - 'blMultilang' => false, - ), - 'D3NOTUSE4FILTER' => array( - 'sTableName' => 'oxattribute', - 'sFieldName' => 'D3NOTUSE4FILTER', - 'sType' => 'TINYINT(1)', - 'blNull' => false, - 'sDefault' => '0', - 'sComment' => 'attrib use in extsearch', - 'sExtra' => '', - 'blMultilang' => false, - ), - 'D3USECORRESPONDINGVALUES' => array( - 'sTableName' => 'oxattribute', - 'sFieldName' => 'D3USECORRESPONDINGVALUES', - 'sType' => 'TINYINT(1)', - 'blNull' => false, - 'sDefault' => '0', - 'sComment' => 'use synonyms in extsearch', - 'sExtra' => '', - 'blMultilang' => false, - ), - 'D3NOTUSE4FILTERCAT' => array( - 'sTableName' => 'oxcategories', - 'sFieldName' => 'D3NOTUSE4FILTER', - 'sType' => 'TINYINT(1)', - 'blNull' => false, - 'sDefault' => '0', - 'sComment' => 'category use in extsearch', - 'sExtra' => '', - 'blMultilang' => false, - ), - ); - - public $aIndizes = array(); - - public $aRenameFields = array( - 'D3_PHONETIC' => array( - 'sTableName' => 'oxarticles', - 'mOldFieldNames' => array('d3_phonetic'), // is case sensitive - 'sFieldName' => 'D3_PHONETIC', - 'blMultilang' => true, - ), - 'D3_SEARCHINDEXDATE' => array( - 'sTableName' => 'oxarticles', - 'mOldFieldNames' => array('d3_searchIndexDate'), // is case sensitive - 'sFieldName' => 'D3_SEARCHINDEXDATE', - 'blMultilang' => true, - ), - 'D3PUSH' => array( - 'sTableName' => 'oxarticles', - 'mOldFieldNames' => array('d3push'), // is case sensitive - 'sFieldName' => 'D3PUSH', - 'blMultilang' => false, - ), - 'D3NOTUSE4FILTER' => array( - 'sTableName' => 'oxattribute', - 'mOldFieldNames' => array('d3notuse4filter'), // is case sensitive - 'sFieldName' => 'D3NOTUSE4FILTER', - 'blMultilang' => false, - ), - ); - - public $aSemanticTables = array(); - public $aStatisticTables = array(); - - public $aOldModuleFiles = array( - 'd3/d3_extsearch/models/d3_extsearch_update.php', - ); - - protected $_aRefreshMetaModuleIds = array('d3_extsearch'); - - /** - * constructor - */ - public function __construct() - { - require('d3_extsearch_semanticstructure.php'); - require('d3_extsearch_statisticlog.php'); - require('d3_extsearch_attribute2object.php'); - - parent::__construct(); - } - - /** - * @return bool - */ - public function checkIndexRefreshMsg() - { - if (Registry::getSession()->getVariable('checkIndexRefreshMsg')) { - return true; - } - - return false; - } - - /** - * @return bool - */ - public function fixIndexRefreshMsg() - { - $blRet = true; - - if (Registry::getSession()->getVariable('checkIndexRefreshMsg')) { - Registry::getSession()->setVariable('checkIndexRefreshMsg', false); - $this->_confirmMessage('D3_EXTSEARCH_UPDATE_GENPHONETIC'); - } - - return $blRet; - } - - /** - * @return bool - * @throws DBALException - * @throws DatabaseConnectionException - */ - public function checkContentNoArtItemExist() - { - $blRet = false; - foreach ($this->getShopList() as $oShop) { - /** @var $oShop Shop */ - $aWhere = array( - 'oxloadid' => 'd3extsearch_noarticlefound', - 'oxshopid' => $oShop->getId(), - ); - - $blRet = $this->_checkTableItemNotExist('oxcontents', $aWhere); - - if ($blRet) { - return $blRet; - } - } - - return $blRet; - } - - /** - * @return bool - * @throws DBALException - * @throws DatabaseConnectionException - * @throws ConnectionException - * @throws DatabaseErrorException - */ - public function updateContentNoArtItemExist() - { - $blRet = false; - - foreach ($this->getShopList() as $oShop) { - /** @var $oShop Shop */ - $aWhere = array( - 'oxloadid' => 'd3extsearch_noarticlefound', - 'oxshopid' => $oShop->getId(), - ); - - if ($this->_checkTableItemNotExist('oxcontents', $aWhere)) { - $aWhere = array(); - $aInsertFields = array( - array ( - 'fieldname' => 'OXID', - 'content' => "md5('d3extsearch_noarticlefound " . $oShop->getId() . "')", - 'force_update' => true, - 'use_quote' => false, - ), - array ( - 'fieldname' => 'OXLOADID', - 'content' => "d3extsearch_noarticlefound", - 'force_update' => true, - 'use_quote' => true, - ), - array ( - 'fieldname' => 'OXSHOPID', - 'content' => $oShop->getId(), - 'force_update' => true, - 'use_quote' => true, - ), - array ( - 'fieldname' => 'OXSNIPPET', - 'content' => "1", - 'force_update' => true, - 'use_quote' => true, - ), - array ( - 'fieldname' => 'OXTYPE', - 'content' => "0", - 'force_update' => true, - 'use_quote' => true, - ), - array ( - 'fieldname' => 'OXACTIVE', - 'content' => "1", - 'force_update' => false, - 'use_quote' => true, - 'use_multilang' => true, - ), - array ( - 'fieldname' => 'OXPOSITION', - 'content' => "", - 'force_update' => true, - 'use_quote' => true, - ), - array ( - 'fieldname' => $this->_getLangAbbrFieldName('oxcontents', 'OXTITLE', 'de'), - 'content' => "Leider wurden keine Artikel gefunden", - 'force_update' => false, - 'use_quote' => true, - 'use_multilang' => true, - ), - array ( - 'fieldname' => 'OXCONTENT', - 'content' => "

Versuchen Sie es mit einem anderen Suchbegriff, einer anderen ". - "Schreibweise oder anderen Filtern bitte noch einmal.

Erhalten Sie dennoch keine ". - "Ergebnisse, kontaktieren Sie uns bitte ". - "getSelfLink()|cat:\"cl=contact\"}]\">hier.". - "


", - 'force_update' => false, - 'use_quote' => true, - 'use_multilang' => true, - ), - array ( - 'fieldname' => $this->_getLangAbbrFieldName('oxcontents', 'OXTITLE', 'en'), - 'content' => "Sorry, no items were found.", - 'force_update' => false, - 'use_quote' => true, - ), - array ( - 'fieldname' => 'OXCATID', - 'content' => "kgo83a794223bfd23cbb091d0a34019d", - 'force_update' => true, - 'use_quote' => true, - ), - array ( - 'fieldname' => 'OXFOLDER', - 'content' => "CMSFOLDER_USERINFO", - 'force_update' => true, - 'use_quote' => true, - ), - ); - - $this->setInitialExecMethod(__METHOD__); - $blRet = $this->_updateTableItem2('oxcontents', $aInsertFields, $aWhere); - - if ($this->getStepByStepMode()) { - break; - } - } - } - - return $blRet; - } - - /** - * @return bool true, if table is missing - * @throws DBALException - * @throws DatabaseConnectionException - * @throws DatabaseErrorException - */ - public function checkStatisticTablesExist() - { - foreach ($this->aStatisticTables as $aStatisticTable) { - if (($blRet = $this->_checkTableNotExist($aStatisticTable['sName']))) { - return $blRet; - }; - } - - return false; - } - - /** - * @return bool - * @throws ConnectionException - * @throws DBALException - * @throws DatabaseConnectionException - * @throws DatabaseErrorException - */ - public function addStatisticTables() - { - $this->setInitialExecMethod(__METHOD__); - - $blDoRet = false; - foreach ($this->aStatisticTables as $aStatisticTable) { - if ($this->_checkTableNotExist($aStatisticTable['sName'])) { - if ($this->hasExecute()) { - $iCount = $this->getUpdateStepCount(); - Registry::getSession()->setVariable('iD3UpdatebaseCount', $iCount + 1); - } - - $blDoRet = $this->_addTable2( - $aStatisticTable['sName'], - $this->aFields, - $this->aIndizes, - $aStatisticTable['sComment'], - $aStatisticTable['sType'] - ); - - if ($this->getUpdateBreak() || false == $blDoRet) { - return $blDoRet; - } - } - } - - return $blDoRet; - } - - /** - * @return bool true, if table is missing - * @return bool - * @throws DBALException - * @throws DatabaseConnectionException - * @throws DatabaseErrorException - */ - public function checkAttribute2ObjectTableExist() - { - return $this->_checkTableNotExist('d3extsearch_attribute2object'); - } - - /** - * @return bool - * @return bool - * @throws ConnectionException - * @throws DBALException - * @throws DatabaseConnectionException - * @throws DatabaseErrorException - */ - public function addAttribute2ObjectTable() - { - $this->setInitialExecMethod(__METHOD__); - - $blDoRet = false; - if ($this->checkAttribute2ObjectTableExist()) { - if ($this->hasExecute()) { - $iCount = $this->getUpdateStepCount(); - Registry::getSession()->setVariable('iD3UpdatebaseCount', $iCount + 1); - } - - $blDoRet = $this->_addTable2( - 'd3extsearch_attribute2object', - $this->aFields, - $this->aIndizes, - 'Shows many-to-many relationship between attributes and objects (table determined by oxtype)', - 'InnoDb' - ); - } - - return $blDoRet; - } - - /** - * @return bool true, if table is missing - * @throws DBALException - * @throws DatabaseConnectionException - * @throws DatabaseErrorException - */ - public function checkSynsetTablesExist() - { - foreach ($this->aSemanticTables as $aSemanticTable) { - if (($blRet = $this->_checkTableNotExist($aSemanticTable['sName']))) { - return $blRet; - }; - } - - return false; - } - - /** - * @return bool - * @throws ConnectionException - * @throws DBALException - * @throws DatabaseConnectionException - * @throws DatabaseErrorException - */ - public function addSynsetTables() - { - $this->setInitialExecMethod(__METHOD__); - - $blDoRet = false; - foreach ($this->aSemanticTables as $aSemanticTable) { - if ($this->_checkTableNotExist($aSemanticTable['sName'])) { - - if ($this->hasExecute()) { - $iCount = $this->getUpdateStepCount(); - Registry::getSession()->setVariable('iD3UpdatebaseCount', $iCount + 1); - } - - $blDoRet = $this->_addTable2( - $aSemanticTable['sName'], - $this->aFields, - $this->aIndizes, - $aSemanticTable['sComment'], - $aSemanticTable['sType'] - ); - - if ($this->getUpdateBreak() || false == $blDoRet) { - return $blDoRet; - } - } - } - - return $blDoRet; - } - - /** - * @return bool // true, if there are unassigned synsets - * @throws DatabaseConnectionException - */ - public function checkUnsetSynsetTypes() - { - $iUnassigned = (int) $this->getDb()->getOne( - "SELECT count(*) FROM `".oxNew(d3_extsearch_synset::class)->getCoreTableName()."` WHERE 1 IN (`USEFORTERMS`, `USEFORATTRIBUTES`)" - ); - $iTotal = (int) $this->getDb()->getOne( - "SELECT count(*) FROM `".oxNew(d3_extsearch_synset::class)->getCoreTableName()."` WHERE 1" - ); - - return !$iUnassigned && $iTotal; - } - - /** - * @return bool - * @throws DatabaseConnectionException - * @throws DatabaseErrorException - */ - public function setInitialSynsetTypes() - { - if ($this->checkUnsetSynsetTypes()) { - $sQuery = "UPDATE `" . oxNew(d3_extsearch_synset::class)->getCoreTableName() . "` SET USEFORTERMS = 1 WHERE 1;"; - - if ($this->hasExecute()) { - try { - $this->getDb()->execute($sQuery); - } catch (PDOException $exception) { - if ($exception->errorInfo[1]) { - $this->setErrorMessage($exception->errorInfo[2]); - } - } - } - - $this->setUpdateBreak(false); - - if ($sQuery) { - $this->setActionLog('SQL', $sQuery, __METHOD__); - } - } - - return true; - } - - /** - * @return bool - * @throws DBALException - * @throws DatabaseConnectionException - * @throws DatabaseErrorException - * @throws StandardException - * @throws ReflectionException - * @throws d3ParameterNotFoundException - * @throws d3ShopCompatibilityAdapterException - * @throws d3_cfg_mod_exception - */ - public function hasUnregisteredFiles() - { - return $this->_hasUnregisteredFiles('d3_extsearch', array('blocks', 'd3FileRegister')); - } - - /** - * @return bool - * @throws DBALException - * @throws DatabaseConnectionException - * @throws DatabaseErrorException - * @throws StandardException - * @throws ReflectionException - * @throws d3ShopCompatibilityAdapterException - * @throws d3_cfg_mod_exception - */ - public function showUnregisteredFiles() - { - return $this->_showUnregisteredFiles('d3_extsearch', array('blocks', 'd3FileRegister')); - } -} + + * @link http://www.oxidmodule.com + */ + +namespace D3\Extsearch\setup; + +use D3\Extsearch\Application\Model\d3_extsearch_synset; +use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception; +use D3\ModCfg\Application\Model\Exception\d3ParameterNotFoundException; +use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException; +use D3\ModCfg\Application\Model\Install\d3install_updatebase; +use Doctrine\DBAL\DBALException; +use Doctrine\DBAL\Driver\PDOException; +use OxidEsales\Eshop\Core\Exception\ConnectionException; +use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException; +use OxidEsales\Eshop\Core\Exception\DatabaseErrorException; +use OxidEsales\Eshop\Core\Exception\StandardException; +use OxidEsales\Eshop\Core\Registry; +use OxidEsales\Eshop\Application\Model\Shop; +use ReflectionException; + +/** + * Class d3_extsearch_update + */ +class d3_extsearch_update extends d3install_updatebase +{ + public $sModKey = 'd3_extsearch'; + public $sModName = 'erweiterte Suche'; + public $sModVersion = '6.5.2.1'; + public $sModRevision = '6521'; + public $sBaseConf = '3BYv2==aG84NjZLQ3VsRzNPU0ZQNTJmRFVwMGxhVG9CaTRJTDRvVCs4MEFLZmVLSnpJWldMTkxYWGIwb +UErNVBHdDQ2SkpvZlJYU2xKbXNHMXBHaTR0WHZXYnlFRUNpd0k4TkpHUkhFS3o5ZkFTcnZvWmxxaXNpZ +lNlTzRBTWg0K1hyWlZxME45T21IVFg0MHA3QjMxMzlrdjRNNUZDcFRoeUNBV09xMmRvbER0V1pocDYzT +25RL3hoZzdsd3BUeTh0aUlEYmVianl2b0hlcUg0NklrbGJBekwyckF4RGRRYVlPcUR3dENybW8xUXEyR +lQ0U01KeEhlQ3ZwVXZlUFJXZ2lUeCtFbEdNb0VEU0dxWmt5RkhIaUZhd2dKY2NheG5xbjJCcXl5STZVZ +DFFTjQvSjUyMGJ2NHNQdWlIU3VteTlad0RSWUk3UlF4ZUZFY1hueSthTExqZ1dRPT0='; + public $sRequirements = ''; + public $sBaseValue = 'TyUzQTglM0ElMjJzdGRDbGFzcyUyMiUzQTY5JTNBJTdCcyUzQTI4JTNBJTIyZDNfY2ZnX21vZF9fYUxpY2Vuc2VJbmZvTWFpbCUyMiUzQmElM0EyJTNBJTdCcyUzQTQyJTNBJTIyTk9MSUNLRVlfXzQ3OTM2Mzg3MDJiNjc3MTVmMWRmYmZjODMyNDY2OTE0JTIyJTNCcyUzQTE5JTNBJTIyMjAxMy0wMS0xNiUyMDEyJTNBMTAlM0E0MCUyMiUzQnMlM0E0NCUzQSUyMk5PU0VSSUFMSURfXzQ3OTM2Mzg3MDJiNjc3MTVmMWRmYmZjODMyNDY2OTE0JTIyJTNCcyUzQTE5JTNBJTIyMjAxMy0wMS0xNiUyMDEyJTNBMTElM0E0MiUyMiUzQiU3RHMlM0E0MiUzQSUyMmQzX2NmZ19tb2RfX2FFeHRTZWFyY2hfc2ltaWxhclNlYXJjaEZpZWxkcyUyMiUzQmElM0E0JTNBJTdCaSUzQTAlM0JzJTNBMTQlM0ElMjI1MCUyMCUzRCUzRSUyMG94YXJ0bnVtJTIyJTNCaSUzQTElM0JzJTNBMTMlM0ElMjI1MCUyMCUzRCUzRSUyMG94dGl0bGUlMjIlM0JpJTNBMiUzQnMlM0ExOCUzQSUyMjQwJTIwJTNEJTNFJTIwb3hzZWFyY2hrZXlzJTIyJTNCaSUzQTMlM0JzJTNBMTclM0ElMjIyMCUyMCUzRCUzRSUyMG94c2hvcnRkZXNjJTIyJTNCJTdEcyUzQTQzJTNBJTIyZDNfY2ZnX21vZF9fc0V4dFNlYXJjaF9NdWx0aVNlYXJjaHdvcmRVc2FnZSUyMiUzQnMlM0ExMCUzQSUyMnNpbmdsZVdvcmQlMjIlM0JzJTNBMzklM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF91c2VBcnROdW1TZWFyY2glMjIlM0JzJTNBMSUzQSUyMjElMjIlM0JzJTNBMzklM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9vcmRlckJ5UHJpb3JpdHklMjIlM0JzJTNBMSUzQSUyMjElMjIlM0JzJTNBMzUlM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9vcmRlckJ5UHVzaCUyMiUzQnMlM0ExJTNBJTIyMSUyMiUzQnMlM0E0NCUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX2ZpbmRQdXRJbkFuZExlYXZlT3V0JTIyJTNCcyUzQTElM0ElMjIxJTIyJTNCcyUzQTM3JTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfb3duRm9ybUZpZWxkcyUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0EzNyUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX1ZhcmlhbnRTZWFyY2glMjIlM0JzJTNBMSUzQSUyMjAlMjIlM0JzJTNBMzUlM0ElMjJkM19jZmdfbW9kX19zRXh0U2VhcmNoX1ZhcmlhbnRVc2FnZSUyMiUzQnMlM0ExMCUzQSUyMnNob3dQYXJlbnQlMjIlM0JzJTNBMzclM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9zaW1pbGFyU2VhcmNoJTIyJTNCcyUzQTElM0ElMjIxJTIyJTNCcyUzQTMxJTNBJTIyZDNfY2ZnX21vZF9fc0V4dFNlYXJjaF9sYW5nRmlsZSUyMiUzQnMlM0EyMiUzQSUyMmQzX3Bob25ldGljX2RlX3ZvYy5waHAlMjIlM0JzJTNBMzglM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9zaW1pbGFyRXh0TGlzdCUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0EzNyUzQSUyMmQzX2NmZ19tb2RfX2lFeHRTZWFyY2hfc2ltaWxhckV4dExpc3QlMjIlM0JzJTNBMiUzQSUyMjEwJTIyJTNCcyUzQTM2JTNBJTIyZDNfY2ZnX21vZF9faUV4dFNlYXJjaF9taW5QaG9uTGVuZ3RoJTIyJTNCcyUzQTElM0ElMjIzJTIyJTNCcyUzQTM4JTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfc2VtYW50aWNTZWFyY2glMjIlM0JzJTNBMSUzQSUyMjAlMjIlM0JzJTNBNDMlM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9zZW1hbnRpY1VzZVBob25ldGljJTIyJTNCcyUzQTElM0ElMjIwJTIyJTNCcyUzQTQzJTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfc2VtYW50aWNBbGxvd1Z1bGdhciUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0EzMyUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX2NhdFNlYXJjaCUyMiUzQnMlM0ExJTNBJTIyMSUyMiUzQnMlM0EzOCUzQSUyMmQzX2NmZ19tb2RfX3NFeHRTZWFyY2hfc2hvd0NhdEFydGljbGVzJTIyJTNCcyUzQTglM0ElMjJhcnRpbmNhdCUyMiUzQnMlM0EzMCUzQSUyMmQzX2NmZ19tb2RfX2lFeHRTZWFyY2hfY2F0UHJpbyUyMiUzQnMlM0EyJTNBJTIyNTAlMjIlM0JzJTNBNDIlM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9tYW51ZmFjdHVyZXJTZWFyY2glMjIlM0JzJTNBMSUzQSUyMjElMjIlM0JzJTNBMzklM0ElMjJkM19jZmdfbW9kX19pRXh0U2VhcmNoX21hbnVmYWN0dXJlclByaW8lMjIlM0JzJTNBMiUzQSUyMjUwJTIyJTNCcyUzQTM5JTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfc2hvd0NvbnRlbnRMaXN0JTIyJTNCcyUzQTElM0ElMjIxJTIyJTNCcyUzQTQ1JTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfY29udGVudFNlYXJjaExvbmd0ZXh0JTIyJTNCcyUzQTElM0ElMjIwJTIyJTNCcyUzQTM0JTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfbG9nSGl0bGVzcyUyMiUzQnMlM0ExJTNBJTIyMSUyMiUzQnMlM0E0NSUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX2dlbmVyYWxseUxvZ0ZvclNlYXJjaCUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0E0MSUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX2FkbWluU2hvd1ZhcmlhbnRzJTIyJTNCcyUzQTElM0ElMjIxJTIyJTNCcyUzQTM4JTNBJTIyZDNfY2ZnX21vZF9faUV4dFNlYXJjaF9hcnRpY2xlc1BlclRpY2slMjIlM0JzJTNBMiUzQSUyMjEwJTIyJTNCcyUzQTM1JTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfZW1wdHlTZWFyY2glMjIlM0JzJTNBMSUzQSUyMjAlMjIlM0JzJTNBNDMlM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9zaG93SGlnaGxpZ2h0ZWRUZXh0JTIyJTNCcyUzQTElM0ElMjIxJTIyJTNCcyUzQTM3JTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfZ29Ub1VuaXF1ZUhpdCUyMiUzQnMlM0ExJTNBJTIyMSUyMiUzQnMlM0EzNSUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX3Nob3dDYXRMaXN0JTIyJTNCcyUzQTElM0ElMjIxJTIyJTNCcyUzQTM1JTNBJTIyZDNfY2ZnX21vZF9fc0V4dFNlYXJjaF9vcmRlckNhdExpc3QlMjIlM0JzJTNBNyUzQSUyMmNvdW50ZXIlMjIlM0JzJTNBNDIlM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9zaG93T25lSXRlbUNhdExpc3QlMjIlM0JzJTNBMSUzQSUyMjAlMjIlM0JzJTNBMzglM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9zaG93VmVuZG9yTGlzdCUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0EzOCUzQSUyMmQzX2NmZ19tb2RfX3NFeHRTZWFyY2hfb3JkZXJWZW5kb3JMaXN0JTIyJTNCcyUzQTclM0ElMjJjb3VudGVyJTIyJTNCcyUzQTQ1JTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfc2hvd09uZUl0ZW1WZW5kb3JMaXN0JTIyJTNCcyUzQTElM0ElMjIwJTIyJTNCcyUzQTQ0JTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfc2hvd01hbnVmYWN0dXJlckxpc3QlMjIlM0JzJTNBMSUzQSUyMjElMjIlM0JzJTNBNDQlM0ElMjJkM19jZmdfbW9kX19zRXh0U2VhcmNoX29yZGVyTWFudWZhY3R1cmVyTGlzdCUyMiUzQnMlM0E3JTNBJTIyY291bnRlciUyMiUzQnMlM0E1MSUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX3Nob3dPbmVJdGVtTWFudWZhY3R1cmVyTGlzdCUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0E0MSUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX3Nob3dBdHRyaWJ1dGVMaXN0JTIyJTNCcyUzQTElM0ElMjIwJTIyJTNCcyUzQTQxJTNBJTIyZDNfY2ZnX21vZF9fc0V4dFNlYXJjaF9vcmRlckF0dHJpYnV0ZUxpc3QlMjIlM0JzJTNBNyUzQSUyMmNvdW50ZXIlMjIlM0JzJTNBNTUlM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9zaG93Tm9Bc3NpZ25lZEF0dHJpYnV0ZUFydGljbGVzJTIyJTNCcyUzQTElM0ElMjIwJTIyJTNCcyUzQTQxJTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfc2hvd1ByaWNlU2VsZWN0b3IlMjIlM0JzJTNBMSUzQSUyMjElMjIlM0JzJTNBNDElM0ElMjJkM19jZmdfbW9kX19pRXh0U2VhcmNoX3ByaWNlU2VsZWN0b3JJdGVtcyUyMiUzQnMlM0ExJTNBJTIyNSUyMiUzQnMlM0E0NSUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX1ByaWNlU2VsZWN0b3JzUm91bmRlZCUyMiUzQnMlM0ExJTNBJTIyMSUyMiUzQnMlM0E0NSUzQSUyMmQzX2NmZ19tb2RfX3NFeHRTZWFyY2hfUHJpY2VTZWxlY3RvcnNEaXNwVHlwZSUyMiUzQnMlM0E4JTNBJTIyanFzbGlkZXIlMjIlM0JzJTNBMzklM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9zaG93RmlsdGVyUGFyYW0lMjIlM0JzJTNBMSUzQSUyMjElMjIlM0JzJTNBMzklM0ElMjJkM19jZmdfbW9kX19zRXh0U2VhcmNoX2ZpbHRlclBhcmFtRmllbGQlMjIlM0JzJTNBNyUzQSUyMm94dGl0bGUlMjIlM0JzJTNBNDAlM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9lbmFibGVBamF4U2VhcmNoJTIyJTNCcyUzQTElM0ElMjIxJTIyJTNCcyUzQTQ1JTNBJTIyZDNfY2ZnX21vZF9fc0V4dFNlYXJjaF9RdWlja1NlYXJjaE1heEFydGljbGVzJTIyJTNCcyUzQTMlM0ElMjIyMDAlMjIlM0JzJTNBNDklM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9RdWlja1NlYXJjaExvYWRDYXRlZ29yaWVzJTIyJTNCcyUzQTElM0ElMjIxJTIyJTNCcyUzQTUyJTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfUXVpY2tTZWFyY2hMb2FkTWFudWZhY3R1cmVycyUyMiUzQnMlM0ExJTNBJTIyMSUyMiUzQnMlM0E0NiUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX1F1aWNrU2VhcmNoTG9hZFZlbmRvcnMlMjIlM0JzJTNBMSUzQSUyMjElMjIlM0JzJTNBNDYlM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9RdWlja1NlYXJjaExvYWRDb250ZW50JTIyJTNCcyUzQTElM0ElMjIwJTIyJTNCcyUzQTMxJTNBJTIyZDNfY2ZnX21vZF9fYmxFeHRTZWFyY2hfU2hvd0lBUyUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0EzMyUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX1Nob3dQb3B1cCUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0E0OCUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX1ZhcmlhbnRDaGVja1BhcmVudEFjdGl2ZSUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0E0MSUzQSUyMmQzX2NmZ19tb2RfX3NFeHRTZWFyY2hfb3JkZXJCeUFsdGVybmF0aXZlJTIyJTNCcyUzQTclM0ElMjJveHRpdGxlJTIyJTNCcyUzQTQyJTNBJTIyZDNfY2ZnX21vZF9fc0V4dFNlYXJjaF9vcmRlckRpckFsdGVybmF0aXZlJTIyJTNCcyUzQTMlM0ElMjJhc2MlMjIlM0JzJTNBNTAlM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF9lbmFibGVQbHVnaW5Ccm93c2VySW5zdGFsbCUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0E0MCUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX2VuYWJsZVBsdWdpbkxpbmslMjIlM0JzJTNBMSUzQSUyMjAlMjIlM0JzJTNBMzglM0ElMjJkM19jZmdfbW9kX19ibEV4dFNlYXJjaF91c2VBTGlzdEZpbHRlciUyMiUzQnMlM0ExJTNBJTIyMSUyMiUzQnMlM0E0NSUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX3VzZUF0dHJpYnV0ZUNvbWJpbmVPciUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0EzOCUzQSUyMmQzX2NmZ19tb2RfX3NFeHRTZWFyY2hfb3JkZXJBdHRyaWJ1dGVzJTIyJTNCcyUzQTUlM0ElMjJveHBvcyUyMiUzQnMlM0E1MSUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX3VzZUF0dHJpYnV0ZVZhbHVlQ29tYmluZUFuZCUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0E1MSUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX3Nob3dOb3RTZWxlY3RhYmxlQXR0cmlidXRlcyUyMiUzQnMlM0ExJTNBJTIyMCUyMiUzQnMlM0E0OSUzQSUyMmQzX2NmZ19tb2RfX2JsRXh0U2VhcmNoX2FqYXhTZWFyY2hMb2FkRnVsbE9iamVjdHMlMjIlM0JzJTNBMSUzQSUyMjAlMjIlM0IlN0Q='; + + public $sMinModCfgVersion = '5.3.0.0'; + + protected $_aUpdateMethods = array( + array('check' => 'checkModCfgItemExist', + 'do' => 'updateModCfgItemExist'), + array('check' => 'checkRenameFields', + 'do' => 'fixRenameFields'), + array('check' => 'checkIndexRefreshMsg', + 'do' => 'fixIndexRefreshMsg'), + array('check' => 'checkAttribute2ObjectTableExist', + 'do' => 'addAttribute2ObjectTable'), + array('check' => 'checkStatisticTablesExist', + 'do' => 'addStatisticTables'), + array('check' => 'checkSynsetTablesExist', + 'do' => 'addSynsetTables'), + array('check' => 'checkFields', + 'do' => 'fixFields'), + array('check' => 'checkIndizes', + 'do' => 'fixIndizes'), + array('check' => 'checkUnsetSynsetTypes', + 'do' => 'setInitialSynsetTypes'), + array('check' => 'checkContentNoArtItemExist', + 'do' => 'updateContentNoArtItemExist'), + array('check' => 'hasUnregisteredFiles', + 'do' => 'showUnregisteredFiles'), + array('check' => 'checkModCfgSameRevision', + 'do' => 'updateModCfgSameRevision'), + ); + + public $aFields = array( + 'D3_PHONETIC' => array( + 'sTableName' => 'oxartextends', + 'sFieldName' => 'D3_PHONETIC', + 'sType' => 'LONGTEXT', + 'blNull' => false, + 'sDefault' => false, + 'sComment' => 'modExtSearch', + 'sExtra' => '', + 'blMultilang' => true, + ), + 'D3_SEARCHINDEXDATE' => array( + 'sTableName' => 'oxarticles', + 'sFieldName' => 'D3_SEARCHINDEXDATE', + 'sType' => 'DATETIME', + 'blNull' => true, + 'sDefault' => null, + 'sComment' => 'modExtSearch', + 'sExtra' => '', + 'blMultilang' => true, + ), + 'D3PUSH' => array( + 'sTableName' => 'oxarticles', + 'sFieldName' => 'D3PUSH', + 'sType' => 'TINYINT(1)', + 'blNull' => false, + 'sDefault' => '1', + 'sComment' => 'search sort criteria', + 'sExtra' => '', + 'blMultilang' => false, + ), + 'D3ISSEARCHABLE' => array( + 'sTableName' => 'oxcontents', + 'sFieldName' => 'D3ISSEARCHABLE', + 'sType' => 'TINYINT(1)', + 'blNull' => false, + 'sDefault' => '0', + 'sComment' => 'modExtSearch', + 'sExtra' => '', + 'blMultilang' => false, + ), + 'D3NOTUSE4FILTER' => array( + 'sTableName' => 'oxattribute', + 'sFieldName' => 'D3NOTUSE4FILTER', + 'sType' => 'TINYINT(1)', + 'blNull' => false, + 'sDefault' => '0', + 'sComment' => 'attrib use in extsearch', + 'sExtra' => '', + 'blMultilang' => false, + ), + 'D3USECORRESPONDINGVALUES' => array( + 'sTableName' => 'oxattribute', + 'sFieldName' => 'D3USECORRESPONDINGVALUES', + 'sType' => 'TINYINT(1)', + 'blNull' => false, + 'sDefault' => '0', + 'sComment' => 'use synonyms in extsearch', + 'sExtra' => '', + 'blMultilang' => false, + ), + 'D3NOTUSE4FILTERCAT' => array( + 'sTableName' => 'oxcategories', + 'sFieldName' => 'D3NOTUSE4FILTER', + 'sType' => 'TINYINT(1)', + 'blNull' => false, + 'sDefault' => '0', + 'sComment' => 'category use in extsearch', + 'sExtra' => '', + 'blMultilang' => false, + ), + ); + + public $aIndizes = array(); + + public $aRenameFields = array( + 'D3_PHONETIC' => array( + 'sTableName' => 'oxarticles', + 'mOldFieldNames' => array('d3_phonetic'), // is case sensitive + 'sFieldName' => 'D3_PHONETIC', + 'blMultilang' => true, + ), + 'D3_SEARCHINDEXDATE' => array( + 'sTableName' => 'oxarticles', + 'mOldFieldNames' => array('d3_searchIndexDate'), // is case sensitive + 'sFieldName' => 'D3_SEARCHINDEXDATE', + 'blMultilang' => true, + ), + 'D3PUSH' => array( + 'sTableName' => 'oxarticles', + 'mOldFieldNames' => array('d3push'), // is case sensitive + 'sFieldName' => 'D3PUSH', + 'blMultilang' => false, + ), + 'D3NOTUSE4FILTER' => array( + 'sTableName' => 'oxattribute', + 'mOldFieldNames' => array('d3notuse4filter'), // is case sensitive + 'sFieldName' => 'D3NOTUSE4FILTER', + 'blMultilang' => false, + ), + ); + + public $aSemanticTables = array(); + public $aStatisticTables = array(); + + public $aOldModuleFiles = array( + 'd3/d3_extsearch/models/d3_extsearch_update.php', + ); + + protected $_aRefreshMetaModuleIds = array('d3_extsearch'); + + /** + * constructor + */ + public function __construct() + { + require('d3_extsearch_semanticstructure.php'); + require('d3_extsearch_statisticlog.php'); + require('d3_extsearch_attribute2object.php'); + + parent::__construct(); + } + + /** + * @return bool + */ + public function checkIndexRefreshMsg() + { + if (Registry::getSession()->getVariable('checkIndexRefreshMsg')) { + return true; + } + + return false; + } + + /** + * @return bool + */ + public function fixIndexRefreshMsg() + { + $blRet = true; + + if (Registry::getSession()->getVariable('checkIndexRefreshMsg')) { + Registry::getSession()->setVariable('checkIndexRefreshMsg', false); + $this->_confirmMessage('D3_EXTSEARCH_UPDATE_GENPHONETIC'); + } + + return $blRet; + } + + /** + * @return bool + * @throws DBALException + * @throws DatabaseConnectionException + */ + public function checkContentNoArtItemExist() + { + $blRet = false; + foreach ($this->getShopList() as $oShop) { + /** @var $oShop Shop */ + $aWhere = array( + 'oxloadid' => 'd3extsearch_noarticlefound', + 'oxshopid' => $oShop->getId(), + ); + + $blRet = $this->_checkTableItemNotExist('oxcontents', $aWhere); + + if ($blRet) { + return $blRet; + } + } + + return $blRet; + } + + /** + * @return bool + * @throws DBALException + * @throws DatabaseConnectionException + * @throws ConnectionException + * @throws DatabaseErrorException + */ + public function updateContentNoArtItemExist() + { + $blRet = false; + + foreach ($this->getShopList() as $oShop) { + /** @var $oShop Shop */ + $aWhere = array( + 'oxloadid' => 'd3extsearch_noarticlefound', + 'oxshopid' => $oShop->getId(), + ); + + if ($this->_checkTableItemNotExist('oxcontents', $aWhere)) { + $aWhere = array(); + $aInsertFields = array( + array ( + 'fieldname' => 'OXID', + 'content' => "md5('d3extsearch_noarticlefound " . $oShop->getId() . "')", + 'force_update' => true, + 'use_quote' => false, + ), + array ( + 'fieldname' => 'OXLOADID', + 'content' => "d3extsearch_noarticlefound", + 'force_update' => true, + 'use_quote' => true, + ), + array ( + 'fieldname' => 'OXSHOPID', + 'content' => $oShop->getId(), + 'force_update' => true, + 'use_quote' => true, + ), + array ( + 'fieldname' => 'OXSNIPPET', + 'content' => "1", + 'force_update' => true, + 'use_quote' => true, + ), + array ( + 'fieldname' => 'OXTYPE', + 'content' => "0", + 'force_update' => true, + 'use_quote' => true, + ), + array ( + 'fieldname' => 'OXACTIVE', + 'content' => "1", + 'force_update' => false, + 'use_quote' => true, + 'use_multilang' => true, + ), + array ( + 'fieldname' => 'OXPOSITION', + 'content' => "", + 'force_update' => true, + 'use_quote' => true, + ), + array ( + 'fieldname' => $this->_getLangAbbrFieldName('oxcontents', 'OXTITLE', 'de'), + 'content' => "Leider wurden keine Artikel gefunden", + 'force_update' => false, + 'use_quote' => true, + 'use_multilang' => true, + ), + array ( + 'fieldname' => 'OXCONTENT', + 'content' => "

Versuchen Sie es mit einem anderen Suchbegriff, einer anderen ". + "Schreibweise oder anderen Filtern bitte noch einmal.

Erhalten Sie dennoch keine ". + "Ergebnisse, kontaktieren Sie uns bitte ". + "getSelfLink()|cat:\"cl=contact\"}]\">hier.". + "


", + 'force_update' => false, + 'use_quote' => true, + 'use_multilang' => true, + ), + array ( + 'fieldname' => $this->_getLangAbbrFieldName('oxcontents', 'OXTITLE', 'en'), + 'content' => "Sorry, no items were found.", + 'force_update' => false, + 'use_quote' => true, + ), + array ( + 'fieldname' => 'OXCATID', + 'content' => "kgo83a794223bfd23cbb091d0a34019d", + 'force_update' => true, + 'use_quote' => true, + ), + array ( + 'fieldname' => 'OXFOLDER', + 'content' => "CMSFOLDER_USERINFO", + 'force_update' => true, + 'use_quote' => true, + ), + ); + + $this->setInitialExecMethod(__METHOD__); + $blRet = $this->_updateTableItem2('oxcontents', $aInsertFields, $aWhere); + + if ($this->getStepByStepMode()) { + break; + } + } + } + + return $blRet; + } + + /** + * @return bool true, if table is missing + * @throws DBALException + * @throws DatabaseConnectionException + * @throws DatabaseErrorException + */ + public function checkStatisticTablesExist() + { + foreach ($this->aStatisticTables as $aStatisticTable) { + if (($blRet = $this->_checkTableNotExist($aStatisticTable['sName']))) { + return $blRet; + }; + } + + return false; + } + + /** + * @return bool + * @throws ConnectionException + * @throws DBALException + * @throws DatabaseConnectionException + * @throws DatabaseErrorException + */ + public function addStatisticTables() + { + $this->setInitialExecMethod(__METHOD__); + + $blDoRet = false; + foreach ($this->aStatisticTables as $aStatisticTable) { + if ($this->_checkTableNotExist($aStatisticTable['sName'])) { + if ($this->hasExecute()) { + $iCount = $this->getUpdateStepCount(); + Registry::getSession()->setVariable('iD3UpdatebaseCount', $iCount + 1); + } + + $blDoRet = $this->_addTable2( + $aStatisticTable['sName'], + $this->aFields, + $this->aIndizes, + $aStatisticTable['sComment'], + $aStatisticTable['sType'] + ); + + if ($this->getUpdateBreak() || false == $blDoRet) { + return $blDoRet; + } + } + } + + return $blDoRet; + } + + /** + * @return bool true, if table is missing + * @return bool + * @throws DBALException + * @throws DatabaseConnectionException + * @throws DatabaseErrorException + */ + public function checkAttribute2ObjectTableExist() + { + return $this->_checkTableNotExist('d3extsearch_attribute2object'); + } + + /** + * @return bool + * @return bool + * @throws ConnectionException + * @throws DBALException + * @throws DatabaseConnectionException + * @throws DatabaseErrorException + */ + public function addAttribute2ObjectTable() + { + $this->setInitialExecMethod(__METHOD__); + + $blDoRet = false; + if ($this->checkAttribute2ObjectTableExist()) { + if ($this->hasExecute()) { + $iCount = $this->getUpdateStepCount(); + Registry::getSession()->setVariable('iD3UpdatebaseCount', $iCount + 1); + } + + $blDoRet = $this->_addTable2( + 'd3extsearch_attribute2object', + $this->aFields, + $this->aIndizes, + 'Shows many-to-many relationship between attributes and objects (table determined by oxtype)', + 'InnoDb' + ); + } + + return $blDoRet; + } + + /** + * @return bool true, if table is missing + * @throws DBALException + * @throws DatabaseConnectionException + * @throws DatabaseErrorException + */ + public function checkSynsetTablesExist() + { + foreach ($this->aSemanticTables as $aSemanticTable) { + if (($blRet = $this->_checkTableNotExist($aSemanticTable['sName']))) { + return $blRet; + }; + } + + return false; + } + + /** + * @return bool + * @throws ConnectionException + * @throws DBALException + * @throws DatabaseConnectionException + * @throws DatabaseErrorException + */ + public function addSynsetTables() + { + $this->setInitialExecMethod(__METHOD__); + + $blDoRet = false; + foreach ($this->aSemanticTables as $aSemanticTable) { + if ($this->_checkTableNotExist($aSemanticTable['sName'])) { + + if ($this->hasExecute()) { + $iCount = $this->getUpdateStepCount(); + Registry::getSession()->setVariable('iD3UpdatebaseCount', $iCount + 1); + } + + $blDoRet = $this->_addTable2( + $aSemanticTable['sName'], + $this->aFields, + $this->aIndizes, + $aSemanticTable['sComment'], + $aSemanticTable['sType'] + ); + + if ($this->getUpdateBreak() || false == $blDoRet) { + return $blDoRet; + } + } + } + + return $blDoRet; + } + + /** + * @return bool // true, if there are unassigned synsets + * @throws DatabaseConnectionException + */ + public function checkUnsetSynsetTypes() + { + $iUnassigned = (int) $this->getDb()->getOne( + "SELECT count(*) FROM `".oxNew(d3_extsearch_synset::class)->getCoreTableName()."` WHERE 1 IN (`USEFORTERMS`, `USEFORATTRIBUTES`)" + ); + $iTotal = (int) $this->getDb()->getOne( + "SELECT count(*) FROM `".oxNew(d3_extsearch_synset::class)->getCoreTableName()."` WHERE 1" + ); + + return !$iUnassigned && $iTotal; + } + + /** + * @return bool + * @throws DatabaseConnectionException + * @throws DatabaseErrorException + */ + public function setInitialSynsetTypes() + { + if ($this->checkUnsetSynsetTypes()) { + $sQuery = "UPDATE `" . oxNew(d3_extsearch_synset::class)->getCoreTableName() . "` SET USEFORTERMS = 1 WHERE 1;"; + + if ($this->hasExecute()) { + try { + $this->getDb()->execute($sQuery); + } catch (PDOException $exception) { + if ($exception->errorInfo[1]) { + $this->setErrorMessage($exception->errorInfo[2]); + } + } + } + + $this->setUpdateBreak(false); + + if ($sQuery) { + $this->setActionLog('SQL', $sQuery, __METHOD__); + } + } + + return true; + } + + /** + * @return bool + * @throws DBALException + * @throws DatabaseConnectionException + * @throws DatabaseErrorException + * @throws StandardException + * @throws ReflectionException + * @throws d3ParameterNotFoundException + * @throws d3ShopCompatibilityAdapterException + * @throws d3_cfg_mod_exception + */ + public function hasUnregisteredFiles() + { + return $this->_hasUnregisteredFiles('d3_extsearch', array('blocks', 'd3FileRegister')); + } + + /** + * @return bool + * @throws DBALException + * @throws DatabaseConnectionException + * @throws DatabaseErrorException + * @throws StandardException + * @throws ReflectionException + * @throws d3ShopCompatibilityAdapterException + * @throws d3_cfg_mod_exception + */ + public function showUnregisteredFiles() + { + return $this->_showUnregisteredFiles('d3_extsearch', array('blocks', 'd3FileRegister')); + } +}