Apr 02 2008

CSS media=”__” i @media

Tag: Przeglądarki, HTMLbuka @ 11:49

Ot ciekawostka, choć przydatna.

Wszyscy wiedzą, że przy ładowaniu arkusza stylów można (a raczej “należy”) podać atrybut media=”all/screen/print/jeszcze_parę_innych”. Pewnie wiele osób, ale może już nie wszyscy, wiedzą że wewnątrz arkusza można też używać deklaracji “@media all/screen/print/itp”. Ciekawostką może być połączenie obu metod - np. mamy arkusz css do wydruków ukrywający nawigację, ale chcemy mieć popup’a z “podglądem” wydruku.

Robimy więc sobie dwa arkusze stylów, jeden standardowy, drugi do wydruku - ukrywający niepotrzebne elementy (nagłówek, nawigację, reklamy itp) lub czyszczący obrazki z tła. Do dokumentu dołączamy oba w sekcji , np:

Teraz bardzo prosto możemy wyświetlić coś, co można traktować jako prosty podgląd wydruku (bez podziału na strony, czy marginesów) - np. dodać do strony link do podglądu kierujący na obecną stronę plus parametr GET’em np ‘?preview=1′. Wystarczy sprawdzać ten parametr przy dodawaniu stylów i kiedy jest on ustawiony zmieniać “media” drugiego arkusza - np. w php:

No dobra, mamy podgląd, to przydałoby się jeszcze móc od razu wydrukować co widzimy. Więc w stronę wrzucamy button “Drukuj” (’onclick=”window.print();return false;”‘) z id=”PrintIt”, standardowo go ukrywamy (w pierwszym arkuszu css #PrintIt{display: none;}), a nasz arkusz css, który miał nam czyścić stronę z tego, co niepotrzebne do wydruku, tym razem powinien nam dodać tego buttona, ale tylko na podglądzie, a nie na samym wydruku. Więc wstukujemy do niego:

No i mamy jedną stronę, podstawowy podgląd wydruku, z dodatkowym buttonem do drukowania widocznym tylko na podglądzie, nie na “standardowej” stronie, czy samym wydruku :)

printcss


Apr 01 2008

Wykrywanie nie wyczyszczonych CSS::float

Tag: JavaScriptskowron @ 10:57

Wczoraj na
Ajaxianie pojawiła się krótka notka o sposobie na szybkie sprawdzenie który z elementów nie jest odpowiednio “wyclearowany”. Feature wydaje się być o tyle fajny, że pod IE6 czasem ciężko stwierdzić dlaczego layout się rozjeżdża, a Developer Toolbar przy zainstalowanym Multiple Ie działa tylko w IE7…

Jako że w naszej pracy głównie używamy biblioteki
mootools, postanowiłem nieco zmienić przedstawioną wersję tak by z współpracowała z nią a nie z
jQuery. A oto rezultat:

Bookmarklet - wystarczy wejść na stronę i wkleić tę linie do pasku adresu po czym kliknąć enter, lub jak sama nazwa wskazuje dodać do zakładek :)


Mar 26 2008

Mootools 1.2 BETA - problemy z kompatybilnością

Tag: JavaScriptskowron @ 04:58

Mootools LogoDeweloperzy
Mootools - bardzo wydajnego i efektywnego frameworka JavaScript od ponad pół roku w pocie czoła pracują nad nową wersją 1.2. Już przed wypuszczeniem pierwszej wersji beta było wiadomo że

Some parts of MooTools 1.2 aren’t immediately compatible with those found in MooTools 1.1

Od poprzedniej wersji zostały wprowadzone zmiany dość niskopoziomowe takie jak tworzenie klas czy ich dziedziczenie.

Aby jednak umożliwić osobom wykorzystującym obecną wersję stabilną korzystanie z dobrodziejstw nowej, ulepszonej postanowiono udostępnić również wersję która będzie zapewniała zgodność z wersją 1.11.

