OXID eShop CE  6.1.5
OxidEsales\EshopCommunity\Core\DbMetaDataHandler Class Reference
+ Inheritance diagram for OxidEsales\EshopCommunity\Core\DbMetaDataHandler:
+ Collaboration diagram for OxidEsales\EshopCommunity\Core\DbMetaDataHandler:

Public Member Functions

 getFields ($tableName)
 
 tableExists ($tableName)
 
 fieldExists ($fieldName, $tableName)
 
 getIndices ($tableName)
 
 hasIndex ($indexName, $tableName)
 
 getIndexByName ($indexName, $tableName)
 
 getAllTables ()
 
 getAllMultiTables ($table)
 
 getAddFieldSql ($table, $field, $newField, $prevField, $tableSet=null)
 
 getAddFieldIndexSql ($table, $field, $newField, $tableSet=null)
 
 getCurrentMaxLangId ()
 
 getNextLangId ()
 
 getMultilangFields ($table)
 
 getSinglelangFields ($table, $lang)
 
 addNewMultilangField ($table)
 
 ensureAllMultiLanguageFields ($table)
 
 resetMultilangFields ($langId, $tableName)
 
 addNewLangToDb ()
 
 resetLanguage ($langId)
 
 executeSql ($queries)
 
 updateViews ($tables=null)
 

Protected Member Functions

 _getCreateTableSetSql ($table, $lang)
 
 filterCoreFields ($fields)
 
 safeGuardAdditionalMultiLanguageTables ()
 
 ensureMultiLanguageFields ($table, $languageId)
 
 validateTableName ($tableName)
 

Protected Attributes

 $_aDbTablesFields = null
 
 $_aTables = null
 
 $_iCurrentMaxLangId
 
 $_aSkipTablesOnReset = ["oxcountry"]
 
 $forceOriginalFields = ['OXID']
 

Private Member Functions

 setConfigToDoNotUseViews (Config $config)
 

Detailed Description

Class for handling database related operations

Member Function Documentation

◆ _getCreateTableSetSql()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::_getCreateTableSetSql (   $table,
  $lang 
)
protected

Get sql for new multi-language table set creation

Parameters
string$tablecore table name
string$langlanguage id
Returns
string

◆ addNewLangToDb()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::addNewLangToDb ( )

Add new language to database. Scans all tables and adds new multi-language fields

◆ addNewMultilangField()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::addNewMultilangField (   $table)

Add new multi-languages fields to table. Duplicates all multi-language fields and fields indexes with next available language ID

Parameters
string$tabletable name

◆ ensureAllMultiLanguageFields()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::ensureAllMultiLanguageFields (   $table)

Ensure, that all multi language fields of the given table are present.

Parameters
string$tableThe table we want to assure, that the multi language fields are present.

◆ ensureMultiLanguageFields()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::ensureMultiLanguageFields (   $table,
  $languageId 
)
protected

Make sure that all *_set* tables with all required multilanguage fields are created.

Parameters
string$table
int$languageId

◆ executeSql()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::executeSql (   $queries)

Executes array of sql strings

Parameters
array$queriesSQL query array

◆ fieldExists()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::fieldExists (   $fieldName,
  $tableName 
)

Check if field exists in table

Parameters
string$fieldNamefield name
string$tableNametable name
Returns
bool

◆ filterCoreFields()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::filterCoreFields (   $fields)
protected

Make sure that e.g. OXID is always used from core table when creating views. Otherwise we might have unwanted side effects from rows with OXIDs null in view tables.

Parameters
array$fieldsLanguage fields array we need to filter for core fields.
Returns
array

◆ getAddFieldIndexSql()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::getAddFieldIndexSql (   $table,
  $field,
  $newField,
  $tableSet = null 
)

Get sql for new multi-language field index creation

Parameters
string$tablecore table name
string$fieldfield name
string$newFieldnew field name
string$tableSettable to change (if not set take core table)
Returns
string

