Терминология Drupal с пояснениями

Аватар пользователя Dzmitry Paulenka

Этот толковый словарь описывает терминологию, которая используется программным обеспечением Drupal и Drupal-сообществами.
Слова упорядочены по оригинальному английскому варианту, потому что сложно однозначно перевести многие из них. Каждому оригиналу дается один или несколько переводов на русский язык с последующим пояснением.


      A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

A

Account – учетная запись
Запись, содержащая сведения, которые пользователь сообщает о себе Drupal-сайту. Учётная запись содержит сведения, необходимые для идентификации пользователя при подключении к системе, информацию для авторизации и учёта. Как правило – это имя пользователя и пароль.

API (Application Programming Interface) – интерфейс программирования приложений
API ([эй-пи-ай]; по-русски чаще произносят [апи]) – набор методов (функций), который программист может использовать для доступа к функциональности программного компонента (программы, модуля, библиотеки). API является важной абстракцией, описывающей функциональность «в чистом виде», безотносительно того, как реализована эта функциональность.

Back to Top

B

Block – блок
Маленький, самодостаточный элемент информации. Блоки используются для показа навигации или содержания. Обычно расположены в левой (left sidebar) или в правой (right sidebar) боковой панели, но можно самостоятельно определить любое местоположение блока. Информация, содержащаяся в блоках, берется из узлов. Блоки – не узлы, они – только способ позиционирования данных на странице.

Blog – блог
Сокращение от «web log» (сетевой журнал или дневник событий). Это веб-сайт, основное содержимое которого – регулярно добавляемые записи, изображения или мультимедиа. Для блогов характерны недлинные записи временной значимости, отсортированные в обратном хронологическом порядке (последняя запись сверху). Отличия блога от традиционного дневника обусловливаются средой: блоги обычно публичны и предполагают сторонних читателей, которые могут вступить в публичную полемику с автором (в отзывах к блог-записи или своих блогах). Не будет преувеличением, если сказать, что Drupal является самой удобной системой для создания блогов и интернет-сообществ.

Tермин был позаимствован из сказки «Хансель и Гретель» Братьев Гримм. В этой сказке Хансель и Гретель оставляли хлебные крошки вдоль своего пути, чтобы найти дорогу из леса обратно домой. На жаргоне программистов – это раздел, обычно вверху страницы, который показывает путь, который вы проделали, чтобы достичь текущей страницы. Например, такая навигационная цепочка: Главная → Орех Австралийский → Текущие события → Новые Статьи – означает, что вы начали с базовой страницы, щелкнули на меню «Орех Австралийский», затем выбрали «Текущие События» в подменю и, наконец, перешли на «Новые Статьи».

Back to Top

C

Callback – обработчик меню, обратный вызов
PHP функция, которая специальным образом регистрируется в системе меню Drupal. Эта функция-обработчик вызывается системой меню при выборе пунктов меню либо как обработчик пути.

CCK (Content Construction Kit) – набор для конструирования типов контента
Мощный модуль, который позволяет администраторам определять новые типы данных. В Drupal существует такое понятие, как узел. Другими словами это страничка вашего сайта или блога. Каждый узел содержит какой-то контент (информационное наполнение). Контент может быть разного типа. Модуль CCK позволяет конструировать такие типы используя веббраузер. Примеры типов контента: изображение, видеофайл, предложение_о_продаже_подшипника, статья_о_вашей_кошке и т.д.

Core или Drupal core – ядро или ядро Drupal
Это все файлы и модули, которые включены в стандартную поставку проекта Drupal. Ядро содержит минимальный набор инструментов, необходимых для работы сайта.

Core committers – разработчики ядра
Группа разработчиков Drupal, которые принимают решение о том, будет ли включено предложенное изменение к ядру Drupal в следующую версию. Они единственные, кто имеет доступ на запись к системе управления версиями.

Core contributor – соучастник разработки ядра
Друпаллург, который вносит изменения в ядро Drupal. Изменение оформляется в виде патча, сравнивается и затем выбирается разработчиками ядра для включения в следующую версию Drupal.
Замечание: Самый лучший вариант для развития Друпал - это клонировать модуль или ядро, сделать патч и опубликовать его на drupal.org.