Ostatnio postanowiliśmy sprawdzić jak nasze aplikacje działają z nową wersją MooTools. Jako, że serwis
baltic4you.pl jest ściśle powiązany z JavaScriptem (oparty jest w sporej części na tym frameworku) to testy zostały przeprowadzone właśnie na nim. Dodatkowo został sprawdzony DeForm - nasz system do tworzenia formularzy.

Na pierwszy ogień poszła wersja bez kompatybilności i… zgodnie z oczekiwaniami stworzona wcześniej aplikacja wysypała się zanim cokolwiek zdążyło się wykonać. Kolejna próba to test z wersją zapewniającą zgodność. Jednak jak się okazało “zgodność” to nie do końca odpowiednie słowo :).

Generalnie większość funkcjonalności działa poprawnie jednak niektóre generują błędy tak więc zmiana wersji okazuje się na dzień dzisiejszy nieco kłopotliwa. Stwierdziliśmy. że z problemem zmierzymy się dopiero gdy zostanie opublikowany Mootools 1.2 stable, by mieć pewność, że generowane błędy nie powstają z winy frameworka.

Na pewno możecie oczekiwać relacji z tego wydarzenia ;) A będzie się działo…


Mar 18 2008

Drukowanie z poziomu skryptu PHP w systemie Windows

Tag: PHPskowron @ 01:46

Część osób nie wie że istnieje możliwość dodania do PHP rozszerzenia pozwalającego na otwarcie połączenia z dowolną drukarką zainstalowana wcześniej w systemie operacyjnym i zmuszenia jej do wyplucia czego tylko zapragniemy. Aby tego dokonać należy:

  1. Pobrać odpowiednią bibliotekę (najlepiej ze strony
    pecl4win).
  2. Skopiować plik php_printer.dll dokatalogu ext w folderze gdzie zainstalowany jest PHP (np C:\Program Files\PHP\ext)
  3. Edytować plik php.ini (najczęściej znajduje się w C:\WINDOWS) i dodać w częsci z rozszerzeniami (Windows Extensions) linijkę extension=php_printer.dll

Aby przekonać sie czy całość działa spróbuj uruchomić następujący kod:

Ten i więcej przykładów znajdziecie bezpośrednio na
http://pl.php.net/printer.

Część osób pewnie zapyta o zastosowanie tego typu rozwiązania. My wykorzystaliśmy tę funkcjonalność podczas drukowania kodów kreskowych. W rezultacie sprzedawca chcąc dodać nowy produkt, klika “wygeneruj nowy kod kreskowy” a drukarka automatycznie rozpoczyna drukowanie uprzednio wygenerowanego w php kodu.

Ograniczeniem może być brak odpowiednika dla systemu spoza rodziny Windows. A może zna ktoś takowy?


Mar 13 2008

Kompilacja kodu PHP

Tag: PHPradmen @ 09:16

Wiadomym jest, że PHP jest językiem interpretowanym. Czasami jednak zachodzi potrzeba “upakowania” kodu PHP do jednego exeka tak, żeby bez interpretatora móc odpalić nasz skrypt. Do tego celu są wykorzystywane różne kompilatory PHP, które przepisują kod PHP na binarkę (są nawet stosowne funkcje w PHP).

Niedawno szukaliśmy dobrego programu, który mógłby spakować nasz kod PHP do pliku wykonywalnego. Znaleźliśmy program
Roadsend niestety okazał się nieprzydatny, ponieważ skompilowanie kodu PHP wymagało od nas sporo wysiłku, a efekty i tak były mizerne.

Na szczęście znaleźliśmy program
Bambalam, który w bezbolesny sposób pozwala na kompilację pliku PHP. Dodatkowo możemy ten kod spakować przy pomocy
UPXa. Zaletą tego programu jest możliwość dołączenia przeróżnych bibliotek. W naszym skrypcie była potrzebna biblioteka php_printer.dll. Wystarczyło pobrać odpowiednią wersję (o tym za chwilkę) wrzucić do katalogu z programem Bambalam i odpalić wspomniany program z opcją “-e:php_printer.dll”.

