How does one make TYPO3 generate different output for backend users? - typo3

I would like to output additional data in most content elements (mostly fluid_styled_content) in the frontend for logged-in backend users (editing links for the CEs, additional information). The first idea was to insert additional Fluid code within <f:be.security.ifAuthenticated>. In theory this does the right thing, but the result is cached (bad: BE users might not see the additional data, others might see it). How does one work around this?
Ideas:
Use different templates for BE users. How?
Disable writing to and reading from the cache for BE users. How?
(Automatically) Assign a FE user group to BE users, because the cache should create different entries for each FE user group. How?
Render the additional output using JavaScript and get the data separately. Caching could work for all users, but complicated and would still require some way to discriminate between BE-/non-BE users. Would prefer not to implement this.
Requirements for a solution:
FE caching should continue to work for users which are not logged into the BE.
Caching for BE users does not necessarily have to work, but would be nice-to-have.
The output does not need to differ further between users.

You could deactivate the page cache for logged in backend users with a TypoScript condition:
[backend.user.isLoggedIn]
config.no_cache = 1
[global]
That seems excessive and there should be better solutions.
Ideas:
Add a cacheTag depending on BE login state (this would enable caching for all users)
disable caching in your content element definition's TypoScript by wrapping the FLUIDTEMPLATE in a COA_INT (see this SO post) (this would only disable caching for that FLUIDTEMPLATE)
Can <f:cache.disable> around the condition help? I found these to have no effect in plain content elements (FLUIDTEMPLATE), though.
Can <vhs:render.uncache> help?

I guess what you are looking for is called "frontend editing" - it is available as an extension that can be found here: https://extensions.typo3.org/extension/frontend_editing

Related

How can i edit an existing Typo3 Extension (Backend Configuration Page)?

