Skip to content
Snippets Groups Projects
CODING.md 2.46 KiB
Newer Older
Carsten  Rose's avatar
Carsten Rose committed
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'])
  3. $_GET variables 'form' and 'r' (=recordId)

* 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
======

* Get submitted POST variables by

[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

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'];

* 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