Online Sitebuilder Magazin

Elindult az Online Sitebuilder Magazin a weboldalkeszites.org csapat jóvoltából. A magazin egy flash alapú online újság, de PDF változata is letölthető. Olvashatóak benne hasznos cikkek sitebuildereknek, illetve interjúk webfejlesztőkkel. Reméljük sikeres lesz és még hosszú ideig élvezhetjük a magazint.
Sitebuilder Magazin

MySQL replace függvény

A MySQL replace() függvényének ismerete sokszor hasznos lehet ha valamitől meg kell tisztítani az adatbázisban az adatokat, esetleg valamilyen szeparátort le kell cserélni.

Továbbolvas…

Cufon

A Cufon egy javascriptes megoldás a nem websafe fontok használatára. Tehát segítségével bármilyen betűtipust használhatunk a weboldalon sima szöveggel, nem kell képként kezelnünk ha egy speciális font-al akarunk valamit kiiratni. A kényelem mellett a másik előny az, hogy az oldal forrásában megtalálható lesz a szöveg, így a keresőrobotok látni fogják azt. Tehát ha valamilyen extra font-al akarjuk a h1-eket írni, akkor a Cufon a mi barátunk.
Továbbolvas…

MySQL replace into

A MySQL replace into ugyanúgy működik mint az insert, azzal a kivétellel hogyha a táblában található egy sor ugyanazzal a Primary Key-el vagy Unique index-el, akkor először azt törli és utána illeszti be az új sort. Hasonló tehát az Insert into ….. on Duplicate Key Update művelethez.
Továbbolvas…

On site SEO

On site SEO alatt én, a kereső számára jól értelmezhető oldalkialakítást értem. Nézzük akkor sorban hogyan is épül fel egy keresőbarát weboldal.

Meta tag-ek

A meta tag-eket a weboldal fejlécében adhatjuk meg. A felépítésük általában a következő:

<meta name="ide jön a tag neve" content="ide a tartalma" />

A fontosabb meta tag-ek:

Továbbolvas…

Mysql duplicate rows

Egy project alkalmával szembesültem a címben említett problémával. Adott volt egy adatbázis tábla melyben voltak duplikált sorok. A feladat ezeknek a soroknak a törlése volt. Első gondolatom egy temporary table megoldás volt, miszerint csinálok egy temp táblát abba egy selectel distinct -el a duplikációt jelző mezőn átrakom a recordokat és utána az eredeti táblát törlöm, a temp-et pedig átnevezem az eredeti nevére:

CREATE TABLE temp AS SELECT * FROM table1 GROUP BY FIELD;
DROP TABLE table1;
RENAME TABLE temp TO  table1;

Ez a megoldás teljesen jól működik és elvégzi a kivánt feladatot, de ha php-ból szeretnénk megvalósítani akkor ez három lekérdezés lesz, mert a multiple query az általában tiltva van. Ezért elkezdtem keresni egy elegánsabb megoldást és találtam is.
A dolog lényege hogy a táblánakt kétszer is használjuk a queryben egy alias-sal:

DELETE FROM table1
USING table1, table1 AS temp_table
WHERE (table1.id> temp_table.id)
AND (table1.FIELD=temp_table.FIELD)

A fenti lekérdezés megnézi hogy a két táblában (ami tulajdonképpen ugyanaz csak más néven) vannak olyan rekordok ahol a duplikált mező egyezik, viszont az azonosító nem(mert ha ez is akkor mindkét sort törölnénk), és törli ezeket.

Rss megjelenítése

Weboldalunkon egyszerűen jelenithetünk meg más oldalatól kapott rss anyagot. Az alábbi snippet müködéséhez szükségünk lesz cURL,és simplexml támogatásra a tárhelyünkön, de ezek szinte mindenhol alapból elérhetőek.
Az rss csatornák xml segítségével adják át az adatokat. Tehát amikor meg akarunk nyitni egy rss csatornát, például ezen blog-ét akkor egy xml-t fogunk kapni. A csatorna megnyitásához használhatnánk a file_get_contents függvényt is, de ott az időtullépést nem tudjuk kellően lekezelni ezért én cURL-t használok:

$url = "http://blog.greg-dev.com/feed/";
$options = array(
	CURLOPT_URL => $url,#url megadasa
	CURLOPT_RETURNTRANSFER => 1,#nem akarunk kozvetlen output-ot
	CURLOPT_CONNECTTIMEOUT => 2 ,# 2 masodperc-es varakozas utan megszakitjuk a kerest
	CURLOPT_MAXREDIRS      => 0,#maximum 0 atiranyitasig kovesse az atiranyitasokat
	CURLOPT_REFERER => "http://www.google.hu" #beallitjuk a referert
	
	);
	$ch = curl_init();
	curl_setopt_array($ch, $options);
	#megcsinaljuk a http kerest
	$result = curl_exec($ch);
	#lezarjuk a session-t hogy felszabaditsuk a rendszer-eroforrasokat.
	curl_close($ch);

A fenti kód lefutása után a $result változóban lesz a nekünk kellő xml adatállomány. A kapott adatot ezután valmilyen használható formára kellene alakítanunk és ítt veszzük igénybe aphp simplexml bővítményét ami az átadot xml-ből egy objektumot képez nekünk:

    $xml = simplexml_load_string($result);
    $output = '<ul>';
    $limit = 10;
    $i = 0;
	foreach($xml->channel->item as $item){
	  $output .= '<li><a href="'.$item->link.'" rel="nofollow" target="_blank">'.$item->title.'</a>';
	  $output .= '<br /><span class="description">'.$item->description.'</span>';
	  $output .= '</li>';
	  $i++;
	  if($limit != 0 and $i == $limit)break;
	}
   $output .= '</ul>';

Mivel a kapott adat lehet hogy tul hosszú ezért beállíthatunk egy limitet,melynek elérésekor a ciklus véget ér. Az xml tag-jai pedig az objectumon keresztül elérhetőek és tetszőleges kimeneti formába rendezhetőek.

Google Chrome Sony laptopokon

A Sony es a Google megallapodasat kovetoen a Sony bizonyos tipusu laptopjain a Google bongeszojet fogja default browser-kent telepiteni.
A Chrome mar jelenleg is korulbelul 6 szazalekat uralja a bongeszo piacnak, megelozve ezzel a Safari-t es az Opera-t es a harmadik legnepszerubb bongeszo a vilagon. Ezzel az egyeszseggel azonban ez valoszinuleg tovabb fog emelkedni bar a Sony az egyik legkisebb szamitopepgyarto ceg, de az egyeszseg segitheti a Google azon torekveseit hogy mas gyartokkal is leszerzodjon mint peldaul a Dell vagy a Hewlett Packard.
En szemely szerint orulok a hirnek, mert remelm hogy ezzel is csokken az Internet Explorer-t hasznalok szama.