Blog Update – Random Post

January 07, 2010 By: WeeGee Category: IT, Personale

A bit… Din ciclul “cand romanasii se ajunta intre ei”, in cazul de fata cu niste cod php la liber, link-ul “Random Post” (din bara de sus), cel de care am zis acum vreo luna aici, functioneaza cum trebuie si merge de fiecare data acum. Asta cu ajutorul plugin-ului Random Post Link, adopdand astfel o metoda “proper” care se folosete de DB pentru posturi si tot ce mai trebuie. In plus, seteaza si un cookie pentru a marca posturile vizitate astfel incat sa nu mai “land-uiesti” pe ele din nou cand “browse-uiesti” prin posturi random (ma doare limba). Eu am mai facut in folder-ul ‘random’, care exista deja, un index.php cu un redirect catre ‘http://www.weegee.ro/?random’, link-ul care la randul sau redirectioneaza catre un post aleator. Suna incurcat insa altfel nu puteam sa il pun asociat unui link in bara de sus (blog page) ci doar cu un link integrat undeva intr-un fisier template, din tema blogului.

Cam atat… Now I should be calculating some parameters in the train’s suspension and, besides that, writing tons of text by hand, but this looks more fun :D . Happy exploring.

Random Post

December 02, 2009 By: WeeGee Category: IT, Personale

Am facut o pagina noua – Random Post – al patrulea… index din bara de meniu de deasupra, care acceseaza un post la intamplare de pe blog. Ideea e creatza iar solutia e foarte simpla, mai ales in varianta actuala, care mai da si rateuri (cam 1 din 5 in medie, dupa un test cu 50 de accesari). Pentru cine e rookie sau newbie (ca si mine) si e interesat, this is how it’s done:

- se creeaza un folder cu numele “random” in radacina blogului (sau in orice alta parte) pe serverul web;

- se creeaza o pagina noua in blog (Dashboard -> Pages) cu numele “Random Post” sau ceva relevant, iar permalink-ul paginii sa trimita catre folderul nou creat (in cazul meu http://www.weegee.ro/random/);

- in folderul numit “random” se creeaza un fisier cu numele “index.php” (sau ce nume principal este setat in DirectoryIndex-ul serverului web) care sa contina urmatorul cod:

Cod PHP

unde:

1) in loc de http://www.weegee.ro se scrie adresa blogului vostru;

2) in loc de 4 respectiv 4160 se scrie indexul primului respectiv ultimului post al blogului vostru. Mai exact, fiecare post are un index. Cel mai bine se vede la blogurile care au lasat “permalink settings” pe default, iar posturile au adrese de genul http://www.weegee.ro/?p=123, insa index au chiar si posturile care au un nume bazat pe zi/luna/nume/titlu sau vreo combinatie intre ele (cum e si la mine). Astfel, in functie de setarile permalink-urilor, accesarea unei adrese de genul http://www.weegee.ro/?p=123 redirectioneaza vizitatorul spre o adresa… in genul celor ale posturilor mele, rezultatul final fiind… cel care se vede in navigation bar-ul browser-ului. Ma rog, multa teorie aiurea… Last but not least, pentru a afla indexul primului si ultimului post, se merge in editarea posturilor cu pricina si se citeste in navigation bar (browser) cifra/numarul din coada linkului.

…si asta este… it should work. De mentionat cateva… observatii:

- e lesne de inteles ca operatiunea asta merge doar pe bloguri self hosted… asa ca daca aveti blog la wordpress.com… tough luck;

- rata de succes este de ~80%, pe incercate. In caz ca nu merge, programelul “cheama” pagina de eroare 404 si da “page not found”. Ce nu imi explic este urmatorul lucru: eu am 4160 de indecsi si 427 de posturi (nu am inteles de ce sare numere intrucat nu am stat sa inteleg sistemul lui de indexare… probabil ca in range-ul ala de numere indexeaza si categoriile si tag-urile si tot ce misca), ceea ce ar insemna, matematic si statistic, ca rata de succes ar trebui sa fie undeva pe la 11%, departe de ce se intampla de fapt. De ce se intampla asta… nu stiu… some things elude me… si probabil e mai mult decat o simpla chestiune de matematica si statistica.

- ca rata de succes sa fie 100% programelul ar trebui sa caute si selecteze din tabela cu posturi a bazei de date doar intrarile cu indecsi… valizi ai posturilor. Mai am ceva de rumegat si invatat pana acolo but I’m working on it… Deocamdata merge decent si asa.

Cam atat… daca sunt intrebari si/sau nelamuriri sau chiar completari si sfaturi (binevenite) le astept aici.