[CLEANUP] Add phpDoc to properties in ext:backend
[Packages/TYPO3.CMS.git] / typo3 / sysext / backend / Classes / RecordList / AbstractRecordList.php
index dda2723..1d881a4 100644 (file)
@@ -1,30 +1,18 @@
 <?php
 namespace TYPO3\CMS\Backend\RecordList;
 
-/***************************************************************
- *  Copyright notice
- *
- *  (c) 1999-2013 Kasper Skårhøj (kasperYYYY@typo3.com)
- *  All rights reserved
- *
- *  This script is part of the TYPO3 project. The TYPO3 project is
- *  free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
+/**
+ * This file is part of the TYPO3 CMS project.
  *
- *  The GNU General Public License can be found at
- *  http://www.gnu.org/copyleft/gpl.html.
- *  A copy is found in the text file GPL.txt and important notices to the license
- *  from the author is found in LICENSE.txt distributed with these scripts.
+ * It is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, either version 2
+ * of the License, or any later version.
  *
- *  This script is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
  *
- *  This copyright notice MUST APPEAR in all copies of the script!
- ***************************************************************/
+ * The TYPO3 project - inspiring people to share!
+ */
 
 use TYPO3\CMS\Backend\Utility\BackendUtility;
 use TYPO3\CMS\Backend\Utility\IconUtility;
