Modul: "content_header_first" kein <p> Tag

Alles rund um Module und Plugins in CONTENIDO 4.9.
Antworten
shi
Beiträge: 251
Registriert: Fr 5. Nov 2004, 14:12
Kontaktdaten:

Modul: "content_header_first" kein <p> Tag

Beitrag von shi » Mi 6. Mai 2015, 10:24

Hallo immer wenn ich einen Text für das Modul eintrage wird automatisch ein Absatz <p></p> daraus gemacht. Was dann im Frontend folgendes ergibt <h1><p>Headline</p></h1>. Wie kann ich das unterbinden?

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: Modul: "content_header_first" kein <p> Tag

Beitrag von homtata » Mi 6. Mai 2015, 11:48

entweder über Mandanteneinstellungen für den tinymce, was dann aber das Verhalten der Enter-Taste ändert, oder direkt über den Modulcode, indem du der Überschrift vor der Ausgabe die nicht erlaubten tags entziehst bzw. genau definierst, welche Tags noch durchkommen dürfen:

Code: Alles auswählen

<?php
/**
* $RCSfile$
*
* Description: Output standard h1 headline
*
* @version 1.0.0
* @author Rudi Bieller
* @copyright four for business AG <www.4fb.de>
*
* {@internal
* created 2008-04-07
* }}
*
* $Id$
*/

$tpl = new cTemplate();

$tpl->reset();
if ($contenido && $edit) {
    $tpl->set('s', 'text', strip_tags("CMS_HTMLHEAD[1]", "<div><img><a><br>"));
} else {
    $tpl->set('s', 'text', strip_tags("CMS_HTMLHEAD[1]", "<br>"));
}

if ($contenido && $edit || (!$contenido && "CMS_HTMLHEAD[1]" != "" ) ) {
$tpl->generate('templates/headline_h1.html');
}

?>

McHubi
Beiträge: 1209
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Modul: "content_header_first" kein <p> Tag

Beitrag von McHubi » Mi 6. Mai 2015, 11:49

Hallo shi,

im Modul-Output solltest Du das hier finden:

Code: Alles auswählen

[...]
if (cRegistry::isBackendEditMode()) {
    $label = mi18n("LABEL_HEADER_FIRST");
} else {
    $label = NULL;
    $header = str_replace('&nbsp;', ' ', $header);
    $header = strip_tags($header);
    $header = trim($header);
}
[...]
Entscheidend ist hier $header = strip_tags($header);
Das wirft alle Tags (also auch <p> und </p>) raus und der Inhalt von $header wird an das Template "get.tpl" übergeben:

Code: Alles auswählen

[...]
$tpl->display('get.tpl');
[..]
Wenn Du bereits strip_tags im Modul-Output hast, schau bitte mal im Template (Modulreiter "HTML") ob hier evtl. ein <p> hardcodiert enthalten ist. Normalerweise lautet die Zeile dort

Code: Alles auswählen

<h1>{$header}</h1>
Wenn hier aber

Code: Alles auswählen

<h1><p>{$header}</p></h1>
steht, nützt das strip_tags im Modul-Output nichts da der Absatz später eingefügt wird.
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

shi
Beiträge: 251
Registriert: Fr 5. Nov 2004, 14:12
Kontaktdaten:

Re: Modul: "content_header_first" kein <p> Tag

Beitrag von shi » Mi 6. Mai 2015, 12:29

Hallo McHubi,

das Modul "content_header_first" entfernt jetzt den <p> Tag bei der Ausgabe. Leider habe ich noch das Probelem das das Modul "article-list-reloaded" das noch nicht macht. Hier wird noch <p> an get.tpl übergeben. Hast du noch eine Idee oder sollte ich das lieber im Thema von dem Modul besprechen?

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: Modul: "content_header_first" kein <p> Tag

Beitrag von homtata » Mi 6. Mai 2015, 13:20

zur ArticleListReloaded (ALR):

In der Modulkonfiguration kannst du ein zusätzliches Inhaltselement für die Überschrift definieren, dort die tags entziehen lassen und das dann in der Vorlage verwenden.

shi
Beiträge: 251
Registriert: Fr 5. Nov 2004, 14:12
Kontaktdaten:

Re: Modul: "content_header_first" kein <p> Tag

Beitrag von shi » Mi 6. Mai 2015, 13:48

Danke homata, der Tipp war gut. Es funktioniert auch wenn mann den Seitentitel für die Headline aktiviert.

Antworten