i want to edit an existing Typo3 Backend configuration page.
I want to edit a configuration page like this here:
Where can i edit the extensions backend?
To be more clear: where can i change the edit page that an editor can use to change content.
Can someone give me a hint to the right directory or file in generall?
I'm using Typo3-7.6
Thanks
Sorry, can't manage to put all questions in an unformatted comment.
there are a lot of questions, as you are not clear what you want. Maybe that is a problem of the correct words, the vocabluary, but in TYPO3 we have some fix terms for specific object. And I think you do not handle these terms according to the TYPO3 community.
let's define some terms:
first the concept of TYPO3:
all data is stored in record of differnt database tables. All records are organized with some fields and teh main field is uid, the unique ID.
the main table is pages according to the folders of your disk. those folders can contain other records (like files). (nearly) each record in TYPO3 has a relation to a pagesrecord ina field named pid. even pagesrecords have this field and so they build a tree of pages and subpages.
There is one special page, which is no real page: the page with the ' uid' zero. As there is no real pagesrecord with the uidzero, there are other records with are stored in that page by having a pid zero. for example the start of your page tree is anchored in page zero, or global records like languages, user, storages.
Aside of being the anchor to other records, the pagesrecords have information themself. (page name, kind of page, a teaser image, SEO-information, visibility, accessibility, ...)
your screenshot looks like a content record (normaly in the table tt_content), in the lower right corner there you can see the table name and the uidthe the currently edited record.
'Backend': with backend we name the view to the data where an editor can change the content of the website. The real website is the frontend. This can be seen by everyone without the need to login in the backend (you might have access-restriccted areas of your website which need a login, but that still is 'frontend' as there is no option to edit content.
in the backend the editor might be restricted what he can access and what he can modify. An adminuser has no restriction (up until version 9 where the role of a maintainer occured to manage more general and basic options)
so we have not a single 'backend configuration page' but multiple places where we could configure special aspects of the website.
also there is no special 'extension backend'. we have global extension configuration and records belonging to an extension. (And an extension can enhance existing records with additional fields.)
Please be more specific what you want to change

Adobe AEM 6.4.x: How to restrict which components can be added on the page (using static templates)?

We have a need to restrict certain authors access to components.
example: The restricted authors can only add the image and rich text editor components on the page.
The only thing I can think of is denying access to the component (e.g. /apps/myapps/component/xxx).
additional info:
We're using static templates.
restrictions will be applied to a group and then the group will then be given to the restricted users. Currently using Netcentric ACLs to manage this.
Any ideas on how to make it work? Thanks
I am not sure if this can be solved with ACLs.
The only way might be to intercept the request to
/etc/designs/YOUR-PROJECT/DESIGNFILE/_jcr_content.json/
And then manipulate the json structure based on the current user's groups.
Although this will solve the problem, I do not like this kind of solution at all...
HTH anyway.

Looking for an Extension of an extensive link list

For the construction of an extensive list of links, since the source page is a thematic portal, I am looking for a suitable EXT., Which also runs under TYPO3 7.6 LTS.
it if the list of links to a permits the use of categories and multiple categorization of links is possible would be nice. should Weiterrhin the links are described not only the destination address and an alias but here should still an outline of the target page (possibly with photo) be possible.
Additional functions such as proposing links by users, reporting broken links or even a User Voting would nice additional features.
There were times the Modern Linklist, but they were no longer being developed for TYPO3 <6.x.
Is there perhaps somewhere an alternative or as one might like to vorhnandenen solutions might realize? It would be nice of course, without any programming knowledge, since I'm not a programmer.
P.S .: It is not about building a spam list but high quality links with topics relating to the original page.
As this seems to be a straight forward usage you could try to build that extension by yourself with the ExtensionBuilder.
just build up the records neccessary for your data. and let the EB generate all usefull actions: list & show, even create, edit, delete in FE would be possible.
Afterwards you just need to edit the generated fluid templates.
these links may help:
Overview
EB manual
small remark: if you want the newest code state, use the EB from git instead of TER
I`m not aware of an existing extension for it but it could be a good project to learn extbase / fluid.
You should also take a look at
typo3/sysext/fluid_styled_content/Resources/Private/Partials/Menu
and
typo3/sysext/fluid_styled_content/Classes/ViewHelpers/Menu
Fluid Content contains everything you need to create a list like that, you "just" have to combine the necessary bits and pieces.
You can do a lot with TYPO3 core functionality: there is a page type "external URL", pages can have categories by default, there are plenty of menu options (TypoScript HMENU, menu content elements, Fluid menu Viewhelpers). The Linkvalidator can periodically check all links and report broken links.
For suggestions you could add a form. Powermail for example can also store submitted info in database records, so your visitors could prepare page records (they are hidden until you make them visible).

Best Product Listing Option for Concrete5

I'm going to be creating a Concrete5 website that will feature product listings. The listing system must offer all your typical ecommerce features, minus the ability to purchase items. It's strictly for browsing purposes only.
For example:
- Browse by category
- Search products
- Listings/results page with thumbnails and brief information (title, description, price in US/CAD, manufacturer, maker, etc.)
- Products single page (with detailed information, attributes and gallery/images)
All the things you'd expect to find in a listing system.
My issue is I can't find a specific add-on for something like product listings. This leaves me thinking that it may be best to use the e-commerce add on and do my best to hide anything related to the cart/payment process. That way it could just be used for everything else it offers.
What are your thoughts on this? Is there a better option?
Thanks for the advice!
Use the page list block. It has everything you need except for searching. But, in essence, that's what your requirements call for -- listing of pages.
Create a page type for your "product". The "brief information" can be in the Content block, or you can set as attributes. You'll probably want to make some minor changes to the block's view (by creating a new template) that displays the image as you want, the proper attributes, etc. Something similar to http://www.concrete5.org/documentation/how-tos/designers/styling-the-page-list-block/
There are several adanced page list blocks in the marketplace. You might want to start with those.
Right creat Page type.
After creat Page attributes.
Add a block page_list create a template for it and filter by attributes.
You can even use ajax to filter.
http://www.weblicating.com/doku/doku.php?id=cheatsheet/#.UbR7P0BmiSp
U can find here about page_list or read documentation Concrete5.

joomla multiple site content distribution

I'm just starting to evaluate joomla CMS as a tool to build out my personal site. I'd like to manage multiple sites/domains with one copy of joomla on one host. so I'll own mysite.com and myothersite.com, which will both point to the same host/joomla code. If I do this I need to be able to set which domain/site the content I add shows up on. For some sites the content will be on both for others it will be on only one. What would be ideal it to have some kind of filtering mechanism so I don't have to manually set where the content goes.
What would be ideal is for me to set tags on the content and each site can specify which taged content to show.
My last requirement is that I be able to have different pages on each site.
Is this possible or am I asking too much from a "free" CMS?
Thanks all
I don't know if there's a component that achieves what you're describing here. I use a multi-language component in some of my sites that shows translations, but it doesn't "suppress" articles that doesn't have references to a translation: it just says "No translations to this article". I know you're not asking for translations methods, but I think the Joomfish way of selecting content based in a chosen language would be what you wanted, but not based in languages, just domains.
The only component I know it would be able to suppress articles based in pre defined parameters (in its case the language), is the Joomfish's "Table Localization Plugin", but you need to be a Joomfish silver member paying $60 to Joomfish's developers.
You could write a component(see here for plugin documentation), that analyzing the domain, would suppress articles that shouldn't appear in that specific domain. But I think it's going yo be a lot of work. You would learn a lot of Joomla's architecture, though.
How Joomla displays its content (output) is controlled entirely by parameters. So if you can control what parameters are loading, you can create multiple displays per host
However, that may be overkill in this case. You can just easily hack your template. Just make it load a different menu for siteA and siteB. (The host is set in $_SERVER['HTTP_HOST'])
The menu on siteA could have a tagging component item, set to display articles tagged siteA.com. The siteB will have the same for its domain.
While there are extensions that will do what you describe (http://extensions.joomla.org/extensions/core-enhancements/multiple-sites), Joomla is really designed for one site at a time. I've done setups where I use the same codebase for Joomla and manage it with version control, but I always end up launching multiple sites with individual databases.
However, I don't know of any CMS that inherently allows you to share articles across instances while keeping the data centralized. You may be looking at an extension (or your own customization) regardless of which platform you pick.
We had a similar problem with needing to share content across multiple Joomla! sites so we developed this extension: http://extensions.joomla.org/extension/simple-sharing
It is not very robust in terms of what it can share but it does let you share Articles across multiple sites and choose which sites and categories those articles get published into. I hope it works for you.
Thanks!