czwartek, 12 maja 2011

wyswig i drupal

Termin wyswig w dosłownym tłumaczeniu oznacza "What You See Is What You Get" w dosłownym tłumaczeniu oznacza, to co widzisz to dostaniesz.

W drupalu nie ma wbudowanego edytora wyswig można go sobie ręcznie doinstalować.
(jeżeli robicie komuś stronę i tego nie zainstalujecie możecie spodziewać się wielu kontaktów w tej sprawie także miejcie się na baczności).


W celu uruchomienia wyswig na stronie z drupalem najlpierw należy pobrać moduł Wyswig ze strony domowej projektu.
Gdy już pobierzecie Wyswig, umieścicie w odpowiednim katalogu na serwerze, aktywujecie za pomocą zakładki administer ... wyswig nie będzie jeszcze działał.

Niezbędne jest wybranie modułu, który oferuje funkcjonalność wyswiga, jest ich zatrzęsienie.
Ja wybrałem OpenWYSIWYG, ponieważ:
- spotkałem sporo pozytywnych opinii w internecie,
- coś co ma w nazwie open nie może być złe (np. OpenSource, OpenBSD),
- oferował wszystkie funkcjonalności, które były mi do życia potrzebne.

Instalacja OpenWYSIWYG przebiegała tak jak zwykle, wgranie na serwer i aktywowanie z poziomu administratora drupala.

Przeprowadzę jeszcze testy tego wyswiga, jeżeli coś w nim banglać nie będzie na pewno to opiszę.

aktualizacja drupala

Drupal ma to do siebie, że nie aktualizuje się automagicznie, wymaga wykonania sporej ilości czynności, żeby wszystko przebiegło sprawnie.

Kilka zasad aktualizacji drupala:
- zrób pełną kopię bezpieczeństwa strony (pliki, baza danych),
- aktualizuj po jednym module,
- gdy zaczniesz aktualizacje nie przestawaj, dopóki wszystkie moduły będą w najnowszej dostępnej wersji (ja spróbowałem zaktualizować większość, niestety CMS nie działał wówczas poprawnie, zawsze pojawiały się jakieś errory).

Backup plików jest prosty, wystarczy zalogować się za pomocą klienta FTP, lub SSH i skopiować cały katalog.

Backup bazy danych należy zrobić za pomocą polecenia:
mysqldump --opt --default-character-set=latin2 -h adres_serwera_mysql -u nazwa_użytkownika_bazy_danych -p nazwa_bazy_danych > /home/$login/zrzut_bazy.sql

Przełącznik -p jest niezbędny żeby można było wpisać hasło do bazy - inaczej się nie połączymy.

Oczywiście kodowanie nie koniecznie musi być ustawione na latin2 - trzeba zrobić przykładowy zrzut i sprawdzić czy się krzaki nie wyświetlają.


Po zrobieniu pełnego backupu, zalogowaniu się na stronie, przejściu na Administer >> Sekcja Reports >> Available updates pojawią się wszystkie informacje dotyczące dostępnych aktualizacji.

Aktualizacja polega z grubsza na pobraniu wybranego modułu, rozpakowaniu, wgraniu na serwer do lokalizacji sites/all/modules.
Wejściu ponownie na Administer > Site building > Modules. Odnalezieniu modułu, który ma zostać zaktualizowany, jego zaznaczeniu i kliknięciu na save configuration.


Jeżeli macie świadomość (tak jak ja), że wszystko może pójść nie tak jak trzeba podczas aktualizacji to będziecie robić pełen backup co aktualizację jednego modułu.
Ja zostawiłem aktualizację przez czas dłuższy i zemściło się to na mnie tym, że musiałem na to poświęcić cały wieczór.

Więc jak nie chcecie żeby ktoś się włamał Wam na stronę, lub ślęczeć nad aktualizacją kilka godzin róbcie to regularnie.

niedziela, 1 maja 2011

Jak automatycznie zmienić wielkość zdjęć, czyli imagemagick, convert, resize

Uczestniczę w tworzeniu serwisu internetowego, który będzie składał się z wielu zdjęć.

Zorganizowaliśmy walne zgromadzenie (2 osoby) i ustaliliśmy, że obrazy będą miały szerokość 420 pixeli (z wysokością to różnie bywa - będzie ona automagicznie dopasowywana).


Oczywiście każdy obraz można otworzyć za pomocą gimp'a, kliknąć na obraz i wybrać skaluj, ale jakoś mi to nie odpowiadało.

Więc na początku chciałem z wiersza poleceń sprawdzać jaką wielkość ma dany obraz (nie ma sensu zmniejszać czegoś co już i tak jest np. za małe).

Z pomocą przyszła mi biblioteka ImageMagick.

Sprawdzenie wielkości (w pixelach można wykonać w następujący sposób):
identify test.jpg

Wynik polecenia przedstawia się następująco:
test.jpg JPEG 420x216 420x216+0+0 8-bit DirectClass 25.2kb

Czyli z grubsza wiemy wszystko co chcieliśmy o tym jpegu.

Przyszedł czas na automatyczną zmianę wielkości zdjęć w wybranym katalogu, w połączeniu z pentlą:
for adres in $(ls); do convert $adres -resize '420' $adres ; done ;

Teraz po kolei jak to wszystko działa:
- przechodzimy do katalogu w którym są zdjęcia (trzeba sobie zrobić backup, bo w tym przykładzie zdjęcia zostaną nadpisane przez te o zmienionym rozmiarze),
- for adres in $(ls) - dla każdego pliku znajdującego się w bieżącym katalogu ...
- do convert $adres -resize '420' $adres ; done ; - wykonaj konwersję nazwa_obrazu.jpg wielkości do 420 pixeli szerokości;

Opcja -resize jest bardzo wygodna, ponieważ gdybym musiał podać od razu szerokość i wysokość zdjęcia wyglądałyby co najmniej dziwnie, byłyby za bardzo rozciągnięte w pionie lub w szerokości.

W apostrofach mogę więc podać:
- 'szerokośćxwysokość'
- 'szerokość'
- 'xwysokość'

Dzięki temu, że podałem samą szerokość wysokość jest automatycznie dopasowywana (do Twojej wersji filmu chciałoby się powiedzieć :>) do wersji obrazu.

Imagemagick potrafi znacznie więcej, w najbliższej przyszłości mam zamiar się jeszcze przyjrzeć
możliwości wstawiania automatycznie znaku wodnego

W ten sam sposób można generować miniatury obrazów, jeżeli z takich korzystacie - wystarczy podać mniejszą ilość pixeli, np. 100.