Drupal

Żegnaj Drupalu, witaj WordPressie

niedziela, Październik 12th, 2008 | Blog | Brak komentarzy

Stało się. Po prawie 2 latach prowadzenia bloga przesiadłem się z Drupala na WordPressa. Dlaczego? Powód jest bardzo prozaiczny. O ile Drupal sprawdza się znakomicie, jako rozbudowany CMS do wszystkiego, o tyle jego blogoprzyjazność na dzień dobry jest bardzo niska. Dopracowanie i customizacja layoutu, to godziny cieżkiej pracy oraz litry potu i krwi. No i ten brak sensownej obsługi obrazków w gołym Drupalu.

Początkowo wydawało mi się, że proces migracji będzie w miarę bezbolesny. Po krótkim googlaniu znalazłem wpis na pewnym blogu i myślalem, że sprawa już prawie załatwiona: How to migrate from Drupal 5 to WordPress 2.

Niestety, opisana sytuacja i sam skrypt sql do migracji dotyczą WordPressa w starszej wersji, no ale od czego mamy archiwum wersji na wordpress.org. Problem niezgodności podanego przeze mnie skryptu do konwersji dotyczy struktury bazy WordPressa w części dotyczącej kategorii i tagów. We wcześniejszych wersjach było to bardzo uproszczone, w obecnej (2.6.x, a może już wcześniej) struktura jest bardzo podobna do tej drupalowej.

Tak więc cały przebieg migracji wygladał w sposób następujący:

  • instalacja WordPressa 2.2
  • konwersja z Drupala 5.x na WordPressa 2.2
  • aktualizacja WordPressa do bieżącej wersji

Oczywiście nie obyło się bez zgrzytów, np krzaki zamiast polskich znaków, ale z tym też sobie poradziłem. Wszystko wykonane na lokalnym serwerze (WebServ). Niestety, żeby nie było tak różowo, to muszę wspomnieć, że trzeba mieć podstawową wiedzę nt składni SQL, ponieważ w skrypcie nie uwzględniono tego, że tabele w bazie Drupala mogą mieć prefixy – przynajmniej wszystkie moje mają.

O WordPressowych skórkach następnym razem.

Tags: , ,

Views – export/import

wtorek, Czerwiec 26th, 2007 | Blog | Brak komentarzy

Kolejna drupalowa strona, kolejna nudna konfiguracja tych samych rzeczy. Na szczęście Views posiadają opcje export i import.Całość odbywa się w odpowiedniej zakładce na zasadzie tekstowego dump’a – podobnie, jak w phpMyAdmin.Proste, skuteczne i cieszy.

Tags: , ,

Znikający color picker w Garlandzie

środa, Maj 30th, 2007 | Blog | Brak komentarzy

Zainstalowałem sobie kolejnego Drupala, szybka konfiguracja – przy którejś tam instalacji robi się to z zamkniętymi oczyma w 2min.

No i postanowiłem, że zostawię Garlanda, tylko lekko zmienię mu schemat kolorów. Tylko, że genialny color picker ze skórki Garland gdzieś wyparował.

Szybkie przeszukanie drupal.org przyniosło rezultaty.

W wersji 5.x color picker korzysta z publicznego systemu plików – ustawienie dostępu plików na system prywatny (genialny zresztą) powoduje stracenie się color pickera.

Czy zostanie to poprawione? Możliwe, że dopiero w wersji 6.x, kiedy zostanie przepisany na nowo system obsługi plików. W tej chwili trzeba poradzić sobie „ręcznie”.

Tags: , ,

FastCGI i Drupal

czwartek, Kwiecień 26th, 2007 | Blog | Brak komentarzy

Jedna z moich drupalowych instalacji generuje dosyć spory load dla serwera – głównie z powodu cotygodniowych peaków oglądalności, a nie z powodu zasobożernych modułów.

Nowy hosting, na który się przesiadłem, automatycznie przełącza witryny generujące duże obciążenie do obsłużenia w trybie FastCGI.

No i tu się pojawił problem, bo nagle do urli przykleił się string /f-php-cgi i od tego momentu urle wyglądały w sposób następujacy: http://domena/f-php-cgi/node/*.

Support sugerował na początku takie rozwiązanie:

