| Autor | Zpráva | ||
|---|---|---|---|
| Pavliczeck Profil * |
#1 · Zasláno: 8. 2. 2011, 00:17:08
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 |
#2 · Zasláno: 8. 2. 2011, 00:37:07 · Upravil/a: Medvídek
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 |
#3 · Zasláno: 8. 2. 2011, 01:08:03
Asi hloupá otázka - ale proč? Nenapadá mě důvod, proč to měnit.
|
||
| WMPopi Profil |
#4 · Zasláno: 8. 2. 2011, 03:27:59 · Upravil/a: WMPopi
„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 |
#5 · Zasláno: 8. 2. 2011, 08:50:11
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 |
#6 · Zasláno: 8. 2. 2011, 13:27:06
Medvídek:
Od tý doby jsem ji už značně rozšířil :-D |
||
| Pavliczeck Profil * |
#7 · Zasláno: 8. 2. 2011, 13:31:40
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 |
#8 · Zasláno: 8. 2. 2011, 13:34:04
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 |
#9 · Zasláno: 8. 2. 2011, 13:47:26 · Upravil/a: WMPopi
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"]); |
||
|
Časová prodleva: 15 let
|
|||
0