* (minor) Fixed hanging recordset in t3lib_BEfunc
authorMichael Stucki <michael.stucki@typo3.org>
Sun, 23 Sep 2007 07:51:08 +0000 (07:51 +0000)
committerMichael Stucki <michael.stucki@typo3.org>
Sun, 23 Sep 2007 07:51:08 +0000 (07:51 +0000)
* (cleanup) Various code cleanup

git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@2516 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
t3lib/class.t3lib_befunc.php
t3lib/class.t3lib_page.php

index e18ec4a..0de5692 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,8 @@
-2007-09-18  Kasper Sk\8crh¿j  <kasperYYYY@typo3.com>
+2007-09-23  Michael Stucki  <michael@typo3.org>
+
+       * (minor) Fixed hanging recordset in t3lib_BEfunc
+
+2007-09-22  Kasper Skaarhoj  <kasper2007@typo3.com>
 
        * Fixed t3lib_cli that negative numbers (like "-2") is not seen as a parameter
        * New option, $GLOBALS['TYPO3_CONF_VARS']['BE']['flexFormXMLincludeDiffBase'], means that flexforms will allow a new index extending all "vXX" fields to "vXX.vDEFbase" with a value holding the "vDEF" value when the "vXX" value was changed. Effectively this is a memory of the value you translated from. Used for diff'ing.
