Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Edytor tekstowy z wyjściem do bazy danych
Forum PHP.pl > Inne > Hydepark
Indeo
Zrobiłem sobie taki ciekawy eksperyment obiektowy. Od jakiegoś czasu prubuję wdrożyć w życie technikę MVC (model view controller) posiłkując się knigami o JAVIE. Na domiar tego zrobilem ciekawą rzecz - a mianowicie zamiast ginąć w stosach plików wszystkie kody umieściłem w bazie danych. Po drugie aplikacja jest mocno zobiektywizowana tzn. w bazie są jedynie definicje klas obiektów. W jednej tabeli klasy, w drugiej metody w trzeciej własności.

Całość uruchamia plik index.php, potem już wszystko leci z bazy, obiekt za obiektem. Muszę przyznać że to świetna zabawa smile.gif. Oczywiście do pisania aplikacji potrzebny był interface do bazy żeby można było edytować te wszystkie klasy. Toteż sobie takie coś napisałem. Klikasz -> 'nowa klasa' i wyskakuje nowa klasa, potem dodajesz metody, własności itd. Bajera. Można potem sobie grupowac klasy, filtrować itd. ale na razie to tylko prowizorka. Jedyny problem polega na tym, że edytorem jest zwykła TEXTAREA. I bania. Kolorków nie ma, nawet tabulator nie działa.

Zastanawiałem się nad napisaniem programu w VB do edycji z wykolorowywaniem z możliwością pobierania i zapisywania do bazy edytowanych treści, ale moze ktoś z was się z takim edytorem już spotkał. Po co robić coś co ktoś już zrobił i to lepiej?
byther
HTMLArea No i polecam resztę projektów autora.
Indeo
Nie potrzebuje narządzia do generowania kodu HTML ale narzędzie do kolorowania składni języka w czasie pisania z mozliwością pobierania danych i zapisywania w bazie danych a nie w pliku. Chodzi o edytor który będzie pokazywał kod php dosłownie tak jak tu ale w polu edycji:

  1. <?php
  2.  
  3. function new_kontrahent_controller(&$aplikacja,$sendvars,&$new_kontrahent_model){
  4. $this->aplikacja=&$aplikacja;
  5. $this->sendvars=$sendvars;
  6. $this->new_kontrahent_model=&$new_kontrahent_model;
  7. $this->new_kontrahent_model->sendvars=$this->sendvars;
  8.  
  9. switch($this->sendvars[&#092;"action\"]){
  10. case &#092;"new_kontrahent\":
  11. $this->show_new_kontrahent_form();
  12. break;
  13. case &#092;"new_kontrahent_verify\":
  14. $this->new_kontrahent_model->new_kontrahent_verify();
  15. $this->show_new_kontrahent_verification();
  16. break;
  17.  
  18. case &#092;"new_kontrahent_add\":
  19. //echo \"<h1>zapis</h1>\";
  20. $this->new_kontrahent_model->add();
  21. $this->show_added();
  22. break;
  23. default;
  24. }
  25.  
  26. }
  27.  
  28. ?>
kicaj
Wiec tak, jesli dobrze zrozumialem.
Musialbys zrobic cos na wzor HTMLarea ale duuuzo mniej zaawansowany i poczytaj o kolorowaniu skladni php.

Tworzysz formularz (textarea lub iframe) w nim bedzie zawartosc kodu (poczytaj o WYSIWYG na forum lub gdziekolwiek).
byther
Podałem Ci przykład kodu javascript, który ma część rzeczy rozwiązaną. Nic, tylko dostosowywać do swoich potrzeb! aarambo.gif Podałem ten skrypt, bo innego nie znam lub nie znalazłem.
orson
witam ...

napisz sobie serwer ftp w php ... tylko odwoluj sie do bazy danych a nie do plikow ... wtedy co 2 edytor pozwala na edycje plikow po ftp ... biggrin.gif i bedzie gut ... pozatym nie uzaleznisz sie od 1 edytora ... gdzies bylo na forum o serwerach ... nawet chyba byl dzialajacy ...

pozdrawiam
Indeo
No to jest ciekawe smile.gif
maggot
Zakladajac, ze masz linuksa i mysql'a mozesz czegos takiego sprobowac

edytuj:
Kod
#!/bin/bash

if [ $# -lt 1 ]
then
        echo "podaj id pola z bazy danych"
    exit
fi
echo "SELECT pole FROM baza.tabela WHERE id = $1" |mysql -s -h localhost -uUSER -pHASLO > "tmp/$1"
vim "tmp/$1"


zapisz:
Kod
#!/bin/bash

if [ $# -lt 1 ]
then
    exit
fi
echo "UPDATE baza.tabela SET pole = '`cat "sciezka_do_zapisz/tmp/$1"`' WHERE id = $1" |mysql -s -h localhost -uUSER -pHASLO


~/.vimrc (zapisanie w edytorze automatycznie spowoduje uaktualnienie pola w bazie)
Kod
(..)
au BufWritePost */sciezka_do_zapisz/tmp/* :!/sciezka_do_pliku_zapisz/zapisz %


Trzeba by sie jeszcze z tym troche pobawic (np. dodac zamiane ' => \' itp), ale dziala (testowalem) calkiem niezle.

A jak uzywasz windowsow, to pewnie mozna to jakos analogicznie zapisac.
rzseattle
To bardzo ciekawy temat. Obecnie trzymam szablony w bazie i rowniez chcialem przeniesc kod php do azy. Jednak juz na szablonach niedzialajacy tab i brak kolorowania tak daly mi sie we znaki ze tymczasowo zrezygnowalem z tego rozwiazania.
Na server FTP nie wpadlem. Jednak takie rozwiazanie ma wady. Przede wszystkim takie ze wtedy wychodzisz poza przegladarke angazyjac jakis progrm zewetrzny. Dla osoby piszacej system to moze nie jest zle, alew momencie kiedy oddajesz produkt klientowi to on chce miec dostep do wszystkiego z poziomu przegladarki. HTMLarea u mnie odpadl na samym poczatku poniewaz nie jest kompatybilny z opera a ostatnia wersja stabilna nie dziala nawet na mozilli. jedynym sensownym rozwiazaniem wydaje sie jakis edytorek napisany we flashu lub wlasnie w jacie - jednak jeszcze sie z takim nie spotkalem (chociaz szukalem). Wlasciwie edytor fashowy bylby idealym rozwiazaniem - poniewaz to i tak phapiec decydowal by skad pobrac i gdzie zapisac dane. Moze ktos takowy zna?

ps php =>Hydepark
orson
Cytat(rzseattle @ 2004-06-19 16:19:37)
Jednak takie rozwiazanie ma wady. Przede wszystkim takie ze wtedy wychodzisz poza przegladarke angazyjac jakis progrm zewetrzny. Dla osoby piszacej system to moze nie jest zle, alew momencie kiedy oddajesz produkt klientowi to on chce miec dostep do wszystkiego z poziomu przegladarki.

witam ...

przeciez tu nic nie bylo powiedziane o udostepnianiu klientowi exclamation.gif kodu klas i funkcji php chyba nie powinien widziec a tym bardziej edytowac ... jezeli juz bardzo chce to laczy sie przez ftp i "sciaga" sobie zawartosc serwisu .... zmieni [i penie zepsuje winksmiley.jpg] to potem robi upload i po sprawie ...
myle ze pomysl z ftp jest najelpszy bo jest niezalezny od os i mozna edytowac czymkolwiek [nawet tc+notatnik lub mc w skrajnych przypadkach ] i w miare latwo go zrobic ... mam juz szkic kodu ale czekaja mnie teraz egzaminy wiec gotowy serwerek bede mial za jakis tydzien ... powiem tylko ze chyba bedzie wersjonowanie na nim nawet biggrin.gif ...

pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.