Code Freeze – заморозка кода
Относится к дате, когда новая функциональность не может быть добавлена в следующую версию Drupal, кроме специфичных исключений, сделанных разработчиками ядра, и тогда и только тогда, когда влияние вносимых изменений на другие части ядра минимально. В это время основной упор делается на исправлении ошибок и улучшении имеющейся функциональности. Это время, когда разработчики модулей могут приступать к модификации кода, чтобы он работал со следующей версией Drupal.

Cron – хрон
Сокращение от «хронограф» (англ. chronograph) – это программа-планировщик, которая автоматически выполняет команды или скрипты (группы команд) через определенные промежутки времени. Drupal использует хрон для выполнения периодических задач.

CVS (Concurrent Versions System) – CVS
Хранилище версий Drupal. Программный продукт, относящийся к разряду систем управления версиями (англ. version control system). Хранит историю изменений определённого набора файлов, как правило, исходного кода программного обеспечения, и облегчает совместную работу группы программистов над одним проектом.

Back to Top

D

Drupal – Друпал, Drupal
Cистема управления содержимым (сайта) (англ. Content Management System, CMS), написанная на языке PHP и использующая в качестве хранилища данных реляционную базу данных (поддерживаются MySQL, PostgreSQL и другие). Drupal является свободным программным обеспечением, защищённым лицензией GPL и улучшается усилиями энтузиастов со всего мира. Название drupal является искажённым произношением голландского слова druppel (капля) и появилось в результате забавной ошибки. В 2000 году несколько студентов антверпенского университета использовали общий ADSL-модем для доступа в интернет и для общения пользователей этой маленькой локальной сети Дрис Байтаерт создал внутренний сайт. Программа, на которой работал сайт, не имела имени, пока Дрис не собрался регистрировать доменное имя для нового сайта и в результате опечатки вместо dorp.org (от голландского dorp – деревня, вполне уместное имя для небольшого сообщества) был зарегистрирован drop.org (drop на английском – капля).

Drupaller – друпаллург
Человек, активно работающий над проектом Drupal.

Back to Top

E

Engine – движок, движущий механизм
Смотрите также движок тем. Движок для системы, как мотор для машины.
Выделенная часть программного кода для реализации конкретной прикладной задачи. Движок Drupal выполняет главную работу по обработке запросов к базам данных, математическим расчётам, реализует механизм хуков и т.п. Использование готового движка при разработке программы, сайта или другого продукта сокращает время разработки, позволяет уделить больше времени разработке других подсистем, например пользовательскому интерфейсу или информационному наполнению сайта.

Back to Top

F

Filter – фильтр
Фильтрует контент перед выводом на страницу браузера.
Используется для управления выводом содержания на страницу. Фильтры могут удалять нежелательный контент (например, «опасные» теги HTML), форматировать его (например, добавлять перевод строки после абзаца или задавать оформление гиперссылок) и т.п. В Drupal есть возможность создания собственных фильтров.

Back to Top

G

Back to Top

H

Hack – хак
Модификация кода программы, позволяющая уменьшить размер программы, расширить функциональность и/или ускорить её работу. Наконец, просто красивое программистское решение (хороший хак обязательно должен быть красив с точки зрения программистов). Изначально это понятие родилось в университете Беркли и ничего общего со взломом защиты не имело. Соответствует английскому термину «brilliant hack».

Hook – хук, ловушка
Дословный перевод – крючок, ловушка. Позволяет модулям взаимодействовать с ядром Drupal. Хук – это PHP функция, которая имеет название foo_bar(), где «foo» – название модуля (имя файла foo.module), а «bar» – название самого хука.
В отличие от обработчика меню, функция-хук не регистрируется специальным образом в системе Drupal, а вызывается по маске имени «foo_bar()» ядром при включении модуля. О том, как реализованы хуки и обработчики меню смотрите комментарий на форуме.
Для расширения функциональности тех или иных частей Друпала, нужно реализовать соответствующий хук. Когда Друпал хочет взаимодействовать с модулями, он определяет какие хуки предоставляются модулями и вызывает эти хуки для всех включённых на сайте модулей. Хуки можно понимать, как внутренние события системы Drupal.

