PDA

Zobacz pełną wersję : Jedna joomla - 4 domeny + wspólna baza produktów



vego007
19-09-2008, 16:31
Witam

Do admina: Nie wiedziałem za bardzo do którego działu wrzucić ten temat dlatego jeśli nie jest on odpowiedni prosze o przeniesienie.

Otrzymałem właśnie od szefa zlecenie, aby stworzyć dla czterech oddziałów witryny oparte na joomli 1.5.7. Będą to cztery domeny na tym samym serwerze. Po wybraniu przykładowej domeny np a.home.pl mają się pojawić dane charakterystyczne dla oddziału 'a' (np. nowości, kontakt) + dane dostępne dla wszystkich domen (np. baza produktów). Dodatkowo poszczególne oddziały nie mogłyby edytować danych charakterystycznych innych oddziałów, ale wszystkie mogą dowolnie edytować dane, które są wspólne dla wszystkich domen. Dodatkowo dochodzą różne templatki dla poszczególnych oddziałów.
Jeśli ma ktoś pomysł jak to zrobić, będę wdzięczny za informacje.

vego007
21-09-2008, 15:20
Odświeżam temat. Może ktoś spotkał się z takim problemem albo ma chociaż pomysł jak takie coś wykonać?

Jola
22-09-2008, 04:02
Witam,
sprawa templatek, co prawda dla subdomen była już poruszana w tym wątku http://www.forum.joomla.pl/showthread.php?t=15349.
Co do reszty - ja bym zrobiła 4 osobne bazy danych, z których korzysta jedna Joomla. To, z którą się łączy byłoby zależne od domeny wywołującej połączenie (analogiczny kod do wyboru templatek).
Warunek trzeba dodać tam, gdzie tworzona jest zmienna globalna $database (nie wiem jak jest w wersji 1.5.7 - ale w 1.0.... plik includes/joomla.php).

if(.....)
$database = new database( $mosConfig_host, $mosConfig_user, $mosConfig_password, $mosConfig_db, $mosConfig_dbprefix );
if(...)
$database = new database( $mosConfig_host, $mosConfig_user1, $mosConfig_password1, $mosConfig_db1, $mosConfig_dbprefix1 );
if(...)
$database = new database( $mosConfig_host, $mosConfig_user2, $mosConfig_password2, $mosConfig_db2, $mosConfig_dbprefix2 );
if(...)
$database = new database( $mosConfig_host, $mosConfig_user3, $mosConfig_password3, $mosConfig_db3, $mosConfig_dbprefix3 );
Zakładam, że do każdej bazy inny user, hasło i prefix.
Aby to zadziałało w pliku configuration.php trzeba dopisać $mosConfig_user1 (2 i 3), $mosConfig_password1 (2 i 3), $mosConfig_db1 (2 i 3), $mosConfig_dbprefix1 (2 i 3).
Mam nadzieję, że rozumiesz ideę.
Pozdrawiam

vego007
22-09-2008, 07:31
Wydaje mi się, że będzie tylko jedna baza danych. Różne tylko prefiksy do tabel. Częściowo załatwiłoby mój problem. Pozostaje jeszcze dla mnie jak narazie największy z problemów, czyli wspólna baza produktów. Zastanawiam się jak to zrobić, żeby się nie narobić :D Jak będę miał od szefa więcej informacji to umieszcze je tutaj a póki co dzięki za zainteresowanie

vego007
23-09-2008, 14:34
Udało mi się postawić joomlę, podpiąć 4 domeny (4 różne przedrostki) i teraz mam problem z instalacją komponentów. Jeśli zainstaluję komponent na jednej z domen to automatycznie blokuję instalacje tego komponentu na innych domenach. Czy istnieje jakiś komponent do joomli (najlepiej 1.5.x), który pozwalałby na instalację komponentów na wszystkich domenach?

