Вы здесь

Вывод ссылки на страницах нод одного типа

1

Все привет.
Хотел бы поинтересоваться, возможно есть готовое решение.
Собрал модальное окно Colorbox-node + Webfrom
Выводим его ссылкой

<a class="colorbox-node" href="node/id?width=400&height=400">Задать вопрос</a>

Задача: вывести данную ссылку среди CCK fields на определенной ноде?
Попытки решения:
1. Термин таксономии - ссылка таксономии перекидывает нас на node/id, то есть просто открывает нашу форму на другой странице. Поэтому отказался от такого варианта. Да и каждый раз руками выбирать термин при создании ноды не хочется.
2. Button field module - работает через Rules, в событиях не нашел ничего похожего, что могло бы запустить переход по нужной нам ссылке, плюс необходимо добавить класс к этой ссылке. Вообщем решение тоже "не айс". Хотя возможно есть способ сделать через Button Field + Webform, только он мне пока не известен.
3. Javascript - предполагаю, что есть и такой вариант. Что-то вроде:

jQuery(document).find(Тут указываем field class, после которого нужно вывести нашу ссылку).after("<a class="colorbox-node" href="node/id?width=400&height=400">Задать вопрос</a>");

Это только предположение пока, еще не пробовал. Чуть позже отпишу результат.
Какие сможете дать комментарии по предложенным методам (верным и ошибочным) и какие варианты решения есть в вашей практике, уважаемое дрюпал сообщество?
Есть ли решение через template.php?

Версия Drupal: 
7.x
Категория: 
Field API
Связанные проекты: 
ColorboxWebformColorbox Node
Вопрос задан 10.03.2015 - 05:53

Ответы

0

Для начала надо поместить само поле в ноду. Вариантов много.
Можно через suggestions сделать шаблон для нужного типа ноды.
В template.php пишем:

function THEME_preprocess_page(&$variables) {
  global $user;
  if (!empty($variables['node']) && !empty($variables['node']->type)) {
    $variables['theme_hook_suggestions'][] = 'page__node__' . $variables['node']->type;
  }
}

Далее создаём файл page--node--[content-type-machine-name].tpl.php и туда суём шаблон с добавлением этого поля.

Если такой вариант не устраивает. То есть и другие.

Затем нам надо заставить работать такую ссылку. Вот вариант на jquery.

$("кнопка").click(function() {
            $.colorbox({inline:true, href: $("элемент для вывода в colorbox")});
            return false;
})

В этом случае элемент для вывода в colorbox должен быть на этой же странице. Можно посмотреть документацию в JS API Colorbox и думаю там есть и другие варианты.

Ответ дан 10.03.2015 - 09:49
Аватар пользователя SAM
SAM
212

Варианты итересные, но так вы выведите поле с сылкой либо после вывода всех полей ноды, либо до. А необходим вывод среди прочих полей. Думаю с extra_field вариант подходящий, но пока не разобрался.

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