Back to Top

I

Back to Top

J

Back to Top

K

Back to Top

L

Log – журнал регистрации
Список зарегистрированных событий, содержащих информацию о работе системы, произошедших ошибках, предупреждающих сообщениях и другой технической информацей. Журнал регистрации событий ведется регистратором Drupal.

Back to Top

M

В Drupal термин меню используется для обозначения двух разных понятий. Во-первых, это активизируемые щелчком мыши навигационные элементы страницы. Во-вторых, это внутренняя система Drupal для обработки запросов. Когда в Drupal посылается запрос, система меню использует полученный URL для определения того, какие функции вызывать.

Module – модуль
Оформленный специальным образом функционально самостоятельный блок кода. Разбиение программы на модули существенно облегчает её разработку, документирование, отладку, модификацию и сопровождение. Модуль добавляет новые функциональные возможности в систему. Модули, не входящие в ядро Drupal, могут быть установлены отдельно.
Замечание: убедитесь, что версия модуля, который вы используете, совпадает с версией используемого вами ядра Drupal.

Multi-site – мультисайт
Мультисайтинг (англ. multi-siting) или многосайтовость – это множество независимых или зависимых (имеющих общее содержимое) веб-сайтов, реализованных на одной системе Drupal. Различают два вида мультисайтинга. 1) Мультисайтинг с общим движком. Сайты используют один движок Drupal, при этом каждый сайт может иметь свою отдельную базу данных. 2) Мультисайтинг с общими таблицами. Сайты используют одну базу данных, при этом каждый сайт может иметь свой движок Drupal. Есть смешанный вариант мультисайтинга – сайты используют один движок Drupal и одну базу данных. Причем даже в третьем случае сайты могут быть абсолютно независимыми и иметь свой собственный уникальный контент, тему оформления и конфигурацию. Мультисайтинг – это архитектурное решение, позволяющее облегчить управление, поддержку и обновление большой группы сайтов на Drupal.

Back to Top

N

Node – узел, материал, документ
Независимая единица содержимого, которая публикуется на Drupal-сайте. Узел может быть страницей, новостью, заметкой, записью в блоге или форуме, опросом, изображением, аудио- и видеозаписью и т.п.
Данное понятие имеет несколько различных переводов. Для новичка в Drupal или непрограммиста лучше подойдет перевод «материал» и «документ». Но для специалиста лучше использовать слово «узел». Узел в математике – это вершина графа, математической фигуры, состоящей из точек (вершин) и отрезков их соединяющих. В логистике узел – это фиксированная точка с собранными в ней объектами (транспортный узел, узел связи, складской узел и т.д.). Практически все содержимое Drupal собрано в узлах.

Back to Top

O

Back to Top

P

Patch – заплатка, патч
Специальным образом оформленный код, который вносит изменения в работу ядра или модуля Drupal.
Часть программы, или небольшая отдельная программа, используемая для устранения проблем в программном обеспечении. Сюда входит исправление ошибок, изменение внешнего вида, улучшение эргономичности или производительности программ, и любые другие изменения, которые кто-то пожелал сделать. Бывает, что и сами патчи становятся причиной новых неполадок. Обычно исправления появляются с новой версией модуля. Но случается разработчики не вносят исправления в официальный релиз сразу или вообще. Или исправления делаются не разработчиком. В этом случае нужные исправления можно получить в виде файла с именем «kakoe-to-imia.patch».

Path – путь
То же самое, что и URL. Drupal может использовать чистые ссылки (имеется в виду URL без «?q=»). В шестой версии Drupal чистые ссылки включаются сразу при установке системы.

Permissions – привилегии, права, полномочия
1) Для Drupal привилегии регулируют доступ к созданию контента, а также к управлению сайтом. Сначала администраторы назначают привилегии ролям, а затем назначают данные роли пользователям. Пользователь с идентификатором равным единице (uid=1) автоматически получает все привилегии независимо от того, к какой роли он принадлежит. Анонимный (незарегистрированный на сайте) пользователь имеет идентификатор равный нулю (uid=0).

