Autor wpisu: Jaroslaw Mężyk, dodany: 30.03.2008 14:45, tagi: php
Autor wpisu: Zyx, dodany: 29.03.2008 20:23, tagi: php
Autor wpisu: Athlan, dodany: 01.03.2008 09:57, tagi: php, internet
Często budujemy linki SEO friendly umieszczając tytuły newsów, kategorii, produktów etc. Problemem może być powtarzanie się tytułu (dajmy na to nazwy produktu) zawartego w URL:
http://example.com/nazwa-produktu.html
Oczywiście można to objeść podając ID produktu i kategorii w adresie:
http://example.com/6521,nazwa-produktu.html
Chcemy tego uniknąć. Jak zatem rozwiązać problem zdublowania? Przed rozpoczęciem działań stwórzmy sobie mały plan działania:
- Zamiana tytułu newsa ze zwykłego na SEO friendly.
- Pobranie tytułów newsów pasujących do wzorca: LIKE ‘nasz-tytul%’.
- Dodanie sufiksu do tytułu -2 (jeżeli istnieje -2 wówczas -3), tak aby powstał nasz-tytul-2, nasz-tytul-3 w przypadku powtórzeń.
Krok 1. Stworzenie tytułu SEO friendly (listing).
Krok 2. Pobranie podobnych tytułów z bazy danych (listing).
Krok 3. Dodanie sufiksów do tytułów, jeżeli istnieją podobne, które uniemożliwiają dodanie rekordu (listing).
Teraz zmienna $sRewrite zawiera tytuł SEO, który możemy śmiało wpisać do bazy danych - na pewno sie nie powtórzy :)
Note: Przykłady zostały opisane na bazie mojego frameworka Vframe używając klasy Vframe_Util_Rewrite z której można skorzystać.
Autor wpisu: Zyx, dodany: 29.02.2008 10:10, tagi: php
Autor wpisu: widmogrod, dodany: 29.02.2008 02:59, tagi: php
asyncPost(java.lang.String url, java.lang.String postData, ResponseTextHandler handler) Makes an asynchronous HTTP POST to a remote server.Zastosowanie trywialne ..
HTTPRequest.asyncPost("http://example.pl","id=2",new MyResponseTextHandler());..prawie, bo żadne dane nie zostały przesłane.Firebug pokazuję jakie dane POST zostały wysłane (nie do w/w przykładu):a powinny one wyglądać mniej więcej tak:Pomyślałem że 2gi parametr postData powinien być jako JSON ale - też nie :/.Nie ma tego złego bo nauczyłem się generować JSON w GWT :)Google.pl pomogły znaleźć rozwiązanie - linkwystarczy dodać w kodzie php takie 2 linie kodu i wszystko działa :)
$postData = array();parse_str(file_get_contents('php://input'), $postData);
Autor wpisu: Athlan, dodany: 19.02.2008 21:04, tagi: framework, php
Ostatnio zdenerwowałem się pisząc walidację formularza i nakładanie filtrów na pola formularzy w jednym z panelu administracyjnych. Co chwilę coś nie działało. Framework jest po to, aby unikać takich sytuacji. Aby uniknąć takich sytuacji w przyszłości postanowiłem napisać dość przydatną klasę Vframe_Form integrując ją z Vframe_Validator i Vframe_Input (pluginem POST). Zanim się napisze klasę, wypadałoby napisać mały prototyp.
Tak oto powstała klasa obsługi formularzy oraz jego elementów. Użycie jest bardzo wygodne, po zainicjowaniu $oForm->init() nasz komponent wykonuje filtracje, a następnie walidacje danych wejściowych. Ewentualne błędy można wychwycić poprzez wywołanie metody $oForm->error(’nazwa_pola’); - zwrócony zostanie string w przypadku wystąpienia błędu, null jeżeli go nie ma. Aby sprawdzić, czy wystąpiły jakieś błędy przy walidacji - nie podajemy parametry metody error: $oForm->error(); Zostanie zwrócona liczba błędów (jeden dla każdego pola), jeżeli 0 - możemy wykonać akcję.