About Robert Podwika

Programista, pasjonat z ponad 11 letnim doświadczeniem. Programuję w PHP, Java, C#, C++. Obecnie pracuję przy projektach w PHP na framework Symfony 4 oraz ReactJS

Jak przekonwertować stronę html do pdf

Wiele osób nie zdaje sobie sprawy, że istnieje możliwość konwersji strony internetowej do formatu PDF(Portable Document File). Aktualnie mamy do wyboru wiele narzędzi, które udostępniają taką funkcjonalność.

Najlepszym według mnie narzędziem do konwersji stron html do pdf jest pricexml.

Aplikacja obsługuje popularne formaty html, xhtml wraz z CSS, XML, SVG, JavaScript. Możliwe jest również dołączenie obrazków do pliku pdf w formatach: JPG, PNG, GIF, TIFF.

Narzędzie obsługuje wszystkie elementy html oraz czcionki w formacie OpenType, TrueType, CFF.

Przykładowe konwersje możecie zobaczyć tutaj.

[…]

Autor |17 stycznia, 2014|Tworzenie stron internetowych|0 komentarzy

Miernik siły hasła w JavaScript

Ten wpis poświęcę skryptowi, który mierzy siłę hasła w JavaScript. Do pomiaru użyję wyrażeń regularnych.

Zanim przejdę do kodu, trzeba określić kiedy hasło jest silne. Czy silne hasło to hasło zawierające 30 liter czy raczej takie które jest 10 znakowe i posiada małe/duże litery cyfry i znaki specjalne?

I tutaj z pomocą przychodzi matematyka. Weźmy pod […]

Jak stworzyć sklep internetowy

Zakładanie sklepu internetowego może wydawać się trudnym przedsięwzięciem. Może tak kiedyś było, ale dziś mamy do wyboru wiele rozwiązań, które pozwalają nam w prosty sposób założyć sklep internetowy.
Jeżeli zależy nam na czasie i nie wymagamy wielu zmian w kodzie lub personalizacji, to polecam sklepy „one-click”.

Oferta sklepów „one-click” polega na tym, że rejestrujemy konto w serwisie udostępniającym usługę i podczas rejestracji tworzony jest sklep internetowy. Najczęściej wymagana konfiguracja to podanie danych do serwisów płatniczych, allegro stworzenie własnych kategorii oraz co najważniejsze dodanie produktów.

Takie sklepy oferują minimalną funkcjonalność, która dla przeciętnego klienta jest wystarczająca. Przykładami takich sklepów są:

iai-shop,
home click shop.

Jednakże dla bardziej wymagających klientów polecam skorzystanie z sklepów, które należy samemu zainstalować na serwerze.

[…]

Autor |23 grudnia, 2013|Tworzenie stron internetowych|0 komentarzy

Obserwator w PHP

Jak pisałem w poprzednich postach, programowanie obiektowe wiąże się ściśle z pewnymi praktykami i wzorcami, które ułatwiają rozwiązywanie problemów napotykanych przez programistów. W poprzednich wpisach opisywałem wzorce kreacyjne, czyli takie, które odpowiadały za tworzenie obiektów. W tym wpisie opiszę wzorzec behawioralny. Wzorce behawioralne opisują relację pomiędzy obiektami oraz ich zachowania.
Wzorzec obserwator w PHP
Wzorzec obserwatora(ang. Observer pattern) odpowiedzialny jest za powiadamianie obiektu A o zmianie stanu obiektu B. Mówiąc ludzkim językiem, gdy coś się wydarzy w obiekcie A to informuje on obiekt B o tym, a obiekt B reaguje odpowiednio na to wydarzenie. Obiekt A jest nazywany „obserwowanym”, a obiekt B jest „obserwatorem”.

Na diagramie wygląda to tak:

W przykładzie, który przedstawię Subject to obiekt obserwowany, a ConreteObserver to klasy implementujące interfejs Observer.
interface Observer{
public function update(Observable $observable);
}
Zawiera deklarację metody update, która jest wywoływana w obiekcie obserwującym podczas zmiany stanu obserwatora.

[…]

Wzorzec Fabryka(Factory) w PHP

Fabryka jest bardzo popularnym kreacyjnym wzorcem projektowania aplikacji. W tym wzorcu klasa odpowiada, za tworzenie obiektu, który chcesz użyć. Wyobraźmy sobie to na przykładzie fabryki samochodów. Jesteśmy sprzedawcą i składamy zamówienie na Mercedesa klasy C i taka fabryka nam wyprodukuje taki samochód.

Prześledźmy poniższy kod obrazujący powyżej opisane przeze mnie zdarzenie.
<?php

interface […]

Dlaczego warto używać JQuery

JQuery to biblioteka, dzięki której pisanie skryptów w JavaScript okazało się przyjemne i proste. Nie musisz już zwracać uwagi na kompatibilność kodu JavaScript oraz pisać bardzo długich lini kodu aby uzyskać zamierzony efekt. JQuery jest bardzo intuicyjnym i jednocześnie potężnym narzędziem, które pozwala nam tworzyć zaawansowane strony internetowe.
Dlaczego warto używać JQuery?
Weźmy kilka przykładów kodu, […]

Autor |19 grudnia, 2013|JavaScript, Tworzenie stron internetowych|0 komentarzy

Canvas w HTML5

Element Canvas jest nowym znacznikiem w HTML5. Znacznik ten wprowadził do HTML obsługę renderowania grafiki 2D oraz 3D. Dzięki niemu za pomocą skryptów JavaScript możemy tworzyć zaawansowane aplikacje graficzne oraz np gry bez konieczności instalowania dodatkowych wtyczek takich jak flash lub Silverlight.

Canvas w prosty sposób umożliwia nam rysowanie elementów.

Prześledzmy kilka przykładów przygotowanych przeze mnie:

Jest […]

Autor |16 grudnia, 2013|JavaScript, Tworzenie stron internetowych|0 komentarzy

Wzorzec Rejestr(Registry) w PHP

Czym jest wzorzec Rejestr(Registry) i kiedy może się nam przydać?

Wzorzec Rejestru jest przydatny gdy chcemy mieć globalny dostęp do obiektów znajdujących się w jednym miejscu.  Jaka jest więc różnica pomiędzy Rejestrem, a zastosowaniem zmiennych globalnych? Otóż dzięki użyciu Rejestru mamy kontrole nad dostępem do obiektów. Podstawowymi metodami rejestru będą metody rejestrujące obiekt oraz pobierające go. Można jeszcze, a wręcz powinno się dodać metodę, która wyrejestruje obiekt, ale w tym prostym przykładzie to pominę. Rejestracja obiektu i jego pobieranie zostaną zaimplementowane poprzez funkcje magiczne __get() oraz __set(). Są to funkcje wywoływane w klasie w momencie kiedy próbujemy dostać się do nieistniejącej zmiennej w klasie. Na potrzeby rejestru, stworzyłem 3 proste klasy o nazwach A, B i C, których zadaniem jest coś wyświetlić.
 Implementacja wzorca Rejestru w PHP
class A
{
public function sayA()
{
echo 'a';
}
}
class B
{
public function sayB()
{
echo 'b';
}
}
class C
{
public function sayC()
{
echo 'C';
}
}
Następnie przechodzę do tworzenia rejestru. W poprzednim artykule opisywałem wzorzec Singleton, z którego teraz skorzystam. Ponadto będzie nam potrzebna tablica, która przechowa obiekty w rejestrze. Tablica zadeklarowana jest jako static ponieważ potrzebujemy wyłącznie jednej tablicy.

Najważniejszymi metodami są metody __get oraz __set, które odpowiadają za rejestrację obiektu i jego pobranie.

