TYPO3 CMS  TYPO3_8-7
TYPO3\CMS\Frontend\Plugin\AbstractPlugin Class Reference
Inheritance diagram for TYPO3\CMS\Frontend\Plugin\AbstractPlugin:
TYPO3\CMS\CssStyledContent\Controller\CssStyledContentController TYPO3\CMS\Felogin\Controller\FrontendLoginController

Public Member Functions

 pi_setPiVarDefaults ()
 
 pi_getPageLink ($id, $target='', $urlParameters=[])
 
 pi_linkToPage ($str, $id, $target='', $urlParameters=[])
 
 pi_linkTP ($str, $urlParameters=[], $cache=false, $altPageId=0)
 
 pi_linkTP_keepPIvars ($str, $overrulePIvars=[], $cache=false, $clearAnyway=false, $altPageId=0)
 
 pi_linkTP_keepPIvars_url ($overrulePIvars=[], $cache=false, $clearAnyway=false, $altPageId=0)
 
 pi_list_linkSingle ($str, $uid, $cache=false, $mergeArr=[], $urlOnly=false, $altPageId=0)
 
 pi_openAtagHrefInJSwindow ($str, $winName='', $winParams='width=670, height=500, status=0, menubar=0, scrollbars=1, resizable=1')
 
 pi_list_browseresults ($showResultCount=1, $tableParams='', $wrapArr=[], $pointerName='pointer', $hscText=true, $forceOutput=false)
 
 pi_list_modeSelector ($items=[], $tableParams='')
 
 pi_list_makelist ($statement, $tableParams='')
 
 pi_list_row ($c)
 
 pi_list_header ()
 
 pi_getClassName ($class)
 
 pi_classParam ($class, $addClasses='')
 
 pi_wrapInBaseClass ($str)
 
 pi_getEditPanel ($row=[], $tablename='', $label='', $conf=[])
 
 pi_getEditIcon ($content, $fields, $title='', $row=[], $tablename='', $oConf=[])
 
 pi_getLL ($key, $alternativeLabel='', $hsc=false)
 
 pi_exec_query ($table, $count=false, $addWhere='', $mm_cat='', $groupBy='', $orderBy='', $query='')
 
 pi_getRecord ($table, $uid, $checkPage=false)
 
 pi_getPidList ($pid_list, $recursive=0)
 
 pi_prependFieldsWithTable ($table, $fieldList)
 
 pi_getCategoryTableContents ($table, $pid, $whereClause='', $groupBy='', $orderBy='', $limit='')
 
 pi_isOnlyFields ($fList, $lowerThan=-1)
 
 pi_autoCache ($inArray)
 
 pi_RTEcssText ($str)
 
 pi_initPIflexForm ($field='pi_flexform')
 
 pi_getFFvalue ($T3FlexForm_array, $fieldName, $sheet='sDEF', $lang='lDEF', $value='vDEF')
 
 pi_getFFvalueFromSheetArray ($sheetArray, $fieldNameArr, $value)
 

