Archive by Author

Funcţie mysql de scoatere a unei chei dintr-un câmp

Scriam într-un articol despre o funcţie ce adăuga o cheie într-o listă.

În continuare am să vă prezint o funcţie mysql creeată tot de mine, care va scoate o cheie dintr-o listă ce conţine mai multe chei. Funcţia va primii doi parametrii şi anume: câmpul de unde dorim să extragem cheia, respectiv cheia care dorim sa o scoatem.

DELIMITER $$

DROP FUNCTION IF EXISTS `RM_KEY` $$
CREATE FUNCTION `RM_KEY`(lista TEXT,cheie INT(11))
RETURNS TEXT CHARSET utf8
BEGIN

  IF(lista = cheie)  THEN
    SET lista = '';
  ELSE
    SET lista = REPLACE(lista,CONCAT(cheie,','),    '');
    SET lista = REPLACE(lista,CONCAT(',',cheie,','),'');
    SET lista = REPLACE(lista,CONCAT(',',cheie),    '');
  END IF;

  RETURN lista;

END $$

DELIMITER ;

Să vedem un exemplu concret:

UPDATE grupuir SET id_persoane=RM_KEY(id_persoane,25) WHERE ID_grup=1

Funcţie mysql de adăugare cheie într-un câmp

Adesea în mysql se foloseşte relaţia 1 la mai multe sau relaţia mai multe la 1. De regulă construcţia acestor relaţii este formată prin separarea cheilor străine prin virgulă.

Aşadar  am creat o funcţie mysql care adaugă o cheie  în câmpul ce reţine cheile străine. Funcţia a fost creeată în scopul uşurării muncii.

Să luăm un exemplu în php: presupunem că avem o bază de date ce conţine două tabele, utilizatori respectiv grupuri. Mai mulţi utilizatori vor aparţine unui grup, astfel vom creea relaţia mai mulţi la 1. Tabela grupuri va conţine câmpurile: ID_grup , nume_grup şi id_utilizatori. Tabela utilizatori va conţine câmpurile: ID_utilizator şi nume. În câmpul id_utilizatori din tabela grupuri se vor reţine cheile utilizatorilor care aparţin unui grup separat prin virgulă.

Pentru manipularea datelor sa considerăm o aplicaţie scrisă in limbajul de programare php. Atunci când se pune problema adăugării unui utilizator la un grup, în aplicaţie va trebui sa facem o comandă de SELECT către serverul mysql care va returna un şir de caractere cu lista cheilor dintr-un grup. Pentru adăugarea cheii utilizatorului la campul selectat va trebui sa transformăm şirul de caractere într-un vector de tip array. La acest vector va trebui adaugatacheia utilizatorului. După adăugarea cheii se va transforma din nou într-un şir de caractere şi inserat in baza de date la câmpul menționat mai sus.

Funcția ADD_KEY() construită în mysql elimină operațiunile amintite la paragrafele anterioare. Parametrii tranzmişi acestei funcţii fiind câmpul unde se va introduce cheia şi cheia care dorim să fie introdusă. Luând exemplul de mai sus vom construi o comandă sql utilizând această funcție:

UPDATE grupuir SET id_persoane=ADD_KEY(id_persoane,25) WHERE ID_grup=1

În continuare am să va prezint construcţia funcţiei:


DELIMITER $$

CREATE FUNCTION `ADD_KEY` (lista TEXT,cheie INT(11))
RETURNS TEXT CHARSET utf8
BEGIN
  IF(lista='') THEN
    SET lista = cheie;
  ELSE
    SET lista = CONCAT(lista,',',cheie);
  END IF;
  RETURN lista;
END $$

DELIMITER ;

RSS Graffiti – aplicatie pentru facebook

De ceva vreme incoace am inceput sa socialize mai mult pe facebook. Imi place foarte mult acest site, deoarece nu este numai o retea de prieteni ci si un mijloc de promovare a afacerilor.

Daca detii un blog si ti-ai creat o pagina de prezentare pe facebook, ar fii ideal ca articolele ce le scrii sa apara si pe peretele paginii.

Pentru aceasta, eu iti recomand aplicatia RSS Graffiti. Se configureaza foarte simplu si este foarte practia. Ceace trebuie sa faci este sa introduci link-ul de rss a blogului tau in campul de configurare a aplicatiei (vezi imaginea de mai jos) iar celalalte detalii le vei gasi acolo. Dupa instalare, articolele tale vor aparea pe peretele paginii de facebook.

Ce face aplicatia RSS Graffiti? Aplicatia RSS Graffiti preia articolele tale prin intermediul fluxurilor rss si le posteaza pe peretele paginii de prezentare sau pe peretele paginii personale (depinde de configuratia ta).

Un avantaj major il constituie faptul ca poti seta mai multe link-uri rss. Poti de asemenea sa setezi aplicatia in asa fel incat sa iti apara comentariile de pe blog.

Mai multe informatii despre aceasta minunata aplicati le gasiti pe pagina oficiala a aplicatiei sau pe pagina de facebook.

Succes!

BlogInfo Tags – plug-in pentru inlocuirea constantelor bloginfo

Intr-un articol anterior am vazut cum putem obtine constantele blogului in continutul widgetului Text.

