Skip to content
This repository has been archived by the owner on Nov 3, 2023. It is now read-only.

Probleme mit Insert-Tags in <title>, URL, etc. #2853

Closed
NinaG opened this issue Nov 29, 2011 · 5 comments
Closed

Probleme mit Insert-Tags in <title>, URL, etc. #2853

NinaG opened this issue Nov 29, 2011 · 5 comments
Assignees
Labels
Milestone

Comments

@NinaG
Copy link

NinaG commented Nov 29, 2011

Es gibt mittlerweile tolle Insert-Tags mit denen man Wörter z. B. als fremdsprachig oder Abkürzung markieren kann, wenn der Text-Editor nicht zur Verfügung steht (beispielsweise in Seitennamen -> Navigation). Leider gibt es aber mit der Umsetzung noch ein paar Bugs die den tatsächlichen Einsatz dieser Insert-Tags behindern.

Beispielhafte Insert-Tags um die es hier geht:
{{lang::en}}english words{{lang}}
{{abbr::zum Beispiel}}z. B.{{abbr}}
{{acronym::Elektronische Datenverarbeitung}}EDV{{acronym}}

Problem 1: Die Insert-Tags im <title>
Wenn man diese Insert-Tags beispielsweise im Seitennamen oder Seitentitel einsetzt, damit sie in der Navigation und in der Breadcrumb korrekt dargestellt werden, gibt es leider ein Problem mit dem <title>

Dort steht dann schnell mal:

<title><abbr title="Abkürzungserklärung">Abkürzung</abbr> - Projektname</title>

Der HTML-Befehl innerhalb von <title> ... </title> wird dabei jedoch leider nicht aufgelöst, sondern genau so sichtbar ausgegeben, was eine normale Verhaltensweise von <title> ist, aber natürlich doof aussieht und auch für SEO mies ist.

Lösungsvorschlag:
Diese Insert-Tags sollten im <title> ignoriert werden, so dass nur der Originalbegriff für <title> generiert wird, aber nicht das restliche HTML.

Problem 2: Die Insert-Tags im Alias
Die Insert-Tags werden auch im Alias mit ausgegeben, so dass man dann beispielsweise sowas im Alias stehen hat:
abbrerklaerungabkuerzungabbr.html

Lösungsvorschlag:
Diese Insert-Tags sollten im Alias ignoriert werden, so dass dort nur der Originalbegriff ausgegeben wird:
abkuerzung.html

Problem 3: Die Insert-Tags in News-/Event/etc.-Titeln
Wenn man diese Insert-Tags beispielsweise für den News-Titel definiert, kommt Contao durcheinander, weil es beim Link versucht die HTML-Umsetzung im Link-title auszugeben.

Das sieht dann so aus:

<h2><a href="blog/items/.....html" title="Den Artikel lesen: &lt;abbr title=" abkürzungserklärung="">Abkürzung"&gt;<abbr title="Abkürzungserklärung">Abkürzung</abbr></a></h2>

Lösungsvorschlag:
Diese Insert-Tags sollten im title des Links ignoriert werden, so dass es dann so aussieht:

<h2><a href="blog/items/.....html" title="Den Artikel lesen: Abkürzung"><abbr title="Abkürzungserklärung">Abkürzung</abbr></a></h2>

Soweit ich das sehen kann, sind das alle Orte an denen es zu einer Fehlausgabe kommt. Wenn diese behoben sind ist es dann endlich möglich, dass man diese für die Barrierefreiheit hilfreichen Insert-Tags korrekt einsetzt :)

Related issues: #2889

--- Originally created on February 7th, 2011, at 03:41pm (ID 2853)

@ghost ghost assigned leofeyer Nov 29, 2011
@leofeyer
Copy link
Member

Behoben in 576a999. Die Änderungen waren jedoch wesentlich umfangreicher, als nur die drei oben genannten Stellen :(

--- Originally created on February 24th, 2011, at 01:37pm

@Toflar
Copy link
Member

Toflar commented Nov 29, 2011

Die uns aber eine nette neue Funktion strip_insert_tags() bringt :)

--- Originally created on February 24th, 2011, at 01:48pm

@BugBuster1701
Copy link
Contributor

Hier ist wohl das "t" verrutscht? (functions.php):

function specialchars($strString, $blnSriptInsertTags=false)
{
    if ($blnSriptInsertTags)
        $strString = strip_insert_tags($strString);
    }

besser:

function specialchars($strString, $blnStripInsertTags=false)
{
    if ($blnStripInsertTags)
        $strString = strip_insert_tags($strString);
    }

--- Originally created on March 3rd, 2011, at 12:49am

@leofeyer
Copy link
Member

--- Originally completed on March 4th, 2011, at 02:45pm

@fritzmg
Copy link
Contributor

fritzmg commented May 6, 2015

This change introduced inconsistent behaviour in a multi-domain setup under Contao 3.2.20. Assume the following site structure:

domain1.com
- Start
  - Lorem
    - {{inserttag}} Ipsum
    - {{inserttag}} Dolor
    - {{inserttag}} Sit
domain2.com
- Start

Each of "Lorem"'s subpages have an insert tag in their page name (title field). Assume that there is a Navigation Module with the reference Page set to "Lorem". This Navigation Module is included in the page layout of both domains.

When you open domain1.com in the frontend, the navigation module will show

  • {{inserttag}} Ipsum
  • {{inserttag}} Dolor
  • {{inserttag}} Sit

However, when you open domain2.com in the frontend, the navigation module will show

  • Ipsum
  • Dolor
  • Sit

This happens due to the following code:

  • For each regular page [1] of the navigation menu which is in a different domain, $objSubpages->current()->loadDetails(); is called in Module.php#L293
  • This function strips the insert tags from the title in PageModel.php#L581

[1] Other page types are not affected. They always have the insert tag in the title of the page in the navigation module.

Contao 3.3 and up handles this differently now, but I would like to see this addressed again for Contao 3.2 too if possible. Why not just remove the insert tags for the <title> tag? e.g. directly in fe_page.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

5 participants