2) В операционных системах Unix/Linux/Windows – привилегии являются настройками безопасности, которые запрещают или позволяют пользователям выполнять определенные функции на уровне операционной системы. Для файлов на Unix или Linux системах существуют три типа привилегий: право на чтение, право на запись и право на выполнение.

phpTemplate – PHP-шаблон
Это движок тем, который позволяет использовать файлы шаблонов, написанные на PHP. PHP-шаблон является очень быстрым по сравнению с другими движками тем. Поэтому он является движком тем по умолчанию начиная с версии 4.7 и входит в ядро Drupal. Файлы PHP-шаблона заканчиваются на «.tpl.php».
  • page.tpl.php – это шаблон, который определяет структуру всех страниц, отображаемых Drupal.
  • node.tpl.php – этот шаблон используется для управления отображением данных узла. Если вы хотите по разному отображать узлы различных типов, то вы должны создать файл шаблона «node-<тип узла>.tpl.php», где <тип узла> – это название типа узла. Например, «node-forum.tpl.php».
  • comment.tpl.php – файл шаблона для управления отображением комментария.

Post – сообщение
Отдельно взятое сообщение в форуме или блоге. Сообщения в форуме или блоге в чём-то похожи на почтовые – каждое из них имеет автора, дату, тему и собственно содержание. Но для того, чтобы отправить («запостить») сообщение, не нужна никакая дополнительная программа – нужно просто заполнить соответствующую форму на сайте.

Back to Top

Q

Back to Top

R

Role – роль
Набор привилегий, которые могут быть назначены пользователям. Пользователи могут иметь более одной роли. Drupal устанавливает две роли по умолчанию: зарегистрированный пользователь (authenticated user) и анонимный пользователь (anonymous user). Зарегистрированные пользователи – имеют свою учетную запись. Анонимные пользователи либо не имеют учетной записи, либо не вошли в систему. Этим двум ролям по умолчанию можно изменить права, но их нельзя удалить или переименовать. Самый первый пользователь (uid=1), который получает все привилегии, может настраивать роли по умолчанию и создавать новые роли.

RSS – RSS
Акроним от Really Simple Syndication (очень простое приобретение информации). Это семейство XML-форматов, предназначенных для описания лент новостей, анонсов статей, изменений в блогах и т. п. Информация из различных источников, представленная в формате RSS, может быть собрана, обработана и представлена пользователю в удобном для него виде специальными программами-агрегаторами. Обычно с помощью RSS 2.0 даётся краткое описание новой информации, появившейся на сайте, и ссылка на её полную версию. Интернет-ресурс в формате RSS называется RSS-каналом, RSS-лентой или RSS-фидом.
Drupal имеет RSS ленту по-умочанию. Однако RSS возможности могут быть расширены при помощи модулей «Comment RSS» и «Site map».

Back to Top

S

Style – стиль
Tехнология оформления веб-страниц.
Стиль реализуется при помощи CSS файлов (англ. Cascading Style Sheets, каскадные таблицы стилей). CSS используется создателями и посетителями веб-страниц для задания цветов, шрифтов, расположения объектов и других аспектов представления документа. Основное назначение, для которого технология CSS была разработана, это разделение содержимого (написанного на HTML или другом языке разметки) и представления документа (написанного на CSS). Разделение содержимого и представления увеличивает доступность документа, предоставляет большую гибкость, а также уменьшает сложность и повторяемость в структурном содержимом.

Back to Top

T

Tag – ключевое слово, метка, тег
Ключевое слово, метка для категоризации чего-либо. Используется для поиска какой-либо информации или для форматирования текста.
В программировании – элемент языка разметки гипертекста (англ. HyperText Markup Language, HTML). Применяется для форматирования текста, иллюстраций, создания таблиц. Например, текст, заключенный между начальным тегом <small> и конечным тегом </small> предписывается отображать меньше основного текста.

Tarball – тарбол
Архив, который был создан командой tar.
В вычислительной технике tar (сокращение от «tape archive», хранилище на магнитных лентах) – это и формат файла и имя программы, которая применяется для обработки таких файлов. Тарболы используются разработчиками программ для того, чтобы объединять наборы файлов в один большой файл, который позволяет сохранять информацию о файловой системе внутри тарбола. Ядро Drupal и все его модули можно бесплатно скачать из интернета в виде тарболов.

