Web Design Ieftin

0765 297 688

0

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

Categorii

  • 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

Magazin Online doar 300 euro