PDA

Zobacz pełną wersję : Zewnetrzna aplkacja kontrolujaca moduł - problem z kodowaniem



blue_17
06-07-2011, 15:26
Witam jakiś czas temu założyłem ten temat

http://forum.joomla.pl/showthread.php?50462-W%C5%82%C4%85cznie-modu%C5%82u-poprzez-FTP

Przypomnę co chciałem uzyskać

Sterowanie tym modułem

http://extensions.joomla.org/extensions/style-a-design/popups-a-iframes/15039

tzn włączanie wyłączenie oraz zmianę jego treści wszystkie informacje znajdują się w tabeli jom_modules

Włączanie oraz wyłączenie realizuje poprzez zmianę parametru publisched z rekordu modułu zmieniam na 1 lub 0

Do tego momentu wszystko jest dobrze problem zaczyna się wtedy kiedy zmieniam zawartość bloba w którym są zapisane parametry modułu oraz jego treść

Na początku jeśli ręcznie w joomli wpisałem w treść z polskim ogonkami miałem problem z pobraniem polskich znaków po zmianie kodowania w mom programie na UTF8 wszystko zaczęło wyświetlać się dobrze

Niestety nie mogę zapisać do bazy polskich znaków a właściwie do bloba zaczynają się krzaczki pytajniki

Ciekawe jest to ze z poziomu joomli znaki normalnie się zapisują i później wyświetlają

Zamieszczam kawałek kodu z zapytaniem zmieniającym wartość blooba czyli zmieniającą zawartość komunikatu

SQLQuery1.SQL.Text := 'UPDATE jos_modules SET params = ' + #39 +
komunikat + RichMemo1.Text + #39 + ' WHERE module = ' + #39 +
'mod_stickynote' + #39;

Tak wygląda odczytana dana po zapsie do bazy danych MySQL

4159

Pozdrawiam

Mam nadzieję że będzie mi mógł ktoś pomóc :)

moje
06-07-2011, 15:42
Jeszcze tylko napisz w sposób jasny, czytelny i wyczerpujący co chcesz zrobić.

blue_17
06-07-2011, 16:01
Zapisać do bloba polskie znaki diakrytyczne a dokładnie do pola w bazie danych

bo z odczytem nie mam problemów i poprawnie zapisują się do bay z poziomu joomli ale z poziomu mojej aplikacji po zapisie mam pytajniki w polu.

Pozdrawiam

moje
06-07-2011, 16:12
Nie o to pytam, tylko co ma na celu to zewnętrzne sterowanie, do czego jest Ci to potrzebne.

blue_17
06-07-2011, 16:19
Kontrolowanie poprzez GSM zawartości ogłoszenia i stanu wył/zał na stronie za pomocą sms-a a przy okazji sterowanie bez wchodzenia na zaplecze

moje
06-07-2011, 16:31
To korzystasz z odpowiedniego serwa/oprogramowania lub odpowiedniej usługi, co pozwoli Ci na normalną obsługę poprzez odpowiednie API, nie robi się tego w ten sposób, bo nie ma to sensu.

blue_17
06-07-2011, 16:40
Czyli zrobiłem coś bezsensownego bo już zostało mi tylko sprzgnac z telefonem poprzez blootoh :zagubiony:

Rozwianie było proste znalazłem to na stronie z dokumentacją MySQL-a

Wystarczy zmienić kodowanie z utf8 na latin1 i wszystko śmiga :D

A czemu nie mogę sobie napisać aplikacji i postawić na małym terminalu z linuxem podpiętym do sieci :?:

A i stworzyłem to w Delphi to info dla tych którzy śmieją się z tego języka :P

moje
06-07-2011, 16:43
A jaka masz pewność ciągłej bezawaryjnej pracy?
Musiałbyś mieś serwer non stop włączony i podłączony do sieci oraz non stop włączony telefon w zasięgu bluetooth'a.

Co do zmiany kodowania, to teraz tylko czekaj, aż coś Ci się wykrzaczy.

palyga007
06-07-2011, 16:47
@moje
Kolega przyszedł z określonym pytaniem, rozważanie na temat sensowności pisania takiej aplikacji nie przyczyniają się do rozwiązania problemu. :)
Może napisał to w celach edukacyjnych, może komercyjnych, nie ważne. Szuka konkretnej informacji, bez rozważań filozoficznych. :)