M-am gandit ca probabil functia care inlocuieste tagu-urile definite de mine va fi utila si in continutul articolelor si a paginilor. Folosind acceasi functie nu ne ramane decat sa aplicam filtrul pentru functia the_content(), care stim cu totii faptul ca afiseaza continutul articolului intr-o bucla.

Asadar plugin-ul care l-am scris, inlocuieste tagurile definite de mine in continutul widgetului Text, in continutul articolelor respectiv in continutul paginilor.

Aici gasiti link-ul pentru a descarca plugin-ul BlogInfo Ttags

Constante bloginfo in widget-uri wordpress

Constantele principale returnate prin functia get_bloginfo() din CMS-ul wordpress ofera posibilitatea de a manipula blogul intr-o maniera simpla. Aceste constante se refera in general la setarile blogului nostru, cum ar fii: numele blogului, adresa url, directorul themei curente etc.

In urma cu cateva zile am cautat prin fisierele CMS-ului o modalitate prin care sa pot folosi aceste constante in widgeturi (mai precis in widgetul Text). M-am gandit ca voi gasii predefinite niste tag-uri care se vor inlocui in textul widgetului, dar in zadar.

Asa ca m-am documentat de pe internet cum se pot aplica filtre pentru widgeturi si am inceput sa scriu o functie. Aceasta functie va inlocui tagurile predefinite de mine in textul widgeturilor.  Functia am scris-o in fisierul functions.php din directorul themei, dar exista posibilitatea de a construi un plug-in care realizeaza aceasta operatiune (probabil am sa scriu un articol special in acest sens).

In urmatoarele randuri am sa descriu functia amintita mai sus:


function replace_bloginfo_vars( $text )
{
$vars = array('name', 'description', 'admin_email', 'url', 'wpurl', 'stylesheet_directory', 'stylesheet_url',
'template_directory', 'template_url', 'atom_url','rss2_url', 'rss_url', 'pingback_url', 'rdf_url',
'comments_atom_url', 'comments_rss2_url', 'charset','html_type', 'language', 'text_direction', 'version'); //lista de argumente posibile pentru functia get_bloginfo()

foreach($vars as $key)
$text = str_replace("{bloginfo-$key}",get_bloginfo($key),$text); //se inlocuieste fiecare tag cu constanta returnata de functia get_bloginfo()


return $text;

}

add_filter('widget_text', 'replace_bloginfo_vars', 11); //se aplica filtrul pentru continutul widgetului

In continuare am sa descriu un exemplu pentru utilizare a acestor taguri. Sa presupunem ca in blogul nostru dorim sa afisam in sidebar versiune de blog care o avem instalata. Dupa ce am adus un widget Text in sidebar, vor aparea doua campuri: titlu si continut. In campul continut, vom adauga urmatorul text: Folosesc versiunea {bloginfo-version}. Acest tag va fii inlocuit cu versiunea de wordpress instalata. Mai jos am postat o captura a widgetului.

Widget Text

Tutorial de backup a bazei de date in cpanel

Cu totii stim ca cat de neplacute sunt pierderile de date. In tutorialul urmator voi explica in cativa pasi cum putem realiza o copie de siguranta a bazei de date (backup) periodic:

Pasul 1 : Dupa autentificarea in panoul de control intrati  in sectiunea Files -> File Manager File Manager

Pasul 2 : Creati un director in radacina (ex: /home/numesite/dbbackup)

Pasul 3 : Mergeti in panoul de control la sectiunea Advanced -> Cron jobs Cron Jobs cPanel

Pasul 4 : In campul Command scrieti urmatoarea instructiune:
date=`date -I` ; /usr/bin/mysqldump -hlocalhost -uuser_baza_de_date --password=parola_de_conectare --opt baza_de_date | gzip -9 -c > /home/numesite/dbbackup/$date.sql.gz

Pasul 5 : Setati intervalul la care doriti sa se execute copia de siguranta a bazei de date

*cuvintele ingrosate se vor inlocui cu parametrii setati de dvs.

No background a:hover IE6

Probabil ca suna interesant titlul, dar cu siguranta v-ati lovit de aceasta problema.

Mai concret, aceasta problema apare atunci cand o ancora <a href=”…” (link) are propietatea css “float”, iar aceasta se gaseste incapsulata intr-o lista ul > li, evident in borwserul Internet Explorer 6.

Solutia e simpla: in fisierul css la referinta a:hover se va trece propietatea zoom: 1.

Pentru cei mai pretentiosi care doresc sa le fie valid codul css avem 2 variante:

  1. In loc de propietatea zoom: 1 se poate trece clear: left|right|both in functie de propietatea float atribuita ancorei
  2. In interiorul tagului <head> se va introduce aceasta conditie <!–[if IE 6]> <style type=”text/css”> a:hover{  zoom: 1} </style> <![endif]–>

Bun venit softpixel

Va spun un bun venit celor interesat de programare, in special programatorilor web.

Acest blog se vrea a fi un mijloc de comunicare intre cei care doresc sa afle solutii la problemele legate de design web si de programare.

In zilele care urmeaza am sa incerc sa postez cate un articol legat de o problema des intalnita sau un tutorial.

Va doresc un blogging placut pe www.softpixel.ro!