Książka
Nawigacja
Import menu z Joomli
- Zaloguj się lub utwórz konto, by odpowiadać
- Zaloguj się lub utwórz konto, by odpowiadać
Witam
Mam do przeniesienia stronkę z Joomli na Drupal . Niestety bardzo słabo znam się na PHP, MySQL. Sądziłem, że sobie poradzę, bo:
*przeprowadziłem symulację przeniesienia na małej stronce za pomocą gotowego modułu
*PHP czy MySQL znam na tyle, że w jakieś minimalne przeróbki kodu sam potrafiłem zrobić
Okazało się, że niestety w przypadku strony, którą mam do przeniesienia coś nie poszło jak trzeba. Czy to wina jakiegoś nowego patcha do Drupala, bo Moduł z tego co pamiętam jest przeznaczony do wersji 5.7 a ja użyłem 5.16? W każdym razie moduł importu nie dodaje przypisuje Sekcji i Kategorii z Joomli do Nodów w Drupalu.
Ponieważ jest około 950 nodów do zaimportowania to ręczne ustawianie każdego jest gigantyczną stratą czasu i stresówką. Nie znam API Drupala i chcąc przerobić moduł straciłbym godziny na poznanie o co chodzi.
Teraz jak to dziubnąć? Może wy coś poradzicie a jak nie to chociaż niech mi ktoś odpowie co oznacza zapis
$id = $data->id;
bo nie czaję "->"



