Insite-Editing: valides XHTML erzeugen

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 »

mvf hat geschrieben:@dodger, kann man das dür die standard sonderzeichen erweitern?
Klar, kann man das. Wir benötigen dazu eine neue Chain.

Dateiname: include.chain.content.htmlentities.php

Inhalt:

Code: Alles auswählen

<?php

function cecContentHtmlentities ($idartlang, $int2, $int3, $string)
{	
global $cfg, $client, $lang;

  cInclude("classes", "class.lang.php");
  $oLanguage = new Language;
  $oLanguage->loadBy("idlang", $lang);
  $sLangEncoding = $oLanguage->get("encoding");
  
  $pattern = '<([a-zA-Z0-9\.\, "\'_\/\-\+~=;:\(\)?&#%![\]@]+)>';
  preg_match_all ('/' . $pattern . '/', $string, $tagMatches, PREG_SET_ORDER);
  $textMatches = preg_split ('/' . $pattern . '/', $string);

  foreach ($textMatches as $key => $value) {
   $textMatches [$key] = mb_convert_encoding($value, 'HTML-ENTITIES', $sLangEncoding);
  }

  for ($i = 0; $i < count ($textMatches); $i ++) {
   $textMatches [$i] = $textMatches [$i] . $tagMatches [$i] [0];
  }

  return implode ($textMatches); 
}

?>
Dazu muss in der config.plugin.php hinzugefügt werden:

Code: Alles auswählen

cInclude("plugins", "chains/includes/include.chain.content.htmlentities.php");
$_cecRegistry->addChainFunction("Contenido.Content.SaveContentEntry", "cecContentHtmlentities");
Klappt, soweit ich das bisher sehe, ganz gut:

http://spielwiese.contenido-tutorials.de/test/
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

hi Dodger77

ich habs noch nicht getestet/eingebaut, dennoch schon mal danke(!) - werde aber auf jeden fall noch rückmeldung geben.
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
pulk
Beiträge: 217
Registriert: Sa 2. Nov 2002, 09:57
Kontaktdaten:

Beitrag von pulk »

hallo,

ich hab jetzt die chain eingebaut, aber leider bekomme ich folgenden fehler:

Code: Alles auswählen

[17-Jul-2006 16:56:03] PHP Warning:  Cannot modify header information - headers already sent by (output started at /var/www/.../contenido/plugins/chains/includes/include.chain.content.html2xhtml.php:88) in /var/www/.../conlib/session.inc on line 489
[17-Jul-2006 16:56:03] PHP Warning:  Cannot modify header information - headers already sent by (output started at /var/www/.../contenido/plugins/chains/includes/include.chain.content.html2xhtml.php:88) in /var/www/.../cms/front_content.php on line 135
hab die version 4.6.8.5 laufen. was hab ich da falsch gemacht?
pulk
Beiträge: 217
Registriert: Sa 2. Nov 2002, 09:57
Kontaktdaten:

Beitrag von pulk »

pulk hat geschrieben:hallo,

ich hab jetzt die chain eingebaut, aber leider bekomme ich folgenden fehler:

Code: Alles auswählen

[17-Jul-2006 16:56:03] PHP Warning:  Cannot modify header information - headers already sent by (output started at /var/www/.../contenido/plugins/chains/includes/include.chain.content.html2xhtml.php:88) in /var/www/.../conlib/session.inc on line 489
[17-Jul-2006 16:56:03] PHP Warning:  Cannot modify header information - headers already sent by (output started at /var/www/.../contenido/plugins/chains/includes/include.chain.content.html2xhtml.php:88) in /var/www/.../cms/front_content.php on line 135
hab die version 4.6.8.5 laufen. was hab ich da falsch gemacht?

hab jetzt nochmal die original config.plugin.php von der 4.6.8.5 eingespielt und die chain eingefügt und jetzt kommen zumindest keine fehler mehr, dafür kommen wieder welche wenn ich die include.chain.content.htmlentities.php einfüge.

Code: Alles auswählen

Warning: Cannot modify header information - headers already sent by (output started at /var/www/.../contenido/plugins/chains/includes/include.chain.content.htmlentities.php:46) in /var/www/.../conlib/session.inc on line 485
emergence
Beiträge: 10652
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ähm
bei include.chain.content.htmlentities.php um zeile 46 befindet sich ein leerzeichen oder ein line break (oder mehrere)... da darf keiner sein ->
die datei muss mit ?> abschließen...

deshalb die fehlermeldung..
*** make your own tools (wishlist :: thx)
pulk
Beiträge: 217
Registriert: Sa 2. Nov 2002, 09:57
Kontaktdaten:

