PDA

Zobacz pełną wersję : Podmiana znaku & na & w No-Editor



goliat
25-11-2008, 00:10
Cześć

Mam Joomle 1.5.8 i mam ustawiony No-Editor jako edytor :D

Problem objawia się kiedy wklejam kod HTML wraz ze znakiem specjalnym & , co przeglądarka powinna interpretować jako &.

W momencie kiedy daje SAVE, edytor ten konwertuje mi & na znak &, a przecież powinno być na ODWRÓT :).

Co oczywiście przy walidacji objawia się błędami.

Konwersje tą można oszukać poprzez użycie &, do bazy powędruje &.

No i niby można z tym żyć, ale w momecie, kiedy chce edytować taki artykuł, edytor ten ponownie konwertuje mi & na klasyczne &.

Innymi słowy, z każdą edycją tekstu muszę zamieniać & na &, co jest lekko denerwujące. :mad:

Jest to według mnie BUG tego edytora i chętnie poprawie to w źródłach joomli, ale NIE WIEM GDZIE !. :confused:

Troche się już naszukałem ale wszystkie zmiani nie zadziałały, także nie wiem gdzie szukać by spróbować coś zmienić.

Odrazu odpowiem, wiem że inne edytory nie mają z tym problemu, ale narazie nie che zmieniać tego.

Z góry dzieki za podpowiedz

idek
25-11-2008, 00:43
a nie da sie w plikach jak juz tak zaglądałes całkowicie wyłaczyć poprawiania, sprawdzania itp? żeby do bazy szedł ten sam kod, który wklepałes z klawatury?

tak pytam, bo tez mam problemy nieco inne, które przed chwilką na forum opisywałem i przydałoby sie takie coś, co kod widoczny w edytorze wrzuca do bazy, a nie filtruje, sprawdza i usuwa... ;/

goliat
25-11-2008, 01:07
No cześć

Powiem tak, znalazłem plik gdzie jest coś takiego

\libraries\joomla\filter\filteroutput.php


/**
* Replaces & with & for xhtml compliance
*
* @todo There must be a better way???
*
* @static
* @since 1.5
*/
function ampReplace( $text )
{
$text = str_replace( '&&', '*--*', $text );
$text = str_replace( '&#', '*-*', $text );
$text = str_replace( '&', '&', $text );
$text = preg_replace( '|&(?![\w]+;)|', '&', $text );
$text = str_replace( '*-*', '&#', $text );
$text = str_replace( '*--*', '&&', $text );

return $text;
}

i myśle sobie że to jest właśnie to, ale no nie pomogło.

Generalnie jest wiele plików gdzie jest mowa o podmianie amp na &, ale tego jest za dużo i mam nadzieje że jakiś mądrzejszy forumowicz mi to powie :)

idek
25-11-2008, 12:47
ja też licze, że ktoś mądry nam podpowie.. licze cichaczem na zwiastuna, lub jakiegoś aktywiste forum, który ma wiedze... byle tylko tutaj zajrzeli, o póki co robota leży :|

goliat
25-11-2008, 22:01
Nie wiem czy do końca bezpieczne i dobre będzie pozbycie się wszystkich intrpretorów znaków, np Read More ... może być źle interpertowany przez Joomle, ale takie są tylko moje przypuszczenia.

Zaraz siadam i zobacze co sie da jeszcze w tym temacie zrobić.

Ostatecznością jest Debgagowanie PHP, co jest nieprzyjemne i czasochłonne, ale w miare skuteczne :)

Mam nadzieje że ktoś mnie uprzedzi i da ODP wcześniej :D

zwiastun
25-11-2008, 23:58
Pozaglądali do ustawień edytora? Posprawdzali, co się dzieje, gdy w parametrze "Nie czyść encji" (Do not clean HTML entities.) zaznaczą Tak, a "Czyść podczas zapisu" [Code cleanup on save] ustawią na Nigdy albo Tylko front?
Nie posprawdzali? Nie pomyśleli? Czasu nie mieli? A czas na grzebanie w kodzie mają?

W Bez edytora w ogóle nie ma takiego problemu! Nie wiem skąd się u Was bierze!

idek
26-11-2008, 00:22
bez jaj.. ja osobiscie kopałem w ustaiweniach i mam tak jak mówisz...

wszytsko było dobrze, wiec wiem, ze noeditor nie robi normalnie nic, ale teraz z kodu


<img style="cursor: pointer; padding:5px" align="right" src="images/M_images/printButton.png" onClick="drukuj('images/tarasy/taras1.jpg,images/tarasy/taras2.jpg,images/tarasy/taras3.jpg')" />

<img style="cursor: pointer; padding:5px" align="right" src="images/M_images/emailButton.png" onClick="wyslij('images/tarasy/taras1.jpg,images/tarasy/taras2.jpg,images/tarasy/taras3.jpg')" />

po zastosowaniu otzrymuje:


<img style="cursor: pointer; padding:5px" align="right" src="images/M_images/printButton.png" />