◆ getAddFieldSql()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::getAddFieldSql (   $table,
  $field,
  $newField,
  $prevField,
  $tableSet = null 
)

Get sql for new multi-language field creation

Parameters
string$tablecore table name
string$fieldfield name
string$newFieldnew field name
string$prevFieldprevious field in table
string$tableSettable to change (if not set take core table)
Returns
string

◆ getAllMultiTables()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::getAllMultiTables (   $table)

return all DB tables for the language sets

Parameters
string$tabletable name to check
Returns
array

◆ getAllTables()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::getAllTables ( )

Get all tables names from db. Views tables are not included in this list.

Returns
array

◆ getCurrentMaxLangId()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::getCurrentMaxLangId ( )

Get max language ID used in shop. For checking is used table "oxarticle" field "oxtitle"

Returns
int

◆ getFields()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::getFields (   $tableName)

Get table fields

Parameters
string$tableNametable name
Returns
array

◆ getIndexByName()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::getIndexByName (   $indexName,
  $tableName 
)

Get the index of a given table by its name

Parameters
string$indexNameThe name of the index
string$tableNameThe name of the table from which we want the index
Returns
null|array The index with the given name

◆ getIndices()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::getIndices (   $tableName)

Get the indices of a table

Parameters
string$tableNameThe name of the table for which we want the
Returns
array The indices of the given table

◆ getMultilangFields()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::getMultilangFields (   $table)

Get table multi-language fields

Parameters
string$tabletable name
Returns
array

◆ getNextLangId()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::getNextLangId ( )

Get next available language ID

Returns
int

◆ getSinglelangFields()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::getSinglelangFields (   $table,
  $lang 
)

Get single language fields

Parameters
string$tabletable name
int$langlanguage id
Returns
array

◆ hasIndex()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::hasIndex (   $indexName,
  $tableName 
)

Check, if the table has an index with the given name

Parameters
string$indexNameThe name of the index we want to check
string$tableNameThe table to check for the index
Returns
bool Has the table the given index?

◆ resetLanguage()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::resetLanguage (   $langId)

Resetting all multi-language fields with specific language id to default value in all tables. Only if language ID > 0.

Parameters
int$langIdLanguage id
Returns
null

◆ resetMultilangFields()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::resetMultilangFields (   $langId,
  $tableName 
)

Resetting all multi-language fields with specific language id to default value in selected table

Parameters
int$langIdLanguage id
string$tableNameTable name
Returns
null

◆ safeGuardAdditionalMultiLanguageTables()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::safeGuardAdditionalMultiLanguageTables ( )
protected

Ensure that all *_set* tables for all tables in config parameter 'aMultiLangTables' are created.

Returns
null

◆ setConfigToDoNotUseViews()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::setConfigToDoNotUseViews ( Config  $config)
private

Forces shop to do not use views.

Parameters
Config$config

◆ tableExists()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::tableExists (   $tableName)

Check if table exists

Parameters
string$tableNametable name
Returns
bool

◆ updateViews()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::updateViews (   $tables = null)

Updates all views

Parameters
array$tablesarray of DB table name that can store different data per shop like oxArticle
Returns
bool

◆ validateTableName()

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::validateTableName (   $tableName)
protected

Adds possibility to validate table names.

Parameters
string$tableName
Returns
bool

Member Data Documentation

◆ $_aDbTablesFields

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::$_aDbTablesFields = null
protected

◆ $_aSkipTablesOnReset

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::$_aSkipTablesOnReset = ["oxcountry"]
protected

◆ $_aTables

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::$_aTables = null
protected

◆ $_iCurrentMaxLangId

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::$_iCurrentMaxLangId
protected

◆ $forceOriginalFields

OxidEsales\EshopCommunity\Core\DbMetaDataHandler::$forceOriginalFields = ['OXID']
protected

The documentation for this class was generated from the following file: