PDA

Zobacz pełną wersję : Własny komponent w 5 minut



pawelSafiStudio
05-12-2010, 00:17
Witam wszystkich,

ostatnio po głowie chodził mi dość ciekawy pomysł. Chciałbym zbudować mini platformę dla developerów Joomla!, która ułatwiałaby pracę nad tworzeniem komponentów. W wolnych chwilach dziobałem kod komponentu.

Zainicjowałem już jego podstawę, którą załączam w poście.

Co umożliwia obecny stan prac ?

- inicjowanie komponentu (podstawowe katalogi plus pliki)
- możliwość dodawania nowych widoków do zainicjowanych komponentów

Jak to działa ?


Instalujemy komponent w PA Joomla!
Wybieramy z menu komponentów ssJoomlaDeveloper
Dodajemy nowy komponent gdzie poszczególne pola w formularzu oznaczają:

Nazwa komponentu -> (com_{nazwa_komponentu}). Ponieważ nie zastosowałem jeszcze walidacji formularza informacja - w tym polu nie można używać polskich znaków oraz spacji.
Tytuł komponentu -> Tytuł jaki pojawi się w menu komponentów (PA->Komponenty->Tytuł komponentu)
Uwzględnij w menu PA -> Jeśli tak, dodatkowo zostanie dodany subelement menu dla komponentu z akcją display (PA->Komponenty->Tytuł komponentu->Tytuł menu)
Tytuł menu PA -> Tytuł subelementu menu z punktu wyżej


Nowo dodany komponent pojawi się na liście oraz w menu komponentów w PA. Z listy komponentów można przejść do listy widoków (Pokaż widoki)
Dodając nowy widok zostaniesz poproszony o podanie następujących danych

Nazwa widoku -> nazwa widoku (komponentView{Nazwa_Widoku}). Tak samo jak w przypadku nazwy komponentu, należy uważać na wprowadzane dane z powodu brak walidacji formularza
Dodaj model -> jeśli TAK, skrypt doda plik modelu dla tworzonego widoku
Dodaj schemat DB -> jeśli TAK, skrypt doda plik tabeli dla tworzonego widoku
Uwzględnij w menu PA -> Jeśli tak, dodatkowo zostanie dodany subelement menu dla komponentu z akcją podaną w polu Akcja Linku (PA->Komponenty->Tytuł komponentu->Tytuł menu)
Tytuł menu PA -> Tytuł subelementu menu z punktu wyżej
Akcja linku -> Akcja dla subelementu menu task={akcja_linku}



Skrypt na razie tworzy sam schemat komponentu tylko dla strony back end. Nie jest jeszcze także dodana funkcja budowania pliku xml.

Jak widać komponent jest dopiero w fazie raczkowania. Chciałbym jednak podzielić się z Wami moim pomysłem i liczę na jakieś dodatkowe sugestie.

Chciałbym rozwinąć dodatkowo komponent między innymi o edytor plików php oraz możliwość dodawania tabel do bazy danych. Co myślicie o takim rozwiązaniu ?

PS. Z góry przepraszam za błędy w komponencie. Jeszcze wszystkiego nie udało mi się sprawdzić.

mjmartino
05-12-2010, 10:27
Witam
Mam pytanie co końcowy użytkownik będzie mógł stworzyć/zbudować z Twojego komponentu ?
Na razie jest sam schemat jaką funkcjonalność chcesz uzyskać ostatecznie ?
Jak dla mnie pomysł wydaje się bardzo interesujący i ciekawy.
Będę śledził rozwój :)
Pozdrawiam

PeFik
05-12-2010, 10:41
może warto podpatrzeć co ma za rozwiązania "konkurencja", chociażby na JED w dziale development czy jakoś tak. Poza tym zauważyłem że ostatnio większość firm opiera swoje komponenty na Nooku Framework - co ułatwia pracę (http://www.nooku.org/).
Może warto iść w tym kierunku. Poza tym PLUSIK

pawelSafiStudio
05-12-2010, 11:43
@mjmartino,
W efekcie końcowym chciałbym uzyskać komponent, który będzie umożliwiał dodawanie komponentów, modelów, widoków oraz szablonów do widoków. Ponadto chciałbym rozwinąć go o tworzenie bazy danych do komponentu w locie (wraz z automatycznym tworzeniem plików schematu - tables). Zastanawiam się czy nie dodać jeszcze możliwości umieszczania w plikach najczęściej używanych funkcji typu -> zapisz, edytuj, usuń itp. Ale tutaj musiałbym tworzone pliki podzielić na dwie części -> deweloperską oraz systemową, tak żeby skrypt dodawał funkcję do tworzonych przez siebie schematów, a wersja deweloperska była dziedziczona od wersji systemowej. Ogólny zamysł jest taki, aby wspomóc tworzenie komponentu. Jeszcze długa praca przede mną, ale chciałem poznać opinie innych. Zawsze lepiej mieć rzut kilku osób. Wtedy lepiej można dostosować funkcjonalność.

@PeFik, dzięki za informacje. Szczerze mówiąc o Nooku Framework nie słyszałem, ale chętnie się z tym zapoznam. Na JED przeglądałem kilka propozycji. Ale tam spotkałem przeważnie budowanie schematu komponentu na odrębnych stronach www np: http://www.joomlafreak.be/joomla_component_code_generator/create.html. Minusem tego jest fakt, ze jak chcemy dodać jeden widok albo plik to albo dodajemy go już własnoręcznie, albo musimy generować nową paczkę. Moim założeniem jest ułatwić pracę w locie. Mam potrzebę dodać plik, wybieram schemat, klikam i jest :)

Dzięki za opinie.