<img style="cursor: pointer; padding:5px" align="right" src="images/M_images/emailButton.png" />

spróbuje nadpisac pliki z no-editor..

zwiastun
26-11-2008, 00:28
Idek, sory - czytaty jesteś chyba, bo że pisaty to widać.
W wątku mowa o & i &amp;, których w przytoczonym przez Ciebie kodzie jako żywo ani śladu (ani w tym "dobrym", ani w tym "złym"). A coś sobie i gdzie jeszcze poustawiał, to ja nie wiem - może masz atrybuty zdarzeń na czarnej liście. W każdym bądź razie to inny problem.
(na marginesie: w xhtml onClick i podobne z wielką literą wewnątrz są niedozwolone!)

PS, po sprawdzeniu: Wrzuciłem u siebie w trybie źródła twoje przykłady i otrzymałem po zapisaniu:


<img onclick="return true;drukuj('images/tarasy/taras1.jpg,images/tarasy/taras2.jpg,images/tarasy/taras3.jpg')" src="http://localhost/joomla157c/images/M_images/printButton.png" style="padding: 5px; cursor: pointer;" align="right">

<img onclick="return true;wyslij('images/tarasy/taras1.jpg,images/tarasy/taras2.jpg,images/tarasy/taras3.jpg')" src="http://localhost/joomla157c/images/M_images/emailButton.png" style="padding: 5px; cursor: pointer;" align="right">
Taki zmyslny, że nawet te literki poprawił!

idek
26-11-2008, 00:32
wiem wiem Zwiastun, przepraszam za bałagan... załozyłem swój temat, ale nikt nie pomógł wiec sie podłaczylem tutaj.. nadpisanie edytorów nie pomogło, pozostaje wiec ręczne wklepywanie do bazy... :P

sorki goliat (http://forum.joomla.pl/member.php?u=16220) za zawracanie gitary w Twoim temacie.. :|

goliat
26-11-2008, 01:47
Witam Was
Zwiastun, mam WIELKI szacunek dla Ciebie i dla tego co robisz na tym forum.
Ja zaznaczyłem że wątek tyczy się edytora No-Editor, gdzie nic mi NIE wiadomo o opcjach


"Nie czyść encji" (Do not clean HTML entities.) zaznaczą Tak, a "Czyść podczas zapisu" [Code cleanup on save] ustawią na Nigdy albo Tylko front?


A jeśli chodzi o to :


W Bez edytora w ogóle nie ma takiego problemu! Nie wiem skąd się u Was bierze!

to własnie jestem po świeżej instalacji gołej joomli 1.5.8 gdzie problem z &amp dalej istnieje w No-Editor of course.
Jak trzeba będzie to moge tą joomle wystawić publicznie :)
Nie sądzę że to wina systemu operacyjnego(u mnie FreeBSD), czy Apacha(2.0) czy PHP(ver 4 i ver5 tested). Pozostaje mi Joomla.
Może Ty jako tak doświadczony użytkownik możesz wskazać jakiś plik, funkcje PHP czy coś co przybliży mnie do rozwiązania tego małego ale upierdliwego problemu ??
Dzieki.

zwiastun
26-11-2008, 02:12
Powtarzam, jeśli to nie wynika jasno z mojej wypowiedzi: Edytor zwykły (Bez edytora) nie stwarza w ogóle takiego problemu. Jutro po południu możesz na pw dać jakieś dane do konta, spróbuję to obejrzeć.

goliat
26-11-2008, 03:08
Info masz na Priv'e

GoodLuck

idek
26-11-2008, 12:21
goliat.... zerknij na mój ostatni post tutaj, bo znalazłem chyba rozwiazanie na Twój problem :) ale głowy nie dam...

http://forum.joomla.pl/showthread.php?t=23280

goliat
26-11-2008, 14:04
W końcu znalazło się ROZWIĄZANIE, które jest opisane w linku podanym przez IDKA

Dzięki wielkie Wam OBU !!!!!!

PS
Czy na tym forum jest jakiś proceder markowania roziązanych postówy ?, np przez dodanie do tytułu [SOLVED] ?,
czy nie jest to potrzebne z racji 99% rozwiązywalności problemów ? :)
Czekam na info, ewentualnie male HowTO
Thx

idek
26-11-2008, 15:54
no własnie nie ma nic takiego, a chyba by sie przydało.. ja sam jeśli założyłem jakiś temat i sie problem rozwiązał wpisuje coś w stylu "[rozwiązane]"... wiec równie dobrze mozesz napisac "solved", czy coś inego, co by wskazywało na, to że problem jest wyjaśniony

a swoją drogą własnie przydałoby się jakos umówić grupowo, wtedy by się łątwiej przesukiwało posty z problemami :)

no i ciesze sie, że Ci mopomogło moje rozwiązanie, również dziekuje za pomoc, bo działalismy niejako razem... ja napędzałem, a Ty kopałes w kodzie :D