@@ -43,120 +31,134 @@ use TYPO3\CMS\Core\Utility\GeneralUtility;
  */
 abstract class AbstractRecordList {
 
-       // Used in this class:
-       // default Max items shown
        /**
-        * @todo Define visibility
+        * default Max items shown
+        *
+        * @var int
         */
        public $iLimit = 10;
 
-       // OBSOLETE - NOT USED ANYMORE. leftMargin
        /**
-        * @todo Define visibility
+        * OBSOLETE - NOT USED ANYMORE. leftMargin
+        *
+        * @var int
         */
        public $leftMargin = 0;
 
        /**
-        * @todo Define visibility
+        * @var int
         */
        public $showIcon = 1;
 
        /**
-        * @todo Define visibility
+        * @var int
         */
        public $no_noWrap = 0;
 
-       // If set this is <td> CSS-classname for odd columns in addElement. Used with db_layout / pages section
        /**
-        * @todo Define visibility
+        * If set this is <td> CSS-classname for odd columns in addElement. Used with db_layout / pages section
+        *
+        * @var string
         */
        public $oddColumnsCssClass = '';
 
        /**
-        * @todo Define visibility
+        * @var string
         */
        public $backPath = '';
 
-       // Decides the columns shown. Filled with values that refers to the keys of the data-array. $this->fieldArray[0] is the title column.
        /**
-        * @todo Define visibility
+        * Decides the columns shown. Filled with values that refers to the keys of the data-array. $this->fieldArray[0] is the title column.
+        *
+        * @var array
         */
        public $fieldArray = array();
 
-       // Keys are fieldnames and values are td-parameters to add in addElement(), please use $addElement_tdCSSClass for CSS-classes;
        /**
-        * @todo Define visibility
+        * Keys are fieldnames and values are td-parameters to add in addElement(), please use $addElement_tdCSSClass for CSS-classes;
+        *
+        * @var array
         */
        public $addElement_tdParams = array();
 
-       // Keys are fieldnames and values are td-css-classes to add in addElement();
        /**
-        * @todo Define visibility
+        * Keys are fieldnames and values are td-css-classes to add in addElement();
+        *
+        * @var array
         */
        public $addElement_tdCssClass = array();
 
-       // Not used in this class - but maybe extension classes...
-       // Max length of strings
        /**
-        * @todo Define visibility
+        * Not used in this class - but maybe extension classes...
+        * Max length of strings
+        *
+        * @var int
         */
        public $fixedL = 30;
 
        /**
-        * @todo Define visibility
+        * Script URL
+        *
+        * @var string
         */
-       public $script = '';
+       public $thisScript = '';
 
-       // Set to zero, if you don't want a left-margin with addElement function
        /**
-        * @todo Define visibility
+        * Set to zero, if you don't want a left-margin with addElement function
+        *
+        * @var int
         */
        public $setLMargin = 1;
 
-       // Counter increased for each element. Used to index elements for the JavaScript-code that transfers to the clipboard
        /**
-        * @todo Define visibility
+        * Counter increased for each element. Used to index elements for the JavaScript-code that transfers to the clipboard
+        *
+        * @var int
         */
        public $counter = 0;
 
-       // This could be set to the total number of items. Used by the fwd_rew_navigation...
        /**
-        * @todo Define visibility
+        * This could be set to the total number of items. Used by the fwd_rew_navigation...
+        *
+        * @var string
         */
        public $totalItems = '';
 
-       // Internal (used in this class.)
        /**
-        * @todo Define visibility
+        * Internal (used in this class.)
+        *
+        * @var int
         */
        public $firstElementNumber = 0;
 
        /**
-        * @todo Define visibility
+        * @var int
         */
        public $eCounter = 0;
 
-       // String with accumulated HTML content
        /**
-        * @todo Define visibility
+        * String with accumulated HTML content
+        *
+        * @var string
         */
        public $HTMLcode = '';
 
-       // Contains page translation languages
        /**
-        * @todo Define visibility
+        * Contains page translation languages
+        *
+        * @var array
         */
        public $pageOverlays = array();
 
-       // Contains sys language icons and titles
        /**
-        * @todo Define visibility
+        * Contains sys language icons and titles
+        *
+        * @var array
         */
        public $languageIconTitles = array();
 
        /**
         * @var \TYPO3\CMS\Backend\Configuration\TranslationConfigurationProvider
-        * @todo Define visibility
         */
        public $translateTools;
 
@@ -171,17 +173,34 @@ abstract class AbstractRecordList {
        }
 
        /**
+        * Sets the script url depending on being a module or script request
+        */
+       protected function determineScriptUrl() {
+               if ($moduleName = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('M')) {
+                       $this->thisScript = \TYPO3\CMS\Backend\Utility\BackendUtility::getModuleUrl($moduleName);
+               } else {
+                       $this->thisScript = \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('SCRIPT_NAME');
+               }
+       }
+
+       /**
+        * @return string
+        */
+       protected function getThisScript() {
+               return strpos($this->thisScript, '?') === FALSE ? $this->thisScript . '?' : $this->thisScript . '&';
+       }
+
+       /**
         * Returns a table-row with the content from the fields in the input data array.
         * OBS: $this->fieldArray MUST be set! (represents the list of fields to display)
         *
-        * @param integer $h Is an integer >=0 and denotes how tall a element is. Set to '0' makes a halv line, -1 = full line, set to 1 makes a 'join' and above makes 'line'
+        * @param int $h Is an integer >=0 and denotes how tall a element is. Set to '0' makes a halv line, -1 = full line, set to 1 makes a 'join' and above makes 'line'
         * @param string $icon Is the <img>+<a> of the record. If not supplied the first 'join'-icon will be a 'line' instead
         * @param array $data Is the dataarray, record with the fields. Notice: These fields are (currently) NOT htmlspecialchar'ed before being wrapped in <td>-tags
         * @param string $tdParams Is insert in the <td>-tags. Must carry a ' ' as first character
-        * @param integer OBSOLETE - NOT USED ANYMORE. $lMargin is the leftMargin (integer)
+        * @param int OBSOLETE - NOT USED ANYMORE. $lMargin is the leftMargin (int)
         * @param string $altLine Is the HTML <img>-tag for an alternative 'gfx/ol/line.gif'-icon (used in the top)
         * @return string HTML content for the table row
-        * @todo Define visibility
         */
        public function addElement($h, $icon, $data, $trParams = '', $lMargin = '', $altLine = '') {
                $noWrap = $this->no_noWrap ? '' : ' nowrap="nowrap"';
@@ -259,7 +278,6 @@ abstract class AbstractRecordList {
         * Dummy function, used to write the top of a table listing.
         *
         * @return void
-        * @todo Define visibility
         */
        public function writeTop() {
 
@@ -269,7 +287,6 @@ abstract class AbstractRecordList {
         * Finishes the list with the "stopper"-gif, adding the HTML code for that item to the internal ->HTMLcode string
         *
         * @return void
-        * @todo Define visibility
         * @deprecated since 6.2, will be removed 2 versions later - Function not needed anymore
         */
        public function writeBottom() {
@@ -281,7 +298,6 @@ abstract class AbstractRecordList {
         *
         * @param string $table Table name
         * @return array array([boolean], [HTML]) where [boolean] is 1 for reverse element, [HTML] is the table-row code for the element
-        * @todo Define visibility
         */
        public function fwd_rwd_nav($table = '') {
                $code = '';
@@ -310,11 +326,10 @@ abstract class AbstractRecordList {
         * Creates the button with link to either forward or reverse
         *
         * @param string $type Type: "fwd" or "rwd
-        * @param integer $pointer Pointer
+        * @param int $pointer Pointer
         * @param string $table Table name
         * @return string
         * @access private
-        * @todo Define visibility
         */
        public function fwd_rwd_HTML($type, $pointer, $table = '') {
                $content = '';
@@ -337,17 +352,15 @@ abstract class AbstractRecordList {
         *
         * @param string $altId Alternative id value. Enter blank string for the current id ($this->id)
         * @return string URL
-        * @todo Define visibility
         */
        public function listURL($altId = '') {
-               return $this->script . '?id=' . ($altId !== '' ? $altId : $this->id);
+               return $this->getThisScript() . 'id=' . ($altId !== '' ? $altId : $this->id);
        }
 
        /**
         * Returning JavaScript for ClipBoard functionality.
         *
         * @return string
-        * @todo Define visibility
         */
        public function CBfunctions() {
                return '
@@ -386,21 +399,19 @@ abstract class AbstractRecordList {
         * Initializes page languages and icons
         *
         * @return void
-        * @todo Define visibility
         */
        public function initializeLanguages() {
                // Look up page overlays:
-               $this->pageOverlays = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*', 'pages_language_overlay', 'pid=' . intval($this->id) . BackendUtility::deleteClause('pages_language_overlay') . BackendUtility::versioningPlaceholderClause('pages_language_overlay'), '', '', '', 'sys_language_uid');
+               $this->pageOverlays = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*', 'pages_language_overlay', 'pid=' . (int)$this->id . BackendUtility::deleteClause('pages_language_overlay') . BackendUtility::versioningPlaceholderClause('pages_language_overlay'), '', '', '', 'sys_language_uid');
                $this->languageIconTitles = $this->getTranslateTools()->getSystemLanguages($this->id, $this->backPath);
        }
 
        /**
         * Return the icon for the language
         *
-        * @param integer $sys_language_uid Sys language uid
-        * @param boolean $addAsAdditionalText If set to true, only the flag is returned
+        * @param int $sys_language_uid Sys language uid
+        * @param bool $addAsAdditionalText If set to true, only the flag is returned
         * @return string Language icon
-        * @todo Define visibility
         */
        public function languageFlag($sys_language_uid, $addAsAdditionalText = TRUE) {
                $out = '';