Модули

Описание и примеры использования различных модулей Drupal.

Menu Bredcrumb

Дружим uc_catalog и nodewords

Для Drupal существует очень полезный модуль nodewords. Он позволяет задавать метатеги материалам, профилям пользователей, терминам таксономии и даже произвольным страницам, но есть у него недостаток: он не работает для каталога ubercat, т.к. не считает страницы его категорий страницами терминов таксономии.

Можно было бы конечно прописать метатеги основываясь на пути, но это муторно и неудобно.

Т.к. катагории товаров в ubercart ничто иное как термины таксономии, логично бы было при просмотре соответствующей категории использовать метатеги соответствующего термина таксономии.

Вот маленький модуль реализующий данный функционал:

uc_catalog_meta.module

<?php

function uc_catalog_meta_nodewords_api() {
  // Мы используем эту версию nodewords api
  return array('version' => '1.12');
}

function uc_catalog_meta_nodewords_type_id(&$result, $arg) {
  // Страницы каталога находятся у нас по адресу: catalog/tid.
  if ($arg[0] == 'catalog') {
    if (isset($arg[1]) && is_numeric($arg[1])) {
      // Говорим nodewords что на самом-то деле для категории каталога, надо подставить метатеги термина с соответствующим tid 
      $result['type'] = NODEWORDS_TYPE_TERM;
      $result['id'] = $arg[1];
    }
  }
}

uc_catalog_meta.info
name = Nodewords for uc_catalog
description= Метатеги на страницах категорий каталога
package = Custom core = 6.x
dependencies[] = nodewords
 
В зависимостях не указан модуль uc_catalog, т.к. если реализовать каталог с помощью например taxonomy_menu и views, то существует та же проблема и данное решение тоже подходит.