Taxonomy – таксономия
Учение о том, как классифицировать и систематизировать предметы и явления.
Таксономия (от греческого «расположение по порядку + закон») – механизм классификации содержимого сайта при помощи терминов. Это гибкий инструмент с множеством расширенных функций.
  • Term – Термин – это ключевое слово, которое назначается узлу. Для образования иерархических структур термины могут быть дочерними и родительскими по отношению друг к другу.
  • Vocabulary – Словарь – это набор терминов, которые каким-либо образом взаимосвязаны друг с другом. Например, сайт веб-сообщества может иметь словарь «Темы» с такими терминами как: технология, политика, обучение, религия, спорт. На этом же сайте может быть другой словарь для использования наравне со словарем «Темы», который классифицирует узлы другим способом: новости, обзоры, анонсы, опции. Словари также могут быть иерархическими.
  • Taxonomy – Таксономия – это название механизма классификации материалов, а также модуля, который его реализует. Это слово используется для названия пункта меню на панели управления сайтом.
  • Category – Категория – это современное, удобное для пользователя, название таксономии, а также новое имя пункта меню. Новички пугались слова «Таксономия», поэтому оно было заменено словом «Категория».

Teaser – анонс
Дословный перевод – приманка. Предварительный просмотр. Обычно первые несколько слов или предложений и ссылка на все содержимое узла.

Template – шаблон
Код, описывающий структуру страницы сайта. Шаблон определяет, какие объекты выводить на страницу и где они будут расположены.
Дизайн сайта на Drupal строится на основе сменных тем оформления. Как таковой нет единственной схемы построения дизайна, взамен Drupal даёт возможность использовать различные движки тем, использующие шаблоны, удобные для редактирования (шаблоны XML в движках xtemplate и Smarty или шаблоны на HTML + встроенный PHP в движке phpTemplate и т. п.), либо создавать темы оформления напрямую обращающиеся к API Drupal.

Theme – оформление, тема оформления
Набор файлов (php, theme, css, jpg, gif, png и т.д.), которые определяют оформление сайта. В Drupal темой оформления по умолчанию является Garland. Она состоит из трёх колонок. Центральная колонка называется колонкой содержания. Левая и правая колонки называются боковыми панелями. Обычно в них размещают блоки меню, также в них обычно помещают наиболее комментируемые и (или) самые популярные статьи.

Theme Engine – движок тем (оформления)
Это набор скриптов, которые интерпретируют код и помогают сделать оформление вашего сайта более простой задачей. Для Drupal начиная с версии 4.7 по умолчанию используется движок тем оформления PHP-шаблон.

Thumbnail – миниатюра
Сильно уменьшенное изображение, дающее приблизительное представление об оригинале. Применяется обычно в анонсах.

Back to Top

U

URL (Uniform Resource Locator) – адрес (страницы), ссылка
Адрес, используемый Web-браузером для поиска ресурса в интернете. URL представляет собой стандартизованную строку символов, указывающую местонахождение ресурса, документа или его части в Internet. Строка адреса состоит из типа протокола (http, ftp и т.д.), имени хоста (www.drupal.org), номера порта (80), пути к файлу, имени файла и передаваемых параметров. Например: http://www.drupal.org:80/path/to/file/index.html?value1=v1&value2=v2&value3=v3

User – пользователь
Тот, кто пользуется сайтом. Пользователь может быть либо зарегистрированным, имеющим учетную запись, либо незарегистрированным, анонимным пользователем. Эти два типа пользователей соответствуют двум ролям по умолчанию, которые создаются при установке Drupal.

Back to Top

V

Views – Views
Модуль, который выводит списки узлов по заданным условиям.
Обеспечивает гибкий метод для разработчиков Drupal-сайтов контролировать, как и какие форматы списков узлов будут отображаться на сайте. Этот модуль, по сути, является удобным построителем запросов, который, если ему дать достаточно информации, может построить правильный и соответствующий запрос, выполнить его, и отобразить результаты. Много разработчиков считают этот модуль одним из самых необходимых для создания сайта.

Back to Top

W

