Galerie Foto in drupal
» Scris in categoria: Drupal, PHP — @ 20:39
Galerie Foto in Drupal, cu niste artificii pentru SEO
In ultimul proiect am intampinat o problema din punct de vedere SEO cu o galerie foto implementata intr-un site pe cms Drupal. Mai jos voi arata codul pentru generarea acelei galerii foto si mai ales solutiile gasite pentru problema intampinata.
Pentru galeria foto (incorporata in fiecare pagina sub forma de carusel) aveam nevoie sa generam imaginile folosind image_attach si un mic cod php:
<?php global $base_url; if (arg(0) == 'node' && is_numeric(arg(1))) { $node = node_load(arg(1)); if (isset($node->iids)) { $output['subject'] = t('Attached images'); $content = ''; foreach ($node->iids as $iid) { $image = node_load($iid); if (node_access('view', $image)) { $title=$image->title; $img_hrefs=$image->images; $img = image_display($image , variable_get('image_attach_block_0_size', IMAGE_GALLERY-THUMB)); $content .= '<li><a href="'.$base_url.'/'.$img_hrefs['gallery'].'" rel="shadowbox">' .$img. '<span>'.$title.'</span></a></li>'; } } print($content); } } ?>
Problema era ca atunci cand clientul a adaugat pozele nu a specificat un titlu pentru acestea si dupa cum stiti drupal pune automat numele fisierului in tagurile alt si title ceea ce a dus la o densitate foarte mare in pagini pentru “cuvantul cheie” .jpg, mai ales ca, daca va uitati in codul php precedent dupa fiecare imagine exista si un <span></span> cu titlul imaginii.
Solutia a fost ca in acele “span-uri” sa punem cuvintele cheie care ne intereseaza, dar nu puteam pune un singur cuvant cheie sau o singura expresie ca ajungeam la o densitate prea mare ptr. acel cuvant (galeria avand peste 20 de poze), asa ca am folosit doua cuvinte cheie care sa se schimbe dupa fiecare loop astfel:
<?php global $base_url; if (arg(0) == 'node' && is_numeric(arg(1))) { $node = node_load(arg(1)); if (isset($node->iids)) { $output['subject'] = t('Attached images'); $content = ''; $key = 0; foreach ($node->iids as $iid) { $key++; $image = node_load($iid); if (node_access('view', $image)) { $title=$image->title; $img_hrefs=$image->images; $img = image_display($image , variable_get('image_attach_block_0_size', IMAGE_GALLERY-THUMB)); if($key % 2 == 0) { $content .= '<li><a href="'.$base_url.'/'.$img_hrefs['gallery'].'" rel="shadowbox">' .$img. '<span>primul cuvant cheie</span></a></li>'; } else { $content .= '<li><a href="'.$base_url.'/'.$img_hrefs['gallery'].'" rel="shadowbox">' .$img. '<span>al doilea cuvant cheie</span></a></li>'; } } } print($content); } } ?>
Astfel am scapat de numele fisierului dintre <span></span> dar tot ne-a ramas in atributele alt si title de la imagine. Puteam sa punem si in ele ce cuvinte cheie doream, dar iarasi depaseam densitatea corecta a cuvintelor cheie in pagina asa ca am hotarat sa lasam numele fisierului insa fara .jpg care ne iese cu o densitatea inca prea mare la o analiza SEO.
Pentru asta, am adaugat in template.php (in tema activa ptr. site) urmatoarea functie:
function valmin_image($path, $alt = '', $title = '', $attributes = NULL, $getsize = TRUE) { $alt = str_replace(".jpg", "", $alt); $title = str_replace(".jpg", "", $title); if (!$getsize || (is_file($path) && (list($width, $height, $type, $image_attributes) = @getimagesize($path)))) { $attributes = drupal_attributes($attributes); $url = (url($path) == $path) ? $path : (base_path() . $path); return '<img src="' . check_url($url) . '" alt="' . check_plain($alt) . '" title="' . check_plain($title) . '" ' . (isset($image_attributes) ? $image_attributes : '') . $attributes . ' />'; } }
Prin aceasta functie, in atributele alt si title in loc de “poza-mea.jpg” va aparea “poza mea”. Sper ca va ajuta pe cineva, chiar daca nu exact pentru ceea ce ne-a ajutat pe noi.
Comentarii (0)
Lasă un răspuns
Ultimele Articole
- Galerie Foto in drupal
- Efect “page peel” prin jQuery
- Script preluare webcam jurnalul
- Schimbare DIV si Imagine cu JQuery
- Greseli intalnite in web design
- Redirectionare permanenta (301)
- Scripturi pentru afisare ora
- Coduri Culori (nume, hex, rgb)
- Conditionari PHP in WordPress
- Titlu WordPress Optimizat SEO
- Limitarea lungimii prin PHP
- Steaguri PNG
- Web Design CSS Text
- Primii pasi in SEO
- Web Design – CSS background
- Primii pasi in CSS
- Calculator JavaScript
- SEO – Ce inseamna?
- On-page SEO
- Off-Page SEO
Categorii
- XHTML (1)
- Wordpress (2)
- Web Design (6)
- SEO (5)
- Scripturi Utile (4)
- PHP (5)
- JQuery (2)
- JavaScript (3)
- Imagini PNG (1)
- Fără categorie (1)
- Drupal (1)
- CSS (4)
- COMENTARII RECENTE
- Cristina B: N-am pag. web, dar doresc sa-mi fac una prin forte proprii. N-am nici suficienti bani sa platesc asemenea...
- admin: adauga: background-repeat: repeat;
- Mihnea: am si eu o problema am incercat cu background-image:url(”); dar imi afiseaza imaginea doar pe o bucata...
- Florin: foarte interesant articolul
- Web Design: Un articol bun
Web Design: Oferta Lunii martie
conditionari php
CSS
css background
css text
html
off-page seo
on-page seo
optimizare web
php
SEO
text-align
text-decoration
Web Design
wordpress
xhtml CSS (4)
Drupal (1)
Fără categorie (1)
Imagini PNG (1)
JavaScript (3)
JQuery (2)
PHP (5)
Scripturi Utile (4)
SEO (5)
Web Design (6)
Wordpress (2)
XHTML (1)
WP Cumulus Flash tag cloud by Roy Tanck and Luke Morton requires Flash Player 9 or better.