Закажите услуги фрилансеров для вашего проекта прямо сейчас!

Размещение заказа на фриланс бирже бесплатно.

10 лет назад
Yurg
Россия
14 лет в сервисе
Был онлайн 10 лет назад
20 отзывов(-2)
10 лет назад

Модуль для D6/Ubercart uc_catalog. Каталог построен на основе таксономии. Модуль переопределяет breadcrumbs c учетом вложенности терминов таксономии, таким образом, что:

Термин1
*Термин2
**Термин3 (выбран)

..выводятся в breadcrumbs как Термин1 > Термин2 >Термин3

Но словарь позволяет мультивыбор терминов, таким образом, что если выбрать

Термин1
*Термин2
**Термин3 (выбран)
*Термин4
**Термин5 (выбран)
.. то в breadcrumbs выведется

Термин1 > Термин2 > Термин3 > Термин4 > Термин5

При этом, ссылка на страницу товара (path) формируется как (domain.tld/термин1/термин4/термин5)

Задача: выводить в breadcrumbs только ту цепочку, которая соответствует path.

Код этой части модуля:

/**
* Implementation of hook_nodeapi().
*/
function uc_catalog_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
static $parents = array();
if (uc_product_is_product($node->type)) {
switch ($op) {
case 'view':
if ($a4 == TRUE && variable_get('uc_catalog_breadcrumb', TRUE)) {
$crumbs = array();
if (variable_get('site_frontpage', 'node') != 'catalog') {
$crumbs = l(t('Home'), '');
}
$terms = taxonomy_node_get_terms_by_vocabulary($node, variable_get('uc_catalog_vid', 0));
if (count($terms)) {
$crumbs = l(variable_get('uc_catalog_name', t('Catalog')), variable_get('uc_catalog_url', 'catalog'));
$used_tids = array();
foreach ($terms as $term) {
if (!isset($parents)) {
$parents = taxonomy_get_parents_all($term->tid);
}
foreach (array_reverse($parents) as $parent) {
if (!in_array($parent->tid, $used_tids)) {
/* fixed NODE breadcrumbs path
$crumbs = l($parent->name, module_invoke('taxomony','term_path',$parent));
*/
$crumbs = l($parent->name, 'catalog/'. $parent->tid);

}
}
}
}
drupal_set_breadcrumb($crumbs);

}
break;
}
}
}

  1. Прием заявок
  2. Выбор исполнителя
  3. Выполнение заказа
  4. Обмен отзывами
Выбранный исполнитель
Николай Карасев
38 лет, Россия
16 лет в сервисе
Был онлайн 3 года назад
10 лет назад

$30

1 день

Николай Карасев
38 лет, Россия
16 лет в сервисе
Был онлайн 3 года назад
10 лет назад

Другие заказы в категории «Веб-программирование»

Здесь заказчик и фрилансеры могут обсуждать заказ до начала его выполнения.
Фрилансеры могут участвовать в обсуждении только после подачи заявки.
Здесь заказчик будет контролировать выполнение заказа и общаться с исполнителем.
Доступ к этому разделу имеют только заказчик и выбранный исполнитель.
Все материалы этого раздела закрыты от поисковых систем.