Seite 1 von 1

^_^

Verfasst: Mi 2. Mär 2005, 18:08
von i-fekt
^_^

Verfasst: Mi 2. Mär 2005, 19:33
von Edanis
Hallo
Für dieses spezielle Problem kanns Du vielleicht folgendes anwenden (ungetestet)

Code: Alles auswählen

<?php
/**
* CONTENIDO MODUL - OUTPUT
*/

$Text = "CMS_HTML[1]";

if (!$edit) {
    $Text = str_replace (array("<P>&nbsp;</P>", "<BR>"), "<BR />", $Text);
}

if ($Text != "" && $Text != "&nbsp;" && $Text != "<BR />") echo $Text;

unset ($Text);
?>
Im Frontend werden alle leeren Zeilenumbrüche zu "<BR />" ersetzt.

Edward

Verfasst: Sa 4. Jun 2005, 20:06
von i-fekt
^_^

Verfasst: Mo 6. Jun 2005, 00:51
von Edanis
Ganz blöde Antwort,

Code: Alles auswählen

$Text = str_replace (array("<P>&nbsp;</P>", "<BR>", "<br>"), "<br />", $Text);
$Text = str_replace (
    array("<P>", "</P>", "<A>", "</A>"), 
    array("<p>", "</p>", "<a>", "</a>"), 
    $Text
);
Ersetzt die falsche Zeilenumbrüche und die zweite Anweisung ersetzt die großen Tags durch die kleinen. Ist abrr keine Lösung, zual Du bestimmt nicht das gefragt hast. Wie man aber aus

Code: Alles auswählen

<UL>
<LI>Listeintrag
<LI>Eintrag 2</LI></UL>
was ein schlechter XHTML - Witz ist und vom SPAW kommt den gültigen

Code: Alles auswählen

<ul>
    <li>Listeintrag </li>
    <li>Eintrag 2</li>
</ul>
macht kann ich so schnell nicht beantworten. Möglicherweise wild herumprobieren und alle Fehler sammeln die SPAW oder HTML Feld im Layout machen könnten und dann in einer Routine abfangen. Die muss auf jeden Fall aber nicht wie im obigen 'Modul' von mir im Frontend ausgeführt werden sondern im Backend, weil relativ viel Ressourcen verbrauchen wird. Im Backend braucht aber nur einmal ausgeführt werden, im Frontend immer wieder.

Vielleicht ist es sinnvoll eine solche Erweiterung mit der Funktion TagsToLower aufzurufen, die in der FAQ vergeschlagen wird:

http://www.thilo-sommer.de/PHPMyFAQ/ind ... 73&lang=de

Mehr kann ich im Moment nicht sagen :(

Gruss, Edward

Verfasst: Di 7. Jun 2005, 10:32
von i-fekt
^_^

Verfasst: Di 7. Jun 2005, 19:01
von Edanis
Nicht das ich wüste, das sind zwei Anweisungen, beide kämmen die Variable $Text nach Suchmustern durch und ersetzen die.

Zuvor wird wie im Beitrag vorher die Variable mit dem HTML Text belegt (im Backend, genauer im Editor wird noch ein Editorfeld drumherum aufgebaut, im Frontend und Vorschau ist das der reine Inhalt)

Nach der Umwandlung wird die Variable ausgegeben, im Backend der Inhalt mit dem Editor, wobei dann keine Umwandlung stattgefunden wurde (wegen des bzw. der Tags des Editorfeldes).

Ein BBC Code... Besser wäre dann ein eigenes Typ zB "BBC_Text" schreiben dass dann eien BBC Formular aufbaut und mit dem dann eingegeben wird. Entweder im Layout direkt oder im eigenen Framefenster. Wenn ich Zeit habe (wahrscheinlich nicht diesen Monat) könnte ich das mal machen. Falls bedarf besteht.

Es gäbe noch eine Möglichkeit, FCK Editor anstatt von SPAW einzubinden (macht XHTML angeblich)und wenn Deine Redakteure es nicht als allzugroßer Rückschritt empfinden, HTML Felder des Layout schreibgeschützt zu machen (einfach das Editorfeld aus dem Layout entfernen) und dann gäbe es nur eine Möglichkeit was zu bearbeiten - über ">>Text Html" Button. Wobei dann der FCK Editor eingeblendet wird.

Hier zum Thread, ist aber keine Werbung weil es mir im Moment nicht gelingt das Ding einzubinden ;) Bei vielen läuft es aber.

http://contenido.org/forum/viewtopic.php?t=8114

Gruss, Edward

Verfasst: So 12. Jun 2005, 00:08
von Edanis
Also die Version von Jan konnte ich installieren. Damit es klar wird was ich mit dem letzten Beitrag meine, das Typ CMS_HTMLHEAD lautet wie folgt (Spalte 'code' der Tabelle con_type):

