Pokazywanie postów oznaczonych etykietą Drupal. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą Drupal. Pokaż wszystkie posty

poniedziałek, 20 października 2014

Procedura update'u jądra Drupala (Drupal Core Update)

W związku z krytyczną poprawką w wersji 7.32 jądra Drupala występuje konieczność aktualizacji własnego portalu. Nie warto z tym zwlekać! Poniżej przedstawiam kroki procedury aktualizacji.

1. Przełączenie strony w stan przerwy technicznej

Administracja > Konfiguracja > Dla deweloperów > Przerwa techniczna

2. Backup danych

Zanim zrobimy backup możemy najpierw wyczyścić cache (Administracja > Konfiguracja > Dla deweloperów > Wydajność). Ja robię backup przed czyszczeniem cache'a i po.

2.1 Eksport całej bazy danych
2.2 Skopiowanie wszystkich plików
2.3* Dla świętego spokoju można zrobić screenshots włączonych modułów
2.4* Dla świętego spokoju można zrobić screenshot widocznych uprawnień (ls -lia) w głównym folderze plików portalu

3. Pobranie nowej wersji jądra Drupala (drupal-7.32.tar.gz)

4. Usunięcie na produkcji plików i folderów (# rm -rf folder):

Foldery:
/includes
/misc
/modules
/profiles
/scripts
/themes

Pliki:
.gitignore
.htaccess (Uwaga! Będzie trzeba przywrócić!)
authorize.php
CHANGELOG.txt
COPYRIGHT.txt
cron.php
index.php
install.php
INSTALL.txt
INSTALL.mysql.txt
INSTALL.pgsql.txt
INSTALL.sqlite.txt
LICENSE.txt
MAINTAINERS.txt
README.txt
robots.txt (Uwaga! Będzie trzeba przywrócić!)
update.php
UPGRADE.txt
web.config
xmlrpc.php

5. Zmiana nazwy dla folderu sites

#mv /drupal_files/html/sites /drupal_files/html/sites_old

6. Zawartość mojego folderu po powyższych operacjach:

ckfinder
pma
sitemap.xml
sites_old

7. Rozpakowanie pobranego pliku z najnowszą wersją rdzenia Drupala

#cp /home/drupal-7.32.tar.gz .
#tar -xzvf drupal-7.32.tar.gz

8. Przeniesienie plików o poziom wyżej
#mv drupal-x.x/* ./
#mv drupal-x.x/.htaccess ./
#mv drupal-x.x/.gitignore ./

9. Usunięcie folderu drupal-7.32

#rmdir drupal-7.32/

10. Przywrócenie folderu sites

#rm -rf sites
#mv /drupal_files/html/sites_old /drupal_files/html/sites

11. Przywrócenie plików .htaccess i robots.txt

12. Uruchomienie skryptu UPDATE

http://www.example.com/update.php

13. Sprawdzenie raportu o stanie witryny

Administracja > Raporty > Raport o stanie witryny

14. Przejdź do trybu online (wyłącz Przerwę techniczną)

Administracja > Konfiguracja > Dla deweloperów > Przerwa techniczna


Dobrze zrobić backup bazy i plików tuż przed wyłączeniem przerwy technicznej.

środa, 19 lutego 2014

Drupal 7: Rozwiązanie problemu "Nie działa wysyłanie emaili dla formularzy Webform"

Wcześniej zainstalowałem moduły "Mail System", "Mime Mail" i "HTML Mail", aby portal mógł wysyłać mejle w formacie HTML. Chodziło mi głównie o mejle Drupal Commerce, gdzie w potwierdzeniu zamówienia chciałem mieć tabelkę z produktami. Jeszcze wcześniej miałem zainstalowany moduł SMTP Authentication Support, dlatego aby to działało należało w Mail System skonfigurować nową klasę MimeMailSystem__SmtpMailSystem, którą ustawiłem dla wszystkich klas:
Site-wide default
HTML Mail module
Mime Mail module

Następnie zainstalowałem moduł Webform, aby dodać do strony swój formularz kontaktowy.
Jak się okazało formularz za nic nie chciał wysyłać mejli.

Dzięki rozwiązaniu opisanemu na forum Drupala udało się to naprawić (wpis #109):
https://drupal.org/comment/6811066#comment-6811066

Musiałem dodać nową konfigurację dla klasy Webform module i mejle zaczęły się wysyłać:


Bardzo ważne, aby pozostawić puste pole dla klucza. Początkowo podałem jaki klucz (zamazana konfiguracja) i mejle się nie wysyłały. W ustawieniach adresów e-mail w webform w sekcji "E-mail header details" wszystkie trzy podałem jako Własne (E-mail subject, E-mail from address, E-mail from name). Nie wiem, czy to miało znaczenie.
Na wszelki wypadek w głównej konfiguracji Webform settings pozostawiłem puste pole "From name". Gdzieś czytałem, że to też może być źródło problemów.



czwartek, 6 lutego 2014

Drupal Commerce: Własny atrybut zamówienia (moduł Commerce Fieldgroup Panes)

Polecam moduł rozszerzający zamówienie (order). Nowy atrybut może być używany podczas procesu zamawiania (checkout) i wykorzystywany w widokach.

Moduł Commerce Fieldgroup Panes (drupal.org):
https://drupal.org/project/commerce_fieldgroup_panes

Tutorial:
http://commerceguys.com/blog/commerce-module-tuesday-commerce-fieldgroup-panes-screencast

Drupal Commerce: tłumaczenie dla "Order total", "Billing information" i innych

Powszechny problem Drupal Commerce polega na tym, że nie można przetłumaczyć niektórych  etykiet (pól). Pół biedy jeszcze z formularzami - tutaj można napisać hak. Gorzej np. z podglądem zamówień. Po wielu dniach poszukiwać znalazłem rozwiązanie.

Najpierw natknąłem się na wątek:
http://www.drupalcommerce.org/discussions/2730/how-translate-order-total-checkout

Który doprowadził mnie do satysfakcjonującego rozwiązania:
https://drupal.org/node/1451132#comment-5984944

Błąd podczas update'u Drupala (Failed: DatabaseSchemaObjectExistsException)

Podczas aktualizacji Drupala (update.php) spotkałem się z błędem:
 
The following updates returned messages

dblog module

Update #7002
Failed: DatabaseSchemaObjectExistsException:
Nie mogłem utworzyć indeksu <em class="placeholder">severity</em> dla tabeli <em class="placeholder">watchdog</em>:
indeks już istnieje. w DatabaseSchema_mysql->addIndex() (linia 437 z /var/www/html/includes/database/mysql/schema.inc).


Na szczęście znalazłem prosty sposób na naprawienie tego błędu. Oto procedura, którą znalazłem w Internecie i która pomogła

The watchdog table is created by the optional core dblog module's dblog.install file. If the watchdog table becomes corrupted and cannot be repaired with phpMyAdmin or MySQL's command line utilities (it happens) you can easily recreate the watchdog table by cycling installation of the dblog module, as follows:
1) put site in offline mode (admin/settings/site-maintenance)
2) disable the dblog module (admin/build/modules)
3) uninstall the dblog module (admin/build/modules/uninstall)
4) re-enable the dblog module (admin/build/modules)
5) run /update.php to check for errors, and
6) put site in on-line mode (admin/settings/site-maintenance).
If desired, use phpMyAdmin or MySQL command line utilities to verify the watchdog table has been recreated.

