Plone and its accompanion technologies have been built during the course of many years. The codebase contains over 6000 modules. Even the masterminds don’t get it always on the first try: Over the years, generations of technology for the same function has come and gone, leaving its marks to the code. There are technologies built when HTTP was just coming to mainstream. There are technologies which were built when Python programming language was still young, lacking vast amount of power and standard library functionality you have nowadays. Then there are latest trends influencing how things should be done when it become inevi le clear that old, once good, ways have hit their limitations at evergrowing digital information.
The power of hundreds work years of code evolution comes with a price. Comprehensive feature set guarantees that most remove corner cases are usually covered. However, comprehensiveness bring complexity which in turn makes simple things unnecessary difficult.
Plone is easily one of the most complex Python projects and no human person can master it perfectly. It is not always easy to figure out how everything is interacting, especially when there are several ways of doing the same things. There might or might not be good documentation, but due to vast number of possible needs, most of them are uncovered. The documentation itself is distributed to the separate domains of knowledge from different ages.
When you encounter something you want to get accomplished, but you are unable to find direct example how to do it you can resort to the two following methods
Be patient. Be aware that you are dealing with complex systems and you need to reserve time to manage technology risk. The worst unknowns are unknowns you don’t know are unknowns. But remember: There are never things you cannot do or things you cannot know. There is no blackbox - the codebase is all open. With enough patience, you can study it and find solution to all problems. If the stock code does not do it, you can easily monkey-patch the existing modules to bend them your way or in the most extreme situations you can fork the whole project.