Weight – вес
Свойство объекта, определяющее его положение в списке. Объект с более легким весом (-10) размещается в начале списка, а объект с более тяжелым весом (+10) располагается в конце списка.
Drupal использует это понятие для определения приоритета или порядка следования, в котором обрабатываются функции или отображаютя на странице блоки и узлы. Начиная с шестой версии Drupal, поле вес настраивается с помощью технологии drag-and-drop (перетаскивается мышкой).

WYSIWYG – что видишь, то и получишь
WYSIWYG (сокращение от «What You See Is What You Get», что видишь, то и получишь, произносится как «ви-зи-виг») – способ редактирования, при котором редактируемый материал в процессе редактирования выглядит в точности так же, как и конечный результат. Обычно этот термин используется в отношении текстовых процессоров (текстовых редакторов), но может применяться и к другим типам прикладных программ.

Watchdog – регистратор
Буквально переводится, как «сторожевая собака». В широком смысле – это программа-сторож, которая охраняет данные. В Drupal эта программа ничего не сторожит, а просто регистрирует события, произошедшие в системе. Поэтому термин «регистратор» больше всего подходит по смыслу к действиям этого модуля.

Back to Top

X

Back to Top

Y

Back to Top

Z

Back to Top

Благодарности

Словарь дополняется и уточняется в соответствии с комментариями от сообщества Drupal. Если вы считаете, что в словаре нет важных терминов, либо они недостаточно хорошо описаны, либо есть грамматические ошибки – опишите их в комментариях, и после обсуждения изменения будут внесены в словарь.
Автор благодарен друпаллургам gleb, neochief, seaji, andypost@drupal.org приславшим свои замечания к словарю.

Используемые материалы

0 Спасибо

Комментарии

Аватар пользователя EllECTRONC
EllECTRONC 8 лет назад

Подшить к друпал.ру!

0 Спасибо
Аватар пользователя PVasili
PVasili 8 лет назад

Где то я всё это видел ;)

0 Спасибо
Аватар пользователя Dzmitry Paulenka
Dzmitry Paulenka 8 лет назад
PVasili написал:
Где то я всё это видел ;)

Конечно видели :)! В Интернете, на русскоязычных сайтах Drupal, форумах, обсуждениях различных терминов и т.д.
Терминология - это продукт сообщества))

0 Спасибо
Аватар пользователя Dzmitry Paulenka
Dzmitry Paulenka 8 лет назад
PVasili написал:
Уже обсуждалось: http://drupaler.ru/forum/translate/ru

Да, интересный форум, я неоднократно заходил (и буду заходить) на него в поисках значений терминов. Перевод каждого термина является темой форума. А Вы пробовали объединить результаты обсуждения всех тем в единое целое? Например, в небольшой толковый словарь :)

Если так, то дайте пожалуйста ссылку. Буду очень благодарен, потому что давно искал такой толковый словарь, не нашел и решил написать.

0 Спасибо
Аватар пользователя PVasili
PVasili 8 лет назад

2 топик сверху "Устоявшиеся переводы" все вроде как устаканили. Если что не так - ветки поднимаем исправляем/дополняем.

0 Спасибо
Аватар пользователя neochief
neochief 8 лет назад

Callback – обратный вызов
То же самое, что и хук (hook).

Не правда!

0 Спасибо
Аватар пользователя Dzmitry Paulenka
Dzmitry Paulenka 8 лет назад
neochief написал:
Callback – обратный вызов
То же самое, что и хук (hook). Не правда!

Было потрачено несколько часов на выяснение, является ли callback и hook одним и тем же. Наконец, в книге "Pro Drupal Development" (для Drupal 5.x) на странице 394 в разделе "Предметный указатель" (Index) была найдена фраза: "callbacks [new line] see also hooks".

Страница 4: "Hooks can be thought of as internal Drupal events. They are also called callbacks, though because they are constructed by function naming conventions and not by registering with a listener, they are not truly being called back. Hooks allow modules to “hook into” what is happening in the rest of Drupal.".
Дословный перевод: "Хуки можно понимать, как внутренние события Drupal. Они также называются обратными вызовами (callbacks), хотя бы потому что они конструируются на основе соглашения об именах функций и не регистрируются слушателем (listener), они не являются по-настоящему обратными вызовами (not truly being called back). Хуки позволяют модулям "заполучать" (hook into) то, что случается в оставшейся (отличной от модуля) части Drupal.".