Beitrag von pulk »

ahhh, danke!
Karin Dähne
Beiträge: 140
Registriert: Fr 20. Feb 2004, 17:48
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von Karin Dähne »

Hallo,
ich hab jetzt die Version 4.6.15 von Stese installiert (komplett neue Installation mit Beispielmandant).

Zum Testen habe ich das Standarttemplate um ein CMS_HTML -Feld erweitert. Umstellung auf xhtml im Mandanten ist erfolgt.
Testfeld: Beispielseite "Features dieser Website":

Leider habe ich beim Einsatz von mehreren CMS_HTML Containern noch ein Problem mit den Listen. (Alle anderen Tags bleiben meines Erachtens nach sauber in xhtml.)

Rufe ich den bestehenden Artikel noch einmal auf und speichere ihn, gibt er die saubere Liste aus:

Code: Alles auswählen

<p><p>Folgende Funktionalit&auml;ten stehen Ihnen&nbsp;in&nbsp;auf dieser&nbsp;Beispielseite zur Verf&uuml;gung.</p><ul><li>Navigation </li><li>Teaser </li><li>Suche </li><li>Sitemap </li><li>Bildergalerie </li><li>RSS Feed </li><li>Loginbox f&uuml;r den geschlossenen Bereich </li><li>Artikelbewertung </li><li>Kontaktformular </li></ul></p>
setze ich in den neuen CMS_HTML Container eine weitere Liste erscheint folgendes:

Code: Alles auswählen

<ul>
<li>Navigation 
<li>Teaser 
<li>Suche 
<li>Sitemap 
<li>Bildergalerie 
<li>RSS Feed 
<li>Loginbox f&uuml;r den geschlossenen Bereich 
<li>Artikelbewertung 
<li>Kontaktformular </li></ul></p>
im 2. Container darunter:

Code: Alles auswählen

			<p><ul><li>Punkt 01 2. CMS_HTML Container </li><li>Punkt 02 2. CMS_HTML Container</li><li>Punkt 03 2. CMS_HTML Container </li></ul></p>
ändere ich ein weiteres Feld (Überschrift), sehen die Listen aus, wie folgt:

Code: Alles auswählen

<ul>
<li>Navigation 
<li>Teaser 
<li>Suche 
<li>Sitemap 
<li>Bildergalerie 
<li>RSS Feed 
<li>Loginbox f&uuml;r den geschlossenen Bereich 
<li>Artikelbewertung 
<li>Kontaktformular </li></ul></p>
im 2. Container darunter:

Code: Alles auswählen

			<p><ul>
<li>Punkt 01 2. CMS_HTML Container 
<li>Punkt 02 2. CMS_HTML Container 
<li>Punkt 03 2. CMS_HTML Container</li></ul></p>
Gibt es da schon eine Lösung zu, die ich bis jetzt noch nicht hier im Forum gefunden habe?

Danke im Voraus für eine Antwort.

Grüße,
Karin Dähne.
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 »

Ich habe soeben die Liste der leeren Elemente erweitert, so dass es damit keine Probleme mehr geben sollte.
Karin Dähne
Beiträge: 140
Registriert: Fr 20. Feb 2004, 17:48
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von Karin Dähne »

Hallo Dodger77,
ich bin gerade erst dazu gekommen, Deine Erwiterung zu testen:
leider besteht das Problem mit den Listenpunkten nach wie vor.
(Natürlich hab ich die Container im Artikel neu aufgerufen, in der html-Ansicht des Tiny kontrolliert und neu abgespeichert)

Nur zur Sicherheit:
ich habe den Code der Datei "include.chain.content.html2xhtml.php" am Anfang des Threads (zuletzt geändert 30.01.2007 15:53) ersetzt.

Und: wenn ich im Tiny eine css-Klasse einstelle, erscheint im Quelltext:
class=bold
statt class="bold"

oder muß das an anderer Stelle bearbeitet werden?

Danke im Voraus für eine Antwort.

Grüße,
Karin Dähne.
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 »

@Karin: Bist du dir sicher, dass die Chain überhaupt ausgeführt wird?

Poste bitte mal den Inhalt der Datei "contenido/plugins/chains/includes/config.plugin.php".
Karin Dähne
Beiträge: 140
Registriert: Fr 20. Feb 2004, 17:48
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von Karin Dähne »

Hallo Dodger77,

hier ist der Code:

Code: Alles auswählen

<?php
//global $_cecRegistry, $cfg;
global $_cecRegistry, $cfg, $client;

