Where do I implement the settings html of my TYPO3 extension? - typo3

I am currently developing my own TYPO3 extension (in v 9.5.11) and I want to know where I have to reference the Html file that is supposed to open when you click on Admin Tools-->MyExtension in the TYPO3 sidebar.

This completely depends on how you integrated your extension; there are at least two (vanilla, Extbase) ways to make such modules. Where your template file (which is Fluid, not pure HTML) exists depends on the integration and your TypoScript configuration that defines template paths, but by default it would be in your extension, in the sub path Resources/Private/Templates/$controllerName where $controlerName is the name of the controller that renders your plugin.
Note that template paths for frontend and backend are configured separately.
If you use the vanilla way of making backend modules you most likely need to define this template manually, by setting it in the view, in which case it can be placed anywhere you like (but should of course be inside your extension).

Have a look at system extension extensionmanager, where the backend module has some registered controller classes, and methods in ext_tables.php. fx class ListController, with indexAction, unresolvedDependenciesAction, terAction, ... and more methods:
'List' => 'index,unresolvedDependencies,ter,showAllVersions,distributions',
ListController class like all other controller classes uses FLUID views, which is looking for HTML templates inside Resources/Private/Templates/<CONTROLLERNAME>/...
For ListController->indexAction it would be Resources/Private/Templates/List/Index.html where you can use TYPO3 FLUID functionality.
See also https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/BackendModules/TemplateClass/Index.html

Well, It is always recommended to write your question clearly and bit more detail so people can understand quickly.
Anyway as I understand the question, you're talking about view resource file. If you have created your extension with Extension builder, your action file will automatically be generated in the Resource folder.
BE module directory will be Resources/Private/Backend See the example here.
In the TypoScript, you will get the source path this will something look like this.
To check the backend default action, you can see the backend module configuration here. From here you will get better idea which action will be call by default (Probably List action)
In this directory, you will have all the HTML you need. Hope this will help you!

Related

TYPO3 7.6. change typoscript hierarchy via extension-template

Is there a possibility to change the typoscript template hierarchy via an extension-template? Currently i have defined everything including all typoscript in my extension. This works fine with real_url configuration etc. But everything regarding indexed_search is overwritten by the original extension itself.
Is there a possibility to define the loading/parsing order of extensions?
Thanks!
You need to define a dependency to all extensions that should load before your extension.
If you do not have a hard dependency, then make sure to list the extension as suggested, because this will make that it is loaded before your extension too.
Open the TypoScript record, switch to the tab "Includes", at the bottom you will find the field Static Template Files from TYPO3 Extensions:. Select the value Include before all static templates if root flag is set.
Question is a duplicate of Manage hierarchy / enforce priority of TS-templates

How to add Typo3 Extensions to a page?

I googled for quite some time now and i cannot find a solution for such an easy beginner-problem.
I used the Typo3 Extension Builder to build a test-extension in Extbase. Now i want to use this and include it into one of my pages in the page tree structure to actually see if it works. When browsing the folder structure i can clearly see that the Domain model, the Controllers and all the views have properly been generated. But... How can i tell my page to include it and execute it?
I tried things like including the auto generated typescript into the templates of the pages but nothing works.
Thanks!
In Extension Builder make sure that you added "Frontend plugin" on the left pane. If you'll do it properly you will be able to add this plugin via CE "General Plugin" and then via field "Select plugin"
Sounds like you struggle on a more general level here.
In order to get the output of your Extension in the Frontend you have to assure the following steps:
Set up general Configuration, so that you can see the output of standard content elements in the frontend.
Install your extension and include its TypoScript.
Make sure you have a Plugin configured in your ext_localconf.php and registered in your ext_tables.php.
In the backend, create a new content element and choose "plugin" as its type.
Choose your registered plugin and save.
You should now see output of your extension in the frontend.

How to place TYPO3 frontend output in anywhere

I am new to TYPO3 and creating a TYPO3 extension. Extension can be added to a given place by the BE using the wizard. No problem.
My question is how can I add/call extension manually any place I want. For example among text.
What i mean is like Joomlas Mambots. Call the extension inside {myextentionName} among text for example.
Please any idea/help with an example is kindly appreciate.
You can find the TypoScript definition for each plugin below tt_content.list.20.<plugin-key>.
On top of that, most plugins provide a fully working version below plugin.<ext-key>.
If all fails, you can use the USER object to call the plugin directly. You will find an example in one of the above paths, because that is what the plugins to after all.
You can use typoscript tree and plugin keyword with the extension name for example plugin.xxxx.pi1.

using fluidcontent (fluid powered TYPO3) in a TYPO3 multidomain setup

I have an TYPO3 installation with two domains. Each domain has its own provider extension and static template file.
Example:
domain1.com -> providerextension1
domain2.com -> providerextension2
Is it possible to hide the fluidcontent FCEs from providerextension1 in domain2.com?
Example from Bootstrappackage (https://github.com/Ecodev/bootstrap_package)
As soon as an extension has included fluidcontent FCEs (like the fluidcontent_bootstrap) it will add these to all domains, also when the TypoScript Configuration is not included.
If I understand the question completely, the answer is no: you cannot in TYPO3 make your TypoScript that is available in the backend, depend on the domain name being used. There is a way to make TypoScript conditions for the frontend output (for example a condition to only add template paths for your provider A when domain is X), but the same is not possible in the backend.
You are of course welcome to add a feature request on our issue tracker - I don't see any immediate problem with a feature to toggle on and off particular provider extensions based on for example a TypoScript setting. But you should keep in mind the limitation mentioned above since it implies that in order to achieve your desired goal you must place each domain record on a page tree of its own and closely manage the TypoScript that controls the available Provider Extensions on each page tree.
Put shortly: even if you get this feature request filled, it may not be the solution you want and you may have to restructure your pages and domains to get where you need to be.
The problem is, that the FCE are defined in the "ext_tables.php" and "ext_localconf.php" and these files are always loaded when the extension is enabled.
You can alter "ext_tables/ext_localconf" with a simple condition like
if($_SERVER['server_name'] == "www.yourdomain.com") {
//init FCEs here
}
You can try to override the template paths for one domain with an empty value or at least a path to an empty directory. Maybe flux is smart enough to ignore empty template paths.

How to extend Alfresco Share existing activity list dashlet with my own activity type?

In Community 4.0.a, I'm posting my custom activities in the repo following this: http://wiki.alfresco.com/wiki/3.0_Activities_Developer_Guide
I have defined my own activity type, with custom bundles and pagelink to display custom needs in the activity dashlet.
But I face an issue, I need to specialize the output based on the activity-type in a similar way of what is done already in activity-list.get.js in the specialize() function.
I can't hack the js cause I'm packaging things in my own amp for Share.
What is the best way to do it? Is there some kind of extension point or do I need to override completely the dashlet?
The old way (3.x) to change the behaviour of a webscript controller is to copy the code and overwrite the Javascript by placing it under web-extension: alfresco/web-extension/site-webscripts/org/alfresco/components/dashlets/activity-list.get.js. There you can modify the specialize() function or whatever you need to do.
All files you place in the alfresco/web-extension/site-webscripts folder will replace original files in the share.war WEB-INF/classes/alfresco/site-webscripts classpath. Best practice is to place your customizations in the tomcat/shared/classes/alfresco/web-extension folder so you don't need to modify the WAR file.
Alfresco 4.0 provides a new way to change the javascript controllers of a webscript. You can add additional Javascript code that will run after the original code. This is preferable because you don't need to change original code and you can upgrade more easily later. To use it you need to get familiar with the new Share extension modules concept. See David Draper's Blog for more info on that.