---
title: "Feature: Program pages link to an application"
manual: "Academic Programs"
version: "main"
permalink: "https://docs.typo3.org/permalink/fgtclb/academic-programs:feature-1790703178@main"
source: "Changelog/3.0/Feature-ProgramApplicationLink.rst"
rendered: "2026-10-17T08:47:58+00:00"
---

# Feature: Program pages link to an application {#feature-1790703178}

## Description {#description}

The **Program** tab of a program page offers two new fields: the
**Application link**, a page or an external URL, and an optional
**Label of the application link** of up to 60 characters.

The program page renders the link as a button after its header, its image and
the link back to the list. Without a label, the link reads "Apply now" in the
language of the page. Without a link, the page renders no button, and neither
does a link to a page that cannot be linked, such as a hidden one.

The button is the new partial `Program/Page/CallToAction.html`. Templates
reach the values as `{program.applicationLink}` and
`{program.applicationLinkLabel}`, on the program page and in a list item
of the **Course List**, whose default item does not render them. A
list item of your own renders the same button with
`<f:render partial="Program/Page/CallToAction" arguments="{program: program}" />`.

See [The application link of a program page](https://docs.typo3.org/permalink/fgtclb/academic-programs:program-application-link@main).

## Impact {#impact}

Run the database compare of the **Maintenance** module or
`vendor/bin/typo3 extension:setup`. It adds the columns
`application_link` and `application_link_label` to `pages`. The extension
declares neither in [`ext_tables.sql`](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ExtensionArchitecture/FileStructure/ExtTablesSql.html#file-extension-ext-tables-sql): TYPO3 derives both from the TCA.

A program page renders no button until an editor sets a link, so existing pages
look as before.

An installation that added a column `application_link` of its own can remove
its TCA and its [`ext_tables.sql`](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ExtensionArchitecture/FileStructure/ExtTablesSql.html#file-extension-ext-tables-sql) line for it. The data stays where it is,
and the program page renders it from then on. A template of its own that
renders the link can go, or the page renders a second button.

An installation that kept the link in a column of another name copies it once
before removing that column, for example:

```sql
UPDATE pages
   SET application_link = tx_mysitepackage_apply_url
 WHERE doktype = 20
   AND application_link = ''
   AND tx_mysitepackage_apply_url IS NOT NULL
   AND tx_mysitepackage_apply_url <> '';
```

An override of `Pages/AcademicProgram.html` renders no button, since it
does not render the new partial.
