Автоматический глоссарий Drupal для конкретных терминов

StackOverflow https://stackoverflow.com/questions/2030368

  •  19-09-2019
  •  | 
  •  

Вопрос

Приветствую всех помощников!

Недавно я читал и тестировал функции Drupal и нахожу эту CMS очень масштабируемой и интересной.Я начал работать с темами, представлениями, типами контента и т. д.но я ищу то, чего не могу найти в Интернете.

Контекст:Я создаю новый сайт для одной своей некоммерческой организации к 10-летию.В основном этот сайт предназначен для игры, правила которой имеют различные возможности.Я хотел бы создать глоссарий для различных способностей.Это не такая уж большая проблема.

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

Глоссарий способностей (список):http://conflitseternels.net/index.php?id=habilites

Каждый раз, когда в контенте встречается одна способность, она ссылается на ее описание.

Если вы поможете мне выполнить эту просьбу, я буду очень рад!

Спасибо, Уилл

Это было полезно?

Решение

Я нашел один модуль, который, похоже, делает что-то подобное:Глоссифицировать (http://drupal.org/project/glossify).Сам никогда им не пользовался, но попробовать стоит.Если Glossify вам не подходит, подумайте о том, чтобы помочь улучшить модуль или написать собственный модуль самостоятельно.

Теоретически существует два метода преобразования слов в ссылки:когда узел сохраняется или когда узел отображается.В обоих случаях вы будете проверять каждое слово в узле и смотреть, соответствует ли оно одной из способностей.Оба решения имеют преимущества и недостатки.При выборе решения нужно следить за производительностью, поскольку действия по поиску и замене могут отнимать много системных ресурсов, особенно если у вас много пользователей, длинные тексты и множество возможностей.

Изменение содержимого при сохранении узла можно выполнить в Drupal с помощью реализацииook_nodeapi ($op=presave).Непосредственно перед записью содержимого в базу данных ваша функция nodeapi творит чудеса.Преимущество:поиск и замена выполняется только один раз для каждого узла.Недостаток:при добавлении новой способности новые ссылки не будут добавлены в существующие узлы (если только вы не сохраните узел повторно).

Изменение содержимого при просмотре узла можно выполнить с помощью реализацииook_nodeapi ($op=view) илиook_filter.Ссылки не сохраняются в базе данных, а добавляются «на лету» каждый раз, когда пользователь просматривает узел.Преимущество:новые способности также будут связаны с ранее сохраненным узлом.Недостаток:производительности, поиск и замена должны выполняться для каждого представления узла (хотя кэширование, вероятно, частично решит эту проблему).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top