Jakby to kokgoś interesowało to zostawię wiadomość, że:
1- łatwiej jest to zrobić bez tego modułu
2-moduł ten ma liczne błędy i gwarantuję, żę większa strona (u mnie 9k userów, 900 nodów) nie pójdzie
3-kod, który pisałem to 'wewnętrzny kod' Dupal i aby go zrozumieć należy znać DrupalAPI.
Drupal - Projektowanie i Tworzenie Stron
Polecam Hosting pod Drupal
Okazało się, że niestety w przypadku strony, którą mam do przeniesienia coś nie poszło jak trzeba. Czy to wina jakiegoś nowego patcha do Drupala, bo Moduł z tego co pamiętam jest przeznaczony do wersji 5.7 a ja użyłem 5.16? W każdym razie moduł importu nie dodaje przypisuje Sekcji i Kategorii z Joomli do Nodów w Drupalu.
Może wystarczyłoby więc zainstalować drupala 5.7 i moduł migracji, potem przenieść stronę i dopiero na końcu upgradeować samego drupala do najbardziej aktualnej wersji? :)
--
http://siliconmind.eu | zapraszam
Nie, to moduł jest zwalony. Jak teraz zrobiłem analizę to błąd polega na przypisaniu id do vid zamiast sectionid do vid. Sytuacja ta powtarza się w dwóch tabelach node i node_revisions. Żeby było ciekawiej to obie kolumny vid mają klucz PRIMARY, więc się nie da no nich wpisać poprawnie id_słownika... Na moje stare oczy to chyba nid powinno być PRIMARY_KEY.
Poza tym słowniki nie mają automatycznie przypisanego typu zawartości. To wszystko powoduje, że mimo iż moduł dokonał importu wszystkich pozycji Content z Joomli to te około 950 wierszy nie miało przypisanego ...żadnego terminu.
Na tym etapie doszedłem do wniosku, że mogę uzupełniać terminy ręcznie (950 pozycji przy czym nie mam pojęcia która pozycja do jakiego terminu), naprawić moduł (mam zero znajomości API i prawie zero PHP więc oba możliwe sposoby odpadają) lub też wejść w MySQL (zero znajomości). Co byś wybrał?
Ja poszedłem czwartą drogę, czyli doszedłem do wniosku, że MySQL to może nie najszybsza droga, ale przynajmniej się czegoś nauczę i nie przekroczę terminu zlecenia (co już wiem, że się nie udało). Nie spodziewałem się tylko, że zamiast uczyć się tylko SQL będę musiał jeszcze studiować praktyczną strukturę bazy danych dwóch różnych CMSów. Trochę mi zeszło na jedno i drugie i trzecie, ale w końcu mogę powiedzieć, że mi się to udało.
I ty mi mówisz, że może wystarczyło zainstalować 5.7? :D
Na szczęście stało się to samo. Tylko, że teraz myślę, że import bazy z joomli do drupala przez phpmyadmin zająłby mi nie 3 dni, ale maks 3 godziny, bo wkońcu już sam nie pamiętam co do czego z czym i po co.
Reasumując problem polega na tym, że trzeba połączyć nid, vid, tid i type w kilku tabelach co w Joomli jest zapisane wszystko w jednej tabeli. Powiem tak. Po prostu Baza Danych Drupala jest tak pochrzaniona, że nie masz pojęcia.
Problem tkwi w tabeli term_node, której moduł nie wypełnił, ale żeby do tego dojść to trzeba było się nauczyć struktury bazy danych Joomli na pamięć i do tego zrozumieć pochrzanioną strukturę Drupala.
Drupal - Projektowanie i Tworzenie Stron
Polecam Hosting pod Drupal
Po prostu Baza Danych Drupala jest tak pochrzaniona, że nie masz pojęcia.
Mam pojęcie :) ale wcale taka pochrzaniona znowu nie jest. Jest w pełni poprawna i dość logiczna, choć zdarzają się moduły, gdzie logiki faktycznie trochę brakuje - nie są to chyba jednak żadne z modułów CORE.
--
http://siliconmind.eu | zapraszam
Mnie się jednak zdaje, że node i node_revisions mamy mylącą kolumnę vid, która sugeruje, że jest id_słownika, a naprawdę to nie wiem do czego jest i ma na dodatek klucz PRIMARY
Dla kogoś kto równocześnie wchodzi w MySWL i Drupal to może być pochrznione :)
Drupal - Projektowanie i Tworzenie Stron
Polecam Hosting pod Drupal
node_revisions.vid to id wersji noda, więc raczej nie dziwota, że jest to primary key w tej tabeli :) choć fakt - to ten sam skrót co przy vocabulary...
Version ID = vid = Vocabulary ID
ale pewnie to jakieś naleciałości z przeszłości, a takich rzeczy raczej potem się nie zmienia ot tak sobie, szczególnie w tak istotnych tabelach :)
Nie jest to jednak jakiś dramatyczny problem, ponieważ relacja między nodem a słownikiem raczej nie wystąpi, bo po co? :) prędzej między nodem a termem ze słownika, a ten z kolei ma klucz 'tid'. Dodaj do tego jeszcze taki detal, że do niedawna poszczególne wersje danego noda nie mogły mieć przypisanych różnych termów, więc nawet nie było co szukać jakichkolwiek relacji pośrednich między wersjami nodów (node_revision) a słownikami (vocabulary). Prawdę mówiąc ta funkcja ma chyba dopiero wejść (już dokładnie nie pamiętam) w nowym drupalu.
Prawdę mówiąc to jest do 'rozpykania' w kilka minut, ale czasem trafiają się cudaczne wynalazki jak np. w module simplenews, gdzie na prawdę w pierwszej chwili trudno jest zgadnąć co do czego służy.
--
http://siliconmind.eu | zapraszam
Dlatego nie wiem po co jest nid jako Primary, skoro przecież to vid jest unique? Dla początkującego to wcale nie łatw poskładać te puzzle w całość. Żeby nie było, to nie wszystko. Mamy jeszcze przecież kolumnę uid. Co to jest? Nieunikalne UniqueID? :P
Wracając do naszych rozważań na temat importu Joomli, to moduł zmienia id Joomli na nid i vid oraz zapełnia wszystkie luki w postaci id 1,2,10 na 1,2,3. Niestety, ale nie uzupełnia on w żaden sposób tabeli term_data, przez co nie umiem zaimportować catid do tid, gdyż node(nid/vid) i jos_content są zakodowane inaczej.
Drupal - Projektowanie i Tworzenie Stron
Polecam Hosting pod Drupal
nid to ID noda. w tabeli node jest on primary key, ale w tabeli node_revisions już nie. vid w tabeli 'node' jest jako uniqe bo nie może być dwóch różnych nodów z tą samą wersją. każdy node potrzebuje swojego własnego ID więc musi być nid. Relacja nid <-> vid to relacja jeden do wielu, gdzie każdy nid może mieć wiele różnych vid.
W tabeli node, vid jest ustawiony jako unique ponieważ definiuje on aktualną wersję danego noda, a ta jak pisałem jest unikalna dla każdego nid'a.
Kolumna uid to User ID. Jest zarówno w tabeli node jak i node_revisions ponieważ kto inny może być autorem wpisu głównego a kto inny autorem poprawek (czyli nowej wersji).
Jeśli zaś chcesz sobie zrobić import do tabeli taksonomii, czyli term_data, to musisz po prostu wrzucić tam kategorie z joomli (nie znam joomli więc nie wiem jak tam to jest zorganizowane). Natomiast relacja między termami (czyli inaczej kategoriami) a nodami zapisana jest w tabeli term_node, gdzie tid to ID termu, nid to ID noda, a (o ile się nie mylę) vid to ID wersji noda (czyli ID z tabeli node_revisions). Jednak z tego co zauważyłem, np. u mnie w drupalu 6.10 w tabeli term_node kolumna vid ma dokładnie te same wartości co kolumna nid.
--
http://siliconmind.eu | zapraszam
Test
Witaj,
Czy istnieje prosty sposób, aby to dobre spadek CSS menu pionowe i poziome, nie?
czy ktoś wie, czy nie ma już modułu menu CSS, dzięki pionowym menu rozwijanego?
wiwaty
-------------------------------------------
642-533 braindump - 640-721 braindump - 642-873 braindump