PDA

Zobacz pełną wersję : Tworzyć własne komponenty czy modyfikować istniejące ?



hgt
01-03-2010, 17:06
Muszę rozszerzyć funkcjonalność com_user oraz com_content .. i teraz zastanawiam się czy lepiej na bazie już istniejących komponentów napisać własne i z nich korzystać olewając całkowicie te standardowe... czy lepiej zmodyfikować kod już istniejących komponentów aby nie powielać dwa razy podobnego kodu... tylko wtedy stracę możliwość łatwych update całej Joomli ? :hmm: co byście poradzili ? :)

PeFik
01-03-2010, 17:40
metodę nadpisywania szablonów - Joomla! 1.5 to potrafi, poczytaj sobie w necie. Wtedy będziesz mógł aktualizować CMS bez obaw.

Zresztą popatrz na domyślne szablony - folder HTML

hgt
01-03-2010, 18:43
dzięki za odpowiedź :) mi bardziej chodzi o rozszerzenie modeli / kontrolerów itd :) np: dodatkowe pola podczas rejestracji / zmiana routerów dla com_content / dodanie nowych pól dla wprowadzanego artykuły / dodanie zupełnie nowego widoku do com_content ( takie moje skrzyżowanie bloga z kategorii i sekcji ) itp zmiany

Robster
01-03-2010, 20:19
Czyli PeFik dobrze Ci poradził.

zwiastun
01-03-2010, 20:39
1. Istnieją rozwiązania z rozszerzoną funkcjonalnością, wiec sensowniej byłoby je najpierw pooglądać, możliwe, że jest już coś, czego szukać.
2. Funkcjonalność można wzbogacać dodatkami (plugins), niekoniecznie trzeba pisać nowy komponent. Ale to najbardziej złożona forma projektowa.
3. Jeśli masz dodawać nowe zestaw informacji, a nie idzie tego zrobić w inny sposób, należy pisać własne rozszerzenie.
4. Metoda nadpisywania szablonem może posłużyć jedynie do zmniejszania zakresu prezentowanych informacji oraz sposobu ich rozmieszczenia.

hgt
01-03-2010, 20:50
zwiastun - thx :) już pisałem rozszerzenia (pluginy) do użytkownika.. przy wyświetlaniu formularza rejestracji dodawalem za pomocą pluginu swoje pola. Następnie na zdarzeniach onBeforeStoreUser i onAfterStoreUser obsługiwałem te pola. Bardzo podobnie jak robią to panowie z k2 community. Ale nie jest to najlepsze rozwiązanie... są miejsca, które trzeba nieraz zmodyfikowac np: proces aktywacji użytkownika / 'przyjazne linki' w artykułach za pomocą routerow - przenieść id artykuły na sam koniec linku :) np: www.domena.pl/ladny-artykul_23 itp :)

Robster
01-03-2010, 23:11
4. Metoda nadpisywania szablonem może posłużyć jedynie do zmniejszania zakresu prezentowanych informacji oraz sposobu ich rozmieszczenia.
I znowu dowiedziałem się czegoś nowego.
hgt sorki za błędne informacje (o ile można to tak nazwać), byłem pewien że można to zrobić przez nadpisanie szablonu, nie zwróciłem tylko uwagi, że do tej pory obcinałem kod lub zmieniałem rozmieszczenie elementów, a nigdy nie dodawałam coś od siebie :/

hgt
01-03-2010, 23:15
Robster - spoko :) ja dalej szukam ideologicznej odpowiedzi... zmieniać czy przepisywać :zagubiony:

zwiastun
01-03-2010, 23:17
Dodać też można, ale nie do tego służy ta metoda. Dodając, zaczynasz mieszać coś, co zostało rozdzielone - logika od wyglądu.
Jeśli w bazie są jakieś dane albo miejsce na dane, to możesz te dane pobrać i wyświetlić czy też pobrać jakieś informacje od użytkownika i zapisać w bazie danych.

Przepisywać! Chyba, że po każdej aktualizacji masz zamiar poprawiać oryginalne skrypty!
"Przepisywać" - rozumiem stworzyć własne rozwiązanie (kopiując, co się da z oryginału i zmieniając to, co konieczne)

hgt
01-03-2010, 23:24
chyba też jestem za tym rozwiązaniem .. bo czeka mnie sporo przeróbek podczas budowy portalu: użytkownicy / galerie / katalogi produktów / sporo zmian w artykułach.... zanim projekt się skończy to pewnie światło dzienne ujrzy już Joomla 1.6 ( a przynajmniej w wersji beta ) :P

Robster
02-03-2010, 16:25
Dodać też można, ale nie do tego służy ta metoda. Dodając, zaczynasz mieszać coś, co zostało rozdzielone - logika od wyglądu.
Jeśli w bazie są jakieś dane albo miejsce na dane, to możesz te dane pobrać i wyświetlić czy też pobrać jakieś informacje od użytkownika i zapisać w bazie danych.

Nie wiem czy dobrze zrozumiałem. Czyli można w ten sposób dodawać nowe pola i zapisywać je w bazie danych, ale nie powinno się tego robić?

hgt a po jednej kłodzie rzuconej pod nogi możesz doczekać i wersji finalnej :)

hgt
02-03-2010, 16:35
nadpisując warstwę widoku i dodając do niej dodatkowe pole nie zapiszemy ich do bazy bo model bedzie jest bindował z post-a ale w JTable użytkownika nie będą określone dodatkowo trzeba by dodać nowe kolumny w bazie. Polecam skorzystać z rozwiązania jakie jest komponencie K2 wykorzystane ( oparte na pluginach ) lub też dodać swój controller: użytkownik w tworzonym przez siebie komponencie :)

Robster
02-03-2010, 18:09
Dzięki za info. Dla mnie jest jeszcze za wcześnie na pisanie pluginów i całej reszty, ale nie zaszkodzi dowiedzieć się paru rzeczy już teraz :D