CODING.md 2.53 KB
Newer Older
Carsten  Rose's avatar
Carsten Rose committed
1
2
3
4
5
6
7
8
9
Notes / Best Practices for Coding
=================================

General
=======

* When qfq starts, it looks for the formname at: 
  1. Typo3 Bodytext Element,
  2. For the 'SIP' ($_GET['s'])
10
  3. $_GET variables 'form' and 'r' (=recordId) - the parameter 'form' has to be allowed in 'Permit URL Parameter' 
Carsten  Rose's avatar
Carsten Rose committed
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

* The active formname is stored in   $this->store->setVar(SYSTEM_FORM, $formName, STORE_SYSTEM);

* In QuickFormQuery.php the whole Form will be copied to $this->formSpec and depending on further processing, the elements are
available in $this->feNative and $this->feAction.
  * The Form specificaton (table form) will be evaluated after loading.
  * The FormElement specification will be evaluated later on in BuildForm*.php

* Get the recent SIP, Formname, RecordId with:

[src] $this->store->getVar('form', STORE_SIP), or
[src] $this->store->getStore(STORE_SIP)

  * Check Contstants.php for known Store members

Debug / Log / Errormessages
===========================


* Before firing a SQL or doing processing of an FormElement, set some debugging / error variables:

[src] $this->store->setVar(SYSTEM_SQL_RAW, STORE_SYSTEM)

* Available fields:
<code>
SYSTEM_SQL_RAW
SYSTEM_SQL_FINAL
SYSTEM_SQL_COUNT
SYSTEM_SQL_PARAM_ARRAY
SYSTEM_FORM = CLIENT_FORM;                        // '<formName> / <formId>'
SYSTEM_FORM_ELEMENT = 'formElement';              // '<formElementName> / <formElementeId>'
SYSTEM_FORM_ELEMENT_COLUMN = 'formElementColumn'; // '<columnname of current processed formElement>'
</code>

Stores
======

48
* Retrieve 'get' or 'post' variables by:
Carsten  Rose's avatar
Carsten Rose committed
49
50
51
52
53
54
55
56
57
58
59
60
61
62

[src] $values = $this->store->getStore(STORE_CLIENT)



Primary Table
=============
* For the primary table all informations are available in STORE_TABLE_DEFAULT and STORE_TABLE_COLUMN_TYPES.
* Get all columns of the primary table by

[src] array_keys($this->getStore(STORE_TABLE_COLUMN_TYPES))

* Get the recent record in STORE_RECORD and the parent record (multiforms) in STORE_PARENT_RECORD.

Carsten  Rose's avatar
Carsten Rose committed
63
64
65
66
67
68
69
70
71
72
73
74

Typo3
=====
* $GLOBALS["TSFE"]->id   current Page
* $GLOBALS["TSFE"]->fe_user->user["uid"]   fe_user_uid

* https://wiki.typo3.org/Extbase_HowTos
  * Old: $this->cObj->data['bodytext']
  * New:
        $contentObject = $this->configurationManager->getContentObject();
        $configuration = $contentObject->data['bodytext'];

75
76
77
78
* Verzeichnisstruktur Extension: https://docs.typo3.org/typo3cms/CoreApiReference/ExtensionArchitecture/FilesAndLocations/Index.html
* http://api.typo3.org/
  * http://api.typo3.org/typo3cms/62/html/index.html
* https://docs.typo3.org/typo3cms/CoreApiReference/Introduction/Index.html