[BUGFIX] Quick Edit triggers warnings of missing key uid
[Packages/TYPO3.CMS.git] / typo3 / sysext / backend / Classes / Tree / View / PagePositionMap.php
index cc82198..3a7152d 100644 (file)
@@ -489,7 +489,8 @@ class PagePositionMap {
        /**
         * Creates a linked position icon.
         *
-        * @param array $row Element row.
+        * @param mixed $row Element row. If this is an array the link will cause an insert after this content element, otherwise
+        * the link will insert at the first position in the column
         * @param string $vv Column position value.
         * @param integer $kk Column key.
         * @param integer $moveUid Move uid
@@ -498,14 +499,22 @@ class PagePositionMap {
         * @todo Define visibility
         */
        public function insertPositionIcon($row, $vv, $kk, $moveUid, $pid) {
-               $cc = hexdec(substr(md5($row['uid'] . '-' . $vv . '-' . $kk), 0, 4));
+               if (is_array($row) && !empty($row['uid'])) {
+                       // Use record uid for the hash when inserting after this content element
+                       $uid = $row['uid'];
+               } else {
+                       // No uid means insert at first position in the column
+                       $uid = '';
+               }
+               $cc = hexdec(substr(md5($uid . '-' . $vv . '-' . $kk), 0, 4));
                return '<a href="#" onclick="' . htmlspecialchars($this->onClickInsertRecord($row, $vv, $moveUid, $pid, $this->cur_sys_language)) . '" onmouseover="' . htmlspecialchars(('changeImg(\'mImg' . $cc . '\',0);')) . '" onmouseout="' . htmlspecialchars(('changeImg(\'mImg' . $cc . '\',1);')) . '">' . '<img' . \TYPO3\CMS\Backend\Utility\IconUtility::skinImg($this->backPath, 'gfx/newrecord2_marker_d.gif', 'width="100" height="8"') . ' name="mImg' . $cc . '" border="0" align="top" title="' . $GLOBALS['LANG']->getLL($this->l_insertNewRecordHere, 1) . '" alt="" />' . '</a>';
        }
 
        /**
         * Create on-click event value.
         *
-        * @param array $row The record.
+        * @param mixed $row The record. If this is not an array with the record data the insert will be for the first position
+        * in the column
         * @param string $vv Column position value.
         * @param integer $moveUid Move uid
         * @param integer $pid PID value.