crazyluki
23-09-2008, 14:43
blokuje instalacja - powiem tak:
pewnie dlatego się blokuje że są już pliki, więc:
1. przed kolejną instalacją usuwasz pliki komponentu ( wpisy w bazie wciąż zostają)
2. psujesz (poprawiasz) instalator komponentu, tak, by nie instalował żadnych plików

vego007
23-09-2008, 16:20
Tak powodem tego są istniejące już pliki. Myślałem, żeby zrobić tak jak napisałeś w 2. punkcie tylko co będzie jeśli ktoś będzie próbował zainstalować nowszą wersję jakiegoś komponentu, który będzie się różnił strukturą katalogów oraz strukturą bazy danych?
Nie miałem jeszcze okazji porównywać różnych wersji tego samego komponentu i dlatego trochę się boję podjąć ten krok. Może ktoś mi powie czy takie zagrożenie istnieje i jeśli tak to czy jest jakiś patent aby to zminimalizować.
Dodatkowo jeśli pozostałby mi wybór między punktem 1. a punktem 2. który byłby lepszym rozwiązaniem.

Z góry dziękuję za wszelką pomoc

vego007
24-09-2008, 16:45
Odświeżam temat. Jak już pisałem podpiąłem 4 domeny i dla każdej jest w bazie inny przedrostek. I w tym momencie się pogubiłem. Muszę zrobić ten katalog produktów i nie mam pojęcia jak się do tego zabrać. Problem jest z tym, że w założeniach projektu dane do katalogu można dodawać tylko przez jedną z domen (pozostałe domeny nie mogą widzieć tego komponentu po stronie admina) ale wyświetlanie ma być na każdej z domen. Problemem jest też wybór odpowiedniego komponentu do katalogu produktów ale o tym jest inny wątek.
Nie wiem nawet czy dobrze postąpiłem robiąc wszystko na jednej joomli czy może lepiej byłoby założyć dla każdej domeny inny katalog.

Narazie jedyne rozwiązanie jakie mi przyszło do głowy to zainstalować sobie jakiś komponent (o ile go znajdę) i ręcznie zmienić w nim prefiksy z #__ na np. jos_ i dodatkowo usunąć wpisy w bazie danych dotyczących komponentu po stronie administratora w tabelach dla domen innych niż główna. Co sądzicie o takim rozwiązaniu?

hesar
24-09-2008, 17:36
wczytalem sie w to co zrobile i prawde mowiac problem wyglada na troszeczke skomplikowany
ja zabralbym bym sie do tego tak
cztery instalacje joomli w roznych folderach na jednej badz 4 bazach (to drugie jest mniej istotne tylko trzeba pamietac o przedrostkach)
instalujesz dla kazdego oddzialu wlasciwe komponenty po czym piszesz skrypt ktory skopiuje dane z odpowiednich tabel do wlasciwych tabel dla wspolnych danych
po zaktualizowaniu wspolnych danych odpalasz skrypt ktory kopiuje dane (bo tylko zawartosc bazy jest rozna)
mozna ten skrypt zrobic na zasadzie jakiegos modulu administracyjnego badz jakiegokolwiek pliku php i linku do niego
jesli nie bedziesz mial wielu aktualizacji w jednym momencie na roznych bazach to da sie tak zrobic
ew. po zrobieniu tych czterech witryn zmodyfikowac skrypty odpowiedzialne za 'katalog produktow' zaby wszystkie korzystaly z jednej tableki (ta druga wersja bardziej profesjonalna ale pewnikiem bardziej czasochlonna)
to takie moje przemyslenia ktore nikoniecznie musza sie sprawdzic w kazdym razie na pewno lepsze 4 instalki niz jedna :)

kurtz
24-09-2008, 18:06
może to

http://www.idtsa.com/

vego007
24-09-2008, 19:22
Narazie zrobiłem to tak jak opisałem wyżej czyli jeden komponent, produkty na jednym przedrostku. Zastosowałem komponent jooblog. Do wyświetlania kategorii oraz produktów napisałem sobie moduł i jak narazie sprawdza się. Teraz muszę tylko czekać do jutra na reakcję szefa :D