index 7b12e6f..f320885 100755 (executable)
@@ -1133,8 +1133,9 @@ class t3lib_BEfunc        {
        }
 
        /**
-        * Retrieves the string content stored with hash key, $hash, in cache_hash
-        * IDENTICAL to the function by same name found in t3lib_page:
+        * Returns string value stored for the hash string in the table "cache_hash"
+        * Can be used to retrieved a cached value
+        * IDENTICAL to the function by same name found in t3lib_page
         * Usage: 2
         *
         * @param       string          Hash key, 32 bytes hex
@@ -1144,13 +1145,14 @@ class t3lib_BEfunc      {
        function getHash($hash,$expTime=0)      {
                        // if expTime is not set, the hash will never expire
                $expTime = intval($expTime);
-               if ($expTime)   {
+               if ($expTime) {
                        $whereAdd = ' AND tstamp > '.(time()-$expTime);
                }
                $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('content', 'cache_hash', 'hash='.$GLOBALS['TYPO3_DB']->fullQuoteStr($hash, 'cache_hash').$whereAdd);
-               if ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
-                       return $row['content'];
-               }
+               $row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
+               $GLOBALS['TYPO3_DB']->sql_free_result($res);
+
+               return is_array($row) ? $row['content'] : '';
        }
 
 
@@ -3093,7 +3095,7 @@ class t3lib_BEfunc        {
                        $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('sys_domain.*', 'pages,sys_domain', '
                                pages.uid=sys_domain.pid
                                AND sys_domain.hidden=0
-                               AND (sys_domain.domainName='.$GLOBALS['TYPO3_DB']->fullQuoteStr($domain, 'sys_domain').' or sys_domain.domainName='.$GLOBALS['TYPO3_DB']->fullQuoteStr($domain.'/', 'sys_domain').')'.
+                               AND (sys_domain.domainName='.$GLOBALS['TYPO3_DB']->fullQuoteStr($domain, 'sys_domain').' OR sys_domain.domainName='.$GLOBALS['TYPO3_DB']->fullQuoteStr($domain.'/', 'sys_domain').')'.
                                t3lib_BEfunc::deleteClause('pages'),
                                '', '', '1');
                        $result = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
@@ -3402,14 +3404,14 @@ class t3lib_BEfunc      {
         * Recently, this function has been modified so it MAY set $row to FALSE. This happens if a version overlay with the move-id pointer is found in which case we would like a backend preview. In other words, you should check if the input record is still an array afterwards when using this function.
         *
         * @param       string          Table name
-        * @param       array           Record array passed by reference. As minimum, the "uid", "pid" and "t3ver_swapmode" (pages) fields must exist! Fake fields cannot exist since the fields in the array is used as field names in the SQL look up. It would be nice to have fields like "t3ver_state" and "t3ver_mode_id" as well to avoid a new lookup inside movePlhOL(). 
+        * @param       array           Record array passed by reference. As minimum, the "uid", "pid" and "t3ver_swapmode" (pages) fields must exist! Fake fields cannot exist since the fields in the array is used as field names in the SQL look up. It would be nice to have fields like "t3ver_state" and "t3ver_mode_id" as well to avoid a new lookup inside movePlhOL().
         * @param       integer         Workspace ID, if not specified will use $GLOBALS['BE_USER']->workspace
         * @return      void            (Passed by ref).
         * @see fixVersioningPid()
         */
        function workspaceOL($table,&$row,$wsid=-99,$unsetMovePointers=FALSE)   {
                global $TCA;
-               
+
                $previewMovePlaceholders = TRUE;                // If this is false the placeholder is shown raw in the backend. I don't know if this move can be useful for users to toggle. Technically it can help debugging...
 
                        // Initialize workspace ID:
@@ -3417,7 +3419,7 @@ class t3lib_BEfunc        {
 
                        // Check if workspace is different from zero and record is set:
                if ($wsid!==0 && is_array($row))        {
-                       
+
                                // Check if input record is a move-placeholder and if so, find the pointed-to live record:
                        if ($previewMovePlaceholders)   {
                                $orig_uid = $row['uid'];
@@ -3472,8 +3474,8 @@ class t3lib_BEfunc        {
                                        // Changing input record to the workspace version alternative:
                                $row = $wsAlt;
                        }
-                       
-                               // If the original record was a move placeholder, the uid and pid of that is preserved here: 
+
+                               // If the original record was a move placeholder, the uid and pid of that is preserved here:
                        if ($movePldSwap)       {
                                $row['_MOVE_PLH']=TRUE;
                                $row['_MOVE_PLH_uid'] = $orig_uid;
@@ -3482,7 +3484,7 @@ class t3lib_BEfunc        {
                        }
                }
        }
-       
+
        /**
         * Checks if record is a move-placeholder (t3ver_state==3) and if so it will set $row to be the pointed-to live record (and return TRUE)
         *
@@ -3516,7 +3518,7 @@ class t3lib_BEfunc        {
                }
                return FALSE;
        }
-       
+
        /**
         * Select the workspace version of a record, if exists
         *
@@ -3667,7 +3669,7 @@ class t3lib_BEfunc        {
         */
        function getMovePlaceholder($table,$uid,$fields='*')    {
                global $TCA;
-               
+
                $workspace = $GLOBALS['BE_USER']->workspace;
                if ($workspace!==0 && $TCA[$table] && (int)$TCA[$table]['ctrl']['versioningWS']>=2)     {
 
index 0b22419..b8dc130 100755 (executable)
@@ -866,7 +866,7 @@ class t3lib_pageSelect {
        /**
         * Returns string value stored for the hash string in the table "cache_hash"
         * Can be used to retrieved a cached value
-        * Can be used from your frontend plugins if you like. Is also used to store the parsed TypoScript template structures. You can call it directly like t3lib_pageSelect::getHash()
+        * Can be used from your frontend plugins if you like. It is also used to store the parsed TypoScript template structures. You can call it directly like t3lib_pageSelect::getHash()
         *
         * @param       string          The hash-string which was used to store the data value
         * @param       integer         Allowed expiretime in seconds. Basically a record is selected only if it is not older than this value in seconds. If expTime is not set, the hashed value will never expire.
@@ -874,13 +874,13 @@ class t3lib_pageSelect {
         * @see tslib_TStemplate::start(), storeHash()
         */
        function getHash($hash,$expTime=0)      {
-                       //
+                       // if expTime is not set, the hash will never expire
                $expTime = intval($expTime);
-               if ($expTime)   {
+               if ($expTime) {
                        $whereAdd = ' AND tstamp > '.(time()-$expTime);
                }
                $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('content', 'cache_hash', 'hash='.$GLOBALS['TYPO3_DB']->fullQuoteStr($hash, 'cache_hash').$whereAdd);
-               if ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
+               if ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
                        $GLOBALS['TYPO3_DB']->sql_free_result($res);
                        return $row['content'];
                }