środa, 29 stycznia 2014

Auto-uzupełniany filtr dla widoku

Dla widoków (Views) można tworzyć filtry, które będą pokazywane użytkownikom. Robi się to w sekcji widoku Filter Criteria:

Aby taki filtr stał się widoczny należy zaznaczyć checkbox "Expose this filters to visitors, to allow them to change it". Warto również zainstalować dodatkowy moduł Views Autocomplete Filters (zobacz tutorial). Dzięki niemu pole filtra będzie podpowiadać użytkownikom, co mogą wpisać.


Działa to bardzo dobrze. Polecam szczególnie do filtrowania danych dla dużych tabel.
Filtr ostatecznie wygląda tak:



czwartek, 23 stycznia 2014

Moduł Glossify versus Taxonomy tooltip w Drupalu 7

Dostałem ostatnio wymaganie, aby na stronie wykonanej w Drupalu 7 trudne pojęcia i terminy w treści były jakoś specjalnie oznaczone, ich wyjaśnienie pokazywało się w "dymku", a ponadto mają być zebrane wszystkie w jednym miejscu. Tym miejscem miał być tzw. glosariusz.

Aby rozwiązać to zadanie najpierw spróbowałem poszukać gotowego modułu. Natknąłem się na porównanie kilku takich modułów:

https://drupal.org/node/266511

Według mnie interesujące wydawały się:

https://drupal.org/project/lexicon

Zainstalowałem glossify i utworzyłem własną kategorię pojęć (taxonomy) z listą terminów, którą podczepiłem do swojego filtru z edytorem CKEditor. Zadziałało bez problemów. Okazało się jednak, że wyjaśnienia (tooltip'y) są pokazywane za pomocą standardowego atrybutu html title. Moje opisy miały być długie, więc takie rozwiązanie wydało mi się zbyt proste. Odinstalowałem więc glossify i zacząłem szukać czegoś podobnego dalej.

Wreszcie znalazłem inny ciekawy moduł Taxonomy tooltip:
https://drupal.org/project/taxonomy_tooltip
Szczegółowy opis użycia można znaleźć tutaj:
http://webwash.net/tutorials/using-taxonomy-tooltip-module-drupal-7

Od razu mnie ucieszyło, że mogę skorzystać z już wcześniej utworzonej kategorii pojęć.
Ponadto działanie modułu oparte jest na pluginie jQuery o nazwie jQuery Tooltip.
Dymki można więc ostylować i umieścić w nich dużo treści.
Glosariusz można natomiast wykonać za pomocą zwykłych widoków (Views) prezentując odpowiednio kategorię pojęć.

piątek, 3 stycznia 2014

Niepoprawna kolejność komunikatów walidacji podczas rejestracji (Sort before element validation Patch)

Istnieje błąd w Drupalu polegający na tym, że komunikaty po walidacji formularza niekoniecznie są pokazywane w dobrej kolejności. Przykładowo, jeśli w formularzu rejestracji użytkownika dodamy kilka dodatkowych pól i zmienimy ich kolejność wyświetlania to komunikaty walidacji nie będą właściwie posortowane. Niestety jest to błąd rdzenia Drupala (konkretnie w pliku /includes/form.inc) i wymaga zastosowania Patch'a.

Patch: https://qa.drupal.org/pifr/test/388683

Instalacja Patch'a może polegać na prostej edycji pliku form.inc
(przykład ręcznej instalacji innego patcha: http://www.ostraining.com/blog/drupal/patches/)

W pliku form.inc zamieniamy te 2 linijki:

-  // Recurse through all children.
-  foreach (element_children($elements) as $key) {


na tych 6 linijek:

+  // Recurse through all children, sorting the elements so that the order of
+  // error messages displayed to the user matches the order of elements in
+  // the form. Use a copy of $elements so that it is not modified by the
+  // sorting itself.
+  $elements_copy = $elements;
+  foreach (element_children($elements_copy, TRUE) as $key) {


a dalej następuje kod:

     if (isset($elements[$key]) && $elements[$key]) {
       _form_validate($elements[$key], $form_state);
     }

wtorek, 31 grudnia 2013

Przetłumaczenie etykiety Order total w podsumowaniu zamówienia

Żeby było możliwe przetłumaczenie tej etykiety za pomocą standardowej funkcji Drupala Tłumaczenia, to niestety trzeba dopisać odpowiedni hak. Należy odnaleźć plik template.php w katalogu ze skórką naszej strony i dodać taki kod:

function NAZWA_SKORKI_form_alter(&$form, &$form_state, $form_id)

{   

    // Fix order total translation

    if (isset($form['cart_contents']))

    {

        $form['cart_contents']['cart_contents_view']['#markup'] = str_replace('Order total', t('Order total'), $form['cart_contents']['cart_contents_view']['#markup']);

    }

} 

Gdy teraz dodamy tłumaczenie dla tekstu "Order total" to będzie ono efektywne.

poniedziałek, 16 grudnia 2013

Drupal 7: Automatyczne nadanie roli dla nowego konta

W tym celu testowałem dzisiaj moduł Auto Assign Role:

https://drupal.org/project/autoassignrole

Tak wygląda konfiguracja automatycznego ustawiania roli:


Działa to bardzo dobrze. Użytkownik po rejestracji na portalu i pierwszym zalogowaniu się ma od razu nadaną rolę klienta.

poniedziałek, 2 grudnia 2013

Zmiana długości loginu użytkownika w formularzu rejestracji

Aby ograniczyć długość nazwy użytkownika (domyślna: 60) podawanej w formularzu rejestracji należy dopisać hak (ang. hook) np. w naszej skórce. Trzeba znaleźć plik template.php w naszej skórce i na końcu pliku dopisać:

function NAZWA_SKORKI_form_user_register_form_alter(&$form, &$form_state, $form_id)
{
    $form['account']['name']['#maxlength'] = 20;
}

Po odświeżeniu strony z formularzem rejestracji ograniczenie do 20 znaków będzie aktywne.

wtorek, 26 listopada 2013

Drupal Commerce - ostrożnie z własnym kodem PHP

Wstawiłem taki kawałek kodu, aby zrobić przekierowanie:

<?php
 /* This will give an error. Note the output
  * above, which is before the header() call */
 

header('Location: http://www.example.com/');
exit;
 

?>

Drupal zaczął bardzo dziwnie się zachowywać. Długo mi zeszło zanim się zorientowałem, że to właśnie ten fragment kodu psuje aplikację...

sobota, 23 listopada 2013

Niewidoczne pole (custom field) podczas tworzenia Pricing rule dla custom Line item type

Dodawanie reguły wyliczania ceny pokazuje bardzo fajny screencast:

http://www.drupalcommerce.org/videos/tutorials/customizable-products-pizza-store

Wydawało mi się, że robię wszystko jak na tym filmiku, ale u mnie wciąż nie pojawiało się pole (custom field) z mojego line item type w selektorach. Okazuje się, że przeoczyłem jeden ważny krok w tym tutorialu. Nowe pole we własnym line item type musi mieć koniecznie typ "Odnośnik do terminu". Musimy utworzyć w kategoriach (taxonomy) słownik z parametrami, które będą wyświetlane w formatce "Add to Cart". Nie możemy wybrać innego typu, np. Lista (numeryczna) itp. To jest ograniczenie Drupal Commerce, które pewnie w przyszłości będzie poprawione.

piątek, 22 listopada 2013

Drupal 7 - Moje konto: ukrycie wyboru języka, ukrycie pola kontakt, ukrycie newslettera

Po zalogowaniu się, zwykły użytkownik na stronie "Moje konto" widzi kilka zakładek: Pokaż, Edytuj i Historia. W zakładce Edytuj widzi kilka pól, które nie zawsze są potrzebne. Nie tak łatwo się ich jednak pozbyć. Aby ukryć pole wyboru języka i checkbox "kontakt" należy dopisać hak (ang. hook) np. w naszej skórce. Trzeba znaleźć plik template.php w naszej skórce i na końcu pliku dopisać:

function NAZWA_SKÓRKI_form_alter(&$form, &$form_state, $form_id)
{
    if ($form_id == 'user_profile_form')
    {
        $form['contact']['#access'] = FALSE;
        $form['locale']['#access'] = FALSE;
    }
}

Ukrywanie Newslettera jest prostsze. Trzeba to zrobić w dwóch miejscach. Po pierwsze trzeba wejść jako administrator w
Konfiguracja --> Ludzie --> Ustawienia konta --> Zarządzaj wyświetlaniem
i ukryć Newsletter.


Efekt będzie taki, że z zakładki Pokaż zniknie informacja o Newsletterze.
Po drugie trzeba wejść w
Konfiguracja --> Ludzie --> Uprawnienia
i dla sekcji Simplenews zabrać uprawnienia "Send newsletter" oraz "Subscribe to newsletters".


Po takich zmianach użytkownik w zakładce Edycja może zmienić tylko adres email oraz hasło.

czwartek, 21 listopada 2013

Mejlowe powiadomienia na Drupalu

Źródło: Drupal Answers

First you must enable the following modules:
1. Mailsystem module http://drupal.org/project/mailsystem
2. Mimemail module http://drupal.org/project/mimemail (it contains the mail actions and sending mail function) or you can use htmlmail module http://drupal.org/project/htmlmail
3. Rules module http://drupal.org/project/rules
After that you will do some steps:
1. Create new rule in admin/config/workflow/rules/reaction/add and select the "React on event" is "After saving new content".
2. Add a condition. Choose Node (Content is of type) for condition and choose your custom content type in the "Content types" list box.
3. Add another condition. Choose User(User has roles()). Choose data selector is "node:author" and choose the role of donor.
4. Add the action. Choose System (Send HTML email). You'll change the To, CC, subject, content here.
5. Try to test that.
Be sure that you can send email using your system. If you use the htmlmail module. It will have the send test email in its setting.

Niezbędne moduły w pracy z Drupalem

Moduły ułatwiające życie administratorowi:

1. Administration menu
https://drupal.org/project/admin_menu
(Wyłączyć Toolbar - core module)

2. Module Filter
https://drupal.org/project/module_filter

3. Fast Permissions Administration
https://drupal.org/project/fpa

4. Tab Tamer
https://drupal.org/project/tabtamer
(ukrywanie i zmiana nazw zakładek)

5. Menu per role (tylko dla Drupal 6)
https://drupal.org/project/menu_per_role
(pokazywanie opcji menu w zależności od roli)

6. Menu item visibility (tylko dla Drupal 7)
https://drupal.org/project/menu_item_visibility
(podobne do Menu per role)

7. Google Analytics
https://drupal.org/project/google_analytics

Moduły bezpieczeństwa:

1. CAPTCHA
https://drupal.org/project/captcha

2. Mollom
https://drupal.org/project/mollom
Bardzo skutecznie blokuje spam

Ostrzeżenie o Cookies:

1. EU Cookie Compliance


środa, 20 listopada 2013

Sklep internetowy w Drupal 7 i moduł Drupal Commerce

Podjąłem się zbudowania sklepu internetowego za pomocą Drupala w wersji 7. Rozważałem różne moduły, aż w końcu zdecydowałem się na moduł Drupal Commerce (http://www.drupalcommerce.org/) i CRM Core  (https://drupal.org/project/crm_core). Dodatkowo zainstalowałem wiele mniejszych.

Lista zainstalowanych modułów:
1. CRM Core
https://drupal.org/project/crm_core

Moduły wymagane:
1.1 Entityreference
https://drupal.org/project/entityreference
1.2 Entity API
https://drupal.org/project/entity
1.3 Field group
https://drupal.org/project/field_group
1.4 Date (Date_api , Date , Date_popup , Date_views)
http://ftp.drupal.org/files/projects/date-7.x-2.6.tar.gz
1.5 Relation
https://drupal.org/project/relation
1.6 Name Field
https://drupal.org/project/name
1.7 Views Bulk Operations (VBO)
https://drupal.org/project/views_bulk_operations
1.8 Token (można zainstalować gdyż w core jest on ograniczony)
http://ftp.drupal.org/files/projects/token-7.x-1.5.tar.gz

2. Drupal Commerce
https://drupal.org/project/commerce

2.1 Rules
https://drupal.org/project/rules
2.2 Address Field
https://drupal.org/project/addressfield

3. CRM Core Profile
https://drupal.org/project/crm_core_profile

4. CRM Core Profile Commerce Items
https://drupal.org/project/crm_core_profile_commerce_items
(Połączenie między modułem CRM Core i Drupal Commerce)

5. Commerce Customizable Products
https://drupal.org/project/commerce_custom_product
(bez tego modułu nie można dodawać własnych Line Item Types)

6. Commerce Repair
(naprawia błąd modułu Drupal Commerce)

7. Site Disclaimer
https://drupal.org/project/site_disclaimer
(każdy sklep posiada regulamin, który trzeba zaakceptować przy rejestracji)

8. Commerce Message
https://drupal.org/project/commerce_message
http://www.drupalcommerce.org/extensions/module/project/commerce-message
(możliwość dodawania wiadomości do zamówień i historia wiadomości)

Wymaga: Message ( https://drupal.org/project/message ) i Message Notify ( https://drupal.org/project/message_notify )

9. Commerce Custom Order Status
https://drupal.org/project/commerce_custom_order_status
(statusy zamówienia)

10. Commerce Checkout Progress
https://drupal.org/project/commerce_checkout_progress
(kroki zamówienia)

11. Commerce Checkout Pages
https://drupal.org/project/dc_co_pages
http://www.drupalcommerce.org/blog/8004/commerce-module-tuesday-commerce-checkout-pages
(dodatkowe kroki w procesie zamówienia)

12. Commerce extra panes
https://drupal.org/project/commerce_extra_panes
http://commerceguys.com/blog/commerce-module-tuesday-commerce-extra-panes
(dodatkowa zawartość kroków zamówienia)

13. Commerce Checkout Buttons
https://drupal.org/project/commerce_checkout_buttons
(ustawienie nazw dla przycisków w procesie zamówienia)
Uwaga: Zmienia przyciski tylko na standardowych stronach zamówienia. Dodane za pomocą modułu Commerce Checkout Pages mają stare przyciski.

14. Commerce Addressbook
https://drupal.org/project/commerce_addressbook
(adresy, które są zarówno widoczne w Moje konto oraz podczas zamówienia produktów w sklepie)
Problem: Nie wczytują się poprawnie inne adresy niż domyślny.
 
15. Commerce Invoice Receipt
https://drupal.org/project/commerce_invoice_receipt
(zakładka Fakruty w zamówieniach)

Moduł wymagany:
15.1 Emogrifier
https://drupal.org/project/emogrifier

wtorek, 27 marca 2012

Przeglądarka dokumentów PDF w Drupalu

Mimo, że istnieją moduły wspierające format PDF to praktyka pokazuje, że jednak najlepiej osadzić dokument za pomocą przeglądarki Google: https://docs.google.com/viewer

piątek, 24 lutego 2012

Drupal - na którą wersję się zdecydować?

Decydując się na CMS jakim jest Drupal musimy podjąć decyzję, którą wybrać wersję: 5, 6, a może 7? Ze strony domowej można również pobrać starszą wersję 4.7, a także zupełnie nową wersję 8 (developerską). Załóżmy jednak, że chcemy skorzystać z wydania stabilnego i nadal wspieranego. W takim przypadku obszar naszych poszukiwań zawęża się właściwie do dwóch wersji 6 i 7.
  Jakiś czas temu sam stałem przed podobnym problemem. Ponieważ planowałem wykorzystać Drupala w dwóch projektach postanowiłem, że w pierwszym przedsięwzięciu (większym i bardziej poważnym) oprę się na wydaniu 6. Swoją decyzję podjąłem po niewielkim research'u, bez żadnych wcześniejszych doświadczeń z Drupalem. Mój drugi projekt był mniejszy i mniej rygorystyczny jeśli chodzi o szereg różnych wymagań, dlatego stwierdziłem, że to dobra okazja żeby poznać również wersję 7. Dzisiaj posiadam pewien bagaż doświadczeń, którym w wielkim skrócie pragnę się tutaj podzielić.
  Przede wszystkim należy uświadomić sobie fakt, że podstawowa wersja Drupala (tzw. Core) posiada tylko minimalną funkcjonalność, która dla większości projektów jest niewystarczająca. Dlatego porównując poszczególne wersje należy po pierwsze zwrócić uwagę na liczbę dodatkowych modułów. I tutaj zdecydowanie wygrywa wydanie 6: prawie 6,5 tysiąca modułów. W drugiej kolejności jest wersja 7: przeszło 3,5 tysiąca modułów. Trzeba tu od razu wyjaśnić, że niektóre dodatkowe moduły z wersji 6 stały się integralną częścią wersji 7 (jak można przeczytać w Internecie chodzi o ponad 50 modułów, np. CCK, Views, FileField) przez co jest ona bogatsza w wersji podstawowej. Kilka tysięcy użytecznych modułów pozostaje jednak bez wsparcia.
  Wielu twórców stron internetowych nie chce samodzielnie tworzyć własnej grafiki i korzysta z gotowych szablonów. W tej konkurencji także wygrywa wersja 6 Drupala. Do wersji 7 trudno znaleźć cokolwiek ładnego. Pewnym usprawiedliwieniem jest to, że istnieje kilka szablonów bazowych, np. Zen, czy Omega, które pozwalają w stosunkowo łatwy sposób dostosować praktycznie dowolny szablon html+css.
  Trzeba jednak przyznać, że praca z wersją 7 jest przyjemniejsza. Usprawniono wiele rzeczy, m.in. instalacja i aktualizacja modułów odbywa się w pełni na poziomie przeglądarki. Nie trzeba już ręcznie kopiować plików na poziomie serwera. To samo dotyczy zmiany języka i plików tłumaczeń. Ponadto interfejs administratora jest nowocześniejszy i wygodniejszy.
  Twórcy 7 wersji chwalą się, że jest ona stabilniejsza, a moduły są bardziej dojrzałe. Podejrzewam, że może to być prawda. Rzeczywiście, podczas pracy z wersją 6 napotkałem znacznie więcej różnych problemów. Wydaje mi się, że wraz z rosnącą liczbą zainstalowanych dodatkowych modułów błędów przybywało. Nie były to oczywiście błędy, które zatrzymywały działanie całego portalu. Polegały one np. na tym, że nie działała jakaś konkretna funkcjonalność mimo zainstalowanego modułu. W 7 wersji zainstalowałem dużo mniej dodatkowych modułów, stąd może mniejsza liczba zaobserwowanych problemów.
  Przed wyborem wersji Drupala należy więc przede wszystkim zastanowić się nad zakresem funkcjonalności na naszym portalu. Następnie poszukać modułów, które zrealizują postawione wymagania. Jeśli do końca nie wiemy jakich modułów potrzebujemy lub prognozujemy, że portal będzie się w przyszłości ciągle dynamicznie rozwijał wówczas lepszym wyborem będzie wersja 6. Jeśli zależy nam jednak na stabilności, nowoczesności lub łatwości obsługi, a możemy zrezygnować z niektórych funkcjonalności to polecam wersję 7.