Proszę nie korzystać ze zmiennej _ENV["SCRIPT_NA­ME"], mozna uzywac np. _ENV["REQUEST_URI"] albo _ENV["PATH_TRAN­SLATED"].

W SCRIPT_NAME w trybie FastCGI będzie zawsze f-php-cgi, a ten tryb jest konieczny dla tej witryny (mocno przyspiesza ładowanie się stron często odwiedzanych

Szybkie przeszukanie źródeł Drupala (akurat była to wersja 4.7.x) nic nie dało.

Oczywiście, jak to bywa zwykle, w chwili olśnienia udało mi się wymyślić rozwiązanie – trzeba ustawić na sztywno zmienną $base_url w settings.php.

/**
* Base URL (optional).
*
* If you are experiencing issues with different site domains,
* uncomment the Base URL statement below (remove the leading hash sign)
* and fill in the URL to your Drupal installation.
*
* You might also want to force users to use a given domain.
* See the .htaccess file for more information.
*
* Examples:
* $base_url = ‘http://www.example.com’;
* $base_url = ‘http://www.example.com:8888′;
* $base_url = ‘http://www.example.com/drupal’;
* $base_url = ‘https://www.example.com:8888/drupal’;
*
* It is not allowed to have a trailing slash; Drupal will add it
* for you.
*/
$base_url = ‘http://www.example.com’; // NO trailing slash!

Tags: , ,

Optymalizacja górą?

sobota, Marzec 10th, 2007 | Blog | Brak komentarzy

Jak mawia stare ludowe przysłowie pozycjonerów: „content i linki linki linki”.

A co, jeżeli trafi się na 3 pozycję trudnej frazy bez linków?

Strona, o której już wspominałem ostatnio z filtra wskoczyła w okolicę 10-20. A niedawno na 3 pozycję i trzyma się bardzo dobrze.

Konkurencja? Światowa jest bardzo mocna, polska nie bardzo. Portale tematyczne i Wikipedia. Co nie zmienia faktu, że strona jest na 3 pozycji – za Wikipedią i IMDB.com.

Od początku strona była dobrze zoptymalizowana (dlaczego kochamy Drupala). Pewnie też wyszło odpowiednie nasycenie słowami kluczowymi. Linków live.com pokazuje 17 (słownie: siedemnaście). I od czerwca 2006 nic nie było z nią robione.

Może należałoby zweryfikować informacje na temat istotności optymalizacji przy pozycjonowaniu?

Tags: , ,

Views i ilość wyświetlanych node’ów

czwartek, Marzec 8th, 2007 | Blog | Brak komentarzy

Domyślnie strona zwracająca zawartość dowolnego terminu taxonomy wypluwa 10 node’ów. W przypadku zwykłego formatu – czyli title + teaser – to żaden problem. A co, jak mamy dołączone Views i wyświetlamy np tylko tytuły?

Wygooglałem rozwiązanie.

W sekcji Arguments Handling Code danego viewsa wpisujemy:

if (!$arg[0]) {
$limit = 25;
}

Chyba wiadomo, do czego służy zmienna $limit.

Tags: ,

Double Click – życie stało się prostsze

środa, Luty 21st, 2007 | Blog | Brak komentarzy

Już jakiś czas temu zauważyłem moduł Double Click popełniony przez niestrudzoną ekipę z Lullabot.

Dopiero dzisiaj wrzuciłem go do jednej z instalacji Drupala.

Co daje ten moduł? Genialną w swej prostocie funkcjonalność dla niektórych wewnętrznych linków serwisu.
Przy podwójnym kliknięciu tytułu node jesteśmy automatycznie przenoszeni do edycji jego treści. Po zakończeniu edycji wracamy do miejsca, którym dokonaliśmy podwójnego kliknięcia.

Oczywiście sprawa ma się analogicznie dla linków do profili użytkowników i komentarzy.

Tutaj można sobie zobaczyć videocast z demonstracją instalacji Double Clicka, jak i sam moduł w akcji:
http://www.lullabot.com/videocast/double_click_module_demo

Tags:

Indeksowanie grafiki w Google Images

sobota, Luty 17th, 2007 | Blog | 5 komentarzy

Jakiś czas temu, podczas codziennej kontroli przychodów w Google AdSense zauważyłem spory skok w górę na stronie z kategorii celebrities. Początkowo pomyślałem, że strona wyszła w końcu z filtra. Okazało się jednak, że mam sporo wejść z images.google.com i images.google.de.

Po szybkim researchu wyszło na to, że 3 zdjęcia z mojej strony znajdują się na pierwszej stronie wyników, w tym jedno z linkiem – „pokaż więcej”. Co ciekawe, moje trafienie, jako jedyne na pierwszej stronie wyników posiada ten link.

Tak to już jest z AdSense, że reklamy są geolokalizowane na podstawie IP użytkownika, więc stawki też były zagraniczne.

No i teraz najważniejsze – jak udało mi się tego dokonać? Oczywiście przypadkiem.

Strona oczywiście na niezastąpionym Drupalu. Zdjęcia załączane tandemem Image i Image Attach.

Przy dołączaniu zdjęcia do node podaje się tytuł zdjęcia. Node typu image ma właśnie ten sam tytuł. Do tego atrybuty alt i title samego obrazka także mają tą treść. Chyba lepiej opisanego zdjęcia być nie może.

W połączeniu z Pathauto i Meta Tags (ex NodeWords) całość będzie jeszcze lepiej zoptymalizowana pod kątem Google Images.

Jak znajdę kiedyś trochę czasu, to zrobię test na zmyśloną frazę – czy uda się w ten sposób wprowadzić obrazek do Google Images.

Niedawno, wraz z aktualizacją Google Sitemaps, pojawiły się tam opcje dotyczące indeksowania obrazów, jednak jeszcze nie przeprowadzałem żadnych testów.

I tak oto powstał pierwszy artykuł z serii „Dlaczego wszyscy powinni kochać Drupla”.

Tags: , , , , ,

Drupalowe problemy z logowaniem

środa, Luty 14th, 2007 | Blog | Brak komentarzy

Fakty: całkiem nowa instalacja (Drupal 5.1), zakładamy konto admina, ustalamy hasło i … i koniec.
Podczas próby logowania wyrzuca nas do formularza logowania bez komunikatu o błędnym loginie lub haśle.

Aktualizacja

źródło: http://drupal.org/node/136397

Należy wyedytować settings.php głównej domeny ustawiając:
ini_set('session.name', 'domenapl');

oraz dla subdomen/domen podrzędnych analogicznie w ich settings.php:
ini_set('session.name', 'subdomenadomenapl');

Wykonanie niżej opisanych czynności – ustawienia domen dla cookie na pewno nie zaszkodzi.

Szybkie googlanie i użycie szukajki na drupal.org uświadomiły mnie, że to znany problem.

Problem w tym, że znany dla wersji w okolicach 4.6.x oraz dla 5.0 beta 2 – ponoć w już RC 1 było coś tam poprawianie w user.module.

Po kilku dłuższych chwilach udało się odnieść zwycięstwo. Rozwiązanie?
Wykomentować całość w /sites/strona/settings.php:

/**
* We try to set the correct cookie domain. If you are experiencing problems
* try commenting out the code below or specifying the cookie domain by hand.
*/
if (isset($_SERVER['HTTP_HOST'])) {
$domain = '.'. preg_replace('`^www.`', '', $_SERVER['HTTP_HOST']);
// Per RFC 2109, cookie domains must contain at least one dot other than the
// first. For hosts such as 'localhost', we don't set a cookie domain.
if (count(explode('.', $domain)) > 2) {
ini_set('session.cookie_domain', $domain);
}
}

A zamiast tego wstawić na sztywno:

ini_set('session.cookie_domain', 'naszadomena.pl');

Opera, IE6 ruszyły od razu, Firefox 2.x dopiero po restarcie komputera – cache, cookie były wyczyszczone – nie wiem gdzie jeszcze miałaby siedzieć informacja o sesji.

Tags: ,

Artykuł o Drupalu

wtorek, Luty 13th, 2007 | Blog | Brak komentarzy

Artykuł pochodzi z Linux Magazine (czerwiec 2005). Trochę „przeterminowany”, ale jednak warto się zapoznać, bo informacji o Drupalu po polsku mamy jak na lekarstwo.

Tags:

Drupal multisite dla opornych

niedziela, Luty 4th, 2007 | Blog | 2 komentarzy

Już kilka razy robiłem podejście do instalacji Drupala, jako multisite. Sama zawartość pliku INSTALL.txt, handbooka do multisite na drupal.org oraz polskiego opisu instalacji na drupal.org.pl nie pomogły. W końcu – chyba za 5 razem powiodło się – bardziej metodą prób i błędów.

Po co w ogóle komu multisite? Dla mnie za taką instalacją przemawiała możliwość współdzielenia użytkowników serwisu i jego subdomen oraz ułatwiona aktualizacja core Drupala i jego modułów.
Teoretycznie można by jeszcze wspomnieć o oszczędności miejsca na koncie, ale sam Drupal, w przeciwieństwie do konkurencyjnych CMSów zajmuje bardzo mało miejsca.

Cały opis będzie bardzo uproszczony, więc w razie bardziej szczegółowych pytań zachęcam do zapoznania się z tymi dwoma powyższymi linkami.

Załóżmy, że nasz serwis będzie znajdował się pod adresem www.domena.pl, a subdomena analogicznie pod subdomena.domena.pl, która oczywiście będzie korzystać z instalacji serwisu bazowego www.domena.pl. Obie instalacje będą znajdować się w tej samej bazie danych oraz serwis z subdomeny będzie korzystał z użytkowników nadrzędnego serwisu.

Całość opisana jest dla Drupala 5.x i wyżej – od wersji 5.0 jest dostępny instalator, dzięki któremu życie drupalowców stało się jeszcze prostsze.
Instalacja multisite dla opornych krok po kroku

  1. Instalujemy główny serwis www.domena.pl – korzystamy oczywiście z wbudowanego instalatora. Załóżmy, że ustaliliśmy prefix dla bazy danych „wwwdomenapl_”. Instalację, możemy uznać za zakończoną po założeniu konta administratora.
  2. W katalogu naszej instalacji odnajdziemy podkatalog /sites/. Zakładamy w nim, zgodnie z drupalową nomenklaturą podkatalog subdomena.domena.pl
  3. Do katalogu subdomena.domena.pl kopiujemy „czysty” plik settings.php, który znajdziemy np w /sites/default/ w paczce .tar.gz z plikami instalacyjnymi.
  4. W panelu konfiguracyjnym, który udostępnia nam firma hostująca nasze strony, dodajemy subdomenę subdomena.domena.pl i zaznaczamy, że ma wskazywać na ten sam katalog, co domena www.domena.pl. Z tym, że będą to dwa osobne serwisy, Drupal sobie poradzi dzięki odpowiedniemu nazewnictwu katalogów w /sites/.
  5. Wpisanie w przeglądarce adresu subdomena.domena.pl powinno wywołać drupalowy instalator. Może nie od razu, bo w zależności od hostingu, zmiany dotyczące domen i subdomen mogą trochę potrwać. Wykonujemy instalację, do rozważań załóżmy, że dla naszej subdomeny ustaliliśmy prefix tabel subdomenadomenapl_. Ważne! Instalacja na subdomenie musi dojść do momentu utworzenia konta administratora włącznie! W przeciwnym wypadku współdzielenie użytkowników po zmodyfikowaniu settings.php nie zadziała.
  6. W tej chwili mamy 2 instalacje, korzystające z tych samych plików, ale jeszcze bez współdzielonych użytkowników. Otwieramy /sites/subdomena.domena.pl/settings.php i modyfikujemy wpisy dotyczące współdzielenia tabel na następujące:

$db_prefix = array(
'default' => 'subdomenadomenapl_',
'users' => 'wwwdomenapl_',
'sessions' => 'wwwdomenapl_',
'role' => 'wwwdomenapl_',
'authmap' => 'wwwdomenapl_',
'sequences' => 'wwwdomenapl_',
);

W takim wypadku wpis $db_prefix = ‘subdomenadomenapl_’; jest oczywiście zbędny i należy go usunąć.

I to tyle, od tej chwili możemy się cieszyć dobrodziejstwami instalacji Drupala w trybie multisite.

Tags: ,

Categories

Szukaj