Niestety Bambalam ma dość sporą wadę. Ostatnia wersja wyszła w roku 2006 i nie ma wsparcia dla PHP5, także jesteśmy zmuszeni do porzucenia niektórych dobrodziejstw jakie niesie ze sobą PHP5.

Pomimo tej wady warto zainteresować się tym programem, czasami są sytuacje, że skompilowanie kodu PHP jest przydatne.


Mar 13 2008

Sprawdzanie pisowani w prismie - polski słownik

Tag: Przeglądarkiskowron @ 08:49

Prism polish smallPisząc w gmailu uruchomionym w Prismie maile w języku polskim zawsze brakowało mi jednego… Jak zmusić Prisma do sprawdzania moich wypocin od strony ortograficznej.

Od jednej literówki jeszcze nikomu nic się nie stało, zdarza się. Jednak gdy jest ich już więcej na pewno nie świadczy to o profesjonalizmie adresata i poszanowaniu dla odbiorcy. Jako że sam Prism nie udostępnia interfejsu ustawień.

Zacząłem więc googlować za jakimś rozwiązaniem. Niestety albo źle szukałem albo nie wiele osób próbowało rozwiązać mój problem (lub jest on na tyle banalny że nikt go nie opisuje). Tak więc szybkie i proste rozwiązanie…

Continue reading “Sprawdzanie pisowani w prismie - polski słownik”


Mar 12 2008

Sposób na wyciągnięcie losowego rekordu z tablicy MySql

Tag: MySQLwoojo @ 12:09

Przeglądając z rana to co zaproponował mi
google alerts na temat MySqla natknąłem się na ciekawy
artykuł na temat wyciągania losowych rekordów z tablic tej właśnie bazy danych.
Nie będę przepisywał treści zawartej w tym artykule, chciałem tylko przedstawić swoje własne wyniki uzyskane podczas testowania tej metody. Badania przeprowadziłem na tablicy
InnoDB z 135k elementów. Wyciągając losowy element w ‘tradycyjny’ sposób, czyli:

zajęło to 60 sek. Wartość niedopuszczalna aby używać tego np. na stronie www.

Wykorzystując pomysł zaproponowany na tym blogu i wykonując zapytanie:

wynik otrzymuje już po około 30ms, a więc wzrost prędkości 1000 krotny!!!


Mar 12 2008

Nowy Prism

Tag: Blogrollkasandra @ 10:11

Wyszła nowa wersja Prism-a 0.9

Poprawiono niektóre błędy i znacznie przyśpieszono jego dzialanie.

Zapraszam do pobrania:
http://people.mozilla.com/~mfinkle/prism/prism-0.9.en-US.win32.exe


Mar 10 2008

Pływający kotek, czyli o korzystaniu z metod klasy A w obiekcie B.

Tag: PHPskowron @ 04:45

pływający kotekDzisiaj Bartek odkrył interesującą rzecz o której ani On ani ja wcześniej nie wiedzieliśmy. Być może i ktoś z Was również o tym nie wie, więc chętnie opowiemy :) Generalnie chodzi o to że… koty nie pływają pod wodą…

Continue reading “Pływający kotek, czyli o korzystaniu z metod klasy A w obiekcie B.”


Mar 10 2008

Krótko o funkcjach w MySQL

Tag: MySQLradmen @ 10:48

Podobnie jak PHP, C++, Java i masa innych języków programowania ma funkcje. Jak wiadomo mogą one posłużyć do wielu różnych rzeczy. W MySQL można je wykorzystać aby zwiększyć bezpieczeństwo. Zapisana funkcja/procedura może być bez problemu wywołana z poziomu PHP, ponieważ wystarczy wysłać zapytanie do bazy będące wywołaniem funkcji.
W dalszej części postaram się nieco opisać sposób tworzenia, oraz wykonywania funkcji.

Continue reading “Krótko o funkcjach w MySQL”


« Previous PageNext Page »