Cred ca cel mai enervant lucru in programarea web este sa te asiguri ca (scuzati cacofonia) codul client-side(html,css, javascript etc.) este cross-browser. Cred ca acest lucru da cele mai mari batai de cap web developerilor: sunt 5 browsere diferite (IE, Firefox, Chrome, Opera, Safari) si fiecare browser in parte are nu stiu cate versiuni iar companiile care fac aceste browsere, din cauza concurentei si rivalitatii, isi implementeaza fiecare propriile standarde.
Voi ce parere aveti? Care lucru credeti voi ca este cel mai enervant in programarea web?
De cand m-am apucat de barmanie nu prea am mai avut deloc timp sa mai studiez programarea web. In ultimile 6 luni m-am concentrat doar pe cocktailuri, long drinks-uri, cafele preparate, vinuri s.a.m.d. Ce mai 6 luni! Foarte aprinse si foarte nebune. Deci ca sa imi aduc putin aminte cate ceva despre primele 4 limbaje din programarea web o sa scriu definitia fiecaruia (din ce imi mai aduc aminte dupa vreo 2 ani si ceva de studiu intens al programarii web, studiu inceput absolut de la zero si dupa 6 luni de pauza totala). Sa ma corectati daca gresesc sau sa ma completati daca e cazul.
HTML inseamna structura.
CSS inseamna aspectul acestei structuri si a informatiei de pe structura.
PHP inseamna manipularea informatiei de pe aceasta structura.
MySQL inseamna stocarea informatiei.
Bucuria mea de acum e ca am gasit o meserie, barmania, din care imi voi castiga existenta multi ani de acum incolo. Iar programarea web va ramane un hobby pe care il voi practica in timpul meu liber. Deci am doua lucruri pe care le indragesc tot mai mult pe zi ce trece: o meserie si anume barmania si un hobby si anume programarea web.
Descarc fisierele plugin-ului. Dezarhivez .zip-ul. Bag folderul yoxview in folderul js din root-ul site-ului. In folderul js se afla, de asemenea, si jquery1.4.2.js, fisierul cu libraria jQuery. Sterg yoxview-nojquery.js, jquery-1.4.2.min.js, jquery.jsonp-1.0.4.min.js, jquery.yoxview-1.1.min.js.
Modific yoxview-init.js in:
var _yoxviewPath = getYoxviewPath();
document.write('<link rel="Stylesheet" type="text/css" href="' + _yoxviewPath + 'yoxview.css" />');
function LoadScript( url )
{
document.write( '<scr' + 'ipt type="text/javascript" src="' + url + '"><\/scr' + 'ipt>' ) ;
}
LoadScript(_yoxviewPath + "jquery.timers-1.2.min.js");
LoadScript(_yoxviewPath + "jquery.yoxview-1.1.js");
function getYoxviewPath()
{
var scripts = document.getElementsByTagName("script");
var regex = /(.*\/)yoxview.*/i;
for(var i=0; i<scripts.length; i++)
{
var currentScriptSrc = scripts[i].src;
if (currentScriptSrc.match(regex))
return currentScriptSrc.match(regex)[1];
}
return null;
}
Din folderul lang pot sterge toate fisierele in afara de en.js.
Dupa toate astea, folderul yoxview (care asa cum am zis se afla in folderul js din root-ul site-ului) va arata asa:

In acest fel ma scap de fisiere inutile. Nu are sens sa ocup spatiu pe server aiurea.
Acum nu imi mai ramane decat sa implementez plugin-ul in pagina mea web.
Descarc fisierele plugin-ului. Dezarhivez .zip-ul. Iau jquery.lightbox-0.5.js si il bag in folderul js din root-ul site-ului. In folderul js se afla, de asemenea, si fisierul care contine libraria jQuery. jquery.lightbox-0.5.css il bag in folderul css din root-ul site-ului. In folderul images din root-ul site-ului creez un folder lb-btns in care voi baga imaginile cu butoanele LightBox-ului din folderul images. Acum am grija sa modific chemarile butoanelor in fisierul jquery.lightbox-0.5.js de la linia 30 la 34.
Acum nu imi mai ramane decat sa implementez plugin-ul in pagina mea web.
Ca tot am inceput sa vorbesc despre cod procedural reutilizabil am sa prezint cateva functii PHP foarte utile in orice proiect.
read_images() – citeste imaginile dintr-un folder de pe server si le incarca intr-un array
function read_images($folder, $allowed_extensions = NULL, $min_width = NULL, $max_width = NULL, $min_height = NULL, $max_height = NULL, $min_size = NULL, $max_size = NULL) {
//-----specific valorile default
$allowed_extensions = (isset($allowed_extensions)) ? $allowed_extensions : array('.jpg', '.jpeg', '.gif', '.png');
$min_width = (isset($min_width)) ? $min_width : 1;
$max_width = (isset($max_width)) ? $max_width : 10000;
$min_height = (isset($min_height)) ? $min_height : 1;
$max_height = (isset($max_height)) ? $max_height : 10000;
$min_size = (isset($min_size)) ? $min_size : 1;
$max_size = (isset($max_size)) ? $max_size : 10000;
//-----initializez array-ul in care voi strange numele imaginilor de pe server
$images = array();
if (is_dir($folder)) {
//-----deschid folderul de imagini pentru a-l citi
if($handle = opendir ($folder)) {
//-----citesc folderul
while ($image_name = readdir($handle)) {
//-----"." reprezinta folderul curent iar ".." reprezinta folderul anterior
if ($image_name != '.' && $image_name != '..') {
$image_extension = substr($image_name, strrpos($image_name,'.'),100);
$image_extension = strtolower($image_extension);
if (in_array($image_extension,$allowed_extensions)) {
$properties = @getimagesize($folder.'/'.$image_name);
$size = round(filesize($folder.'/'.$image_name) / 1024);
if ($properties[0] >= $min_width && $properties[0] <= $max_width &&
$properties[1] >= $min_height && $properties[1] <= $max_height &&
$size >= $min_size && $size <= $max_size) {
$images[] = $image_name;
}
}
}
}
closedir($handle);
}
}
return ($images);
}