TYPO3 CMS  TYPO3_7-6
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 TYPO3\CMS\IndexedSearch\Controller\SearchFormController TYPO3\CMS\Rtehtmlarea\Controller\AccessibilityLinkController TYPO3\CMS\Rtehtmlarea\Controller\CustomAttributeController TYPO3\CMS\Rtehtmlarea\Controller\ImageRenderingController

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_searchBox ($tableParams='')
 
 pi_list_modeSelector ($items=[], $tableParams='')
 
 pi_list_makelist ($res, $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_charset = []
 
 $LOCAL_LANG_loaded = 0
 
 $LLkey = 'default'
 
 $altLLkey = ''
 
 $LLtestPrefix = ''
 
 $LLtestPrefixAlt = ''
 
 $pi_isOnlyFields = 'mode,pointer'
 
 $pi_alwaysPrev = 0
 
 $pi_lowerThan = 5
 
 $pi_moreParams = ''
 
 $pi_listFields = '*'
 
 $pi_autoCacheFields = []
 
 $pi_autoCacheEn = 0
 
 $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
 

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 32 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 285 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 1253 of file AbstractPlugin.php.

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

◆ pi_classParam()

◆ 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
bool||object SQL result pointer

Definition at line 1071 of file AbstractPlugin.php.

References TYPO3\CMS\Core\Utility\MathUtility\forceIntegerInRange(), TYPO3\CMS\Core\Utility\GeneralUtility\inList(), TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_getPidList(), and TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_prependFieldsWithTable().

◆ 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 1203 of file AbstractPlugin.php.

◆ 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 799 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, 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 872 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 1326 of file AbstractPlugin.php.

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

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

◆ 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 1345 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\makeInstance(), and TYPO3\CMS\Core\Utility\GeneralUtility\trimExplode().

Referenced by TYPO3\CMS\Felogin\Controller\FrontendLoginController\changePassword(), TYPO3\CMS\IndexedSearch\Controller\SearchFormController\compileResult(), TYPO3\CMS\IndexedSearch\Controller\SearchFormController\doSearch(), TYPO3\CMS\Felogin\Controller\FrontendLoginController\generateAndSendHash(), TYPO3\CMS\IndexedSearch\Controller\SearchFormController\getDisplayResults(), TYPO3\CMS\Felogin\Controller\FrontendLoginController\getDisplayText(), TYPO3\CMS\IndexedSearch\Controller\SearchFormController\initialize(), TYPO3\CMS\Felogin\Controller\FrontendLoginController\main(), TYPO3\CMS\IndexedSearch\Controller\SearchFormController\makeAccessIndication(), TYPO3\CMS\IndexedSearch\Controller\SearchFormController\makeDescription(), TYPO3\CMS\IndexedSearch\Controller\SearchFormController\makeRating(), TYPO3\CMS\IndexedSearch\Controller\SearchFormController\makeSearchForm(), TYPO3\CMS\IndexedSearch\Controller\SearchFormController\makeSectionHeader(), TYPO3\CMS\IndexedSearch\Controller\SearchFormController\makeTitle(), TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_list_browseresults(), TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_list_searchBox(), TYPO3\CMS\IndexedSearch\Controller\SearchFormController\printResultRow(), TYPO3\CMS\IndexedSearch\Controller\SearchFormController\printResultSectionLinks(), TYPO3\CMS\IndexedSearch\Controller\SearchFormController\printRules(), TYPO3\CMS\CssStyledContent\Controller\CssStyledContentController\render_uploads(), TYPO3\CMS\IndexedSearch\Controller\SearchFormController\renderPagination(), TYPO3\CMS\Felogin\Controller\FrontendLoginController\showForgot(), TYPO3\CMS\Felogin\Controller\FrontendLoginController\showLogin(), TYPO3\CMS\Felogin\Controller\FrontendLoginController\showLogout(), TYPO3\CMS\IndexedSearch\Controller\SearchFormController\tellUsWhatIsSeachedFor(), 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 347 of file AbstractPlugin.php.

Referenced by TYPO3\CMS\Felogin\Controller\FrontendLoginController\generateAndSendHash(), TYPO3\CMS\IndexedSearch\Controller\SearchFormController\getSearchFormActionURL(), TYPO3\CMS\IndexedSearch\Controller\SearchFormController\makeSearchForm(), 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 1155 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 1143 of file AbstractPlugin.php.

References $uid.

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
Returns
void

Definition at line 1305 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 1227 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 364 of file AbstractPlugin.php.

Referenced by TYPO3\CMS\IndexedSearch\Controller\SearchFormController\linkPage().

◆ 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 380 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 403 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 428 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 pagerowser 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() for the pi_getLL function (set this to FALSE if you want f.e use images instead of text for links like 'previous' and 'next').
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 518 of file AbstractPlugin.php.

References $a, TYPO3\CMS\Frontend\Plugin\AbstractPlugin\$pi_alwaysPrev, TYPO3\CMS\Frontend\Plugin\AbstractPlugin\$pi_isOnlyFields, TYPO3\CMS\Core\Utility\MathUtility\forceIntegerInRange(), 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 783 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 447 of file AbstractPlugin.php.

References $uid, 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 (   $res,
  $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
bool | \mysqli_result | object$resResult 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 737 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 703 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 770 of file AbstractPlugin.php.

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

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

◆ pi_list_searchBox()

TYPO3\CMS\Frontend\Plugin\AbstractPlugin::pi_list_searchBox (   $tableParams = '')

Returns a Search box, sending search words to piVars "sword" and setting the "no_cache" parameter as well in the form. Submits the search request to the current REQUEST_URI

Parameters
string$tableParamsAttributes for the table tag which is wrapped around the table cells containing the search box
Returns
string Output HTML, wrapped in
-tags with a class attribute
Deprecated:
since TYPO3 CMS 7, will be removed in TYPO3 CMS 8

Definition at line 674 of file AbstractPlugin.php.

References TYPO3\CMS\Core\Utility\GeneralUtility\getIndpEnv(), TYPO3\CMS\Core\Utility\GeneralUtility\logDeprecatedFunction(), TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_classParam(), and TYPO3\CMS\Frontend\Plugin\AbstractPlugin\pi_getLL().

◆ 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 475 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 1182 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 1285 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.

Returns
void

Definition at line 318 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(), and TYPO3\CMS\IndexedSearch\Controller\SearchFormController\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 834 of file AbstractPlugin.php.

Referenced by TYPO3\CMS\Felogin\Controller\FrontendLoginController\main(), and TYPO3\CMS\IndexedSearch\Controller\SearchFormController\main().

Member Data Documentation

◆ $altLLkey

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

Definition at line 132 of file AbstractPlugin.php.

◆ $cObj

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

Definition at line 39 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 60 of file AbstractPlugin.php.

◆ $frontendController

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

Definition at line 229 of file AbstractPlugin.php.

◆ $internal

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

Definition at line 86 of file AbstractPlugin.php.

◆ $LLkey

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

◆ $LLtestPrefix

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

Definition at line 140 of file AbstractPlugin.php.

◆ $LLtestPrefixAlt

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

Definition at line 148 of file AbstractPlugin.php.

◆ $LOCAL_LANG

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

Definition at line 93 of file AbstractPlugin.php.

◆ $LOCAL_LANG_charset

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

Definition at line 110 of file AbstractPlugin.php.

◆ $LOCAL_LANG_loaded

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

Definition at line 118 of file AbstractPlugin.php.

◆ $LOCAL_LANG_UNSET

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

Definition at line 103 of file AbstractPlugin.php.

◆ $pi_alwaysPrev

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

◆ $pi_autoCacheEn

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

Definition at line 183 of file AbstractPlugin.php.

◆ $pi_autoCacheFields

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

Definition at line 178 of file AbstractPlugin.php.

◆ $pi_checkCHash

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

Definition at line 200 of file AbstractPlugin.php.

◆ $pi_EPtemp_cObj

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

Definition at line 217 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 173 of file AbstractPlugin.php.

◆ $pi_lowerThan

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

Definition at line 163 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 222 of file AbstractPlugin.php.

◆ $pi_USER_INT_obj

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

Definition at line 192 of file AbstractPlugin.php.

◆ $piVars

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

◆ $prefixId

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

Definition at line 46 of file AbstractPlugin.php.

◆ $scriptRelPath

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

Definition at line 53 of file AbstractPlugin.php.