Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
typo3
qfq
Commits
348149f9
Commit
348149f9
authored
Feb 22, 2018
by
Carsten Rose
Browse files
Feature #4720 - Removed the dbIndexList code. The new implementation is more flexible.
parent
c5a7826d
Changes
3
Hide whitespace changes
Inline
Side-by-side
extension/Documentation/Manual.rst
View file @
348149f9
...
@@ -792,8 +792,10 @@ System tables
...
@@ -792,8 +792,10 @@ System tables
* Check Bug #5459 - support of system tables in different DBs not supported.
* Check Bug #5459 - support of system tables in different DBs not supported.
Multi Databases
.. _`multi-database`:
^^^^^^^^^^^^^^^
Multi Database
^^^^^^^^^^^^^^
Base: T3
&
QFQ
Base: T3
&
QFQ
''''''''''''''
''''''''''''''
...
@@ -1063,7 +1065,17 @@ a string where an array is needed and vice versa.
...
@@ -1063,7 +1065,17 @@ a string where an array is needed and vice versa.
Database index
Database index
''''''''''''''
''''''''''''''
Multi Database setups needs access to different databases.
To access different databases in a `multi-database`_ setup, the database index can be specified after the opening curly
braces. ::
{{[1]SELECT ... }}
For using the DB_INDEX_DATA and DB_INDEX_QFQ (`config.qfq.ini`_), it's a good practice to specify the variable name
instead of the numeric index. ::
{{[{{DB_INDEX_DATA:Y}}]SELECT ...}}
If no dbIndex is given, `{{DB_INDEX_DATA:Y}}` is used.
Example
Example
'''''''
'''''''
...
@@ -1073,6 +1085,9 @@ Example
...
@@ -1073,6 +1085,9 @@ Example
{{SELECT id, name FROM Person}}
{{SELECT id, name FROM Person}}
{{SELECT id, name, IF({{feUser:T0}}=0,'Yes','No') FROM Person WHERE id={{r:S}} }}
{{SELECT id, name, IF({{feUser:T0}}=0,'Yes','No') FROM Person WHERE id={{r:S}} }}
{{SELECT id, city FROM Address AS adr WHERE adr.accId={{SELECT id FROM Account AS acc WHERE acc.name={{feUser:T0}} }} }}
{{SELECT id, city FROM Address AS adr WHERE adr.accId={{SELECT id FROM Account AS acc WHERE acc.name={{feUser:T0}} }} }}
{{!SELECT id, name FROM Person}}
{{[2]SELECT id, name FROM Form}}
{{[{{DB_INDEX_QFQ:Y}}]SELECT id, name FROM Form}}
...
...
extension/qfq/qfq/AbstractBuildForm.php
View file @
348149f9
...
@@ -568,27 +568,10 @@ abstract class AbstractBuildForm {
...
@@ -568,27 +568,10 @@ abstract class AbstractBuildForm {
$this
->
store
->
appendToStore
(
$fe
[
FE_FILL_STORE_VAR
],
STORE_VAR
);
$this
->
store
->
appendToStore
(
$fe
[
FE_FILL_STORE_VAR
],
STORE_VAR
);
}
}
// In case the FormElement List, defined in SQL1, needs a different Database:
if
(
!
empty
(
$fe
[
FE_DB_INDEX_LIST
])
&&
!
empty
(
$fe
[
FE_SQL1
]))
{
$feSql1
=
$fe
[
FE_SQL1
];
$fe
[
FE_SQL1
]
=
''
;
}
// ** evaluate current FormElement **
// ** evaluate current FormElement **
$formElement
=
$this
->
evaluate
->
parseArray
(
$fe
,
$skip
,
$debugStack
);
$formElement
=
$this
->
evaluate
->
parseArray
(
$fe
,
$skip
,
$debugStack
);
$formElement
=
HelperFormElement
::
setLanguage
(
$formElement
,
$parameterLanguageFieldName
);
$formElement
=
HelperFormElement
::
setLanguage
(
$formElement
,
$parameterLanguageFieldName
);
if
(
!
empty
(
$feSql1
))
{
// Has to be done after parseArray(), cause $formElement[FE_DB_INDEX_LIST] needs to be evaluated first.
$dbList
=
new
Database
(
$formElement
[
FE_DB_INDEX_LIST
]);
$evalList
=
new
Evaluate
(
$this
->
store
,
$dbList
);
$dataSql1
=
$evalList
->
parse
(
$feSql1
);
$formElement
[
FE_SQL1
]
=
$dataSql1
;
unset
(
$dbList
);
unset
(
$evalList
);
}
// Some Defaults
// Some Defaults
$formElement
=
Support
::
setFeDefaults
(
$formElement
,
$this
->
formSpec
);
$formElement
=
Support
::
setFeDefaults
(
$formElement
,
$this
->
formSpec
);
...
...
extension/qfq/qfq/Constants.php
View file @
348149f9
...
@@ -795,7 +795,6 @@ const F_PARAMETER = 'parameter'; // valid for F_ and FE_
...
@@ -795,7 +795,6 @@ const F_PARAMETER = 'parameter'; // valid for F_ and FE_
// Form columns: via parameter field
// Form columns: via parameter field
const
F_DB_INDEX
=
'dbIndex'
;
const
F_DB_INDEX
=
'dbIndex'
;
const
FE_DB_INDEX_LIST
=
'dbIndexList'
;
const
DB_INDEX_DEFAULT
=
"1"
;
const
DB_INDEX_DEFAULT
=
"1"
;
const
PARAM_DB_INDEX_DATA
=
'__dbIndexData'
;
// Submitted via SIP to make record locking DB aware.
const
PARAM_DB_INDEX_DATA
=
'__dbIndexData'
;
// Submitted via SIP to make record locking DB aware.
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment