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 - Bug #87884 (Closed): Root page of page tree suddenly gets slug "/1"http://forge.typo3.org/issues/878842019-03-11T15:37:36ZSoren Mallingsoren@meteko.dk
<p>This is a issue created for Benni Mack to follow up on a Slack conversation</p>
<p><a class="external" href="https://typo3.slack.com/archives/C2ZKN8P7G/p1551805852037400">https://typo3.slack.com/archives/C2ZKN8P7G/p1551805852037400</a></p> TYPO3 Core - Bug #87841 (Closed): Sitemap generation doesn't take request language into accounthttp://forge.typo3.org/issues/878412019-03-05T08:52:51ZSoren Mallingsoren@meteko.dk
<p>The sitemap.xml only takes content from the default language upon creation.</p>
<p>Case:</p>
<p>on domain.dk/sitemap.xml the sitemap is created with all content from the default language (in this case "Danish")</p>
<p>on domain.net/sitemap.xml it was expected to contain only content from the langauge of that site. Instead it takes the content of the default language.</p>
<p>Issue has been identified with Richard Haeser</p>
<p>Sitemaps can be found <a class="external" href="http://www.meteko.dk/sitemap.xml">www.meteko.dk/sitemap.xml</a> and <a class="external" href="http://www.meteko.net/sitemap.xml">www.meteko.net/sitemap.xml</a></p>
<p>Site configuration</p>
<pre>
rootPageId: 1
base: 'https://meteko.dk'
baseVariants: { }
languages:
-
title: Danish
enabled: true
languageId: '0'
base: /
typo3Language: da
locale: da_DK.utf-8
iso-639-1: da
navigationTitle: ''
hreflang: da-DK
direction: ltr
flag: dk
-
title: English
enabled: true
languageId: '2'
base: 'https://meteko.net/'
typo3Language: default
locale: en_US.utf-8
iso-639-1: en
navigationTitle: English
hreflang: en-US
direction: ltr
fallbackType: strict
flag: gb
errorHandling:
-
errorCode: '404'
errorHandler: Page
errorContentSource: '15'
routes: { }
routeEnhancers:
NewsPlugin:
type: Extbase
extension: News
plugin: Pi1
routes:
-
routePath: '/{news_title}'
_controller: 'News::detail'
_arguments:
news_title: news
defaultController: 'News::list'
aspects:
news_title:
type: PersistedPatternMapper
tableName: tx_news_domain_model_news
routeFieldPattern: '^(?P<path_segment>.+)$'
routeFieldResult: '{path_segment}'
PageTypeSuffix:
type: PageType
map:
sitemap.xml: 1533906435
</pre> 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 - Bug #87068 (Closed): Use BackendUtility::getPagesTSconfig in TSFE when getting tsconfighttp://forge.typo3.org/issues/870682018-12-04T09:03:38ZSoren Mallingsoren@meteko.dk
<p>Inside the TypoScriptFrontendController the method getPagesTSconfig is used to get the tsconfig from page records. Both via the TSconfig fields but also "included" tsconfig.</p>
<p>The method consist of the same code as BackendUtility::getRawPagesTSconfig (which is called by getPagesTSconfig) - the main difference is, that the frontend method doesn't call emit the signal GetPagesTSconfigPreIncludeSignal to have extensions auto include. So, this gives a different functionality from backend to frontend.</p>
<p>A usecase is inclusion of gridelements layouts. This is used in the frontend for rendering. But when TSFE gets the tsconfig, the signal is not emitted and the tsconfig is not being filled with the layout configuration like it does in the backend</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 - 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 #52080 (Rejected): Pre- and Post-process hook in DatabaseConnection for sql_...http://forge.typo3.org/issues/520802013-09-17T15:55:06ZSoren Mallingsoren@meteko.dk
<p>Since Extbase moved to use the TYPO3 Database API it's possible to add even more content/record security as focus can be put at one single entry point to the database.</p>
<p>This change introduces two new hooks (four, including the once for DBAL) before and after the general sql_query (used by Extbase).</p>
<p>From here you get the created query and the parent DatabaseConnection object. From here you can ex. check whether or not access should be granted to records fetched.</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 - Feature #38255 (Rejected): Post processors should be extendablehttp://forge.typo3.org/issues/382552012-06-21T15:53:41ZSoren Mallingsoren@meteko.dk
<p>It should be possible to extend postprocessor and add configuration</p>
<p>At this moment the postprocessors are hardcoded to only support "mail" where as postprocessors for stuff like persisting would make the FORM tool great for user registration etc.</p>