Code: Alles auswählen

/**
 * CMS_HTMLHEAD
 */
$tmp = $a_content['CMS_HTMLHEAD'][$val];
$tmp = urldecode($tmp);
$tmp = AddSlashes(AddSlashes($tmp));
$tmp = str_replace("\\\'","'",$tmp);
if ($edit) {

$before="<div id=\"HTMLHEAD_".$db->f("idtype")."_".$val."\" onFocus=\"this.style.border='1px solid #bb5577'\"".
       " onBlur=\"this.style.border='1px dashed #bfbfbf'\" style=\"border:1px dashed #bfbfbf\" contentEditable=\"true\">";
$editbutton = "</div><a href=\"javascript:setcontent('$idartlang','".$sess->url("front_content.php?action=10&idcat=$idcat&idart=$idart&idartlang=$idartlang&type=CMS_HTMLHEAD&typenr=$val")."')\">
<img src=\"".$cfg["path"]["contenido_fullhtml"].$cfg["path"]["images"]."but_edithead.gif\" border=\"0\"></a>
<a href=\"javascript:setcontent('$idartlang','0')\"><img src=\"".$cfg["path"]["contenido_fullhtml"].$cfg["path"]["images"]."but_speichern.gif\" border=\"0\"></a>";
$editbutton = AddSlashes(AddSlashes($editbutton));
$editbutton = str_replace("\\\'","'",$editbutton);
$before= AddSlashes(AddSlashes($before));
$before = str_replace("\\\'","'",$before);
if ($tmp == "") {
$tmp = "&nbsp;";
}
$tmp = $before.$tmp.$editbutton;}
Ersetzt man es durch dieses

Code: Alles auswählen

/**
 * CMS_HTMLHEAD
 */
$tmp = $a_content['CMS_HTMLHEAD'][$val];
$tmp = urldecode($tmp);
$tmp = AddSlashes(AddSlashes($tmp));
$tmp = str_replace("\\\'","'",$tmp);
if ($edit) {
    $before="<div id=\"HTMLHEAD_".$db->f("idtype")."_".$val."\">";
    $editbutton = "</div><a 
            href=\"javascript:setcontent('$idartlang','".$sess->url("front_content.php?action=10&idcat=$idcat&idart=$idart&idartlang=$idartlang&type=CMS_HTMLHEAD&typenr=$val")."')\"><img 
            src=\"".$cfg["path"]["contenido_fullhtml"].$cfg["path"]["images"]."but_edithead.gif\" 
            border=\"0\"></a>";
    $editbutton = AddSlashes(AddSlashes($editbutton));
    $editbutton = str_replace("\\\'","'",$editbutton);
    $before= AddSlashes(AddSlashes($before));
    $before = str_replace("\\\'","'",$before);
    $tmp = $before.$tmp.$editbutton;
}
Und am besten noch CMS_HTML auf gleiche Weise also dadurch:

Code: Alles auswählen

/**
 * CMS_HTML
 */
$tmp = $a_content['CMS_HTML'][$val];
$tmp = urldecode($tmp);
$tmp = AddSlashes(AddSlashes($tmp));
$tmp = str_replace("\\\'","'",$tmp);
if ($edit) {  
    $before="<div id=\"HTML_".$db->f("idtype")."_".$val."\">";
    $editbutton = "</div><a 
            href=\"javascript:setcontent('$idartlang','".$sess->url("front_content.php?action=10&idcat=$idcat&idart=$idart&idartlang=$idartlang&type=CMS_HTML&typenr=$val&lang=$lang")."')\"><img 
            src=\"".$cfg["path"]["contenido_fullhtml"].$cfg["path"]["images"]."but_edithtml.gif\" 
            border=\"0\"></a>";
    $editbutton = AddSlashes(AddSlashes($editbutton));
    $editbutton = str_replace("\\\'","'",$editbutton);
    $before= AddSlashes(AddSlashes($before));
    $before = str_replace("\\\'","'",$before);
    $tmp = $before.$tmp.$editbutton;
}
So gibt es weder einen Rahmen um die HTML Titel, Subtitel und Textbereiche, noch kann man die bearbeiten, noch gibt es einen '>> Speichern' - Buttton darunter. Die einzige Möglichkeit, etwas einzugeben bleibt der Schalter '>>Headline' und ein HTML Editor der daraufhin eingeblendet wird. Sinn macht das nur wenn es der FCK Editor ist der XHTML macht.

Gruss, Edward

PS Bitte vorher Backup der Tabelle anlegen oder zumindest die ersetzte Codes speichern.