From bcda84924e64366f9506a74c539986766cd523fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bjo=CC=88rn=20Fromme?= Date: Fri, 13 Sep 2019 17:58:55 +0200 Subject: [PATCH] Implement plugin for booking link page rendering --- config/sites/ep-reisen/config.yaml | 18 ++ .../TCA/Overrides/tt_content.php | 6 + .../tx_epproducts_domain_model_product.php | 22 +- .../ext/ep_products/ext_localconf.php | 11 + .../typo3conf/ext/ep_products/ext_tables.sql | 1 + .../DataProcessing/ContextProcessor.php | 18 +- .../Configuration/TCA/Overrides/pages.php | 11 +- public/typo3conf/ext/ep_theme/ext_tables.sql | 275 +++++++++--------- 8 files changed, 217 insertions(+), 145 deletions(-) diff --git a/config/sites/ep-reisen/config.yaml b/config/sites/ep-reisen/config.yaml index 4fc3b199..6733199d 100644 --- a/config/sites/ep-reisen/config.yaml +++ b/config/sites/ep-reisen/config.yaml @@ -120,6 +120,24 @@ routeEnhancers: type: PersistedAliasMapper tableName: tx_epproducts_domain_model_hotel routeFieldName: uid + BookingLinkPlugin: + type: Extbase + extension: EpProducts + plugin: booking_link + limitToPages: + - 1787 + routes: + - + routePath: '/{product}' + _controller: 'Product::detail' + _arguments: + product: product + defaultController: 'Product::detail' + aspects: + product: + type: PersistedAliasMapper + tableName: tx_epproducts_domain_model_product + routeFieldName: path_segment SearchResultPlugin: type: Extbase extension: EpProducts diff --git a/public/typo3conf/ext/ep_products/Configuration/TCA/Overrides/tt_content.php b/public/typo3conf/ext/ep_products/Configuration/TCA/Overrides/tt_content.php index c69a73b4..0b9c6340 100644 --- a/public/typo3conf/ext/ep_products/Configuration/TCA/Overrides/tt_content.php +++ b/public/typo3conf/ext/ep_products/Configuration/TCA/Overrides/tt_content.php @@ -29,6 +29,12 @@ call_user_func(function () { 'Produktdetails' ); + \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin( + 'EP.EpProducts', + 'booking_link', + 'Buchungslink' + ); + \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin( 'EP.EpProducts', 'product_teasergroup', diff --git a/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_product.php b/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_product.php index b653dda6..3851f7a4 100644 --- a/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_product.php +++ b/public/typo3conf/ext/ep_products/Configuration/TCA/tx_epproducts_domain_model_product.php @@ -28,7 +28,7 @@ return [ concept_description, board_description, additional_services, programme_description, ski_pass_description, rating_average, rating_votes_count, teaser_images, header_images, images, concept, country, region, city, journey, facts, officetip, hotels, calendar_hotel, faqs,header_title,header_subtitle, alt_product, alt_label, - video, banner, additional_regions, badge, daytrip, testimonials, external_link', + video, banner, additional_regions, badge, daytrip, testimonials, external_link, path_segment', ], 'types' => [ '1' => [ @@ -45,7 +45,7 @@ return [ 'palettes' => [ 'destinations' => ['showitem' => 'country,region,city'], 'top' => ['showitem' => 'searchable, bookable, daytrip, important, skipass_included, detail_page, - external_link'], + external_link, path_segment'], 'name' => ['showitem' => 'name,code'], 'alternative' => ['showitem' => 'alt_product, alt_label'], 'header' => ['showitem' => 'headline,subline,--linebreak--,header_title,header_subtitle'], @@ -806,6 +806,22 @@ return [ 'type' => 'input', 'eval' => 'trim', ] - ] + ], + 'path_segment' => [ + 'exclude' => 0, + 'label' => 'Buchungslink URL', + 'config' => [ + 'type' => 'slug', + 'generatorOptions' => [ + 'fields' => ['name'], + 'prefixParentPageSlug' => false, + 'replacements' => [ + '/' => '-', + ], + ], + 'fallbackCharacter' => '-', + 'eval' => 'uniqueInSite', + ], + ], ], ]; diff --git a/public/typo3conf/ext/ep_products/ext_localconf.php b/public/typo3conf/ext/ep_products/ext_localconf.php index 384126c2..055f9900 100644 --- a/public/typo3conf/ext/ep_products/ext_localconf.php +++ b/public/typo3conf/ext/ep_products/ext_localconf.php @@ -80,6 +80,17 @@ $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][\EP\EpProducts\T ] ); +\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( + 'EP.' . $_EXTKEY, + 'booking_link', + [ + 'Product' => 'detail,hotelList', + ], + [ + 'Product' => '', + ] +); + \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( 'EP.' . $_EXTKEY, 'product_teasergroup', diff --git a/public/typo3conf/ext/ep_products/ext_tables.sql b/public/typo3conf/ext/ep_products/ext_tables.sql index d66cfc6a..0a780714 100644 --- a/public/typo3conf/ext/ep_products/ext_tables.sql +++ b/public/typo3conf/ext/ep_products/ext_tables.sql @@ -22,6 +22,7 @@ CREATE TABLE tx_epproducts_domain_model_product bus_pro_id int(11) unsigned NOT NULL default '0', detail_page varchar(255) DEFAULT '' NOT NULL, external_link varchar(255) DEFAULT '' NOT NULL, + path_segment varchar(255) DEFAULT '' NOT NULL, description text NOT NULL, teaser text NOT NULL, teaser_long text NOT NULL, diff --git a/public/typo3conf/ext/ep_theme/Classes/DataProcessing/ContextProcessor.php b/public/typo3conf/ext/ep_theme/Classes/DataProcessing/ContextProcessor.php index 53293e8e..c21a0aa4 100644 --- a/public/typo3conf/ext/ep_theme/Classes/DataProcessing/ContextProcessor.php +++ b/public/typo3conf/ext/ep_theme/Classes/DataProcessing/ContextProcessor.php @@ -63,13 +63,17 @@ class ContextProcessor implements DataProcessorInterface if ($regionUid > 0) { $processedData['context']['region'] = $this->getContextRecord($regionUid, 'tx_epproducts_domain_model_region'); } - $resellerData = $this->getResellerData(); - if ($resellerData) { - $processedData['context']['paCode'] = $resellerData['paCode']; - } elseif ($paCode = $this->getPaCodeFromRequest()) { - $processedData['context']['paCode'] = $paCode; - } elseif ($cookieData = CookieUtility::getPaCookie()) { - $processedData['context']['paCode'] = $cookieData; + if ($data['tx_eptheme_context_pacode']) { + $processedData['context']['paCode'] = $data['tx_eptheme_context_pacode']; + } else { + $resellerData = $this->getResellerData(); + if ($resellerData) { + $processedData['context']['paCode'] = $resellerData['paCode']; + } elseif ($paCode = $this->getPaCodeFromRequest()) { + $processedData['context']['paCode'] = $paCode; + } elseif ($cookieData = CookieUtility::getPaCookie()) { + $processedData['context']['paCode'] = $cookieData; + } } return $processedData; diff --git a/public/typo3conf/ext/ep_theme/Configuration/TCA/Overrides/pages.php b/public/typo3conf/ext/ep_theme/Configuration/TCA/Overrides/pages.php index 82e99923..8698471c 100644 --- a/public/typo3conf/ext/ep_theme/Configuration/TCA/Overrides/pages.php +++ b/public/typo3conf/ext/ep_theme/Configuration/TCA/Overrides/pages.php @@ -5,6 +5,15 @@ defined('TYPO3_MODE') or die(); call_user_func(function() { $temporaryColumns = [ + 'tx_eptheme_context_pacode' => [ + 'exclude' => 0, + 'label' => 'PA Code für diese Seite', + 'config' => [ + 'type' => 'input', + 'size' => 8, + 'eval' => 'trim', + ], + ], 'tx_eptheme_context_country_code' => [ 'config' => [ 'type' => 'passthrough' @@ -101,7 +110,7 @@ call_user_func(function() { \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes( 'pages', '--div--;Kontext, - tx_eptheme_context_country,tx_eptheme_context_region, + tx_eptheme_context_pacode,tx_eptheme_context_country,tx_eptheme_context_region, tx_eptheme_hide_searchbar,tx_eptheme_bodyclass, --div--;Slider, tx_eptheme_slides, diff --git a/public/typo3conf/ext/ep_theme/ext_tables.sql b/public/typo3conf/ext/ep_theme/ext_tables.sql index 75ed7f3b..f6020482 100644 --- a/public/typo3conf/ext/ep_theme/ext_tables.sql +++ b/public/typo3conf/ext/ep_theme/ext_tables.sql @@ -2,169 +2,176 @@ # # Table structure for table 'tx_eptheme_domain_model_slider' # -CREATE TABLE tx_eptheme_domain_model_slide ( +CREATE TABLE tx_eptheme_domain_model_slide +( - uid int(11) NOT NULL auto_increment, - pid int(11) DEFAULT '0' NOT NULL, + uid int(11) NOT NULL auto_increment, + pid int(11) DEFAULT '0' NOT NULL, - headline varchar(255) DEFAULT '' NOT NULL, - subline varchar(255) DEFAULT '' NOT NULL, - button varchar(255) DEFAULT '' NOT NULL, - page_uid varchar(255) DEFAULT '' NOT NULL, - image int(11) unsigned NOT NULL default '0', - page int(11) unsigned DEFAULT '0', - sorting int(11) unsigned DEFAULT '0' NOT NULL, + headline varchar(255) DEFAULT '' NOT NULL, + subline varchar(255) DEFAULT '' NOT NULL, + button varchar(255) DEFAULT '' NOT NULL, + page_uid varchar(255) DEFAULT '' NOT NULL, + image int(11) unsigned NOT NULL default '0', + page int(11) unsigned DEFAULT '0', + sorting int(11) unsigned DEFAULT '0' NOT NULL, - tstamp int(11) unsigned DEFAULT '0' NOT NULL, - crdate int(11) unsigned DEFAULT '0' NOT NULL, - cruser_id int(11) unsigned DEFAULT '0' NOT NULL, - deleted tinyint(4) unsigned DEFAULT '0' NOT NULL, - hidden tinyint(4) unsigned DEFAULT '0' NOT NULL, - starttime int(11) unsigned DEFAULT '0' NOT NULL, - endtime int(11) unsigned DEFAULT '0' NOT NULL, + tstamp int(11) unsigned DEFAULT '0' NOT NULL, + crdate int(11) unsigned DEFAULT '0' NOT NULL, + cruser_id int(11) unsigned DEFAULT '0' NOT NULL, + deleted tinyint(4) unsigned DEFAULT '0' NOT NULL, + hidden tinyint(4) unsigned DEFAULT '0' NOT NULL, + starttime int(11) unsigned DEFAULT '0' NOT NULL, + endtime int(11) unsigned DEFAULT '0' NOT NULL, - t3ver_oid int(11) DEFAULT '0' NOT NULL, - t3ver_id int(11) DEFAULT '0' NOT NULL, - t3ver_wsid int(11) DEFAULT '0' NOT NULL, - t3ver_label varchar(255) DEFAULT '' NOT NULL, - t3ver_state tinyint(4) DEFAULT '0' NOT NULL, - t3ver_stage int(11) DEFAULT '0' NOT NULL, - t3ver_count int(11) DEFAULT '0' NOT NULL, - t3ver_tstamp int(11) DEFAULT '0' NOT NULL, - t3ver_move_id int(11) DEFAULT '0' NOT NULL, + t3ver_oid int(11) DEFAULT '0' NOT NULL, + t3ver_id int(11) DEFAULT '0' NOT NULL, + t3ver_wsid int(11) DEFAULT '0' NOT NULL, + t3ver_label varchar(255) DEFAULT '' NOT NULL, + t3ver_state tinyint(4) DEFAULT '0' NOT NULL, + t3ver_stage int(11) DEFAULT '0' NOT NULL, + t3ver_count int(11) DEFAULT '0' NOT NULL, + t3ver_tstamp int(11) DEFAULT '0' NOT NULL, + t3ver_move_id int(11) DEFAULT '0' NOT NULL, - sys_language_uid int(11) DEFAULT '0' NOT NULL, - l10n_parent int(11) DEFAULT '0' NOT NULL, - l10n_diffsource mediumblob, + sys_language_uid int(11) DEFAULT '0' NOT NULL, + l10n_parent int(11) DEFAULT '0' NOT NULL, + l10n_diffsource mediumblob, - PRIMARY KEY (uid), - KEY parent (pid), - KEY t3ver_oid (t3ver_oid,t3ver_wsid), - KEY language (l10n_parent,sys_language_uid) + PRIMARY KEY (uid), + KEY parent (pid), + KEY t3ver_oid (t3ver_oid, t3ver_wsid), + KEY language (l10n_parent, sys_language_uid) ); # # Table structure for table 'tx_eptheme_domain_model_lineup' # -CREATE TABLE tx_eptheme_domain_model_lineup ( +CREATE TABLE tx_eptheme_domain_model_lineup +( - uid int(11) NOT NULL auto_increment, - pid int(11) DEFAULT '0' NOT NULL, + uid int(11) NOT NULL auto_increment, + pid int(11) DEFAULT '0' NOT NULL, - name varchar(255) DEFAULT '' NOT NULL, - description text NOT NULL, - image int(11) unsigned NOT NULL default '0', - facebook_url varchar(255) DEFAULT '' NOT NULL, - twitter_url varchar(255) DEFAULT '' NOT NULL, - instagram_url varchar(255) DEFAULT '' NOT NULL, - youtube_url varchar(255) DEFAULT '' NOT NULL, - sorting int(11) unsigned DEFAULT '0' NOT NULL, - tt_content int(11) unsigned DEFAULT '0' NOT NULL, + name varchar(255) DEFAULT '' NOT NULL, + description text NOT NULL, + image int(11) unsigned NOT NULL default '0', + facebook_url varchar(255) DEFAULT '' NOT NULL, + twitter_url varchar(255) DEFAULT '' NOT NULL, + instagram_url varchar(255) DEFAULT '' NOT NULL, + youtube_url varchar(255) DEFAULT '' NOT NULL, + sorting int(11) unsigned DEFAULT '0' NOT NULL, + tt_content int(11) unsigned DEFAULT '0' NOT NULL, - tstamp int(11) unsigned DEFAULT '0' NOT NULL, - crdate int(11) unsigned DEFAULT '0' NOT NULL, - cruser_id int(11) unsigned DEFAULT '0' NOT NULL, - deleted tinyint(4) unsigned DEFAULT '0' NOT NULL, - hidden tinyint(4) unsigned DEFAULT '0' NOT NULL, - starttime int(11) unsigned DEFAULT '0' NOT NULL, - endtime int(11) unsigned DEFAULT '0' NOT NULL, + tstamp int(11) unsigned DEFAULT '0' NOT NULL, + crdate int(11) unsigned DEFAULT '0' NOT NULL, + cruser_id int(11) unsigned DEFAULT '0' NOT NULL, + deleted tinyint(4) unsigned DEFAULT '0' NOT NULL, + hidden tinyint(4) unsigned DEFAULT '0' NOT NULL, + starttime int(11) unsigned DEFAULT '0' NOT NULL, + endtime int(11) unsigned DEFAULT '0' NOT NULL, - t3ver_oid int(11) DEFAULT '0' NOT NULL, - t3ver_id int(11) DEFAULT '0' NOT NULL, - t3ver_wsid int(11) DEFAULT '0' NOT NULL, - t3ver_label varchar(255) DEFAULT '' NOT NULL, - t3ver_state tinyint(4) DEFAULT '0' NOT NULL, - t3ver_stage int(11) DEFAULT '0' NOT NULL, - t3ver_count int(11) DEFAULT '0' NOT NULL, - t3ver_tstamp int(11) DEFAULT '0' NOT NULL, - t3ver_move_id int(11) DEFAULT '0' NOT NULL, + t3ver_oid int(11) DEFAULT '0' NOT NULL, + t3ver_id int(11) DEFAULT '0' NOT NULL, + t3ver_wsid int(11) DEFAULT '0' NOT NULL, + t3ver_label varchar(255) DEFAULT '' NOT NULL, + t3ver_state tinyint(4) DEFAULT '0' NOT NULL, + t3ver_stage int(11) DEFAULT '0' NOT NULL, + t3ver_count int(11) DEFAULT '0' NOT NULL, + t3ver_tstamp int(11) DEFAULT '0' NOT NULL, + t3ver_move_id int(11) DEFAULT '0' NOT NULL, - sys_language_uid int(11) DEFAULT '0' NOT NULL, - l10n_parent int(11) DEFAULT '0' NOT NULL, - l10n_diffsource mediumblob, + sys_language_uid int(11) DEFAULT '0' NOT NULL, + l10n_parent int(11) DEFAULT '0' NOT NULL, + l10n_diffsource mediumblob, - PRIMARY KEY (uid), - KEY parent (pid), - KEY t3ver_oid (t3ver_oid,t3ver_wsid), - KEY language (l10n_parent,sys_language_uid) + PRIMARY KEY (uid), + KEY parent (pid), + KEY t3ver_oid (t3ver_oid, t3ver_wsid), + KEY language (l10n_parent, sys_language_uid) ); -CREATE TABLE pages ( - tx_eptheme_context_country_code char(2) DEFAULT '', - tx_eptheme_context_country int(11) unsigned DEFAULT '0', - tx_eptheme_context_region int(11) unsigned DEFAULT '0', - tx_eptheme_context_concept int(11) unsigned DEFAULT '0', - tx_eptheme_context_product int(11) unsigned DEFAULT '0', - tx_eptheme_hide_searchbar tinyint(4) unsigned DEFAULT '0' NOT NULL, - tx_eptheme_bodyclass varchar(255) DEFAULT '' NOT NULL, - tx_eptheme_slides int(11) unsigned DEFAULT '0', - tx_eptheme_badge int(11) unsigned DEFAULT '0' +CREATE TABLE pages +( + tx_eptheme_context_pacode char(8) DEFAULT '', + tx_eptheme_context_country_code char(2) DEFAULT '', + tx_eptheme_context_country int(11) unsigned DEFAULT '0', + tx_eptheme_context_region int(11) unsigned DEFAULT '0', + tx_eptheme_context_concept int(11) unsigned DEFAULT '0', + tx_eptheme_context_product int(11) unsigned DEFAULT '0', + tx_eptheme_hide_searchbar tinyint(4) unsigned DEFAULT '0' NOT NULL, + tx_eptheme_bodyclass varchar(255) DEFAULT '' NOT NULL, + tx_eptheme_slides int(11) unsigned DEFAULT '0', + tx_eptheme_badge int(11) unsigned DEFAULT '0' ); -CREATE TABLE pages_language_overlay ( - tx_eptheme_context_country_code char(2) DEFAULT '', - tx_eptheme_context_country int(11) unsigned DEFAULT '0', - tx_eptheme_context_region int(11) unsigned DEFAULT '0', - tx_eptheme_context_concept int(11) unsigned DEFAULT '0', - tx_eptheme_context_product int(11) unsigned DEFAULT '0', - tx_eptheme_hide_searchbar tinyint(4) unsigned DEFAULT '0' NOT NULL, - tx_eptheme_bodyclass varchar(255) DEFAULT '' NOT NULL, - tx_eptheme_slides int(11) unsigned DEFAULT '0', - tx_eptheme_badge int(11) unsigned DEFAULT '0' +CREATE TABLE pages_language_overlay +( + tx_eptheme_context_country_code char(2) DEFAULT '', + tx_eptheme_context_country int(11) unsigned DEFAULT '0', + tx_eptheme_context_region int(11) unsigned DEFAULT '0', + tx_eptheme_context_concept int(11) unsigned DEFAULT '0', + tx_eptheme_context_product int(11) unsigned DEFAULT '0', + tx_eptheme_hide_searchbar tinyint(4) unsigned DEFAULT '0' NOT NULL, + tx_eptheme_bodyclass varchar(255) DEFAULT '' NOT NULL, + tx_eptheme_slides int(11) unsigned DEFAULT '0', + tx_eptheme_badge int(11) unsigned DEFAULT '0' ); -CREATE TABLE tt_content ( - tx_eptheme_context_country int(11) unsigned DEFAULT '0', - tx_eptheme_context_region int(11) unsigned DEFAULT '0', - tx_eptheme_context_city int(11) unsigned DEFAULT '0', - tx_eptheme_context_hotel int(11) unsigned DEFAULT '0', - tx_eptheme_context_concept int(11) unsigned DEFAULT '0', - tx_eptheme_context_product int(11) unsigned DEFAULT '0', - tx_eptheme_context_date_from int(11) unsigned DEFAULT '0' NOT NULL, - tx_eptheme_context_date_to int(11) unsigned DEFAULT '0' NOT NULL, - tx_eptheme_lineup int(11) unsigned DEFAULT '0', - tx_eptheme_contact int(11) unsigned DEFAULT '0', - button varchar(255) DEFAULT '' NOT NULL +CREATE TABLE tt_content +( + tx_eptheme_context_country int(11) unsigned DEFAULT '0', + tx_eptheme_context_region int(11) unsigned DEFAULT '0', + tx_eptheme_context_city int(11) unsigned DEFAULT '0', + tx_eptheme_context_hotel int(11) unsigned DEFAULT '0', + tx_eptheme_context_concept int(11) unsigned DEFAULT '0', + tx_eptheme_context_product int(11) unsigned DEFAULT '0', + tx_eptheme_context_date_from int(11) unsigned DEFAULT '0' NOT NULL, + tx_eptheme_context_date_to int(11) unsigned DEFAULT '0' NOT NULL, + tx_eptheme_lineup int(11) unsigned DEFAULT '0', + tx_eptheme_contact int(11) unsigned DEFAULT '0', + button varchar(255) DEFAULT '' NOT NULL ); -CREATE TABLE tx_eptheme_domain_model_addresscheck ( - uid int(11) NOT NULL auto_increment, - pid int(11) DEFAULT '0' NOT NULL, - tstamp int(11) DEFAULT '0' NOT NULL, - crdate int(11) DEFAULT '0' NOT NULL, - cruser_id int(11) DEFAULT '0' NOT NULL, - deleted tinyint(3) DEFAULT '0', - hidden tinyint(4) DEFAULT '0' NOT NULL, +CREATE TABLE tx_eptheme_domain_model_addresscheck +( + uid int(11) NOT NULL auto_increment, + pid int(11) DEFAULT '0' NOT NULL, + tstamp int(11) DEFAULT '0' NOT NULL, + crdate int(11) DEFAULT '0' NOT NULL, + cruser_id int(11) DEFAULT '0' NOT NULL, + deleted tinyint(3) DEFAULT '0', + hidden tinyint(4) DEFAULT '0' NOT NULL, - name tinytext, - first_name tinytext, - last_name tinytext, - customer_id varchar(255) DEFAULT '' NOT NULL, - title varchar(255) DEFAULT '' NOT NULL, - email varchar(255) DEFAULT '' NOT NULL, - address tinytext, - city varchar(255) DEFAULT '' NOT NULL, - zip varchar(20) DEFAULT '' NOT NULL, - country varchar(128) DEFAULT '' NOT NULL, + name tinytext, + first_name tinytext, + last_name tinytext, + customer_id varchar(255) DEFAULT '' NOT NULL, + title varchar(255) DEFAULT '' NOT NULL, + email varchar(255) DEFAULT '' NOT NULL, + address tinytext, + city varchar(255) DEFAULT '' NOT NULL, + zip varchar(20) DEFAULT '' NOT NULL, + country varchar(128) DEFAULT '' NOT NULL, - no_postal tinyint(4) DEFAULT '0' NOT NULL, - no_email tinyint(4) DEFAULT '0' NOT NULL, - address_current tinyint(4) DEFAULT '0' NOT NULL, + no_postal tinyint(4) DEFAULT '0' NOT NULL, + no_email tinyint(4) DEFAULT '0' NOT NULL, + address_current tinyint(4) DEFAULT '0' NOT NULL, - t3ver_oid int(11) DEFAULT '0' NOT NULL, - t3ver_id int(11) DEFAULT '0' NOT NULL, - t3ver_wsid int(11) DEFAULT '0' NOT NULL, - t3ver_label varchar(30) DEFAULT '' NOT NULL, - t3ver_state tinyint(4) DEFAULT '0' NOT NULL, - t3ver_stage tinyint(4) DEFAULT '0' NOT NULL, - t3ver_count int(11) DEFAULT '0' NOT NULL, - t3ver_tstamp int(11) DEFAULT '0' NOT NULL, - t3ver_move_id int(11) DEFAULT '0' NOT NULL, - t3_origuid int(11) DEFAULT '0' NOT NULL, + t3ver_oid int(11) DEFAULT '0' NOT NULL, + t3ver_id int(11) DEFAULT '0' NOT NULL, + t3ver_wsid int(11) DEFAULT '0' NOT NULL, + t3ver_label varchar(30) DEFAULT '' NOT NULL, + t3ver_state tinyint(4) DEFAULT '0' NOT NULL, + t3ver_stage tinyint(4) DEFAULT '0' NOT NULL, + t3ver_count int(11) DEFAULT '0' NOT NULL, + t3ver_tstamp int(11) DEFAULT '0' NOT NULL, + t3ver_move_id int(11) DEFAULT '0' NOT NULL, + t3_origuid int(11) DEFAULT '0' NOT NULL, - PRIMARY KEY (uid), - KEY parent (pid), - KEY pid (pid,email) + PRIMARY KEY (uid), + KEY parent (pid), + KEY pid (pid, email) );