Replace branch local tasks with our own theme function
Migrated issue
Reported by: drumm
Problem/Motivation
The API module is using hook_menu's local tasks to navigate between function versions. But it isn't really working well:
- The navigation is not clear: people don't realize that d6/7/8 versions have different documentation, because the function signature area lumps together versions with the same signature.
- If the functions changed files from one version to another between versions, there are no links, because the local tasks depend on the path to the file being the same. This will become especially bad very soon, since all Drupal 8 files are being moved into a core directory, so every d7 function will fail to link to d8 version.
- If there is more than one version of a function within the same branch (e.g., database functions in d6 which have MySQL and PostgreSQL versions), they are not shown.
Proposed resolution
Instead of using local tasks at the top of function, constant, group/topic, etc. pages for navigation, use our own function to generate navigation to different versions of the same function name.
Remaining tasks
Partial fix was committed earlier. Patch fixes the rest, needs testing.
User interface changes
Local task tabs at tops of function, contstant, etc. pages are replaced by a new section listing all versions of a function. New headers are added to these pages also, to make it clearer what is being shown.
API changes
A new field is added to the branches table, for the human-readable project title.
Original report by drumm
Local tasks (tabs) have 2 problems:
* Don't scale with long project names
* Can't handle functions moving between files
We should have our own theme function that shows something like
{project} version {branch} {branch} {branch}
Such as
Drupal version 5 6 7
Views version 5.x-1.7 5.x-1.x-dev 6.x-2.10 6.x-2.x-dev
with some decent typography emphasizing the project and current version.