Вы здесь

Как проверить наличие мета-тег description у термина таксономии?

0

Имеется древний сайт на D6 с модулем Nodewords 6.x-1.15-beta1+0-dev.

Сразу обозначу, что я программист на уровне гугла (могу скопипастить и что-то очень простое сделать).

Интересует есть ли возможность проверить на уровне шаблона (page.tpl.php) какой-нибудь функцией, создан ли для текущей страницы мета-тег description?

Можно, конечно, сделать запросы напрямую к БД зная текущий alias страницы через функцию drupal_get_path_alias($_GET['q']) - с ней идём в таблицу nodewords_custom, где ищем этот path, чтобы получить id, с которым уже можно спросить у таблицы nodewords по этому id есть ли у этой страницы тег description или нет его.

Но это как-то не очень изящно на мой взгляд. У друпала на каждый чих же есть функция.

Пробовал ковыряться с nodewords_load_tags(), но без особого успеха.

Глобально задача следующая: для каждого термина таксономии определенного словаря прописать мета-тег description по умолчанию, но лишь в том случае, если этот тег не был создан через nodewords, то есть пустой.

Версия Drupal: 
6.x
Категория: 
Taxonomy API
Вопрос задан 26.04.2018 - 22:42

Ответы

0

Решено. Выкладываю, авось кому пригодится. Расковыряв модуль nodewords пришел вот к такому решению:

<?php
    //проверяем, что находимся на странице термина
    if (arg(0) == 'taxonomy' && arg(1) == 'term') {
        //загружаем данные термина, чтобы вытащить потом его название
        $term = taxonomy_get_term(arg(2));

        //определяем тип и id записи в бд nodewords
        $meta_data = _nodewords_detect_type_and_id();

        //загружаем метатеги страницы из custom pages
        $meta_custom = _nodewords_get_custom_pages_data($meta_data['id']);

        //загружаем мета теги напрямую из настроек термина
        $meta_page = nodewords_load_tags(NODEWORDS_TYPE_TERM, $meta_data['id']);

        //мета теги на каждую страницу термина могут быть установлены в двух местах, проверяем, есть ли там заполненный тег description
        if (empty($meta_custom->tags['description']['value']) && empty($meta_page['description']['value'])) {
            //если description нет, можно вывести здесь свой
        }
    }
?>
Ответ дан 27.04.2018 - 15:46
0

А разве там нет настройки для указания мета-тэга по умолчанию. В 7-ке точно была. И не нужно будет шаманить с темплейтами и функциями.

Ответ дан 27.04.2018 - 10:07
Аватар пользователя shu
shu
155

Да, по умолчанию можно, но эта версия модуля не поддерживает ни токены, ни php в форме описания. А мне надо использовать заголовок страницы в описании, чтобы они не были все одинаковыми, поэтому приходится костылить.

Для примера описание: "Статьи про [название термина]".

Комментарий оставлен 27.04.2018 - 10:15