---
url: 'https://dxpr.com/ar/hc/%D8%A7%D9%84%D8%AA%D9%88%D8%AB%D9%8A%D9%82/%D8%AA%D8%B9%D9%84%D9%85-dxpr-builder/%D8%A7%D9%84%D8%AA%D8%B7%D9%88%D9%8A%D8%B1/api-%D8%A7%D9%84%D8%AE%D8%B7%D8%A7%D9%81%D8%A7%D8%AA'
title: 'مرجع واجهة الخطافات | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-24T01:25:25+00:00'
updated: '2026-10-24T17:19:22+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: |-
  يملك DXPR Builder خمسة خطافات. يوثّق dxpr_builder.api.php خمسها،
  مع مثال لكل منها.
tags:
  - 'Architecture and APIs'
image: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
published: true
og:
  site_name: DXPR
  updated_time: '2026-10-24T17:19:22+0000'
  'image:alt': 'DXPR, powered by Drupal: AI-powered Drupal for marketers.'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      mainEntity: {  }
    -
      '@type': TechArticle
      headline: 'مرجع واجهة الخطافات'
      description: |-
        يملك DXPR Builder خمسة خطافات. يوثّق dxpr_builder.api.php خمسها،
        مع مثال لكل منها.
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-24T01:25:25+0000'
      dateModified: '2026-10-24T17:19:22+0000'
      author:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      mainEntityOfPage: 'https://dxpr.com/ar/hc/%D8%A7%D9%84%D8%AA%D9%88%D8%AB%D9%8A%D9%82/%D8%AA%D8%B9%D9%84%D9%85-dxpr-builder/%D8%A7%D9%84%D8%AA%D8%B7%D9%88%D9%8A%D8%B1/api-%D8%A7%D9%84%D8%AE%D8%B7%D8%A7%D9%81%D8%A7%D8%AA'
      articleSection: 'البنية والواجهات البرمجية'
    -
      '@type': WebPage
      '@id': 'https://dxpr.com/ar/hc/%D8%A7%D9%84%D8%AA%D9%88%D8%AB%D9%8A%D9%82/%D8%AA%D8%B9%D9%84%D9%85-dxpr-builder/%D8%A7%D9%84%D8%AA%D8%B7%D9%88%D9%8A%D8%B1/api-%D8%A7%D9%84%D8%AE%D8%B7%D8%A7%D9%81%D8%A7%D8%AA'
      description: |-
        يملك DXPR Builder خمسة خطافات. يوثّق dxpr_builder.api.php خمسها،
        مع مثال لكل منها.
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: الرئيسية
            item: 'https://dxpr.com/ar'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
      inLanguage: ar
---
[مركز المساعدة](/ar/hc)/[التوثيق](/ar/hc/%D8%A7%D9%84%D8%AA%D9%88%D8%AB%D9%8A%D9%82) /[تعلّم DXPR Builder](/ar/hc/documentation/learn-dxpr-builder) /[التوسعة](/ar/hc/documentation/learn-dxpr-builder/extend) /[البنية والواجهات البرمجية](/ar/hc/documentation/learn-dxpr-builder/extend/architecture) # مرجع واجهة الخطافات.

 تعلّم DXPR Builderالتوسعةالبنية والواجهات البرمجية

   ## في هذا الدليل

 أدلة ذات صلة

- [الصلاحيات](/ar/hc/%D8%A7%D9%84%D8%AA%D9%88%D8%AB%D9%8A%D9%82/%D8%AA%D8%B9%D9%84%D9%85-dxpr-builder/%D8%A7%D9%84%D8%AA%D8%B7%D9%88%D9%8A%D8%B1/%D8%A7%D9%84%D8%B5%D9%84%D8%A7%D8%AD%D9%8A%D8%A7%D8%AA)
- [مرجع API](/ar/hc/documentation/learn-dxpr-builder/development/api)

يملك DXPR Builder خمسة خطافات. يوثّق `dxpr_builder.api.php` خمسها، مع مثال لكل منها.

| الخطاف | يُستدعى من | الأثر |
|---|---|---|
| `hook_dxpr_builder_classes_alter(&$classes)` | `DxprBuilderService::editorAttach()` | يضيف فئات إلى قائمة **فئات HTML** في المحرّر |
| `hook_dxpr_builder_icon_sets_alter(array &$icon_sets)` | `DxprBuilderService::getIconSets()` | يضيف مجموعات أيقونات في منتقي الأيقونات أو يغيّرها أو يزيلها |
| `hook_dxpr_builder_view_elements(array &$element)` | `DxprBuilderFormatter::viewElements()` | يغيّر مصفوفة العرض لكل حقل يُعرَض بمُنسِّق DXPR Builder |
| `hook_dxpr_builder_element_buttons_folders_alter(&$folders)` | `DxprBuilderService::getButtonStyles()` | لا أثر مرئي؛ انظر أدناه |
| `hook_dxpr_builder_elements_folders_alter(&$folders)` | `DxprBuilderService::getDxprElementsFolders()` | لا أثر مرئي؛ انظر أدناه |

## hook\_dxpr\_builder\_classes\_alter

يضيف مدخلات إلى قائمة الفئات التي يعرضها حقل **فئات HTML** الخاص بكل عنصر. تستدعيه الشيفرة عبر `$this->moduleHandler->alter('dxpr_builder_classes', ...)`، فينتهي اسم الدالة بـ `_alter`؛ فدالة باسم `mymodule_dxpr_builder_classes()` لا تُستدعى أبدًا.

