TYPO3 backend user how hide subpages - typo3

I have TYPO3 9.5
I want to set db_mountpoints for a backend user group: only 4 pages.
Some of pages have subpages and the users of group can see the subpages.
I don't want that the group to see the subpages.
How can I do that?

You could change the access to pages using the backend module "System" -> "Access".
there you can change the owner and group of pages, and also which rights owner, group, everyone has for these pages.
Make sure new pages have the right group and rights on creation with appropiate default settings in page TSconfig.
TCEMAIN.permissions {
// group for new pages:
groupid = 1
// access rights:
user = 31
group = 19
everybody = 1
}
The rights are bit coded:
1 = show page
2 = edit page
4 = delete page
8 = create pages
16 = edit content

Related

TYPO3: what is the field "access_group" for?

I don't know what is the field "access_group int(11) DEFAULT 0 NOT NULL" for? First I thought it's for restriction by user_group, but there is an field "fe_group varchar(100) DEFAULT '' NOT NULL" for it. You can find the field also at the documentation Preparing the database , but I couldn't find a description for it, only for "fe_group".
access_group is the be_user group.
In TYPO3 you have an access-system similar to the unix-rights, where you can grnat access to pages (and records in the page).
There is a menu entry System->Access where you select a page and can set values for multiple levels recursive:
You can set Owner and Group and the granted rights which are assigned for
Owner, Group, Everybody
the rights are coded bitwise (other order than displayed):
1 (2^0) Show page: Show/Copy page and content.
2 (2^4) Edit content: Change/Add/Delete/Move content.
3 (2^1) Edit page: Change page eg. change pagetitle etc.
4 (2^2) Delete page: Delete/Move page and content.
5 (2^3) New pages: Create new pages under this page.
These values can be set with TCEMAIN in the page TSconfig, so all pages in a sub tree might get the same rights.
Example:
TCEMAIN.permissions {
userid = 43
groupid = 5
user = 31
group = 19
everybody = 1
}
Each page will get the user with the uid 43 as owner,
the group will be the group with the uid 5,
the owner has every right,
the group can show page, edit page, edit content but can not delete page or create new pages below
every one else can see the page
Alternatively you can set the rights by keywords:
TCEMAIN.permissions {
userid = 43
groupid = 5
user = show, edit, delete, new, editcontent
group = show, edit, editcontent
everybody = show
}
comment from Rudy Gnodde, which I agree:
This is only used for pages, not in custom tables for extensions. It's probably a mistake in this documentation. It should be fe_group I think (which is mentioned in this documentation, but not in the code example which contains access_group).
As TYPO3 manuals can be edited by everyone (there is a button Edit me on GitHub in the upper right corner), I have proposed a correction.

indexed_search Multidomain (TYPO3 9 LTS)

There is a multidomain setup (domains next to each other on the same level), each domain has their own search page and configuration. I've tried...
plugin.tx_indexedsearch.settings.rootPidList = 3
...to get the search results limited to the domains pagetree only. But as soon as using rootPidList, there are no results at all any more. Then i've tried...
plugin.tx_indexedsearch.settings.defaultOptions.sections = rl1_3
...and this seems to work correctly to limit the results to the pagetree (below page id 3).
So what is "rootPidList" ment to be used for?
According to the comment in the code (typo3/sysext/indexed_search/Classes/Controller/SearchController.php, Line 232):
Setting the list of root PIDs for the search. Notice, these page IDs MUST have a TypoScript template with root flag on them!
Basically this list is used to select on the "rl0" field and page ids are registered as "rl0" only if a TypoScript template record with root flag is there.
This happens AFTER the use of $this->searchRootPageIdList above because the above will then fetch the menu for the CURRENT site - regardless of this kind of searching here. Thus a general search will lookup in the WHOLE database while a specific section search will take the current sections.
In a multi domain setup we have set rootPidList to the overall root page (in this case id=457).
defaultOptions.sections is set like this:
defaultOptions.sections=rl{$customer_theme.search.level}_{$customer_theme.root}
{$customer_theme.search.level} is set to 1 or 2 depending on the availability of more than one language per country.
{$customer_theme.root} is the root page (marked by the root page flag).
e.g. for Indonesia (english) we use level = 2 and root = 12947.

How do you set the default Backend Layout in TYPO3

