P-Tag in CMS_HTMLHEAD

Alles rund um Module und Plugins in CONTENIDO 4.9.
ImmoF
Beiträge: 175
Registriert: Do 26. Jun 2003, 18:33
Kontaktdaten:

P-Tag in CMS_HTMLHEAD

Beitrag von ImmoF » Mi 27. Apr 2016, 14:45

Nach dem Update von der 4.8.x auf 4.9.x wird offenbar in den Editor bei den Modulen, die diesen Inhalt haben:

Code: Alles auswählen

<?php echo "<h1>CMS_HTMLHEAD[5]</h1>"; ?>
immer ein p-Tag mit angefügt. Wie bekomme ich den p-Tag raus?

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: P-Tag in CMS_HTMLHEAD

Beitrag von Faar » Mi 27. Apr 2016, 16:31

Bei TinyMCE steht folgendes: http://archive.tinymce.com/wiki.php/Con ... root_block

Also man muss forced_root_block auf false setzen.
Das macht man meistens in den Mandanteneinstellungen.
Typ = tinymce
Name = forced_root_block
Wert = false

Ich habe das auch mit einem leeren Feld am laufen und dort funktioniert es so auch.
Aber ich habe dort auch den wysiwyg mit cleanup und cleanup_on_startup auf false gesetzt.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

ImmoF
Beiträge: 175
Registriert: Do 26. Jun 2003, 18:33
Kontaktdaten:

Re: P-Tag in CMS_HTMLHEAD

Beitrag von ImmoF » Do 28. Apr 2016, 08:11

Das ist bereits eingestellt. In der 4.9.x ist es offenbar leider im HTML_HEAD-Element nicht die Loesung.

Man muss ja auch die vorher gesetzten P-Tags entfernen können. Wenn man da den Editor aufruft, gibt es keine Toolbar fuer HTML-Ansicht. Ich habe jetzt mal einige Menu dem WYSIWYG-Editor hinzugefügt, auch das Element code - dennoch erscheint kein Umschalter zum Quelltext.

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

Re: P-Tag in CMS_HTMLHEAD

Beitrag von McHubi » Do 28. Apr 2016, 10:06

1) Wie sehen denn Deine Mandanteneinstellungen zum Tiny aus?
2) Bei einer "uralten" Contenido-Version lag's mit dem <p> mal daran, dass es im Modultemplate hardcodiert drin stand. Ist aber im aktuellen Demomandanten der 4.9.9 nicht der Fall. Und "davor" müssten eigentlich alle Tags durch

Code: Alles auswählen

$header = strip_tags($header);
rausgekickt werden...
Lass dir mal den Inhalt von $header im Frontend über die Modulausgabe vor dem strip_tags auswerfen und danach nochmal über das Template. Gibt's da nen Unterschied?
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)

ImmoF
Beiträge: 175
Registriert: Do 26. Jun 2003, 18:33
Kontaktdaten:

Re: P-Tag in CMS_HTMLHEAD

Beitrag von ImmoF » Do 28. Apr 2016, 10:21

Der Inhalt des Moduls ist nur

Code: Alles auswählen

<?php echo "<h1>CMS_HTMLHEAD[5]</h1>"; ?>
Der Inline-Editor fuegt hier definitiv ein p-Tag hinzu und ich kann im Editor den p-Tag nicht manuell entfernen, weil es keine HTML-Ansicht gibt, auch nicht in der Vollansicht.

Wenn ich mich richtig erinnere, ist das ein uraltes-Problem von contenido, was von Version zu Version immer wieder da war. Warum man das nicht endlich dauerhaft entfernt, ist mir ein Raetsel.

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

Re: P-Tag in CMS_HTMLHEAD

Beitrag von McHubi » Do 28. Apr 2016, 10:30

:?:
Dann ist das aber nicht das Standard-Modul "content_header_first". Da sieht der Output nämlich so aus:

Code: Alles auswählen

<?php

/**
 * description: standard first header (H1)
 * Header will not be output if no or an empty text is given.
 *
 * @package Module
 * @subpackage ContentHeaderFirst
 * @version SVN Revision $Rev:$
 *
 * @author marcus.gnass@4fb.de
 * @copyright four for business AG <www.4fb.de>
 * @license http://www.contenido.org/license/LIZENZ.txt
 * @link http://www.4fb.de
 * @link http://www.contenido.org
 */

// assert framework initialization
defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.');

// get header from content type HTMLHEAD with index 1
$header = "CMS_HTMLHEAD[1]";

// When in backend edit mode add a label so the author
// knows what to type in the shown field.
// When not in backend edit mode any tags are removed
// for the template is responsible for displaying the
// given text as a header.
if (cRegistry::isBackendEditMode()) {
    $label = mi18n("LABEL_HEADER_FIRST");
} else {
    $label = NULL;
    $header = str_replace('&nbsp;', ' ', $header);
    $header = strip_tags($header);
    $header = trim($header);
}

// use smarty template to output header text
$tpl = cSmartyFrontend::getInstance();
$tpl->assign('label', $label);
$tpl->assign('header', $header);
$tpl->display('get.tpl');

?>
und das Modul-Template so:

Code: Alles auswählen

<!-- content_header_first -->