Public Attributes

 $cObj
 
 $prefixId
 
 $scriptRelPath
 
 $extKey
 
 $piVars
 
 $internal = ['res_count' => 0
 
 $LOCAL_LANG = []
 
 $LOCAL_LANG_loaded = false
 
 $LLkey = 'default'
 
 $altLLkey = ''
 
 $LLtestPrefix = ''
 
 $LLtestPrefixAlt = ''
 
 $pi_isOnlyFields = 'mode,pointer'
 
 $pi_alwaysPrev = 0
 
 $pi_lowerThan = 5
 
 $pi_moreParams = ''
 
 $pi_listFields = '*'
 
 $pi_autoCacheFields = []
 
 $pi_autoCacheEn = false
 
 $pi_USER_INT_obj = false
 
 $pi_checkCHash = false
 
 $conf = []
 
 $pi_EPtemp_cObj
 
 $pi_tmpPageId = 0
 

Protected Member Functions

 applyStdWrapRecursive (array $conf, $level=0)
 

Protected Attributes

 $LOCAL_LANG_UNSET = []
 
 $frontendController
 
 $databaseConnection
 
 $templateService
 

Detailed Description

Base class for frontend plugins Most modern frontend plugins are extension classes of this one. This class contains functions which assists these plugins in creating lists, searching, displaying menus, page-browsing (next/previous/1/2/3) and handling links. Functions are all prefixed "pi_" which is reserved for this class. Those functions can of course be overridden in the extension classes (that is the point...)

Definition at line 38 of file AbstractPlugin.php.

Member Function Documentation

◆ applyStdWrapRecursive()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::applyStdWrapRecursive ( array  $conf,
  $level = 0 
)
protected

Recursively looks for stdWrap and executes it

Parameters
array$confCurrent section of configuration to work on
int$levelCurrent level being processed (currently just for tracking; no limit enforced)
Returns
array Current section of configuration after stdWrap applied

Definition at line 297 of file AbstractPlugin.php.

References TYPO3\CMS\Frontend\Plugin\AbstractPlugin\$conf.

Referenced by TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_setPiVarDefaults().

◆ pi_autoCache()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_autoCache (   $inArray)

Returns TRUE if the array $inArray contains only values allowed to be cached based on the configuration in $this->pi_autoCacheFields Used by ->pi_linkTP_keepPIvars This is an advanced form of evaluation of whether a URL should be cached or not.

Parameters
array$inArrayAn array with piVars values to evaluate
Returns
bool|null Returns TRUE (1) if conditions are met.
See also
pi_linkTP_keepPIvars()

Definition at line 1317 of file AbstractPlugin.php.

Referenced by TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_linkTP_keepPIvars().

◆ pi_classParam()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_classParam (   $class,
  $addClasses = '' 
)

Returns the class-attribute with the correctly prefixed classname Using pi_getClassName()

Parameters
string$classThe class name(s) (suffix) - separate multiple classes with commas
string$addClassesAdditional class names which should not be prefixed - separate multiple classes with commas
Returns
string A "class" attribute with value and a single space char before it.
See also
pi_getClassName()

Definition at line 815 of file AbstractPlugin.php.

References TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_getClassName(), and TYPO3\CMS\Core\Utility\GeneralUtility\trimExplode().

Referenced by TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_list_browseresults(), TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_list_header(), TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_list_makelist(), TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_list_modeSelector(), and TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_list_row().

◆ pi_exec_query()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_exec_query (   $table,
  $count = false,
  $addWhere = '',
  $mm_cat = '',
  $groupBy = '',
  $orderBy = '',
  $query = '' 
)

Executes a standard SELECT query for listing of records based on standard input vars from the 'browser' ($this->internal['results_at_a_time'] and $this->piVars['pointer']) and 'searchbox' ($this->piVars['sword'] and $this->internal['searchFieldList']) Set $count to 1 if you wish to get a count(*) query for selecting the number of results. Notice that the query will use $this->conf['pidList'] and $this->conf['recursive'] to generate a PID list within which to search for records.

Parameters
string$tableThe table name to make the query for.
bool$countIf set, you will get a "count(*)" query back instead of field selecting
string$addWhereAdditional WHERE clauses (should be starting with " AND ....")
mixed$mm_catIf an array, then it must contain the keys "table", "mmtable" and (optionally) "catUidList" defining a table to make a MM-relation to in the query (based on fields uid_local and uid_foreign). If not array, the query will be a plain query looking up data in only one table.
string$groupByIf set, this is added as a " GROUP BY ...." part of the query.
string$orderByIf set, this is added as a " ORDER BY ...." part of the query. The default is that an ORDER BY clause is made based on $this->internal['orderBy'] and $this->internal['descFlag'] where the orderBy field must be found in $this->internal['orderByList']
string$queryIf set, this is taken as the first part of the query instead of what is created internally. Basically this should be a query starting with "FROM [table] WHERE ... AND ...". The $addWhere clauses and all the other stuff is still added. Only the tables and PID selecting clauses are bypassed. May be deprecated in the future!
Returns
Statement

Definition at line 1060 of file AbstractPlugin.php.

References $fields, TYPO3\CMS\Core\Utility\MathUtility\forceIntegerInRange(), TYPO3\CMS\Core\Utility\GeneralUtility\inList(), TYPO3\CMS\Core\Utility\GeneralUtility\intExplode(), TYPO3\CMS\Core\Utility\GeneralUtility\makeInstance(), TYPO3\CMS\Core\Database\Query\QueryHelper\parseGroupBy(), TYPO3\CMS\Core\Database\Query\QueryHelper\parseOrderBy(), TYPO3\CMS\Core\Database\Query\QueryHelper\parseTableList(), TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_getPidList(), TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_prependFieldsWithTable(), TYPO3\CMS\Core\Database\Query\QueryHelper\stripLogicalOperatorPrefix(), and TYPO3\CMS\Core\Utility\GeneralUtility\trimExplode().

◆ pi_getCategoryTableContents()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_getCategoryTableContents (   $table,
  $pid,
  $whereClause = '',
  $groupBy = '',
  $orderBy = '',
  $limit = '' 
)

Will select all records from the "category table", $table, and return them in an array.

Parameters
string$tableThe name of the category table to select from.
int$pidThe page from where to select the category records.
string$whereClauseOptional additional WHERE clauses put in the end of the query. DO NOT PUT IN GROUP BY, ORDER BY or LIMIT!
string$groupByOptional GROUP BY field(s), if none, supply blank string.
string$orderByOptional ORDER BY field(s), if none, supply blank string.
string$limitOptional LIMIT value ([begin,]max), if none, supply blank string.
Returns
array The array with the category records in.

Definition at line 1235 of file AbstractPlugin.php.

References TYPO3\CMS\Core\Utility\GeneralUtility\intExplode(), TYPO3\CMS\Core\Utility\GeneralUtility\makeInstance(), TYPO3\CMS\Core\Database\Query\QueryHelper\parseGroupBy(), TYPO3\CMS\Core\Database\Query\QueryHelper\parseOrderBy(), and TYPO3\CMS\Core\Database\Query\QueryHelper\stripLogicalOperatorPrefix().

◆ pi_getClassName()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_getClassName (   $class)

Returns a class-name prefixed with $this->prefixId and with all underscores substituted to dashes (-)

Parameters
string$classThe class name (or the END of it since it will be prefixed by $this->prefixId.'-')
Returns
string The combined class name (with the correct prefix)

Definition at line 801 of file AbstractPlugin.php.

Referenced by TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_classParam().

◆ pi_getEditIcon()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_getEditIcon (   $content,
  $fields,
  $title = '',
  $row = [],
  $tablename = '',
  $oConf = [] 
)

Adds edit-icons to the input content. ContentObjectRenderer::editIcons used for rendering

Parameters
string$contentHTML content to add icons to. The icons will be put right after the last content part in the string (that means before the ending series of HTML tags)
string$fieldsThe list of fields to edit when the icon is clicked.
string$titleTitle for the edit icon.
array$rowTable record row
string$tablenameTable name
array$oConfConf array
Returns
string The processed content
See also
ContentObjectRenderer::editIcons()

Definition at line 915 of file AbstractPlugin.php.

References TYPO3\CMS\Frontend\Plugin\AbstractPlugin\$conf, $fields, and TYPO3\CMS\Core\Utility\GeneralUtility\getIndpEnv().

◆ pi_getEditPanel()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_getEditPanel (   $row = [],
  $tablename = '',
  $label = '',
  $conf = [] 
)

Returns the Backend User edit panel for the $row from $tablename

Parameters
array$rowRecord array.
string$tablenameTable name
string$labelA label to show with the panel.
array$confTypoScript parameters to pass along to the EDITPANEL content Object that gets rendered. The property "allow" WILL get overridden/set though.
Returns
string Returns FALSE/blank if no BE User login and of course if the panel is not shown for other reasons. Otherwise the HTML for the panel (a table).
See also
ContentObjectRenderer::EDITPANEL()

Definition at line 874 of file AbstractPlugin.php.

References TYPO3\CMS\Frontend\Plugin\AbstractPlugin\$conf, and TYPO3\CMS\Core\Utility\GeneralUtility\makeInstance().

◆ pi_getFFvalue()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_getFFvalue (   $T3FlexForm_array,
  $fieldName,
  $sheet = 'sDEF',
  $lang = 'lDEF',
  $value = 'vDEF' 
)

Return value from somewhere inside a FlexForm structure

Parameters
array$T3FlexForm_arrayFlexForm data
string$fieldNameField name to extract. Can be given like "test/el/2/test/el/field_templateObject" where each part will dig a level deeper in the FlexForm data.
string$sheetSheet pointer, eg. "sDEF @param string $lang Language pointer, eg. "lDEF
string$valueValue pointer, eg. "vDEF
Returns
string|null The content.

Definition at line 1389 of file AbstractPlugin.php.

References TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_getFFvalueFromSheetArray().

Referenced by TYPO3\CMS\Felogin\Controller\FrontendLoginController\flexFormValue(), and TYPO3\CMS\CssStyledContent\Controller\CssStyledContentController\getTableAttributes().

◆ pi_getFFvalueFromSheetArray()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_getFFvalueFromSheetArray (   $sheetArray,
  $fieldNameArr,
  $value 
)

Returns part of $sheetArray pointed to by the keys in $fieldNameArray

Parameters
array$sheetArrayMultidimensiona array, typically FlexForm contents
array$fieldNameArrArray where each value points to a key in the FlexForms content - the input array will have the value returned pointed to by these keys. All integer keys will not take their integer counterparts, but rather traverse the current position in the array an return element number X (whether this is right behavior is not settled yet...)
string$valueValue for outermost key, typ. "vDEF" depending on language.
Returns
mixed The value, typ. string. private
See also
pi_getFFvalue()

Definition at line 1408 of file AbstractPlugin.php.

References TYPO3\CMS\Core\Utility\MathUtility\canBeInterpretedAsInteger().

Referenced by TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_getFFvalue().

◆ pi_getLL()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_getLL (   $key,
  $alternativeLabel = '',
  $hsc = false 
)

Returns the localized label of the LOCAL_LANG key, $key Notice that for debugging purposes prefixes for the output values can be set with the internal vars ->LLtestPrefixAlt and ->LLtestPrefix

Parameters
string$keyThe key from the LOCAL_LANG array for which to return the value.
string$alternativeLabelAlternative string to return IF no value is found set for the key, neither for the local language nor the default.
bool$hscIf TRUE, the output label is passed through htmlspecialchars()
Returns
string The value from LOCAL_LANG.

Definition at line 945 of file AbstractPlugin.php.

References TYPO3\CMS\Frontend\Plugin\AbstractPlugin\$LLkey, TYPO3\CMS\Core\Utility\GeneralUtility\deprecationLog(), TYPO3\CMS\Core\Utility\GeneralUtility\makeInstance(), and TYPO3\CMS\Core\Utility\GeneralUtility\trimExplode().

Referenced by TYPO3\CMS\Felogin\Controller\FrontendLoginController\changePassword(), TYPO3\CMS\Felogin\Controller\FrontendLoginController\generateAndSendHash(), TYPO3\CMS\Felogin\Controller\FrontendLoginController\getDisplayText(), TYPO3\CMS\Felogin\Controller\FrontendLoginController\main(), TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_list_browseresults(), TYPO3\CMS\Felogin\Controller\FrontendLoginController\showForgot(), TYPO3\CMS\Felogin\Controller\FrontendLoginController\showLogin(), TYPO3\CMS\Felogin\Controller\FrontendLoginController\showLogout(), and TYPO3\CMS\Felogin\Controller\FrontendLoginController\validateRedirectUrl().

◆ pi_getPageLink()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_getPageLink (   $id,
  $target = '',
  $urlParameters = [] 
)

Get URL to some page. Returns the URL to page $id with $target and an array of additional url-parameters, $urlParameters Simple example: $this->pi_getPageLink(123) to get the URL for page-id 123.

The function basically calls $this->cObj->getTypoLink_URL()

Parameters
int$idPage id
string$targetTarget value to use. Affects the &type-value of the URL, defaults to current.
array | string$urlParametersAs an array key/value pairs represent URL parameters to set. Values NOT URL-encoded yet, keys should be URL-encoded if needed. As a string the parameter is expected to be URL-encoded already.
Returns
string The resulting URL
See also
pi_linkToPage()
ContentObjectRenderer->getTypoLink()

Definition at line 357 of file AbstractPlugin.php.

Referenced by TYPO3\CMS\Felogin\Controller\FrontendLoginController\generateAndSendHash(), and TYPO3\CMS\Felogin\Controller\FrontendLoginController\processRedirect().

◆ pi_getPidList()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_getPidList (   $pid_list,
  $recursive = 0 
)

Returns a commalist of page ids for a query (eg. 'WHERE pid IN (...)')

Parameters
string$pid_listA comma list of page ids (if empty current page is used)
int$recursiveAn integer >=0 telling how deep to dig for pids under each entry in $pid_list
Returns
string List of PID values (comma separated)

Definition at line 1187 of file AbstractPlugin.php.

References TYPO3\CMS\Core\Utility\MathUtility\forceIntegerInRange(), and TYPO3\CMS\Core\Utility\GeneralUtility\trimExplode().

Referenced by TYPO3\CMS\Felogin\Controller\FrontendLoginController\main(), TYPO3\CMS\Felogin\Controller\FrontendLoginController\mergeflexFormValuesIntoConf(), and TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_exec_query().

◆ pi_getRecord()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_getRecord (   $table,
  $uid,
  $checkPage = false 
)

Returns the row $uid from $table (Simply calling $this->frontendEngine->sys_page->checkRecord())

Parameters
string$tableThe table name
int$uidThe uid of the record from the table
bool$checkPageIf $checkPage is set, it's required that the page on which the record resides is accessible
Returns
array If record is found, an array. Otherwise FALSE.

Definition at line 1175 of file AbstractPlugin.php.

Referenced by TYPO3\CMS\Felogin\Controller\FrontendLoginController\changePassword().

◆ pi_initPIflexForm()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_initPIflexForm (   $field = 'pi_flexform')

Converts $this->cObj->data['pi_flexform'] from XML string to flexForm array.

Parameters
string$fieldField name to convert

Definition at line 1368 of file AbstractPlugin.php.

References TYPO3\CMS\Core\Utility\GeneralUtility\xml2array().

Referenced by TYPO3\CMS\Felogin\Controller\FrontendLoginController\main(), and TYPO3\CMS\CssStyledContent\Controller\CssStyledContentController\render_table().

◆ pi_isOnlyFields()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_isOnlyFields (   $fList,
  $lowerThan = -1 
)

Returns TRUE if the piVars array has ONLY those fields entered that is set in the $fList (commalist) AND if none of those fields value is greater than $lowerThan field if they are integers. Notice that this function will only work as long as values are integers.

Parameters
string$fListList of fields (keys from piVars) to evaluate on
int$lowerThanLimit for the values.
Returns
bool|null Returns TRUE (1) if conditions are met.

Definition at line 1291 of file AbstractPlugin.php.

References TYPO3\CMS\Frontend\Plugin\AbstractPlugin\$piVars, TYPO3\CMS\Core\Utility\MathUtility\canBeInterpretedAsInteger(), and TYPO3\CMS\Core\Utility\GeneralUtility\trimExplode().

Referenced by TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_list_browseresults(), and TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_list_modeSelector().

◆ pi_linkToPage()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_linkToPage (   $str,
  $id,
  $target = '',
  $urlParameters = [] 
)

Link a string to some page. Like pi_getPageLink() but takes a string as first parameter which will in turn be wrapped with the URL including target attribute Simple example: $this->pi_linkToPage('My link', 123) to get something like My link

Parameters
string$strThe content string to wrap in tags
int$idPage id
string$targetTarget value to use. Affects the &type-value of the URL, defaults to current.
array | string$urlParametersAs an array key/value pairs represent URL parameters to set. Values NOT URL-encoded yet, keys should be URL-encoded if needed. As a string the parameter is expected to be URL-encoded already.
Returns
string The input string wrapped in tags with the URL and target set.
See also
pi_getPageLink(), ContentObjectRenderer::getTypoLink()

Definition at line 374 of file AbstractPlugin.php.

◆ pi_linkTP()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_linkTP (   $str,
  $urlParameters = [],
  $cache = false,
  $altPageId = 0 
)

Link string to the current page. Returns the $str wrapped in -tags with a link to the CURRENT page, but with $urlParameters set as extra parameters for the page.

Parameters
string$strThe content string to wrap in tags
array$urlParametersArray with URL parameters as key/value pairs. They will be "imploded" and added to the list of parameters defined in the plugins TypoScript property "parent.addParams" plus $this->pi_moreParams.
bool$cacheIf $cache is set (0/1), the page is asked to be cached by a &cHash value (unless the current plugin using this class is a USER_INT). Otherwise the no_cache-parameter will be a part of the link.
int$altPageIdAlternative page ID for the link. (By default this function links to the SAME page!)
Returns
string The input string wrapped in tags
See also
pi_linkTP_keepPIvars(), ContentObjectRenderer::typoLink()

Definition at line 390 of file AbstractPlugin.php.

References TYPO3\CMS\Frontend\Plugin\AbstractPlugin\$conf, TYPO3\CMS\Frontend\Plugin\AbstractPlugin\$pi_moreParams, and TYPO3\CMS\Core\Utility\GeneralUtility\implodeArrayForUrl().

Referenced by TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_linkTP_keepPIvars(), and TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_list_linkSingle().

◆ pi_linkTP_keepPIvars()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_linkTP_keepPIvars (   $str,
  $overrulePIvars = [],
  $cache = false,
  $clearAnyway = false,
  $altPageId = 0 
)

Link a string to the current page while keeping currently set values in piVars. Like pi_linkTP, but $urlParameters is by default set to $this->piVars with $overrulePIvars overlaid. This means any current entries from this->piVars are passed on (except the key "DATA" which will be unset before!) and entries in $overrulePIvars will OVERRULE the current in the link.

Parameters
string$strThe content string to wrap in tags
array$overrulePIvarsArray of values to override in the current piVars. Contrary to pi_linkTP the keys in this array must correspond to the real piVars array and therefore NOT be prefixed with the $this->prefixId string. Further, if a value is a blank string it means the piVar key will not be a part of the link (unset)
bool$cacheIf $cache is set, the page is asked to be cached by a &cHash value (unless the current plugin using this class is a USER_INT). Otherwise the no_cache-parameter will be a part of the link.
bool$clearAnywayIf set, then the current values of piVars will NOT be preserved anyways... Practical if you want an easy way to set piVars without having to worry about the prefix, "tx_xxxxx[]
int$altPageIdAlternative page ID for the link. (By default this function links to the SAME page!)
Returns
string The input string wrapped in tags
See also
pi_linkTP()

Definition at line 413 of file AbstractPlugin.php.

References TYPO3\CMS\Frontend\Plugin\AbstractPlugin\$piVars, TYPO3\CMS\Core\Utility\ArrayUtility\mergeRecursiveWithOverrule(), TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_autoCache(), and TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_linkTP().

Referenced by TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_linkTP_keepPIvars_url(), TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_list_browseresults(), TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_list_linkSingle(), and TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_list_modeSelector().

◆ pi_linkTP_keepPIvars_url()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_linkTP_keepPIvars_url (   $overrulePIvars = [],
  $cache = false,
  $clearAnyway = false,
  $altPageId = 0 
)

Get URL to the current page while keeping currently set values in piVars. Same as pi_linkTP_keepPIvars but returns only the URL from the link.

Parameters
array$overrulePIvarsSee pi_linkTP_keepPIvars
bool$cacheSee pi_linkTP_keepPIvars
bool$clearAnywaySee pi_linkTP_keepPIvars
int$altPageIdSee pi_linkTP_keepPIvars
Returns
string The URL ($this->cObj->lastTypoLinkUrl)
See also
pi_linkTP_keepPIvars()

Definition at line 438 of file AbstractPlugin.php.

References TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_linkTP_keepPIvars().

◆ pi_list_browseresults()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_list_browseresults (   $showResultCount = 1,
  $tableParams = '',
  $wrapArr = [],
  $pointerName = 'pointer',
  $hscText = true,
  $forceOutput = false 
)

Returns a results browser. This means a bar of page numbers plus a "previous" and "next" link. For each entry in the bar the piVars "pointer" will be pointing to the "result page" to show. Using $this->piVars['pointer'] as pointer to the page to display. Can be overwritten with another string ($pointerName) to make it possible to have more than one pagebrowser on a page) Using $this->internal['res_count'], $this->internal['results_at_a_time'] and $this->internal['maxPages'] for count number, how many results to show and the max number of pages to include in the browse bar. Using $this->internal['dontLinkActivePage'] as switch if the active (current) page should be displayed as pure text or as a link to itself Using $this->internal['showFirstLast'] as switch if the two links named "<< First" and "LAST >>" will be shown and point to the first or last page. Using $this->internal['pagefloat']: this defines were the current page is shown in the list of pages in the Pagebrowser. If this var is an integer it will be interpreted as position in the list of pages. If its value is the keyword "center" the current page will be shown in the middle of the pagelist. Using $this->internal['showRange']: this var switches the display of the pagelinks from pagenumbers to ranges f.e.: 1-5 6-10 11-15... instead of 1 2 3... Using $this->pi_isOnlyFields: this holds a comma-separated list of fieldnames which - if they are among the GETvars - will not disable caching for the page with pagebrowser.

