Jeżeli posiadasz w WordPressie dużo artykułów (niech będzie, że więcej niż 5000) i na dodatek często w trakcie pisania używasz klawisza „Zapisz szkic” żeby powrócić do tworzenia artykułu po pewnym czasie lub też, już po opublikowaniu, dokonujesz w nim wielu zmian, to musisz liczyć się z tym, że baza używana przez wordpressa spuchnie o poprzednie wersje wpisów.
Kategoria: Bez kategorii Strona 6 z 23
Nie wiem jak wy, ale ja obserwuję całkiem nowy rodzaj spamu, a właściwie to dwa, choć ten drugi to raczej jest na tyle dowcipnym, że aż go tutaj zacytuję.
Pierwszy trend, dość wredny, to wykorzystywanie już treści istniejących komentarzy do … spamowania.
Drugi, zabawny cytuję:
Mam wielką prośbę, bo właśnie planuję stworzyć blog przybliżony do tego. Napisz, błagam, jak się uchować przed spamerskimi postami, bo kolega mi powiedział, że to najogromniejszy problem… Z góry merci. A tak w ogóle, to świetnie piszesz :). Buziaki dla wszystkich.
Oczywiście „autorem” jest dwuwyrazowa fraza, a celem witryna sklepowa, ale to naprawdę zabawne, żeby powoływać się na ochronę przed spamem w spamerskiej wiadomości.
Czy też może to szczyt bezczelności?
Jak policzyć wpisy w kategorii? Okazuje się że bardzo, ale to bardzo prosto.
Na stronie kategorii jest najłatwiej, ponieważ zmienna $cat zawiera numer aktualnie przeglądanej kategorii.
get_category($cat)->category_count
Oczywiście sami podamy numer to też zadziała:
get_category(11)->category_count
Można też wybrać kategorię za pomocą sluga:
get_category_by_slug('nazwa-kategorii')->category_count
Jeżeli chcemy użyć nazwy to musimy skorzystać z get_term_by:
get_category(get_term_by('name', 'Nazwa Kategorii', 'category')->term_id)->category_count
W ostatnim przypadku należy pamiętać, że nazwa kategorii nie jest unikatowa, więc w serwisie może być więcej niż jedna kategoria o wybranej nazwie.
Co ciekawe obiekt kategorii ma dwa pola zawierające dane na temat liczby wpisów (count, category_count), ale nie widzę między nimi różnicy.
Może Ty znasz różnicę?
Prawie 3 lata temu zastanawialiśmy się z klientem biuro obsługi podatkowej jak stworzyć system webowy, który pozwalałby klientom oraz pracownikom biura na przekazywanie danych istotnych z punktu widzenie prowadzenia firmy, a jednocześnie na tyle prostych, żeby nie trzeba było przechodzić kursu księgowości, żeby zrozumieć działanie takiego systemu.
Na początku został stworzony prosty rejestr klientów w którym każdy z nich może sobie sprawdzić podstawowe dane księgowe. System na start został wyposażony w możliwość wysyłania powiadomień, w których to zawarte są informacje na temat nadciągających nieuchronnie terminów płatności różnych rabowanych nam przez państwo składek. Sam je płacę, więc wiem, a latami miałem ustawioną przypominajkę z kalendarza google.
Wracając do meritum sprawy. Po kilkunastu miesiącach pracy pojawiła się w systemie, jedna z wielu, mała modyfikacja, polegająca na tym, że do firm typu „spółka” można było dołączyć dane wspólników, które mogli oni sobie sprawdzać samodzielnie.
A potem pojawił się błąd. Klient zgłasza, że nie można wprowadzić numeru NIP wspólnika. Zaczynam sprawdzać, raz, drugim trzeci. W kodzie nie ma NICZEGO co sugerowałoby jakiekolwiek operacje na nipie, a walidacja nigdy klientowi nie była potrzebna, bo i sam nip raczej służy do dodatkowej weryfikacji, a nie do czegoś istotnego. Co grosza, moje testy nie pokazywały występowania błędu!!! Wpisywałem prawdziwe, zmyślone i całkiem złe numery nip i nigdy nie napotkałem na opisywany problem. Najgorszym objawem było to że w NIP pojawiał się, niezależnie od wpisywanego numer: 4294967295. Zupełnie nie zwróciłem na tą liczbę uwagi, a powinienem, bo jest ona rozwiązaniem kłopotu.
Problem polegał na użytym polu w bazie danych MEDIUMINT który jest typem domyślnym w czasie deklaracji w mysql pola typu INT ma, bez znaku, taką właśnie wartość maksymalną.
Co ciekawe, przy konstrukcji bazy kilkanaście miesięcy wcześniej i definicji pola NIP na potrzeby firm, nie popełniłem tego błądu i wszystko działało prawidłowo.
W drugi weekend grudnia w dniach 11-12 odbędzie się w Łodzi, na terenie Politechniki Łódzkiej, polska edycja WordCamp – czyli konferencja poświęcona wordpressowi. Na razie nie ma jeszcze programu, ale patrząc na prelegentów już wiem, że warto.
Więcej informacji znajdziecie na stronie: WordCamp.
Opiekuję się serwisem, który ze względu na długą historię życia jest napisany tak, że korzysta z kodowania ISO-8859-2, czyli tytułowego latin2. Jakiś czas temu była aktualizowana baza danych z pg 8.2 do pg 8.4 z konwersją bazy do utf-8 jako początkiem procesu zmiany strony kodowej całego serwisu w którym coraz częściej pojawia się potrzeba wykorzystania znaków z szerszego zakresu znaków niż oferuje latin2.
Obawa co do współpracy aplikacji z bazą były, ale jedno polecenie powoduje bezkłopotową konwersję znaków na poziomie połączenia z serwerem db.
Zapisuję dla pamięci
ALTER USER user SET client_encoding = 'LATIN2';
dzięki depesz
Na podstawie otrzymanych plików graficznych wytworzyłem i wdrożyłem motyw do wordpress’a. W motywie wykorzystano możliwości jakie daje wersja 3. Wykorzystano możliwość budowania menu oraz ze zdefiniowanych wielu stref na widgety. Do wdrożenia użyto wtyczek zapewniające możliwość obsługi następujących funkcjonalności:
- zarządzania biuletynem
- generowanie sitemap.xml
- tworzenie mapa strony
- prezentacja działów jako lista artykułów grupowane na podkategorie (zawężona mapa strony)
- formularz kontaktowy
- prezentacja popularnych wpisów
- prezentacja relatywnej daty publikacji (10 minut temu)
- oprogramowanie
- wodrpress
- cel
- wdrożenie serwisu finansowego z wykorzystaniem wordpress
- zakres prac
- pocięcie grafiki, wytworzenia szablonu do wordpress
- technologie
- php, xhtml, jquer, css sprites
Przydatne, dziękuję.
Mamy plik zawierający następujące dane:
Iza Aga Aga Leon Aga Iza
Aby policzyć unikatowe linie, posortować i wyświetlić on najczęściej występujących używamy następującej komendy:
sort nazwa.txt | uniq -c | sort -n -k1 -r
Co da jako
3 Aga 2 Iza 1 Leon
Oczywiście można to zastosować do innych danych.
Pewien dość mocno obciążony serwer www (apache2) strasznie dużo zapisywał w katalogu sesji PHP. Na tyle dużo, że zaczeło to być problemem, jeszcze nie krytycznym, ale już zauważalnym.
Jednym z możliwych rozwiązań jest przeniesienie sesji do bazy danych, ale ze względu na specyfikę danych sesyjnych nie jest to szczególnie dobre rozwiązanie przy tej wielkości serwisu, a dodatkowo serwis korzysta z postgresa, więc wrzucanie w niego sesji jest jeszcze mniej polecane.
Rozwiązaniem zastosowanym, a które szczerze polecam jest memcache.
Instalacja jest banalnie prosta. Najpierw odpowiednie moduły na serwerze: (dla debianowaych):
sudo apt-get install memcached php5-memcache
Sprawdzamy czy serwer memcache wstał
netstat -ntlp | grep mem
oraz czy w używany php jest załadowany moduł memcache.
W konfiguracji php należy zmienić sposób przechowywania sesji oraz ustawić dane dostępowe do memchache’a:
;session.save_handler = files
session.save_handler = memcache
session.save_path="tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"
Teoretycznie powinno zadziałać.
Niestety u mnie wystąpił następujący błąd:
Fatal error: session_start() [function.session-start]: Failed to initialize storage module: memcache (path: [...]/session) in /var/virtuals/[...].php on line 41
Który związany był z ustawianiem przez plik konfiguracyjny serwisu następującej wartości
ini_set("session.save_path",SESSION);
i dopiero po jej usunięciu wszystko zaczęło śmigać tak jak powinno.