Posty

[PHP] Jak zrobić system tagów?

System tagów to przydatne rozwiązanie, które pozwala na kategoryzację i indeksowanie treści strony internetowej. Dzięki zastosowaniu systemu tagów, użytkownicy mogą łatwo znaleźć interesujące ich treści oraz przeglądać je według określonych kategorii. W tym artykule omówię, jak stworzyć prosty system tagów w PHP, który będzie skuteczny i łatwy w obsłudze. Na potrzeby tego wpisu załóżmy, że chcemy zrobić tagi do prostej strony z artykułami. Baza danych Pierwszym krokiem w tworzeniu systemu tagów jest zaprojektowanie odpowiedniej struktury bazy danych. Baza danych będzie przechowywać informacje o tagach oraz powiązania między tagami a artykułami. Schemat bazy powinien wyglądać tak: Tabela "tags": - id (unikalny identyfikator) - name (nazwa tagu) Tabela "articles": - id (unikalny identyfikator) - title (tytuł artykułu) - content (treść artykułu) Tabela "article_tags": - article_id (klucz obcy do tabeli "articles") - tag_id (klucz ob

[PHP|Laravel] Logowanie OAuth2

Siemka! Miło, że wpadłeś na mojego bloga. W tym wpisie będziemy ogarniać logowanie za pomocą OAuth2 do Twojej aplikacji. Laravel Passport Do stworzenia tego logowania będzie potrzebna biblioteka Laravel Passport , która posiada wsparcie dla OAuth2. Jeśli masz zainstalowaną tą bibliotekę, przejdź do następnego kroku. Jeśli nie zainstalowałeś jeszcze Laravel Passport, przejdź do wpisu Instalacja Laravel Passport . Migracja W celu utworzenia niezbędnych tabel do przechowywania klientów OAuth2 i tokenów dostępu, uruchom emigrację. Wykonaj następujące polecenie: php artisan migrate . Klucze szyfrowania W tym kroku wygenerujemy klucze Encryption keys i Personal access client niezbędne do działania uwierzytelniania i autoryzacji Laravel Passport. Wykonaj polecenie: php artisan passport:install . Dodanie traita HasApiTokens Jeśli wykonałeś już powyższe kroki, możesz teraz dodać traita HasApiTokens do modelu uzytkownika - User , który umożliwi użytkownikowi generowanie tokenów dostęp

[HTML] Jak zrobić suwak?

W HTML5 nie ma problemu z tworzeniem suwaków, a co więcej nie trzeba używać do tego żadnych bibliotek JavaScript czy CSS. W celu utworzenia suwaka, posłużyć się należy znacznikiem input range . Przykład 1 <label for="volume">Głośność</label> <input type="range" id="volume" name="volume" min="0" max="100" value="50" step="10" /> Głośność Jak widzisz, stworzenie suwaka jest bardzo proste. W przykładzie powyżej użyte zostały dodatkowe atrybuty: min, max, step i value. W atrybucie min ustawiamy minimalną wartość dla suwaka, w atrybucie max - wiadomo. Atrybut step zawiera wartość kroków o jakie ma przeskakiwać suwak. Chyba o value nie muszę pisać. Oczywiście atrybuty te są opcjonalne i można ich pominąć. W powyższym przykładzie suwak będzie przesuwał się po linii poziomej, ale można również ustawić go w pozycję pionową. Aby to zrobić, należy użyć następującej reguły CSS: input[

[PHP] Jak zapisać obraz do tablicy?

Czy da się zapisać obraz do tablicy? Przecież jest to plik binarny. Oczywiście, że da się to zrobić i nie jest to nic trudnego. Obraz w tablicy zapisujemy jako wartości RGB kolorów pikseli wraz z ich pozycjami. Przykład <?php // Wczytywanie obrazu $image = imagecreatefromjpeg('path/to/image.jpg'); // Pobranie szerokości i wysokości obrazu $width = imagesx($image); $height = imagesy($image); // Tworzymy tablicę dla obrazu $image_array = []; // Iterowanie po każdym pikselu i zapisywanie jego wartości do tablicy for($y = 0; $y < $height; $y++) { for($x = 0; $x < $width; $x++) { $rgb = imagecolorat($image, $x, $y); $r = ($rgb >> 16) & 0xFF; $g = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; $image_array[$y][$x] = [$r, $g, $b]; } } // Zwalnianie pamięci imagedestroy($image); W powyższym przykładzie, każdy piksel obrazu jest zapisywany jako trójelementowa tablica [R, G, B].

[PHP] Jak podzielić tablicę?

PHP ma wbudowaną funkcję do dzielenia tablic, a jest nią array_chunk . Funkcji array_chunk musimy przekazać dwa wymagane argumenty: ( array ) $array - tablicę do podziału oraz ( int ) $length - ilość kawałków. Trzecim argumentem, który można przekazać jest ( bool ) $preserve_keys - zachowanie lub przenumerowanie kluczy. Domyślną wartością jest false , czyli indeksy nowych tablic (kawałków) będą numerowane kolejno od 0. Funkcja array_chunk dzieli tablicę na równe części. Przykład użycia 1 <?php $big_array = ['serce', 'miłość', 'przyjaźń', 'pasja', 'tęsknota', 'marzenia', 'nadzieja', 'samotność', 'piękno', 'magia', 'życie', 'szczęście', 'smutek', 'przeznaczenie', 'wolność', 'odwaga', 'piękność', 'sen', 'przygoda', 'inspiracja'] ; // Tablica $new_array będzie zawierała 4 tablice po 5 elementów. $new_array = array_chunk($

Najciekawsze rozszerzenia domen

W tym wpisie publikuję listę najciekawszych według mnie rozszerzeń nazw domen. .tech - np. dla firm technologicznych, startupów lub blogów o tematyce technologicznej. .top - np. dla różnego rodzaju rankingów. .art - np. dla artystów, galerii sztuk, blogów artystycznych. .best - np. dla stron z recenzjami, rankingami, zestawieniami najlepszych produktów lub usług. .blog - np. dla blogerów, pisarzy, dziennikarzy, którzy chcą prowadzić swoje własne blogi. .contact - np. dla stron kontaktowych, formularzy kontaktowych, wizytówek firm. .dev - np. dla programistów, firm zajmujących się tworzeniem oprogramowania, programistycznych blogów. .fail - np. dla stron, które prezentują porażki, błędy, niepowodzenia. .fun - np. dla stron z zabawnymi treściami, memami, grami. .group - np. dla grup społecznościowych, stowarzyszeń, klubów. .help - np. dla stron oferujących pomoc, wsparcie, porady. .in - np. dla stron osobistych, blogów, portfolio. .life

[CSS] Jak zrobić migające tło?

Z tego wpisu dowiesz się jak zrobić animowane migające tło na stronie. Aby zrobić migające tło, tzn. zmieniające kolor z jednego na drugi, posłużyć się trzeba regułą tworzenia animacji - @keyframes Przykład W poniższym przykładzie definiujemy animację "blink" zmieniającą kolor tła z pomarańczowego na zielony. Następnie wywołujemy stworzoną animację dla znacznika body. Oczywiście kolory i prędkość animacji każdy sobie ustawi wedle swojego uznania. @keyframes blink { 0% { background-color: orange; } 50% { background-color: green; } 100% { background-color: orange; } } body { animation: blink 2s infinite; }