Jeśli chodzi o link http://www.idtsa.com/ to vm raczej odpada. Podobno przerost formy nad treścią i ma być coś prostrzego.

Wg mnie lepiej jest zainstalować jedną joomlę niż 4. Po pierwsze oszczędność miejsca na serwerze a przeróbki jakiegoś komponentu są automatycznie tworzone dla wszystkich domen i nie trzeba bawić się w kopiowanie. Do tego dochodzi jeszcze kwestia backupów. Wole robić jednego niż 4.

To jest tylko mój punkt widzenia i jeśli są jakieś duże zalety stosowania oddzielnych instalek to z chęcią o nich poczytam i może jeszcze zmienie zdanie :)

hesar
24-09-2008, 19:52
jedna zaleta posiadania kilku instalek to latwe dostosowanie kazdej instalacji do swoich potrzeb bez specjalnego cudowania z bazami danych, latwo dopasowanie templatki bez przelaczania w zaleznosci od subdomeny i co nie mniej istotne, calkowity rozdzial danych (modyfikowanych zapewne na kazdej instalacji) przez innych ludzi
wady sa takie jak napisales ale tak naprawde ile razy modyfikujesz pliki komponentow?
jesli idzie o vm to osobiscie stosuje na kilku serwisach, zarowno jako stricte sklep jak i katalog (wylaczony modul koszyka)
rzeczywiscie jest dosyc skomplikowany i ropzbudowany i dosyc trudny w modyfikacjach wygladu ale za to latwy w obsludze od strony administratora (dosyc intuicyjny)
w kazdym razie jak to sie mowi o gustach sie nie dyskutuje i jesli tylko sprawdza ci sie twoje rozwiazanie to super :)
powodzenia i pozdrowienia :)
hesar

edit: a'propos backupow i miejsca na serwerze to to drugie nie jest we wspolczesnych hostingach juz problemem a backupy i tak trzeba robic dla calego hostingu co wymaga tylu samo klikniec dla 10 domen co dla 1 :)

vego007
24-09-2008, 20:37
jedna zaleta posiadania kilku instalek to latwe dostosowanie kazdej instalacji do swoich potrzeb bez specjalnego cudowania z bazami danych, latwo dopasowanie templatki bez przelaczania w zaleznosci od subdomeny i co nie mniej istotne, calkowity rozdzial danych (modyfikowanych zapewne na kazdej instalacji) przez innych ludzi
wady sa takie jak napisales ale tak naprawde ile razy modyfikujesz pliki komponentow?

Przy zastosowaniu przedrostków nie ma problemu z templatkami, gdyż dane te zapisują się w bazie. To samo z instalacją komponentów (wystarczy tylko wyłączyć sprawdzanie istniejącego katalogu (w sumie to nie wiem czy mi z tego powodu w przyszłości jakieś krzaczki nie wystąpią) ale mam czas i może inaczej to rozegram. Dane również są całkowicie niezależne dzięki zastosowaniu przedrostków.
Co do plików komponentów to dość często mi się zdarza coś przerabiać.
Poza tym rozdzielenie pomiędzy domenami to modyfikacja tylko pliku configuration.php więc i to nie sprawia zbyt dużo trudności :) Ale jak już napisałeś wszystko jest kwestią gustu i ja również tak uważam


rzeczywiscie jest dosyc skomplikowany i ropzbudowany i dosyc trudny w modyfikacjach wygladu ale za to latwy w obsludze od strony administratora (dosyc intuicyjny)

Miałem już "przyjemność" stosowania virtuemart. Od strony kodu jak dla mnie wygląda fatalnie. Obsługa na +. Jednak wymogi projektu który wykonuję skreśliły mi go na starcie (na początku uważałem go za jedyne sensowne rozwiązanie) tak więc musiałem kombinować z czymś innym.

Tak czy inaczej dzięki za zainteresowanie tematem i również pozdrawiam.