Страница 13: "Recall that Drupal is built on a system of hooks, sometimes called callbacks."
Перевод: "Напоминаем, что Drupal построен на системе хуков (hooks), иногда называемых обратными вызовами (callbacks)."

Может, заменить дословным переводом? Просто в других технологиях callback это не то же самое, что callback на Drupal.
Поясните, пожалуйста, кто знает?

0 Спасибо
Аватар пользователя seaji
seaji 8 лет назад

Не, в Друпале hook и callback это разные вещи.
Мне кажется в тексте они сравниваются только для того, что бы объяснить смысл хука.
В терминологии их нужно разделять.

В друпале callback только один на страницу и определяется он в системе меню, а выполняется вот этой функцией в файле index.php:
<?php
$return = menu_execute_active_handler();
?>
Хуков же может быть очень много на одну страницу. Каждый модуль может вставить по хуку.

0 Спасибо
Аватар пользователя Dimm
Dimm 8 лет назад

Удобно.

0 Спасибо
Аватар пользователя Dzmitry Paulenka
Dzmitry Paulenka 8 лет назад
seaji написал:
Мне кажется в тексте они сравниваются только для того, что бы объяснить смысл хука.
В терминологии их нужно разделять.

Спасибо за пояснение. Я применял обратные вызовы, когда определял события в Windows. Но в Drupal это немного другое понятие. Я пока что не понимаю его, поэтому решил убрать из списка до той поры, пока не пойму, либо пока не найду четкое определение.

Всем друпаллургам. Кто может дать четкое определение обратного вызова (callback) в Друпал и чем обратный вызов отличается (если они похожи) от хука (hook)?

0 Спасибо
Аватар пользователя andypost@drupal.org
andypost@drupal.org 8 лет назад
Dzmitry Paulenka написал:
Я применял обратные вызовы, когда определял события в Windows. Но в Drupal это немного другое понятие.

Здесь очень узкое место в терминологии.
На примере win - hook это зарегистрированный перехват какого-либо события, обработчиком которого будет callback-функция, так же там есть подписка на события (например window, winsock).

А вот в отношении drupal - это немного иначе. Есть 2 фундаментальные вещи: обработчик меню и хук. Первый из них регистрируется в системе меню, а второй не регистрируется, но вызывается по маске имени. Именно это обычно и вызывает сложности у разраотчиков пришедших с других систем - подмена понятий.

Начиная с 6й версии появился реестр тем, в 7й версии уже есть реестр модулей и их функциий, так что вскоре хук приобретет свой привычный смысл.

Что касается callback, то в системе меню есть следущие определения.
Основное отличие их в том, что первое создает пункт меню, а второе только обработчик пути.
<?php
/**
* Normal menu items show up in the menu tree and can be moved/hidden by
* the administrator. Use this for most menu items. It is the default value if
* no menu item type is specified.
*/
define('MENU_NORMAL_ITEM', MENU_VISIBLE_IN_TREE | MENU_VISIBLE_IN_BREADCRUMB);

/**
* Callbacks simply register a path so that the correct function is fired
* when the URL is accessed. They are not shown in the menu.
*/
define('MENU_CALLBACK', MENU_VISIBLE_IN_BREADCRUMB);
?>