The third parameter is an array with several wraps for the parts of the pagebrowser. The following elements will be recognized: disabledLinkWrap, inactiveLinkWrap, activeLinkWrap, browseLinksWrap, showResultsWrap, showResultsNumbersWrap, browseBoxWrap.

If $wrapArr['showResultsNumbersWrap'] is set, the formatting string is expected to hold template markers (###FROM###, ###TO###, ###OUT_OF###, ###FROM_TO###, ###CURRENT_PAGE###, ###TOTAL_PAGES###) otherwise the formatting string is expected to hold sprintf-markers (s) for from, to, outof (in that sequence)

Parameters
int$showResultCountDetermines how the results of the page browser will be shown. See description below
string$tableParamsAttributes for the table tag which is wrapped around the table cells containing the browse links
array$wrapArrArray with elements to overwrite the default $wrapper-array.
string$pointerNamevarname for the pointer.
bool$hscTextEnable htmlspecialchars() on language labels
bool$forceOutputForces the output of the page browser if you set this option to "TRUE" (otherwise it's only drawn if enough entries are available)
Returns
string Output HTML-Table, wrapped in
-tags with a class attribute (if $wrapArr is not passed,

Definition at line 528 of file AbstractPlugin.php.

References $GLOBALS, TYPO3\CMS\Frontend\Plugin\AbstractPlugin\$pi_alwaysPrev, TYPO3\CMS\Frontend\Plugin\AbstractPlugin\$pi_isOnlyFields, TYPO3\CMS\Core\Utility\MathUtility\forceIntegerInRange(), TYPO3\CMS\Core\Utility\GeneralUtility\makeInstance(), TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_classParam(), TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_getLL(), TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_isOnlyFields(), and TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_linkTP_keepPIvars().

◆ pi_list_header()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_list_header ( )

Returns a list header row. (Dummy) Notice: This function should ALWAYS be defined in the extension class of the plugin since it is directly concerned with the specific layout of the listing for your plugins purpose.

Returns
string HTML output, a table row with a class attribute set

Definition at line 785 of file AbstractPlugin.php.

References TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_classParam().

Referenced by TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_list_makelist().

◆ pi_list_linkSingle()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_list_linkSingle (   $str,
  $uid,
  $cache = false,
  $mergeArr = [],
  $urlOnly = false,
  $altPageId = 0 
)

Wraps the $str in a link to a single display of the record (using piVars[showUid]) Uses pi_linkTP for the linking

Parameters
string$strThe content string to wrap in tags
int$uidUID of the record for which to display details (basically this will become the value of [showUid]
bool$cacheSee pi_linkTP_keepPIvars
array$mergeArrArray of values to override in the current piVars. Same as $overrulePIvars in pi_linkTP_keepPIvars
bool$urlOnlyIf TRUE, only the URL is returned, not a full link
int$altPageIdAlternative page ID for the link. (By default this function links to the SAME page!)
Returns
string The input string wrapped in tags
See also
pi_linkTP(), pi_linkTP_keepPIvars()

Definition at line 457 of file AbstractPlugin.php.

References TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_linkTP(), and TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_linkTP_keepPIvars().

◆ pi_list_makelist()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_list_makelist (   $statement,
  $tableParams = '' 
)

Returns the list of items based on the input SQL result pointer For each result row the internal var, $this->internal['currentRow'], is set with the row returned. $this->pi_list_header() makes the header row for the list $this->pi_list_row() is used for rendering each row Notice that these two functions are typically ALWAYS defined in the extension class of the plugin since they are directly concerned with the specific layout for that plugins purpose.

Parameters
Statement$statementResult pointer to a SQL result which can be traversed.
string$tableParamsAttributes for the table tag which is wrapped around the table rows containing the list
Returns
string Output HTML, wrapped in
-tags with a class attribute
See also

Definition at line 739 of file AbstractPlugin.php.

References TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_classParam(), TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_list_header(), and TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_list_row().

◆ pi_list_modeSelector()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_list_modeSelector (   $items = [],
  $tableParams = '' 
)

Returns a mode selector; a little menu in a table normally put in the top of the page/list.

Parameters
array$itemsKey/Value pairs for the menu; keys are the piVars[mode] values and the "values" are the labels for them.
string$tableParamsAttributes for the table tag which is wrapped around the table cells containing the menu
Returns
string Output HTML, wrapped in
-tags with a class attribute

Definition at line 705 of file AbstractPlugin.php.

References TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_classParam(), TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_isOnlyFields(), and TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_linkTP_keepPIvars().

◆ pi_list_row()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_list_row (   $c)

Returns a list row. Get data from $this->internal['currentRow']; (Dummy) Notice: This function should ALWAYS be defined in the extension class of the plugin since it is directly concerned with the specific layout of the listing for your plugins purpose.

Parameters
int$cRow counting. Starts at 0 (zero). Used for alternating class values in the output rows.
Returns
string HTML output, a table row with a class attribute set (alternative based on odd/even rows)

Definition at line 772 of file AbstractPlugin.php.

References TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_classParam().

Referenced by TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_list_makelist().

◆ pi_openAtagHrefInJSwindow()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_openAtagHrefInJSwindow (   $str,
  $winName = '',
  $winParams = 'width=670,
height  = 500,
status  = 0,
menubar  = 0,
scrollbars  = 1,
resizable  = 1' 
)

Will change the href value from in the input string and turn it into an onclick event that will open a new window with the URL

Parameters
string$strThe string to process. This should be a string already wrapped/including a tag which will be modified to contain an onclick handler. Only the attributes "href" and "onclick" will be left.
string$winNameWindow name for the pop-up window
string$winParamsWindow parameters, see the default list for inspiration
Returns
string The processed input string, modified IF a tag was found

Definition at line 485 of file AbstractPlugin.php.

References TYPO3\CMS\Core\Utility\GeneralUtility\get_tag_attributes(), and TYPO3\CMS\Core\Utility\GeneralUtility\quoteJSvalue().

◆ pi_prependFieldsWithTable()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_prependFieldsWithTable (   $table,
  $fieldList 
)

Having a comma list of fields ($fieldList) this is prepended with the $table.'.' name

Parameters
string$tableTable name to prepend
string$fieldListList of fields where each element will be prepended with the table name given.
Returns
string List of fields processed.

Definition at line 1214 of file AbstractPlugin.php.

References TYPO3\CMS\Core\Utility\GeneralUtility\trimExplode().

Referenced by TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_exec_query().

◆ pi_RTEcssText()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_RTEcssText (   $str)

Will process the input string with the parseFunc function from ContentObjectRenderer based on configuration set in "lib.parseFunc_RTE" in the current TypoScript template. This is useful for rendering of content in RTE fields where the transformation mode is set to "ts_css" or so. Notice that this requires the use of "css_styled_content" to work right.

Parameters
string$strThe input text string to process
Returns
string The processed string
See also
ContentObjectRenderer::parseFunc()

Definition at line 1349 of file AbstractPlugin.php.

◆ pi_setPiVarDefaults()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_setPiVarDefaults ( )

If internal TypoScript property "_DEFAULT_PI_VARS." is set then it will merge the current $this->piVars array onto these default values.

Definition at line 328 of file AbstractPlugin.php.

References TYPO3\CMS\Frontend\Plugin\AbstractPlugin\applyStdWrapRecursive(), and TYPO3\CMS\Core\Utility\ArrayUtility\mergeRecursiveWithOverrule().

Referenced by TYPO3\CMS\Felogin\Controller\FrontendLoginController\main().

◆ pi_wrapInBaseClass()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_wrapInBaseClass (   $str)

Wraps the input string in a

tag with the class attribute set to the prefixId. All content returned from your plugins should be returned through this function so all content from your plugin is encapsulated in a
-tag nicely identifying the content of your plugin.
Parameters
string$strHTML content to wrap in the div-tags with the "main class" of the plugin
Returns
string HTML content wrapped, ready to return to the parent object.

Definition at line 836 of file AbstractPlugin.php.

Referenced by TYPO3\CMS\Felogin\Controller\FrontendLoginController\main().

Member Data Documentation

◆ $altLLkey

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$altLLkey = ''

Definition at line 131 of file AbstractPlugin.php.

◆ $cObj

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$cObj

Definition at line 45 of file AbstractPlugin.php.

◆ $conf

◆ $databaseConnection

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$databaseConnection
protected

Definition at line 236 of file AbstractPlugin.php.

◆ $extKey

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$extKey

Definition at line 66 of file AbstractPlugin.php.

◆ $frontendController

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$frontendController
protected

Definition at line 228 of file AbstractPlugin.php.

◆ $internal

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$internal = ['res_count' => 0

Definition at line 92 of file AbstractPlugin.php.

◆ $LLkey

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$LLkey = 'default'

◆ $LLtestPrefix

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$LLtestPrefix = ''

Definition at line 139 of file AbstractPlugin.php.

◆ $LLtestPrefixAlt

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$LLtestPrefixAlt = ''

Definition at line 147 of file AbstractPlugin.php.

◆ $LOCAL_LANG

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$LOCAL_LANG = []

Definition at line 99 of file AbstractPlugin.php.

◆ $LOCAL_LANG_loaded

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$LOCAL_LANG_loaded = false

Definition at line 117 of file AbstractPlugin.php.

◆ $LOCAL_LANG_UNSET

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$LOCAL_LANG_UNSET = []
protected

Definition at line 109 of file AbstractPlugin.php.

◆ $pi_alwaysPrev

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$pi_alwaysPrev = 0

◆ $pi_autoCacheEn

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$pi_autoCacheEn = false

Definition at line 182 of file AbstractPlugin.php.

◆ $pi_autoCacheFields

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$pi_autoCacheFields = []

Definition at line 177 of file AbstractPlugin.php.

◆ $pi_checkCHash

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$pi_checkCHash = false

Definition at line 199 of file AbstractPlugin.php.

◆ $pi_EPtemp_cObj

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$pi_EPtemp_cObj

Definition at line 216 of file AbstractPlugin.php.

◆ $pi_isOnlyFields

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$pi_isOnlyFields = 'mode,pointer'

◆ $pi_listFields

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$pi_listFields = '*'

Definition at line 172 of file AbstractPlugin.php.

◆ $pi_lowerThan

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$pi_lowerThan = 5

Definition at line 162 of file AbstractPlugin.php.

◆ $pi_moreParams

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$pi_moreParams = ''

◆ $pi_tmpPageId

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$pi_tmpPageId = 0

Definition at line 221 of file AbstractPlugin.php.

◆ $pi_USER_INT_obj

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$pi_USER_INT_obj = false

Definition at line 191 of file AbstractPlugin.php.

◆ $piVars

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$piVars

◆ $prefixId

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$prefixId

Definition at line 52 of file AbstractPlugin.php.

◆ $scriptRelPath

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$scriptRelPath

Definition at line 59 of file AbstractPlugin.php.

◆ $templateService

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::$templateService
protected

Definition at line 241 of file AbstractPlugin.php.