TYPO3 Forge: Issueshttp://forge.typo3.org/http://forge.typo3.org/themes/typo3_forge/favicon/favicon.png?17058661692017-06-30T19:51:01ZTYPO3 Forge
Redmine TYPO3 Core - Bug #81761 (Closed): l10n_mode exclude is ignored in IRRE relations and deletes unre...http://forge.typo3.org/issues/817612017-06-30T19:51:01ZPhilipp Gampephilipp.gampe@typo3.org
<p>If a records has a child records as IRRE relation with foreign field,<br />but the child records also exist freely without parent record and the <br />default value for the foreign field is <code>0</code> (Zero), then translating<br />the parent records will delete all child records without a parent.</p>
<p>Bonus: If the child records is not translatable, a "translated" child<br />record is created anyway.</p>
<p><strong>Expected behavior</strong>:<br />Translated parent and do not show child record IRRE in the translation<br />(Formengine).<br />Free children are left alone.<br />Bonus: Do not create a new child record for each translation.</p>
<p><strong>Actual behavior</strong>:<br />Child record relation is not shown in translation (form engine). [correct]<br />All free children are removed. [big problem]<br />Bonus: A new child record is created for each translation. [small problem]</p>
<p><strong>Workaround</strong>:<br />Make the default value for the foreign field not zero (e.g. <code>-1</code>).</p> TYPO3 Core - Bug #81726 (Closed): Install tool fatals on invalid table namehttp://forge.typo3.org/issues/817262017-06-28T14:12:45ZPhilipp Gampephilipp.gampe@typo3.org
<p>If the list of tables returned by mysql contains an invalid table name, the mysqli driver in the core throws an exception, breaking the install tool initial wizard in the database selection step.</p>
<p>The core should catch the exception and convert if to an error message and also simply skip invalid tables names.</p>
<p>To reproduce the error, create a directory <code>.config</code> in the mysql data dir and restart mysql. it should show an invalid table name like <code>#mysql50#.config</code> in the list of tables.</p> TYPO3 Core - Feature #80689 (Closed): Include static templates should allow .typoscript file exte...http://forge.typo3.org/issues/806892017-04-05T13:38:12ZPhilipp Gampephilipp.gampe@typo3.org
<p>As for the result of the polls [1],</p>
<p>the method <code>\TYPO3\CMS\Core\TypoScript\TemplateService::getTypoScriptSourceFileContent</code> should also check for <code>.typoscript</code> in addition to <code>.txt</code> and <code>.ts</code>.</p>
<p>The the long run, files should be registered individually instead of the magic resolving in the core.</p> TYPO3 Core - Task #78144 (Closed): Evaluate inclusion of spdx info filehttp://forge.typo3.org/issues/781442016-10-04T20:32:31ZPhilipp Gampephilipp.gampe@typo3.org
<blockquote>
<p>The Software Package Data Exchange® (SPDX®) specification is a standard format for communicating the components, licenses and copyrights associated with software packages.<br />The SPDX standard helps facilitate compliance with free and open source software licenses by standardizing the way license information is shared across the software supply chain. SPDX reduces redundant work by providing a common format for companies and communities to share important data about software licenses and copyrights, thereby streamlining and improving compliance.<br />The SPDX specification is developed by the SPDX workgroup, which is hosted by the Linux Foundation. The grass-roots effort includes representatives from more than 20 organizations—software, systems and tool vendors, foundations and systems integrators—all committed to creating a standard for software package data exchange formats.</p>
</blockquote>
<p><a class="external" href="https://spdx.org/">https://spdx.org/</a></p> TYPO3 Core - Bug #76455 (Rejected): TypoScript TMEMUITEM before and after only work for NOhttp://forge.typo3.org/issues/764552016-06-04T15:10:25ZPhilipp Gampephilipp.gampe@typo3.org
<p>Consider the following TS<br /><pre>
lib.nav = HMENU
lib.nav {
special = directory
special.value = 1
1 = TMENU
1 {
expAll = 1
wrap = <ul>|</ul>
NO = 1
NO {
wrapItemAndSub = <li>|</li>
before = NONONONONONO
}
ACT < NO
ACT {
wrapItemAndSub = <li class="active"> | </li>
before = ACTACTACTACTACT
}
IFSUB < NO
IFSUB {
wrapItemAndSub = <li class="ifsub" >|</li>
before = IFSUBIFSUBIFSUB
}
ACTIFSUB < IFSUB
ACTIFSUB {
wrapItemAndSub = <li class ="ifsub active">|</li>
before = ACTIFSUBACTIFSUB
}
}
2 < .1
3 < .2
}
</pre></p>
<p>The expected result is, the the prepended string changes depending on the item state. However, only NONONONONONO is ever generated.</p>
<p>Verified this on 6.2, 7.6 and master.</p> TYPO3 Core - Bug #75881 (Closed): Improper usage of processed fileshttp://forge.typo3.org/issues/758812016-04-23T12:45:27ZPhilipp Gampephilipp.gampe@typo3.org
<p><code>$file->process(...)</code> returns a <code>ProcessedFile</code> object, even it could not process the image.<br />The <code>ProcessedFile</code> has a method <code>isProcessed()</code> that needs to be used to check the result, otherwise <code>ProcessedFile</code> returns the properties of the original file.</p> TYPO3 Core - Bug #71405 (Closed): Creating a folder with an invalid name fatalshttp://forge.typo3.org/issues/714052015-11-07T23:25:43ZPhilipp Gampephilipp.gampe@typo3.org
<p>Try to create a folder in fileadmin (toplevel) with the name "../Test1234345".</p>
<p>Result is a fatal exception. A flashmessage should be shown instead.</p>
<pre>Uncaught TYPO3 Exception
#1320288991: File name .. is invalid. (More information)
TYPO3\CMS\Core\Resource\Exception\InvalidFileNameException thrown in file
/home/phil/t3-playground/t3-git/typo3/sysext/core/Classes/Resource/Driver/LocalDriver.php in line 336.
</pre>
<p>Solution: Catch the exception.</p> TYPO3 Core - Bug #67528 (Closed): Copying a large set of high-res images to clipboard crashes serverhttp://forge.typo3.org/issues/675282015-06-16T20:42:25ZPhilipp Gampephilipp.gampe@typo3.org
<p>Since <a class="changeset" title="[TASK] Remove show/hide thumbnails button from clipboard This patch remove the button to show an..." href="http://forge.typo3.org/projects/typo3cms-core/repository/1749/revisions/47fa57382d7a727f46126e499e82281784cae18a">47fa57382d7a727f46126e499e82281784cae18a</a> (<a class="external" href="https://review.typo3.org/#/c/40307/">https://review.typo3.org/#/c/40307/</a>) thumbnails are show by default in the clipboard.<br />This crashes the server (the PHP process) if you copy many images (default 40) with high-resolution into the clipboard without having display thumbnails set.</p> TYPO3 Core - Bug #64616 (Closed): Compare Database does not remove 'NOT NULL'http://forge.typo3.org/issues/646162015-01-29T21:34:54ZPhilipp Gampephilipp.gampe@typo3.org
<p>The compare database wizard does not detect if fields to not have the <code>NOT NULL</code> clause anymore (if they had such a clause previously).</p>
<pre>
MariaDB [dummy]> SHOW FIELDS FROM sys_file_processedfile;
+-------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+--------------+------+-----+---------+----------------+
| uid | int(11) | NO | PRI | NULL | auto_increment |
| pid | int(11) | NO | MUL | 0 | |
| tstamp | int(11) | NO | | 0 | |
| crdate | int(11) | NO | | 0 | |
| cruser_id | int(11) | NO | | 0 | |
| deleted | tinyint(4) | NO | | 0 | |
| storage | int(11) | NO | MUL | 0 | |
| original | int(11) | NO | MUL | 0 | |
| identifier | varchar(512) | YES | | | |
| name | tinytext | YES | | NULL | |
| configuration | text | YES | | NULL | |
| context | varchar(200) | NO | | | |
| checksum | varchar(255) | NO | | | |
| is_processed | varchar(200) | NO | | | |
| extension | varchar(255) | NO | | | |
| mime_type | varchar(255) | NO | | | |
| sha1 | tinytext | YES | | NULL | |
| size | int(11) | NO | | 0 | |
| width | int(11) | NO | | 0 | |
| height | int(11) | NO | | 0 | |
| originalfilesha1 | char(40) | YES | | | |
| task_type | varchar(200) | NO | | | |
| configurationsha1 | char(40) | YES | | | |
+-------------------+--------------+------+-----+---------+----------------+
</pre>
<p>Notice the <code>NO</code> for <code>NULL</code> for the fields <code>width</code> and <code>height</code>. The corresponding SQL file (from core sysext):</p>
<pre>
CREATE TABLE sys_file_processedfile (
uid int(11) NOT NULL auto_increment,
tstamp int(11) DEFAULT '0' NOT NULL,
crdate int(11) DEFAULT '0' NOT NULL,
storage int(11) DEFAULT '0' NOT NULL,
original int(11) DEFAULT '0' NOT NULL,
identifier varchar(512) DEFAULT '' NOT NULL,
name tinytext,
configuration text,
configurationsha1 char(40) DEFAULT '' NOT NULL,
originalfilesha1 char(40) DEFAULT '' NOT NULL,
task_type varchar(200) DEFAULT '' NOT NULL,
checksum varchar(255) DEFAULT '' NOT NULL,
width int(11) DEFAULT '0',
height int(11) DEFAULT '0',
PRIMARY KEY (uid),
KEY combined_1 (original,task_type,configurationsha1),
KEY identifier (storage,identifier(199))
);
</pre>
<p>Notice that it does not have a <code>NOT NULL</code> for the <code>width</code> and <code>height</code> fields.</p>
<p>The database compare does not detect this.</p> TYPO3 Core - Task #64589 (Closed): Cleanup ResourceFactoryhttp://forge.typo3.org/issues/645892015-01-29T13:53:55ZPhilipp Gampephilipp.gampe@typo3.org
<p>This is a list of problems I spotted while reviewing the ResourceFactory. Some issue might need own tickets, but some might just be easy cleanups.</p>
<p>Requires some thinking about the API.</p>
<p>typo3/sysext/core/Classes/Resource/ResourceFactory.php<br /><pre>
general: clear local cache method (e.g. to save memory on bulk operations)
general: why are create object methods public?
78: creates a driver -> gets a driver
88: do not recreate instance of singleton
89: getDriverClass? what for?
105: getDefaultStorage should be a first class citizen of StorageRepository, Cache the result [O(n) instead of O(1)]
128: why $fileIdentifier handling in this function instead of a dedicated function? Used only 1 or 2 times in core, same for $recordData, at least cached, but that part is hard to miss in between all the unrelated code
167: createStorageObject inside a getter? -> move to own method, also gets rid of $recordData here
186: pointing to PATH_site/fileadmin? or fileadminDir
274: use API for delete clause
307: $storageConfiguration --> $storageConfiguration !== NULL
329: missing PhpDoc
372: (sting)$identifier !== ''
400: wtf has this to do with processed files? -> variant should not be findable in the repository
405: create inside a getter? really needed here?
446: strpos($input, ':') > 0 ??? === 1 instead?
450: after having extracted the storage uid already, why not using getFileObjectFromStorageAndIdentifier
451: move elseif up one level
467: use getFileObjectByStorageAndIdentifier() with storage 0 instead
470: same here
481: method should be moved near getFileObjectFromCombinedIdentifier()
509: same here
523: why does this method does not handle legacy paths?
543: remove $storage parameter, require to have $fileData['storage'] set instead, change exception accordingly
613: use API for delete clause
</pre></p> TYPO3 Core - Bug #63692 (Closed): Memory consumption while bulk insertinghttp://forge.typo3.org/issues/636922014-12-09T07:02:39ZPhilipp Gampephilipp.gampe@typo3.org
<p>This is a master ticket for all tickets related to bulk insert improvements.</p> TYPO3 Core - Bug #58474 (Closed): Invalid dependency is not hinted to the developerhttp://forge.typo3.org/issues/584742014-05-04T10:44:07ZPhilipp Gampephilipp.gampe@typo3.org
<p>Consider this:<br /><pre>
'depends' => array(
'cms' => '',
'div2007' => '1.1.5-',
...
</pre></p>
<p>The dependency resolution will fail with <code>Could not resolve dependency for "div2007"</code>. There should be a more descriptive error message that directly tells the user what is wrong.</p> TYPO3 Core - Bug #58142 (Closed): Backend layout, empty colpos breaks JShttp://forge.typo3.org/issues/581422014-04-23T23:07:03ZPhilipp Gampephilipp.gampe@typo3.org
<p>Consider the following TS:<br /><pre>
backend_layout {
colCount = 3
rowCount = 3
rows {
1 {
columns {
1 {
name = Top left
}
2 {
name = top middle 0
colPos = 0
}
3 {
name = top right 1
colPos = 1
}
}
}
2 {
columns {
1 {
name = middle left 2
colPos = 2
}
2 {
name = middle middle 3
colPos = 3
}
3 {
name = middle right 4
colPos = 4
}
}
}
3 {
columns {
1 {
name = lower left
colPos = 5
}
2 {
name = lower middle -1
colPos = -1
}
3 {
name =
colPos =
}
}
}
}
}
</pre></p>
<p>This results in the following JS:<br /><pre>
t3Grid = new TYPO3.Backend.t3Grid({
data: [[{colspan:1,rowspan:1,name:'Top left'},{colspan:1,rowspan:1,name:'top middle 0',column:0},{colspan:1,rowspan:1,name:'top right 1',column:1}],[{colspan:1,rowspan:1,name:'middle left 2',column:2},{colspan:1,rowspan:1,name:'middle middle 3',column:3},{colspan:1,rowspan:1,name:'middle right 4',column:4}],[{colspan:1,rowspan:1,name:'lower left',column:5},{colspan:1,rowspan:1,name:'lower middle -1',column:-1},{colspan:1,rowspan:1,name:'',column:}]],
colCount: 3,
rowCount: 3,
targetElement: 'editor'
});
</pre></p>
<p>This is invalid, because the <code>column:}</code> must be <code>column:''}</code>.</p>
<p>Removing the empty <code>colPos =</code> statements makes the JS valid again, because the column property is not rendered.</p>
<p>Solution, check for empty colPos and cast this to a string.</p> TYPO3 Core - Bug #58019 (Rejected): FAL Indexer for broken files: Column 'width' cannot be nullhttp://forge.typo3.org/issues/580192014-04-17T15:44:01ZPhilipp Gampephilipp.gampe@typo3.org
<p>The FAL indexer fails to properly handle broken files.</p>
<p>To reproduce:<br />Create a text file with any content and name it test.jpg. Upload this via the backend or just place it in the fileadmin directory.<br />Visit the folder containing the file in the file module to trigger the indexing.<br />The indexing will fail and a NULL value is handled on to the database.</p>
<p>Note: I consider this to be a regression, because broken files did not break the file list before.</p> TYPO3 Core - Bug #57265 (Rejected): Importing large amounts of data issues many truncate'shttp://forge.typo3.org/issues/572652014-03-25T03:32:41ZPhilipp Gampephilipp.gampe@typo3.org
<p>While importing large amounts of data (e.g. while installing a distribution), \TYPO3\CMS\Core\DataHandling\DataHandler::clear_cache() is called for each record.<br />clear_cache() in turn tries to clean each related page frontend cache and finally (because of the default setting) deletes the cache group pages.</p>
<p>This results in some 10000 truncate calls being issued to the database.</p>