Именно второе определение вызывает ассоциацию callback, ибо при определении роутеров меню используется слово callback, например:
<?php
// Взят пример для 6й версии
// В функции-хуке определяются обработчики меню (модуль webform, хук hook_menu)
/**
* Implementation of hook_menu().
*/
function webform_menu() {
global $user;

$items = array();

// Submissions listing. ----------------это будет видимым пунктом меню
$items['admin/content/webform'] = array(
'title' => 'Webforms',
'page callback' => 'webform_admin_content', // имя callback функции обработчика URL
'access callback' => 'user_access', // имя callback функции обработчика доступа
'access arguments' => array('access webform results'),
'description' => t('View and edit all the available webforms on your site.'),
'type' => MENU_NORMAL_ITEM,
);

// Node page tabs. ----------------------это будет просто обработчик URL (нет пункта меню)
$items['node/%webform_menu/done'] = array(
'title' => 'Webform confirmation',
'page callback' => '_webform_confirmation', // имя callback функции обработчика URL
'page arguments' => array(1),
'access callback' => 'node_access', // имя callback функции обработчика доступа
'access arguments' => array('view', 1),
'type' => MENU_CALLBACK,
);

// Далее сами функции

/**
* Menu callback for admin/content/webform. Displays all webforms on the site.
*/
function webform_admin_content() {
//skip code
}

/**
* Prints the confirmation message after a successful submission.
*/
function _webform_confirmation($node) {
//skip code
}
?>

В примере выше - callback функции обработчики будут вызваны системой меню, а функция-хук webform_menu будет вызвана ядром при включении модуля!

PS: просто попытка объяснить, дополняйте и поясняйте...

ЗЫ2 вот нашел определения Hooking Callback

0 Спасибо
Аватар пользователя axel
axel 8 лет назад

Dzmitry, спасибо за проделанную работу, такой словарь определённо нужен. Но на мой взгляд подшивать в документацию drupal.ru его стоит в виде вики-страницы, чтобы правки и дополнения могли вносить другие участники. Поскольку терминология вещь неоднозначная, наверняка будет немало дополнений.

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

0 Спасибо
Аватар пользователя PVasili
PVasili 8 лет назад

Глоссарий

0 Спасибо
Аватар пользователя Dzmitry Paulenka
Dzmitry Paulenka 8 лет назад
axel написал:
На мой взгляд подшивать в документацию drupal.ru его стоит в виде вики-страницы, чтобы правки и дополнения могли вносить другие участники.

Axel, спасибо за идею! Я оформлю статью в виде вики-страницы.
Если вы знаете, то скажите, когда будет работать http://docs.drupal.ru/? Как я понимаю, там находятся вики-странички с документацией.

andypost@drupal.org написал:
В примере выше - callback функции обработчики будут вызваны системой меню, а функция-хук webform_menu будет вызвана ядром при включении модуля!

andypost@drupal.org, большое спасибо за пояснение! Теперь стало понятней.
Переделал. Если вы согласны с таким объяснением терминов, то помещу в статью.

Callback – обработчик меню, обратный вызов
PHP функция, которая специальным образом регистрируется в системе меню Drupal. Эта функция-обработчик вызывается системой меню при выборе пунктов меню либо как обработчик пути.

Hook – хук, ловушка
Дословный перевод – крючок, ловушка. Позволяет модулям взаимодействовать с ядром Drupal. Хук – это PHP функция, которая имеет название foo_bar(), где «foo» – название модуля (имя файла foo.module), а «bar» – название самого хука.
В отличие от обработчика меню, функция-хук не регистрируется специальным образом в системе Drupal, а вызывается по маске имени «foo_bar()» ядром при включении модуля.
Для расширения функциональности тех или иных частей Друпала, нужно реализовать соответствующий хук. Когда Друпал хочет взаимодействовать с модулями, он определяет какие хуки предоставляются модулями и вызывает эти хуки для всех включённых на сайте модулей. Хуки можно понимать, как внутренние события системы Drupal.
0 Спасибо
Аватар пользователя Gukov Yor
Gukov Yor 8 лет назад

Оо, ну блин, где раньше это было!?
Спасибо, +закладки

0 Спасибо
Аватар пользователя oleg_naumchik
oleg_naumchik 6 лет назад

Так вот оно че Михалыч!!! :))) Полезная страница, только желательно все таки в виде вики, а то каждый из вас, кто дошел до уровня гуру, наклепал сайт для начинающих и читать это все, особенно когда проблема более или менее серьезная, фильтруя косноязычие и финты наикрутейших специалистов - череп лопается!!! Вы же когда родились заговорили-то на русском языке, а не сразу на PHP требуя молока у мамы - скриптами! Так и к нам, новорожденным друпаллерам, относитесь с пониманием, а в замен обещаем на каждый спасительный ответ на форуме поддержки отвечать: спасибо гуру!
:)

0 Спасибо