{if 0 lt $label|strlen}
    <label class="content_type_label">{$label|escape}</label>
{/if}

{if 0 lt $header|strlen}
    <h1>{$header}</h1>
{/if}

<!-- /content_header_first -->
Verwende doch mal das Standardmodul und schau, ob dann das Problem immer noch da ist...
Warum man das nicht endlich dauerhaft entfernt, ist mir ein Raetsel.
Das Problem taucht bei keiner meiner Installationen auf. Du scheinst der berühmte "Einzelfall" zu sein... :wink:
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)

ImmoF
Beiträge: 175
Registriert: Do 26. Jun 2003, 18:33
Kontaktdaten:

Re: P-Tag in CMS_HTMLHEAD

Beitrag von ImmoF » Do 28. Apr 2016, 10:35

Das Modul duerfte bei jeder Installation auftauchen, welche aus 4.8.x upgedatet worden ist oder frueher.

Die Frage ist ja nur, wo kann ich den Mist abschalten, dass der Editor den p-Tag nicht setzt. Der kommt definitiv aus dem Editor. Der Eintrag oben in den Mandanteneinstellungen hat wohl frueher geholfen, in der aktuellen 4.9x. geht das nicht mehr.

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: P-Tag in CMS_HTMLHEAD

Beitrag von Faar » Do 28. Apr 2016, 13:18

ImmoF hat geschrieben:Der Inhalt des Moduls ist nur

Code: Alles auswählen

<?php echo "<h1>CMS_HTMLHEAD[5]</h1>"; ?>
Probier mal

Code: Alles auswählen

<?php echo '<h1>'.strip_tags("CMS_HTMLHEAD[5]").'</h1>'; ?>
strip_tags() entfernt HTML und PHP Tags, so wie <p>.
Ansonsten kannst du auch CMS_TEXT[5] nehmen, weil für diese Überschrift den Wysiwyg Editor gar nicht brauchst, oder möchtest du diese mit Bildern, Tabellen, Formatierungen und Absätzen gestalten?
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

ImmoF
Beiträge: 175
Registriert: Do 26. Jun 2003, 18:33
Kontaktdaten:

Re: P-Tag in CMS_HTMLHEAD

Beitrag von ImmoF » Do 28. Apr 2016, 14:26

Danke.

Die einfachsten Lösungen sind manchmal die besten!

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

Re: P-Tag in CMS_HTMLHEAD

Beitrag von McHubi » Do 28. Apr 2016, 16:02

Dann hast Du meinen ersten Post wohl nur überflogen. Der Hinweis auf "strip_tags" war da schon drin... Stichel... :wink:
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)

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: P-Tag in CMS_HTMLHEAD

Beitrag von Faar » Do 28. Apr 2016, 16:20

McHubi hat geschrieben:Der Hinweis auf "strip_tags" war da schon drin... Stichel... :wink:
:twisted:
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

ImmoF
Beiträge: 175
Registriert: Do 26. Jun 2003, 18:33
Kontaktdaten:

Re: P-Tag in CMS_HTMLHEAD

Beitrag von ImmoF » Di 17. Mai 2016, 11:33

Ich muss leider hier noch mal einsteigen. Nachdem der cache geloescht ist, entfernt diese Zeile den kompletten Container beim Inline-Editing im Contenido-Backend:

Code: Alles auswählen

<?php echo '<h1>'.strip_tags("CMS_HTMLHEAD[5]").'</h1>'; ?>
Die Ausgabe ist richtig und p-Tags werden gefiltert. Das hilft mir an der Stelle leider nicht weiter, weil ich im Backend die Überschrift nun nicht mehr eingeben kann. Offenbar sorgt der Befehl dafür, dass auch die Tags vom Editor im Adminbereich entfernt werden.

Was kann ich tun? Es muss an sich nur

Code: Alles auswählen

<p></p>
entfernt werden.

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: P-Tag in CMS_HTMLHEAD

Beitrag von Faar » Di 17. Mai 2016, 13:39

Code: Alles auswählen

$header = str_replace('<p>', '', $header);
$header =  str_replace('</p>', '', $header);
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

ImmoF
Beiträge: 175
Registriert: Do 26. Jun 2003, 18:33
Kontaktdaten:

Re: P-Tag in CMS_HTMLHEAD

Beitrag von ImmoF » Di 17. Mai 2016, 14:39

Wie kann denn ein einfaches Headline-Elemente mit h1 in Contenido nun aussehen?

Wenn ich str_replace einsetze, funktioniert zwar die Ausgabe im Frontend, im Backend ist der Artikel jedoch nicht mehr aufrufbar.

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

Re: P-Tag in CMS_HTMLHEAD

Beitrag von homtata » Di 17. Mai 2016, 14:47

Hallo ImmoF,
McHubi hat dir oben eigentlich den perfekten Code geliefert - damit kannst du den alten 4.8er Code ersetzen. Das von ihm gelieferte Smarty-Template im Modul ebenalls anlegen.
Du musst nur im Modulcode noch folgende Änderung machen:

Code: Alles auswählen

CMS_HTMLHEAD[1]
in

Code: Alles auswählen

CMS_HTMLHEAD[5]
ändern, um auf deine bisherigen Überschriften zugreifen zu können. Der Rest müsste eigentlich klappen.

Antworten