Metoda __get() sprawdza czy obiekt istnieje w rejestrze i jeśli tak to go zwraca, a jeżeli nie istnieje to wyrzuca wyjątek, że obiekt nie istnieje.

Metoda __set() zapisuje obiekt($value) w rejestrze pod nazwą $object. W tej metodzie powinniśmy dodać sprawdzanie czy obiekt już istnieje w tablicy, na podobnej zasadzie jak w metodzie __get(), ale w tym prostym przykładzie to pominę.
Implementacja klasy Rejestr w PHP
[…]

Autor |16 grudnia, 2013|PHP, Wzorce projektowe|0 komentarzy

Wzorzec Singleton w PHP

Wzorzec singleton-a przez wiele osób uważany jest jako antywzorzec ponieważ bardzo często jest nadużywany i niektórym osobom zastępuje użycie zmiennych globalnych. Jednakże są sytuacje, w których warto użyć singletona. Na przykład gdy chcemy pobrać połączenie z bazą danych w ciele funkcji, a nie chcemy dodawać kolejnego argumentu do funkcji.

Przykład singletona dla bazy danych:
<?php

class Database
{
private static $instance;

public static function getInstance()
{
if(self::$instance == null) self::$instance = new Database();

return self::$instance;
}

private function __construct Database(){
//polacz z bazą tutaj

}

}
Pierwszą rzeczą która powinna się rzucić w oczy jest prywatny konstruktor. W programowaniu prywatny konstruktor może być użyty tylko wewnątrz klasy, czyli tworzymy obiekt klasy w niej samej. Następnie zwróć uwagę na obiekt $instance oraz na metodę getInstance();

Obiekt $instance służy nam do przechowywania instancji klasy, natomiast metoda getInstance() w przypadku gdy nie ma instancji to tworzy ją, a jeżeli jest to ją zwraca. Słowo static gwarantuje nam to, że w czasie trwania programu/aplikacji będziemy mieli utworzoną wyłącznie jedną instancję klasy Database.

Przykład użycia: […]

Walidacja adresu e-mail w PHP

Jednym z często występujących problemów wśród webmasterów jest walidacja adresu e-mail. W PHP do walidacji danych używana jest funkcja preg_match. Funkcja ta przyjmuje jako pierwszy parametr wyrażenie regularne, natomiast drugi parametr to tekst, który ma zostać sprawdzony. Do większości potrzeb wystarczą proste wyrażenia regularne, jednak jeżeli chcemy być w 100% zgodni ze standardem powinniśmy użyć wyrażenia regularnego, które jest zgodne z RFC

[…]

Autor |10 grudnia, 2013|PHP, Tworzenie stron internetowych|0 komentarzy

Jak zrobić button w CSS3 wraz z gradientami i efektami

Większość programistów tworzy buttony w programach graficznych. Jednakże, można zrobić to o wiele łatwiej bez konieczności umieszczania grafiki na serwerze. Jak wiadomo im szybciej strona się ładuje tym lepiej; krótki czas ładowania strony ma ogromne znaczenie dla wyszukiwarek i każdy specjalista SEO powinien o tym wiedzieć. Poza tym strona obładowana grafiką nie łąduje się szybko na wolnych łączach internetowych.

Aby stworzyć button skorzystam z kilku efektów CCS3 takich jak text-shadow, box-shadow, linear gradient oraz border-radius.

text-shadow – odpowiada za cieniowanie tekstu
box-shadow odpowiada za cieniowanie pojemnika(kontenera, warstwy itp)
border-radius – jest to efekt, który zaokrągli nam warstwę.

[…]

Problem plecakowy czyli jak zoptymalizować pakowanie

Podczas pisania stron internetowych, a szczególnie w przypadku pisania sklepu internetowego prędzej czy później trafisz na problem Plecakowy. Czyli jak zoptymalizować pakowanie paczek do jakiegoś pojemnika. Wyobraźmy sobie sytuacje, że tworzymy list przewozowy dla kuriera. Klient w sklepie zamówił towary, które mają różną wagę. Naszym zadaniem jest tak spakować produkty by klient zapłacił jak najmniej za przesyłkę.

