Autor Zpráva
Pavliczeck
Profil *
Dobrý večer,

chtěl bych se zeptat, zda jste někdo neřešil problém s CKeditorem kdy chcete místo použitého tagu <br /> využívat tagu <br>. Hledal jsem všude možně, ale nenašel jsem místo, kde bych to změnil.

Děkuji za pomoc.
Medvídek
Profil
Pavliczeck:
Nejsi jediný, na oficiálním fóru si taky někdo stěžuje, že nový editor funguje jen jako XHTML.

Z nápovědy toto:
FCKConfig.EnableXHTML = true ; // Unsupported: Do not change.
FCKConfig.EnableSourceXHTML = true ; // Unsupported: Do not change.


Takže asi jedině ty tagy nahrazovat před uhládáním v php str_replacem.

Tak na oficiální dokumentaci je toto:

// The way to close self closing tags, like <br />.
writer.selfClosingEnd = ' />';

CKEDITOR.on( 'instanceReady', function( ev )
    {
        // Ends self closing tags the HTML4 way, like <br>.
        ev.editor.dataProcessor.writer.selfClosingEnd = '>';
    });


Takže by to mělo jít :)
Radek Cvek
Profil
Asi hloupá otázka - ale proč? Nenapadá mě důvod, proč to měnit.
WMPopi
Profil
Takže asi jedině ty tagy nahrazovat před uhládáním v php str_replacem.
CKEditor mám takových nedostatků více, proto každý výstup před uložením proženu svojí funkcí, která mi ty nedostatky ošetří.
Medvídek
Profil
WMPopi:
Je pravda, že používám taky :)

 function CKEditor($text) {
    $tags = array("h1", "h2", "h3", "h4", "h5", "h6", "p", "li", "td", "br /", "caption");
    foreach ($tags as $tag) {
      $pocet = substr_count($text, "<$tag");
      if ($pocet) {
        for ($i = 1; $i <= $pocet; $i++) {
          $pozice1 = strpos($text, "<$tag");
          $pozice2 = $pozice1 + strpos(substr($text, $pozice1), ">") + 1;
          $pozice = $pozice2;
          while ($text[$pozice] == "\t" || $text[$pozice] == "\r" || $text[$pozice] == "\n") $pozice++;
          $text = substr($text, 0, $pozice1 + 1) . "#" . substr($text, $pozice1 + 1, $pozice2 - $pozice1 - 1) . substr($text, $pozice);
        }
      }
    }
    $text = str_replace("<#", "<", $text);
    while (substr($text, -2) == "\r\n") $text = substr($text, 0, -2);
    return $text;
  }
WMPopi
Profil
Medvídek:
Od tý doby jsem ji už značně rozšířil :-D
Pavliczeck
Profil *
Jako totální vemínko, které zvládá jen html css a trošku php jsem z toho nic nepochopil. Ten script mám vložit kam? Nebo kde to vůbec mám hledat?
Radek9
Profil
Pavliczeck:
Tu funkci si hoď někam do PHP a potom ji použij na řetězec:
$text = $_POST["text"];//Tady si ještě doplň nějakou ochranu
$text = CKEditor($text);
WMPopi
Profil
Pavliczeck:
Tohle ale neřeší tvůj požadavek používání <br> místo <br />. Řeší to lepší formátování html kódu.
Pro svůj problém si hoď na konec té funkce před řádek return
$text = str_replace("<br />", "<br>", $text);


případně funkci vůbec použít nemusíš a stačí něco v tomto smyslu

$_POST["text"] = str_replace("<br />", "<br>", $_POST["text"]);

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: