Fixed bug #7896: Hide the page browser if not enough entries are available (Thanks...
[Packages/TYPO3.CMS.git] / typo3 / sysext / cms / tslib / class.tslib_pibase.php
index b62b786..86ebca3 100644 (file)
@@ -443,9 +443,10 @@ class tslib_pibase {
         * @param       array           Array with elements to overwrite the default $wrapper-array.
         * @param       string          varname for the pointer.
         * @param       boolean         enable 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').
-        * @return      string          Output HTML-Table, wrapped in <div>-tags with a class attribute (if $wrapArr is not passed,
+        * @param   boolean     forces the output of the page browser if you set this option to "true" (otherwise it's only drawn if enough entries are available)
+        * @return      string          Output HTML-Table, wrapped in <div>-tags with a class attribute (if $wrapArr is not passed,
         */
-       function pi_list_browseresults($showResultCount=1, $tableParams='', $wrapArr=array(), $pointerName='pointer', $hscText=TRUE)    {
+       function pi_list_browseresults($showResultCount=1, $tableParams='', $wrapArr=array(), $pointerName='pointer', $hscText=TRUE, $forceOutput=FALSE) {
 
                // example $wrapArr-array how it could be traversed from an extension
                /* $wrapArr = array(
@@ -466,6 +467,10 @@ class tslib_pibase {
                $maxPages = t3lib_div::intInRange($this->internal['maxPages'],1,100);
                $pi_isOnlyFields = $this->pi_isOnlyFields($this->pi_isOnlyFields);
 
+               if (!$forceOutput && $count <= $results_at_a_time) {
+                       return '';
+               }
+
                        // $showResultCount determines how the results of the pagerowser will be shown.
                        // If set to 0: only the result-browser will be shown
                        //                       1: (default) the text "Displaying results..." and the result-browser will be shown.
@@ -784,11 +789,13 @@ class tslib_pibase {
         * @param       string          $data: CSS data
         * @param       string          If $selector is set to any CSS selector, eg 'P' or 'H1' or 'TABLE' then the style $data will regard those HTML-elements only
         * @return      void
-        * @deprecated since TYPO3 3.6 - I think this function should not be used (and probably isn't used anywhere). It was a part of a concept which was left behind quite quickly.
+        * @deprecated since TYPO3 3.6, this function will be removed in TYPO3 4.5, I think this function should not be used (and probably isn't used anywhere). It was a part of a concept which was left behind quite quickly.
         * @obsolete
         * @private
         */
        function pi_setClassStyle($class,$data,$selector='')    {
+               t3lib_div::logDeprecatedFunction();
+
                $GLOBALS['TSFE']->setCSS($this->pi_getClassName($class).($selector?' '.$selector:''),'.'.$this->pi_getClassName($class).($selector?' '.$selector:'').' {'.$data.'}');
        }
 
@@ -1042,7 +1049,7 @@ class tslib_pibase {
         * @param       boolean         If set, the function will return the query not as a string but array with the various parts.
         * @return      mixed           The query build.
         * @access private
-        * @deprecated since TYPO3 3.6 - Use pi_exec_query() instead!
+        * @deprecated since TYPO3 3.6, this function will be removed in TYPO3 4.5, use pi_exec_query() instead!
         */
        function pi_list_query($table,$count=0,$addWhere='',$mm_cat='',$groupBy='',$orderBy='',$query='',$returnQueryArray=FALSE)       {
 
@@ -1065,7 +1072,7 @@ class tslib_pibase {
                }
 
                        // Split the "FROM ... WHERE" string so we get the WHERE part and TABLE names separated...:
-               list($TABLENAMES,$WHERE) = spliti('WHERE', trim($query), 2);
+               list($TABLENAMES, $WHERE) = preg_split('/WHERE/i', trim($query), 2);
                $TABLENAMES = trim(substr(trim($TABLENAMES),5));
                $WHERE = trim($WHERE);