Problem plecakowy(ang. discrete knapsack problem) jest jednym z najczęściej występujących problemów optymalizacyjnych, przy którym należy wykorzystać algorytmy zachłanne.

Problem plecakowy czyli jak zoptymalizować pakowanie:

 Przy podanym zbiorze elementów o podanej wadze i wartości, należy wybrać taki podzbiór by suma wartości była możliwie jak największa, a suma wag była nie większa od danej pojemności plecaka.

Jak to zrobić? 

Najlepszym rozwiązaniem jest posortowanie paczek po wadze i pakowanie ich do plecaka od najcięzszej do najlżejszej. W przypadku braku miejsca, bierzemy nowy plecak.

 

Rozwiązanie problemu w PHP – kod obiektowy

[…]

Autor |5 grudnia, 2013|Algorytmy, PHP, Tworzenie stron internetowych|0 komentarzy

Odliczanie czasu w Jquery

Kolejny wpis poświęcę na napisanie prostego skryptu do odliczania czasu w Jquery. Często takie skrypty wykorzystywane są w stronach i aplikacjach www np. do odliczania czasu pozostałego do automatycznego wylogowania się z aplikacji.

Do tego celu wykorzystam dwie bardzo ciekawe funkcje w JavaScript mianowicie setInterval() oraz clearInterval().

Funkcja setInterval przyjmuje dwa argumenty pierwszym z nich jest […]

Autor |5 grudnia, 2013|Tworzenie stron internetowych|0 komentarzy

Tworzenie stron internetowych w modelu MVC

MVC jest to model programistyczny dzielący aplikację na trzy warstwy: model, widok(view) oraz kontroler(controller).

Model jest to warstwa odpowiadająca za obliczenia. Dzięki plikom modelów, możemy pobrać informacje z plików, bazy danych oraz odpowiednio je przetworzyć.

Widok jest warstwą prezentacji, dzięki której użytkownik może zobaczyć efekt działania aplikacji. W przypadku stron internetowych są to zazwyczaj pliki html.

Kontroler jest to warstwa, która łączy widok z modelem. Kontroler ma akcje, które są wywoływane na podstawie odpowiednich parametrów podanych przez użytkownika np. adres strony internetowej.
Praktyczne użycie wzorca MVC
Wyobraźmy sobie sytuacje, gdzie użytkownik wchodzi na stronę internetową pod adresem „http://rpodwika.pl/pliki/pobierzplik/id/3” co się wtedy dzieje?

Podczas wywołania tego adresu kontroller wie, że musi przekazać działanie kontrolerowi „pliki” a następnie wywołać akcje „pobierzplik” i przekazać parametr „id” o wartości „3”. Następnie w tej akcji tworzymy nowy obiekt modelu, który na podstawie wartości 3 zwróci odpowiednie dane, które zostaną wyświetlone za pomocą widoku „pliki/pobierzplik.html”

[…]

Autor |2 grudnia, 2013|PHP, Tworzenie stron internetowych|2 komentarze

Jquery prosty skrypt zakładek

W poprzedniej części omawiałem animacje, tym razem przyszedł czas na prosty skrypt zakładek napisany w JQuery. W poprzednich częściach omawiałem obsługę zdarzeń i kilka funkcji, które w zupełności wystarczają do napisania takiego skryptu.

Pisanie skryptów w JQuery powinniśmy zacząć od poprawnej struktury kodu HTML. W zakładkach będziemy potrzebować elementów, które możemy kilknąć by przejść do […]

Autor |29 listopada, 2013|Tworzenie stron internetowych|0 komentarzy

Warning: Use of undefined constant XML - assumed 'XML' (this will throw an Error in a future version of PHP) in /wp-content/plugins/wp-syntaxhighlighter/wp-syntaxhighlighter.php on line 1048