```php
/**
 * Implements hook_dxpr_builder_classes_alter().
 */
function mymodule_dxpr_builder_classes_alter(&$dxpr_builder_classes) {
  // Start a new option group.
  $dxpr_builder_classes['optgroup-brand'] = t('Brand styles');
  $dxpr_builder_classes['brand-primary-bg'] = t('Primary background');
  $dxpr_builder_classes['brand-accent-text'] = t('Accent text colour');
}

```

- `&$dxpr_builder_classes` (مصفوفة): المفتاح اسم فئة واحد، أو عدة أسماء مفصولة بمسافات؛ والقيمة هي التسمية. والمفتاح الذي يبدأ بـ `optgroup-` يبدأ مجموعة خيارات.

تحمل المصفوفة أصلًا فئات كل قالب مفعّل يضبط `dxpr_builder_classes` في `.info.yml` الخاص به، فلا يحتاج القالب إلى PHP. انظر [فئات الأدوات](/ar/hc/documentation/learn-dxpr-builder/customization/utility-classes).

## hook\_dxpr\_builder\_icon\_sets\_alter

يعمل بعد دمج الوحدة كل ملف `*.dxpr_icon_sets.yml` الخاص بالوحدات والقوالب المفعّلة. فضّلوا ملف YAML؛ واستخدموا الخطاف عندما تعتمد القائمة على منطق زمن التشغيل.

```php
/**
 * Implements hook_dxpr_builder_icon_sets_alter().
 */
function mymodule_dxpr_builder_icon_sets_alter(array &$icon_sets) {
  $module_path = \Drupal::service('extension.list.module')
    ->getPath('mymodule');
  $icon_sets['material'] = [
    'label' => t('Material Symbols'),
    'prefix' => 'material-symbols',
    'css' => $module_path . '/vendor/material-symbols.css',
    'library' => 'mymodule/material_symbols',
    'icons' => [
      'material-symbols material-symbols-star',
      'material-symbols material-symbols-home',
    ],
  ];
}

```

يعمل الخطاف بعد حل مسارات `css` النسبية من ملفات YAML، فتحتاج المجموعة المضافة هنا مسارًا من جذر Drupal، كما في المثال. ومفاتيح مجموعة الأيقونات والمجموعات الـ 14 المدمجة مُدرجة في [مجموعات الأيقونات المخصصة](/ar/hc/%D8%A7%D9%84%D8%AA%D9%88%D8%AB%D9%8A%D9%82/%D8%AA%D8%B9%D9%84%D9%85-dxpr-builder/%D8%A7%D9%84%D8%AA%D8%B7%D9%88%D9%8A%D8%B1/%D9%85%D8%AC%D9%85%D9%88%D8%B9%D8%A7%D8%AA-%D8%A7%D9%84%D8%A3%D9%8A%D9%82%D9%88%D9%86%D8%A7%D8%AA).

## hook\_dxpr\_builder\_view\_elements

يُستدعى مع `invokeAll()` في نهاية `DxprBuilderFormatter::viewElements()`، بعد أن يرفق المُنسِّق مكتباته وإعداداته وملفه. و`$element` هي مصفوفة عرض الحقل، مُمرَّرة بالمرجع. وهو يعمل لكل مشاهِد، محرّرًا كان أم لا.

```php
/**
 * Implements hook_dxpr_builder_view_elements().
 */
function mymodule_dxpr_builder_view_elements(array &$element) {
  $element['#attached']['library'][] = 'mymodule/builder_extras';
}

```

## خطافات دون أثر مرئي

- `hook_dxpr_builder_element_buttons_folders_alter()` يستقبل قائمة مجلدات تصف ملفات `.html` الخاصة بها أنماط الأزرار. وتصل النتيجة إلى `drupalSettings.dxprBuilder.buttonStyles`. لكن عنصر الزر يقرأ قائمته الثابتة الخاصة من أنماط Bootstrap بدل ذلك، فلا تغيّر المجلدات الإضافية شيئًا في المحرّر.
- `hook_dxpr_builder_elements_folders_alter()` من شأنه تغيير قائمة مجلدات `elements` في القوالب، لكن لا شيء يستدعي `getDxprElementsFolders()`، فلا يعمل الخطاف أبدًا. وهو لا يسجّل عناصر؛ ولإضافة عنصر، انظر [العناصر المخصصة](/ar/hc/%D8%A7%D9%84%D8%AA%D9%88%D8%AB%D9%8A%D9%82/%D8%AA%D8%B9%D9%84%D9%85-dxpr-builder/%D8%A7%D9%84%D8%AA%D8%B7%D9%88%D9%8A%D8%B1/%D8%B9%D9%86%D8%A7%D8%B5%D8%B1-%D9%85%D8%AE%D8%B5%D8%B5%D8%A9).

## ما الخطوة التالية؟

- [الصلاحيات](/ar/hc/%D8%A7%D9%84%D8%AA%D9%88%D8%AB%D9%8A%D9%82/%D8%AA%D8%B9%D9%84%D9%85-dxpr-builder/%D8%A7%D9%84%D8%AA%D8%B7%D9%88%D9%8A%D8%B1/%D8%A7%D9%84%D8%B5%D9%84%D8%A7%D8%AD%D9%8A%D8%A7%D8%AA) للصلاحيات التي تعرّفها الوحدة.
- [مرجع API](/ar/hc/documentation/learn-dxpr-builder/development/api) للخدمات والمسارات.