TYPO3 Forge: Issueshttp://forge.typo3.org/http://forge.typo3.org/themes/typo3_forge/favicon/favicon.png?17058661692023-10-26T09:39:02ZTYPO3 Forge
Redmine TYPO3 Core - Task #102263 (Closed): Return string version of Stringable objects in DataMapper::ge...http://forge.typo3.org/issues/1022632023-10-26T09:39:02ZSoren Mallingsoren@meteko.dk
<p>The DataMapper::getPlainValue expects a object to be a instance of TypeInterface in order to return a plain value.</p>
<p>The TypoInterface holds the `__toString` method - making it `a instance of Stringable`.</p>
<p>Objects/value objects coming from own extensions, not implementing the TypeInterface but being a `Stringable` (either by `implements \Stringable` or having the `__toString` method) throws the exception</p>
<p>`throw new UnexpectedTypeException('An object of class "' . get_class($input) . '" could not be converted to a plain value.', 1274799934);`</p>
<p>Suggestion here, being that the condition also allows a object being a stringable</p>
<p>From: <br />`if (TypeHandlingUtility::isCoreType($input)) {`</p>
<p>To:<br />`if (TypeHandlingUtility::isCoreType($input) || ($input instanceof \Stringable)) {`</p> TYPO3 Core - Feature #87823 (Closed): Introduce "class" to StaticRouteResolver configurationhttp://forge.typo3.org/issues/878232019-03-02T18:26:47ZSoren Mallingsoren@meteko.dk
<p>The StaticRouteResolver can handle "staticText" and "uri".</p>
<p>I suggest a new type being a class->method()</p>
<p>Reason for this:</p>
<p>The PSR middleware returns a Response once it's processed. The Request object is present and the current site including it's configuration.</p>
<p>I see some great use case for static routes like</p>
<p>/blog<br />/news</p>
<p>and similar, that can respond to routes that a editor doesn't need to create. The class can then render a typoscript object, alternative template or similar.</p>
<p>Alternatively, this issue can be closed with the descission of saying "you can implement such PSR yourself and should not be a core thing" - I will completely respect that descission.</p> TYPO3 Core - Feature #86962 (Closed): Asset pipeline: Only include assets for rendered content el...http://forge.typo3.org/issues/869622018-11-21T09:48:08ZSoren Mallingsoren@meteko.dk
<p>Inspired by my teachings after working a bit with Ruby on Rails and the keynote as T3CON18 about speed I would like to present a feature on Asset pipeline for rendered content element.</p>
<p>The idea/concept is as so:</p>
<p>Given the tt_content elements that are being rendered, the TYPO3 rendering engine can include only assets (css/js) that are related to the content element or plugin.</p>
<p>For example. Here is a number of content element in colPos = 0. The idea is not limited to a single colPos, but let's keep it simple :)</p>
<pre>
[CType: text]
[CType: image]
[CType: Plugin -> Extbase plugin]
[CType: menu_sitemap]
</pre>
<p>Giving a path configuration similar to how content elements are given a path to it's HTML files</p>
<pre>
lib.assetPipeline {
css.10 = EXT:awesomesite/Resources/Public/Assets/Css/Component/
}
</pre>
<p>The rendering will look at the rendered CType and look for EXT:awesomesite/Resources/Public/Assets/Css/Component/[CType].css to include into the pageGenerators includeCSS part. If you enable concate and compress css you will have a CSS file build for the content of that site and no bloated CSS/JS stuff.</p>
<p>I created a POC for extbase related rendering. Add this code block to the ActionController -> renderAssetsForRequest() method</p>
<pre><code class="php syntaxhl" data-language="php"> <span class="nv">$assetFile</span> <span class="o">=</span> <span class="nc">GeneralUtility</span><span class="o">::</span><span class="nf">getFileAbsFileName</span><span class="p">(</span><span class="s1">'EXT:'</span> <span class="mf">.</span> <span class="nv">$this</span><span class="o">-></span><span class="nf">getControllerContext</span><span class="p">()</span><span class="o">-></span><span class="nf">getRequest</span><span class="p">()</span><span class="o">-></span><span class="nf">getControllerExtensionKey</span><span class="p">()</span> <span class="mf">.</span> <span class="s1">'/Resources/Public/Assets/Css/'</span> <span class="mf">.</span> <span class="nv">$this</span><span class="o">-></span><span class="nf">getControllerContext</span><span class="p">()</span><span class="o">-></span><span class="nf">getRequest</span><span class="p">()</span><span class="o">-></span><span class="nf">getControllerName</span><span class="p">()</span> <span class="mf">.</span> <span class="s1">'.css'</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="nv">$assetFile</span> <span class="o">!==</span> <span class="s1">''</span><span class="p">)</span> <span class="p">{</span>
<span class="nv">$file</span> <span class="o">=</span> <span class="nc">PathUtility</span><span class="o">::</span><span class="nf">stripPathSitePrefix</span><span class="p">(</span><span class="nv">$assetFile</span><span class="p">);</span>
<span class="nv">$pageRenderer</span><span class="o">-></span><span class="nf">addCssFile</span><span class="p">(</span>
<span class="nv">$file</span>
<span class="p">);</span>
<span class="p">}</span>
</code></pre>
<p>The goal of this feature is to bring down the actual bytes being sent and served on each page load.</p>
<a name="Cons"></a>
<h2 >Cons<a href="#Cons" class="wiki-anchor">¶</a></h2>
<p>Given the dynamic combinations of content this will create a larger number of files than usual</p> TYPO3 Core - Bug #86909 (Closed): tt_content examples in "Page" module does not respect CTypes ad...http://forge.typo3.org/issues/869092018-11-11T18:24:11ZSoren Mallingsoren@meteko.dk
<a name="Case"></a>
<h2 >Case<a href="#Case" class="wiki-anchor">¶</a></h2>
<p>I've added a number of items to the tt_content field CType directly via Page TSconfig.</p>
<p>When I add a content element which is added via TSconfig, the backend print "INVALID VALUE (webability_[contentname])". This is due to the $CType_labels property being used for rendering is not taking what is added via TSconfig in to concern.</p>
<a name="Proposed-solution"></a>
<h2 >Proposed solution<a href="#Proposed-solution" class="wiki-anchor">¶</a></h2>
<p>I suggest that we streamline this access of content types, so changes made via tsconfig or any other condition is taken into account and returns a single point of getting these values.</p>
<p>Perhaps a more API-wise solution. A "Content Element Registry" of a kind.</p>
<p>Comments are welcome, I will love to put time into it.</p>
<p>This is finding and suggestion based on the work of EXT:autosite where TSconfig is playing a big part in keeping each pagetree/site clean.</p> TYPO3 Core - Bug #83468 (Closed): Custom icon for "Folder" is not shownhttp://forge.typo3.org/issues/834682018-01-04T14:01:34ZSoren Mallingsoren@meteko.dk
<p>I've registered a custom icon for the "Contains" selector in "Page Properties". the code is here</p>
<pre><code class="php syntaxhl" data-language="php"><span class="k">if</span> <span class="p">(</span><span class="no">TYPO3_MODE</span> <span class="o">===</span> <span class="s1">'BE'</span><span class="p">)</span> <span class="p">{</span>
<span class="cd">/** @var \TYPO3\CMS\Core\Imaging\IconRegistry $iconRegistry */</span>
<span class="nv">$iconRegistry</span> <span class="o">=</span> <span class="nc">\TYPO3\CMS\Core\Utility\GeneralUtility</span><span class="o">::</span><span class="nf">makeInstance</span><span class="p">(</span><span class="nc">\TYPO3\CMS\Core\Imaging\IconRegistry</span><span class="o">::</span><span class="n">class</span><span class="p">);</span>
<span class="nv">$iconRegistry</span><span class="o">-></span><span class="nf">registerIcon</span><span class="p">(</span>
<span class="s1">'apps-pagetree-folder-contains-partnerads'</span><span class="p">,</span>
<span class="nc">\TYPO3\CMS\Core\Imaging\IconProvider\FontawesomeIconProvider</span><span class="o">::</span><span class="n">class</span><span class="p">,</span>
<span class="p">[</span>
<span class="s1">'name'</span> <span class="o">=></span> <span class="s1">'rss'</span>
<span class="p">]</span>
<span class="p">);</span>
<span class="p">}</span>
</code></pre>
<p><b>Notice</b> it's a FontAwesome provided icon - dunno if that could cause the missing rendering of the icon</p>
<p>The custom icon is not being displayed in the page tree (see screenshot) but is working as identifier for ex. TCA tables.</p>
<p>!Screen Shot 2018-01-04 at 13.51.18.png!</p>
<p>Choosing the "frontend user" as "Module" gives the expected rendering of the icon, so the support for SVGIcons is working</p>
<p>The icons doesn't seem to be registered in the <defs> part of the pagetree, could that be a reason?</p>
<p>!Screen Shot 2018-01-04 at 14.00.07.png!</p> TYPO3 Core - Bug #79128 (Closed): "Record history" is shown, even if hidden with TSConfighttp://forge.typo3.org/issues/791282017-01-01T22:50:26ZSoren Mallingsoren@meteko.dk
<p>The tsconfig</p>
<pre>options.showHistory = 0</pre>
<p>is not respected in TYPO3\CMS\Backend\Controller\EditDocumentController in the getButtons() method in the making of the buttonbar.</p>
<p>Actually, a "Record History" buttons is being rendered twice but the TSconfig condition is only checked once.</p>
<p>In the first case, a condition only checks if there is any history</p>
<p><a class="external" href="https://git.typo3.org/Packages/TYPO3.CMS.git/blob/HEAD:/typo3/sysext/backend/Classes/Controller/EditDocumentController.php#l1369">https://git.typo3.org/Packages/TYPO3.CMS.git/blob/HEAD:/typo3/sysext/backend/Classes/Controller/EditDocumentController.php#l1369</a></p>
<p>and then renders the button.</p>
<p>On line 1400</p>
<p><a class="external" href="https://git.typo3.org/Packages/TYPO3.CMS.git/blob/HEAD:/typo3/sysext/backend/Classes/Controller/EditDocumentController.php#l1369">https://git.typo3.org/Packages/TYPO3.CMS.git/blob/HEAD:/typo3/sysext/backend/Classes/Controller/EditDocumentController.php#l1369</a></p>
<p>the condition is checked with the "getNewIconMode" method and respect if it's hidden</p> TYPO3 Core - Bug #79127 (Needs Feedback): Responsive LiveSearch toolbar item is rendered no matte...http://forge.typo3.org/issues/791272017-01-01T20:11:56ZSoren Mallingsoren@meteko.dk
<p><em>This is a result of a rather large work on trying to make the TYPO3 backend custom for a project.</em></p>
<p>The backend layout file Main.html (EXT:backend/Resources/Private/Templates/Backend/Main.html) contains a rendering of a LiveSearchToolbarItem even though a person might not have access</p>
<pre>
<button class="topbar-button topbar-button-search t3js-topbar-button-search">
<core:icon identifier="actions-search" alternativeMarkupIdentifier="inline" />
</button>
</pre>
<p>This causes the search to be printed in responsive view. Since you don't have access to the toolbar item (checkAccess() method from ToolbarItemInterface) you don't get a printed LiveSearch to use.</p>
<p><strong>Solution suggestion</strong></p>
<p>This part of ToolbarItem rendering (including the User Settings wrench icon) could be grouped into a viewhelper to render avaialble toolbar items. Perhaps introduce a rendering API for such things (a section in Fluid, or whatever ways the rendering of the backend is going)</p> TYPO3 Core - Task #63524 (Closed): Use panels for "Template" configurationhttp://forge.typo3.org/issues/635242014-12-02T19:16:05ZSoren Mallingsoren@meteko.dk
<p>Use panel-* classes from Twitter Bootstrap<br />to give a better look and feel when browsing<br />the typoscript tree</p> TYPO3 Core - Bug #52946 (Closed): ExtensionUtility::configurePlugin doesn't set typoscripthttp://forge.typo3.org/issues/529462013-10-18T11:47:06ZSoren Mallingsoren@meteko.dk
<p>Upgrading to 6.2 beta 1 I've experienced that</p>
<p>TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin -> \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScript doesn't register/writes the typoscript to the TypoScript Object Browser.</p>
<p>It writes it very well to $GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_' . $type . '.']</p>
<p>This seems to be a issue for Extbase only extension as EXT:gridelements got it's typoscript written as it used to</p> TYPO3 Core - Feature #50360 (Accepted): Having only one record type in "New record" should forwar...http://forge.typo3.org/issues/503602013-07-24T10:49:55ZSoren Mallingsoren@meteko.dk
<p>By using mod.web_list.allowedTables you can adjust the allowed tables. This is useful in storage folders, where you might only want one single record type.</p>
<p>The usability issue comes, when the editor has to click on that single record type. Instead we should forward the editor to the form for that specific record type allowed.</p>
<p>I suggest this being a core feature. In case of objection I suggest a hook, giving the possibility to introduce the functionality via a extension.</p> TYPO3 Core - Feature #49922 (Closed): Allow "additionalWhereClause" for selection of items to pag...http://forge.typo3.org/issues/499222013-07-11T18:23:52ZSoren Mallingsoren@meteko.dk
<p>In user/usergroup specific TSconfig you can set a "additionalWhereClause" for selecting items to the pagetree. This is added to the where clause with a "AND"</p> TYPO3 Core - Bug #49279 (Closed): Exclude doktypes from pagetree by user TSconfighttp://forge.typo3.org/issues/492792013-06-20T09:36:14ZSoren Mallingsoren@meteko.dkTYPO3 Core - Feature #46328 (Closed): Make table field selector easier to select fromhttp://forge.typo3.org/issues/463282013-03-15T14:00:23ZSoren Mallingsoren@meteko.dk
<p>The current selector for fields in a table single view, could have been way better! :-)</p>
<p>We at a TYPO3 Camp showing people how they do this :-)</p>
<p>Happy happy!!!</p> TYPO3 Core - Bug #45699 (Closed): Implement pre- and post-hook around SELECT querieshttp://forge.typo3.org/issues/456992013-02-21T11:22:22ZSoren Mallingsoren@meteko.dk
<p>To use in example content/record security, a hook is implemented before and after the SELECT call.</p>
<p>The SELECT call is the only database call without such hook</p> TYPO3 Core - Task #38623 (Closed): Remove radio buttons from "new content elements" overviewhttp://forge.typo3.org/issues/386232012-07-04T09:35:43ZSoren Mallingsoren@meteko.dk