I am using the method of defining Backend Layouts in a TSconfig file in a site package extension.
mod {
web_layout {
BackendLayouts {
# pagets__onecolumn
onecolumn {
title = One column
config {
backend_layout {
colCount = 1
rowCount = 1
rows {
1 {
columns {
...
etc
I would now like to define one of my own BE-Layouts as default.
I found a method of excluding BE-Layouts (such as "none") in the select list in page properties:
TCEFORM.pages.backend_layout_next_level.removeItems= -1
TCEFORM.pages.backend_layout.removeItems= -1
But what I really want is for TYPO3 to automatically assign my default BE-Layout to new pages (and not use the TYPO3 default).
Using TYPO3 8 (latest version)
In the TYPO3 page records there are two fields for backend layouts on the current page and backend layouts on subpages. The latter is assigned automatically to each of the pages in the tree below the page where you set it.
So you should just assign your default layout as backend layout on subpages within the root page and it will become the default for any page, that hasn't got a layout set itself.
You can override that by selecting another layout on a subpage, that will override the default setting for that particular part of the tree.

TYPO3 how duplicate content in severals page

I have a TYPO3 website.
I have 4 contents in my home page which I had created with TemplaVoila (flexible content).
I want to know if there is an easy way to duplicate these contents in all the others pages.
Yes, TemplaVoila allows you to reference ContentElements with special icon, which means that you insert it on some page and then you creates a references. If "first" CE changes, all references reflect it automatically.
Optionally, if all CE's are places in one TV's column you can use TV Content Slide extension by Bernhard Kraft.
Just map that content using typoscript using the below code and use it:
lib.leftcolumncontents = COA
lib.leftcolumncontents{
5 = RECORDS
5 {
tables = tt_content
source = 26 # content element id
}
15 = RECORDS
15 {
tables = tt_content
source = 36 # content element id
}
}

TT_NEWS Force Display of Latest News in Single/Latest implementatin (TYPO3)

Sirs,
I have a nice working implementation of SINGLE and Latest on same page. My realurl is working perfectly. Problem is, by default, single doesn't show anything until you click on one of the listed news (displayed by the list plugin). I would like the single plugin to show the latest news on landing.
Any ideas?
FIRST SOLUTION
The solution for the requested behavior is described in the tt_news manual:
Default news id
Insert the following lines to the setup field of an ext-template at
the page where you want to display the latest news item in SINGLE view
if no SINGLE view for another record was requested:
# hide the "no news id" message
plugin.tt_news._LOCAL_LANG.default.noNewsIdMsg =
# set the tt_news singlePid to the current page
plugin.tt_news.singlePid = 977
# fill the content of the main-column to a tmp.object
tmp.pagecontent < page.10.subparts.contentarea
# clear the content of the main column
page.10.subparts.contentarea >
# build a new object for this column as content-object-array
page.10.subparts.contentarea = COA
page.10.subparts.contentarea {
10 = CONTENT
10.table = tt_news
10.select {
# insert the pids of all pages from where you want to fetch news.
# the recursive-field has no influence on this selection
pidInList = 1078,1079,1080,1081,1082,1083,1084
orderBy = datetime desc
max = 1
}
# insert the object “10.” only if there is no SINGLE news selected
# ATTENTION, OUTDATED IN MANUAL, USE GP:... instead of GPvar:... !!!
#10.stdWrap.if.isFalse.data = GPvar:tx_ttnews|tt_news
10.stdWrap.if.isFalse.data = GP:tx_ttnews|tt_news
# re-insert the normal pagecontent to the page
20 < tmp.pagecontent
}
The page in this example contains 2 columns. The news LIST is located
in the left column. the main column (page.10.subparts.contentarea)
contains a SINGLE news content-element.
SECOND SOLUTION – MY FAVORITE
My personal favorite to solve the problem is a bit more slick. It makes use of the noNewsIdMsg (which is simply emptied in the above solution) and uses its stdWrap version to show the latest record exactly when there would normally be a "No news ID" message.
# use the "no news id" message position for the latest news record
plugin.tt_news.singlePid = 977
plugin.tt_news.noNewsIdMsg_stdWrap.cObject = COA
plugin.tt_news.noNewsIdMsg_stdWrap.cObject {
10 = CONTENT
10.table = tt_news
10.select {
# insert the pids of all pages from where you want to fetch news.
# the recursive-field has no influence on this selection
pidInList = 1078,1079,1080,1081,1082,1083,1084
orderBy = datetime desc
max = 1
}
}
Please be aware that in BOTH solutions the template subpart that is used for the inserted default record is NOT ###TEMPLATE_SINGLE### but ###TEMPLATE_SINGLE_RECORDINSERT###.
One solution is to change the text limit for latest view in that particular news plugin as given below:
plugin.tt_news.displayLatest.subheader_stdWrap.crop = 10000 | ... | 1
and also provide a separate template file without
<!--###LINK_ITEM###-->
markers in latest view section.
The Safe Single News extension
adds a new tt_news code: SAFE_SINGLE which ensures that a single news
article is shown even if none is specified. If a news article is
selected, it will simply show it. If none is selected, it will display
the latest news article for the configured category.
Maybe it could help you.
Why not have a "single/latest" view showing a single view (if submitted) and latest if no single view requested. In this plugin set news-limit for latest to "1".
Below add another latest (or list) with news limit set to 3 (or as wanted)