$cfg['plugins']['frontendlogic'][] = "category";

cInclude("plugins", "chains/includes/include.chain.frontend.cat_backendaccess.php");
cInclude("plugins", "chains/includes/include.chain.frontend.cat_access.php");
cInclude("plugins", "chains/includes/include.chain.frontend.multidomain.php");
cInclude("plugins", "chains/includes/include.chain.content.html2xhtml.php");
cInclude("plugins", "chains/includes/include.chain.content.tinymceurl.php");
cInclude("plugins", "chains/includes/include.chain.content.htmlentities.php");

$_cecRegistry->addChainFunction("Contenido.Frontend.CategoryAccess", "cecFrontendCategoryAccess");
$_cecRegistry->addChainFunction("Contenido.Frontend.CategoryAccess", "cecFrontendCategoryAccess_Backend");
$_cecRegistry->addChainFunction("Contenido.Frontend.BaseHrefGeneration", "cecFrontendMultiDomainSwitch");
$_cecRegistry->addChainFunction("Contenido.Content.SaveContentEntry", "cecContentHtml2Xhtml");
$_cecRegistry->addChainFunction("Contenido.Content.CreateArticleLink", "cecContentTinyMCEUrl");
$_cecRegistry->addChainFunction("Contenido.Content.CreateCategoryLink", "cecContentTinyMCEUrlCategory");
$_cecRegistry->addChainFunction("Contenido.Content.SaveContentEntry", "cecContentHtmlentities");
?>
Zusätzlich meine Mandanteneinstellungen:

Code: Alles auswählen

Typ  / Name  / Wert 
backend  / upload_properties_language_dependant / yes 
generator  / xhtml  / true 
language  / separator  / §§§ 
wysiwyg  / tinymce-extended-valid-elements  / *[*] 
wysiwyg  / tinymce-valid-elements  / *[*] 
wysiwyg  / tinymce-stylesheet-file  / css/style_tiny.css 
Ich weiß wirklich nicht, wo ich noch suchen soll...
Und Danke, daß Du Dich des Problemes annimmst!

Grüße,
Karin Dähne.
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 »

@Karin: Soweit sieht das in Ordnung aus.
Welchen Browser benutzt du denn zum Editieren? Dann kann ich mal versuchen, das bei mir nachzustellen.
Karin Dähne
Beiträge: 140
Registriert: Fr 20. Feb 2004, 17:48
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von Karin Dähne »

Hallo Dodger77,

Browser: IE 6 / IE 7 (wird auch später in der Firma zum Editieren eingesetzt)

Lokale Testumgebung: XAMPP für Windows Version 1.5.3a auf XP-Professionell

Beim Provider wird es dann auf einer IIS- Installation liegen.
Aber bis jetzt kann ich da keinen Unterschied feststellen im Verhalten.

Grüße,
Karin Dähne.
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 »

Also die Testumgebung ist in diesem Fall nicht wichtig. Aber der IE macht halt Zicken. Das fehlende abschließende </li> lässt sich zur Zeit mit der Chain nicht abfangen, die fehlenden Anführungszeichen bei den Attributwerten schaue ich mir die Tage mal an.
Karin Dähne
Beiträge: 140
Registriert: Fr 20. Feb 2004, 17:48
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von Karin Dähne »

Hallo Dodger77,
Das fehlende abschließende </li> lässt sich zur Zeit mit der Chain nicht abfangen
Ach so! Und gerade das hatte ich gehofft, als ich Deinen Beitrag
Ich habe soeben die Liste der leeren Elemente erweitert, so dass es damit keine Probleme mehr geben sollte.
las, da er unmittelbar nach meinem Beitrag kam.
Ist denn da schon eine Lösung in Sicht?
Ich habe extra Templates angelegt, die aus mehreren Textfeldern, kombiniert mit Bildmodulen bestehen, damit Redakteure mir nicht das Layout und die Barrierefreiheit der Site zerschießen können.
In Projektbeschreibungen tauchen aber oft unsortierte Listen auf.
Ich habe gerade einen Workaround dazu getestet:

Code: Alles auswählen

<blockquote>
<p class="list">text</p>
<p class="list">text</p>
<p class="list">text</p>
</blockquote>
und dann die Formatierungszuweisung von Listenpunkten durch Css

Code: Alles auswählen

blockquote p {
 display: list-item;
 list-style: url(../upload/pagedesign/style/bullets/dot-3e3f88_closed.gif);
}
Wirklich toll finde ich das aber nicht, da es mir syntaktisch nicht richtig erscheint.

Grüße,
Karin Dähne.
Antworten