blue_17
06-07-2011, 16:59
A jaka masz pewność ciągłej bezawaryjnej pracy?

Dlatego to stawiam na terminalu z linuxem bo to może długo chodzić jeśli chodzi o system, jeśli chodzi o aplikację to na razie jest to dla moich przyjaciół więc zobaczymy ale od strony aplikacji myślę że prawie wszystkie wyjątki przewidziałem


Musiałbyś mieś serwer non stop włączony i podłączony do sieci oraz non stop włączony telefon w zasięgu bluetooth'a.

Niema problemu terminal pobiera z 20W to może chodzić 24h na dobę co do telefonu to będzie jakoś przyczepiony do terminala a może nawet wewnątrz niego jeszcze nie wiem


Co do zmiany kodowania, to teraz tylko czekaj, aż coś Ci się wykrzaczy

Zobaczę jak mówię wszystko zobaczę jak skończę a jak mi się wykrzaczy to nic bo w bazie mam praw tylko do jednej tabeli

Początkowo miało to być zrobione na mikrokontrolerze ale sam moduł Ethernet-owy kosztuje 70zł a używany terminal tyle samo więc wybór był prosty a w dodatku mam od razu system jaki chce

To chyba wszystko :D

Ale mogę odpowiedzieć na pytania jeśli jakieś są jeszcze

4162

danieladrianka
06-07-2011, 17:42
ja mam pytanie ;)
to projekt komercyjny?

jeśli nie to można prosić nieco więcej info na temat działania i zastosowania?
jeśli nie publicznie to na PW
rzadko spotykamy rozwiązania dla joomla! inne niż "standartowe" dodatki ;)

blue_17
06-07-2011, 18:21
Chyba nie komercyjna ale zobaczę jak się sprawdzi

Będzie to system powiadamiana

Programik będzie składał się z 2 części

1 to "ręczne" wysyłanie wiadomości przez użytkownika.

2. To obsługa telefonu komórkowego dlatego przez blootoh bo nie mogę dostać kabelka do telefonu a mam dokumentacje komend AT do niego

Treść esemesa będzie analizowana wyświetlana na stronie i SMS będzie wysyłany do grupy lub wszystkich użytkowników przez ten sam telefon który przyjął wiadomość

I to chyba wszystko

Wszystko postawione na mikro komputerze na systemie linux lub windows zobaczę podczas testów a aplikacje mam miedzy platformową wiec nie powinno być problemów

moje
06-07-2011, 18:51
Wywarzanie otwartych drzwi.

blue_17
06-07-2011, 19:09
Niestety a maiło być tak pięknie moja aplikacja zapisuje i odczytuje faktycznie ale niestety moduł na stronie krzaczki wyświetla czyli to coś innego jeszcze

Jola
07-07-2011, 01:46
Witam,
myślę, że problem jest jak zwykle banalny i tak jak napisałeś w tytule dotyczy dokładnie kodowania.
Zasady są proste:


kodowanie bazy - utf-8
kodowanie tabel - utf-8
kodowanie kolumn typu tekstowego tabel - utf-8
metoda porównywanie napisów dla bazy - utf-8
metoda porównywania napisów dla kolumn tabel - utf-8
jeśli to zewnętrzna aplikacja warto użyć jako pierwszego zapytania: set names 'utf-8';

blue_17
07-07-2011, 16:09
Dzięki kolego jesteś wielki

Operowałam na blobie ponieważ treść była w blobe, trzeba było tak samo zrobić jak podczas wczytania np. jpg-ów (operacje na strumieniach i takie tam :) )

Okazało się że należy przed zapisem należy użyć zapytania

set names utf8

i trzeba go używać za każdym razem

a potem można robić co się chce :D

4169

Jeszcze chciałbym się dowiedzieć Jak wygląda to zapytania ze zamiana kodowania dla wybranej tabeli żeby było tak "profesjonalnie" :D

Gorąco pozdrawiam i dziękuje wszystkim za wypowiedzi

Jola
07-07-2011, 16:42
Jeśli napiszesz własną funkcję do połączenia z bazą, w której użyjesz set names - będzie Ci łatwiej.

PS
Imię Jola wśród "kolegów" jest raczej rzadkością :):lol: